{"version":3,"file":"callifly-widget.umd.cjs","sources":["../src/core/transcript.ts","../src/core/chat-stream.ts","../src/core/overrides.ts","../src/core/chat-engine.ts","../node_modules/@daily-co/daily-js/dist/daily-esm.js","../node_modules/events/events.js","../node_modules/@vapi-ai/web/dist/api.js","../node_modules/@vapi-ai/web/dist/client.js","../node_modules/@vapi-ai/web/dist/daily-guards.js","../node_modules/@vapi-ai/web/dist/vapi.js","../src/core/voice-engine.ts","../src/core/contrast.ts","../src/core/i18n.ts","../src/core/markdown.ts","../src/core/speech-to-text.ts","../src/ui/widget-types.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/directives/style-map.js","../src/core/file-attachments.ts","../src/ui/styles.ts","../src/ui/icons.ts","../src/ui/floating-launcher.ts","../src/ui/panel-header.ts","../src/ui/voice-status-orb.ts","../src/ui/voice-controls.ts","../src/ui/chat-input-bar.ts","../src/ui/chat-controls.ts","../src/ui/hybrid-controls.ts","../src/ui/message-bubble.ts","../src/ui/empty-state.ts","../src/ui/conversation-list.ts","../src/ui/mic-permission-alert.ts","../src/ui/mic-permission-copy.ts","../src/ui/speech-lang.ts","../src/ui/logo.ts","../src/ui/callifly-widget.ts","../node_modules/pdfjs-dist/build/pdf.mjs","../node_modules/underscore/modules/_setup.js","../node_modules/underscore/modules/restArguments.js","../node_modules/underscore/modules/isObject.js","../node_modules/underscore/modules/isNull.js","../node_modules/underscore/modules/isUndefined.js","../node_modules/underscore/modules/isBoolean.js","../node_modules/underscore/modules/isElement.js","../node_modules/underscore/modules/_tagTester.js","../node_modules/underscore/modules/isString.js","../node_modules/underscore/modules/isNumber.js","../node_modules/underscore/modules/isDate.js","../node_modules/underscore/modules/isRegExp.js","../node_modules/underscore/modules/isError.js","../node_modules/underscore/modules/isSymbol.js","../node_modules/underscore/modules/isArrayBuffer.js","../node_modules/underscore/modules/isFunction.js","../node_modules/underscore/modules/_hasObjectTag.js","../node_modules/underscore/modules/_stringTagBug.js","../node_modules/underscore/modules/isDataView.js","../node_modules/underscore/modules/isArray.js","../node_modules/underscore/modules/_has.js","../node_modules/underscore/modules/isArguments.js","../node_modules/underscore/modules/isFinite.js","../node_modules/underscore/modules/isNaN.js","../node_modules/underscore/modules/constant.js","../node_modules/underscore/modules/_createSizePropertyCheck.js","../node_modules/underscore/modules/_shallowProperty.js","../node_modules/underscore/modules/_getByteLength.js","../node_modules/underscore/modules/_isBufferLike.js","../node_modules/underscore/modules/isTypedArray.js","../node_modules/underscore/modules/_getLength.js","../node_modules/underscore/modules/_collectNonEnumProps.js","../node_modules/underscore/modules/keys.js","../node_modules/underscore/modules/isEmpty.js","../node_modules/underscore/modules/isMatch.js","../node_modules/underscore/modules/underscore.js","../node_modules/underscore/modules/_toBufferView.js","../node_modules/underscore/modules/isEqual.js","../node_modules/underscore/modules/allKeys.js","../node_modules/underscore/modules/_methodFingerprint.js","../node_modules/underscore/modules/isMap.js","../node_modules/underscore/modules/isWeakMap.js","../node_modules/underscore/modules/isSet.js","../node_modules/underscore/modules/isWeakSet.js","../node_modules/underscore/modules/values.js","../node_modules/underscore/modules/pairs.js","../node_modules/underscore/modules/invert.js","../node_modules/underscore/modules/functions.js","../node_modules/underscore/modules/_createAssigner.js","../node_modules/underscore/modules/extend.js","../node_modules/underscore/modules/extendOwn.js","../node_modules/underscore/modules/defaults.js","../node_modules/underscore/modules/_baseCreate.js","../node_modules/underscore/modules/create.js","../node_modules/underscore/modules/clone.js","../node_modules/underscore/modules/tap.js","../node_modules/underscore/modules/toPath.js","../node_modules/underscore/modules/_toPath.js","../node_modules/underscore/modules/_deepGet.js","../node_modules/underscore/modules/get.js","../node_modules/underscore/modules/has.js","../node_modules/underscore/modules/identity.js","../node_modules/underscore/modules/matcher.js","../node_modules/underscore/modules/property.js","../node_modules/underscore/modules/_optimizeCb.js","../node_modules/underscore/modules/_baseIteratee.js","../node_modules/underscore/modules/iteratee.js","../node_modules/underscore/modules/_cb.js","../node_modules/underscore/modules/mapObject.js","../node_modules/underscore/modules/noop.js","../node_modules/underscore/modules/propertyOf.js","../node_modules/underscore/modules/times.js","../node_modules/underscore/modules/random.js","../node_modules/underscore/modules/now.js","../node_modules/underscore/modules/_createEscaper.js","../node_modules/underscore/modules/_escapeMap.js","../node_modules/underscore/modules/escape.js","../node_modules/underscore/modules/_unescapeMap.js","../node_modules/underscore/modules/unescape.js","../node_modules/underscore/modules/templateSettings.js","../node_modules/underscore/modules/template.js","../node_modules/underscore/modules/result.js","../node_modules/underscore/modules/uniqueId.js","../node_modules/underscore/modules/chain.js","../node_modules/underscore/modules/_executeBound.js","../node_modules/underscore/modules/partial.js","../node_modules/underscore/modules/bind.js","../node_modules/underscore/modules/_isArrayLike.js","../node_modules/underscore/modules/_flatten.js","../node_modules/underscore/modules/bindAll.js","../node_modules/underscore/modules/memoize.js","../node_modules/underscore/modules/delay.js","../node_modules/underscore/modules/defer.js","../node_modules/underscore/modules/throttle.js","../node_modules/underscore/modules/debounce.js","../node_modules/underscore/modules/wrap.js","../node_modules/underscore/modules/negate.js","../node_modules/underscore/modules/compose.js","../node_modules/underscore/modules/after.js","../node_modules/underscore/modules/before.js","../node_modules/underscore/modules/once.js","../node_modules/underscore/modules/findKey.js","../node_modules/underscore/modules/_createPredicateIndexFinder.js","../node_modules/underscore/modules/findIndex.js","../node_modules/underscore/modules/findLastIndex.js","../node_modules/underscore/modules/sortedIndex.js","../node_modules/underscore/modules/_createIndexFinder.js","../node_modules/underscore/modules/indexOf.js","../node_modules/underscore/modules/lastIndexOf.js","../node_modules/underscore/modules/find.js","../node_modules/underscore/modules/findWhere.js","../node_modules/underscore/modules/each.js","../node_modules/underscore/modules/map.js","../node_modules/underscore/modules/_createReduce.js","../node_modules/underscore/modules/reduce.js","../node_modules/underscore/modules/reduceRight.js","../node_modules/underscore/modules/filter.js","../node_modules/underscore/modules/reject.js","../node_modules/underscore/modules/every.js","../node_modules/underscore/modules/some.js","../node_modules/underscore/modules/contains.js","../node_modules/underscore/modules/invoke.js","../node_modules/underscore/modules/pluck.js","../node_modules/underscore/modules/where.js","../node_modules/underscore/modules/max.js","../node_modules/underscore/modules/min.js","../node_modules/underscore/modules/toArray.js","../node_modules/underscore/modules/sample.js","../node_modules/underscore/modules/shuffle.js","../node_modules/underscore/modules/sortBy.js","../node_modules/underscore/modules/_group.js","../node_modules/underscore/modules/groupBy.js","../node_modules/underscore/modules/indexBy.js","../node_modules/underscore/modules/countBy.js","../node_modules/underscore/modules/partition.js","../node_modules/underscore/modules/size.js","../node_modules/underscore/modules/_keyInObj.js","../node_modules/underscore/modules/pick.js","../node_modules/underscore/modules/omit.js","../node_modules/underscore/modules/initial.js","../node_modules/underscore/modules/first.js","../node_modules/underscore/modules/rest.js","../node_modules/underscore/modules/last.js","../node_modules/underscore/modules/compact.js","../node_modules/underscore/modules/flatten.js","../node_modules/underscore/modules/difference.js","../node_modules/underscore/modules/without.js","../node_modules/underscore/modules/uniq.js","../node_modules/underscore/modules/union.js","../node_modules/underscore/modules/intersection.js","../node_modules/underscore/modules/unzip.js","../node_modules/underscore/modules/zip.js","../node_modules/underscore/modules/object.js","../node_modules/underscore/modules/range.js","../node_modules/underscore/modules/chunk.js","../node_modules/underscore/modules/_chainResult.js","../node_modules/underscore/modules/mixin.js","../node_modules/underscore/modules/underscore-array-methods.js","../node_modules/underscore/modules/index-default.js","../node_modules/bluebird/js/release/es5.js","../node_modules/bluebird/js/release/util.js","../node_modules/bluebird/js/release/schedule.js","../node_modules/bluebird/js/release/queue.js","../node_modules/bluebird/js/release/async.js","../node_modules/bluebird/js/release/errors.js","../node_modules/bluebird/js/release/thenables.js","../node_modules/bluebird/js/release/promise_array.js","../node_modules/bluebird/js/release/context.js","../node_modules/bluebird/js/release/debuggability.js","../node_modules/bluebird/js/release/finally.js","../node_modules/bluebird/js/release/catch_filter.js","../node_modules/bluebird/js/release/nodeback.js","../node_modules/bluebird/js/release/method.js","../node_modules/bluebird/js/release/bind.js","../node_modules/bluebird/js/release/cancel.js","../node_modules/bluebird/js/release/direct_resolve.js","../node_modules/bluebird/js/release/synchronous_inspection.js","../node_modules/bluebird/js/release/join.js","../node_modules/bluebird/js/release/map.js","../node_modules/bluebird/js/release/call_get.js","../node_modules/bluebird/js/release/using.js","../node_modules/bluebird/js/release/timers.js","../node_modules/bluebird/js/release/generators.js","../node_modules/bluebird/js/release/nodeify.js","../node_modules/bluebird/js/release/promisify.js","../node_modules/bluebird/js/release/props.js","../node_modules/bluebird/js/release/race.js","../node_modules/bluebird/js/release/reduce.js","../node_modules/bluebird/js/release/settle.js","../node_modules/bluebird/js/release/some.js","../node_modules/bluebird/js/release/filter.js","../node_modules/bluebird/js/release/each.js","../node_modules/bluebird/js/release/any.js","../node_modules/bluebird/js/release/promise.js","../node_modules/mammoth/lib/promises.js","../node_modules/mammoth/lib/documents.js","../node_modules/mammoth/lib/results.js","../node_modules/base64-js/index.js","../node_modules/jszip/dist/jszip.min.js","../node_modules/mammoth/lib/zipfile.js","../node_modules/mammoth/lib/xml/nodes.js","../node_modules/@xmldom/xmldom/lib/conventions.js","../node_modules/@xmldom/xmldom/lib/dom.js","../node_modules/@xmldom/xmldom/lib/entities.js","../node_modules/@xmldom/xmldom/lib/sax.js","../node_modules/@xmldom/xmldom/lib/dom-parser.js","../node_modules/@xmldom/xmldom/lib/index.js","../node_modules/mammoth/lib/xml/xmldom.js","../node_modules/mammoth/lib/xml/reader.js","../node_modules/xmlbuilder/lib/Utility.js","../node_modules/xmlbuilder/lib/XMLAttribute.js","../node_modules/xmlbuilder/lib/XMLElement.js","../node_modules/xmlbuilder/lib/XMLCData.js","../node_modules/xmlbuilder/lib/XMLComment.js","../node_modules/xmlbuilder/lib/XMLDeclaration.js","../node_modules/xmlbuilder/lib/XMLDTDAttList.js","../node_modules/xmlbuilder/lib/XMLDTDEntity.js","../node_modules/xmlbuilder/lib/XMLDTDElement.js","../node_modules/xmlbuilder/lib/XMLDTDNotation.js","../node_modules/xmlbuilder/lib/XMLDocType.js","../node_modules/xmlbuilder/lib/XMLRaw.js","../node_modules/xmlbuilder/lib/XMLText.js","../node_modules/xmlbuilder/lib/XMLProcessingInstruction.js","../node_modules/xmlbuilder/lib/XMLDummy.js","../node_modules/xmlbuilder/lib/XMLNode.js","../node_modules/xmlbuilder/lib/XMLStringifier.js","../node_modules/xmlbuilder/lib/XMLWriterBase.js","../node_modules/xmlbuilder/lib/XMLStringWriter.js","../node_modules/xmlbuilder/lib/XMLDocument.js","../node_modules/xmlbuilder/lib/XMLDocumentCB.js","../node_modules/xmlbuilder/lib/XMLStreamWriter.js","../node_modules/xmlbuilder/lib/index.js","../node_modules/mammoth/lib/xml/writer.js","../node_modules/mammoth/lib/xml/index.js","../node_modules/mammoth/lib/docx/office-xml-reader.js","../node_modules/dingbat-to-unicode/dist/dingbats.js","../node_modules/dingbat-to-unicode/dist/index.js","../node_modules/mammoth/lib/transforms.js","../node_modules/mammoth/lib/docx/uris.js","../node_modules/mammoth/lib/docx/body-reader.js","../node_modules/mammoth/lib/docx/document-xml-reader.js","../node_modules/mammoth/lib/docx/relationships-reader.js","../node_modules/mammoth/lib/docx/content-types-reader.js","../node_modules/mammoth/lib/docx/numbering-xml.js","../node_modules/mammoth/lib/docx/styles-reader.js","../node_modules/mammoth/lib/docx/notes-reader.js","../node_modules/mammoth/lib/docx/comments-reader.js","../node_modules/mammoth/browser/docx/files.js","../node_modules/mammoth/lib/docx/docx-reader.js","../node_modules/mammoth/lib/docx/style-map.js","../node_modules/mammoth/lib/html/ast.js","../node_modules/mammoth/lib/html/simplify.js","../node_modules/mammoth/lib/html/index.js","../node_modules/mammoth/lib/styles/html-paths.js","../node_modules/mammoth/lib/images.js","../node_modules/mammoth/lib/writers/html-writer.js","../node_modules/mammoth/lib/writers/markdown-writer.js","../node_modules/mammoth/lib/writers/index.js","../node_modules/mammoth/lib/document-to-html.js","../node_modules/mammoth/lib/raw-text.js","../node_modules/lop/lib/TokenIterator.js","../node_modules/lop/lib/parser.js","../node_modules/option/index.js","../node_modules/lop/lib/parsing-results.js","../node_modules/lop/lib/errors.js","../node_modules/lop/lib/lazy-iterators.js","../node_modules/lop/lib/rules.js","../node_modules/lop/lib/StringSource.js","../node_modules/lop/lib/Token.js","../node_modules/lop/lib/bottom-up.js","../node_modules/lop/lib/regex-tokeniser.js","../node_modules/lop/index.js","../node_modules/mammoth/lib/styles/document-matchers.js","../node_modules/mammoth/lib/styles/parser/tokeniser.js","../node_modules/mammoth/lib/style-reader.js","../node_modules/mammoth/lib/options-reader.js","../node_modules/mammoth/browser/unzip.js","../node_modules/mammoth/lib/underline.js","../node_modules/mammoth/lib/index.js","../node_modules/turndown/lib/turndown.browser.es.js"],"sourcesContent":["import type { ChatMessage, ChatRole } from \"./types\";\n\n/**\n * Pure helpers for grouping streamed transcript chunks into stable\n * messages — no side effects, safe to call as often as needed.\n */\n\n// How long a gap between chunks (for the same role) is tolerated before\n// starting a new turn instead of continuing the current one.\nconst TURN_GAP_MS = 2500;\n\nconst genId = (): string =>\n  globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;\n\nexport const normalizeText = (s: string): string => s.replace(/\\s+/g, \" \").trim();\n\nexport const asRole = (r: string | undefined): ChatRole =>\n  r === \"assistant\" || r === \"user\" || r === \"system\" ? r : \"assistant\";\n\n/** Single source of truth for \"is a call currently active or connecting\". */\nexport const isCallActive = (status: string): boolean => status !== \"idle\";\n\nexport interface TranscriptGroupingSnapshot {\n  currentTurnIdByRole: ReadonlyMap<ChatRole, string>;\n  lastChunkAtByRole: ReadonlyMap<ChatRole, number>;\n  lastRole: ChatRole | null;\n}\n\nexport interface TranscriptTurnPlan {\n  turnId: string;\n  isNewTurn: boolean;\n}\n\n/**\n * Pure: decides whether a chunk continues the current turn for `role` or\n * starts a new one — new turn on a role change, on a gap exceeding\n * TURN_GAP_MS, or when there's no open turn at all.\n */\nexport function planTranscriptTurn(\n  role: ChatRole,\n  snapshot: TranscriptGroupingSnapshot,\n  nowMonotonic: number,\n  generateId: () => string = genId\n): TranscriptTurnPlan {\n  const existingId = snapshot.currentTurnIdByRole.get(role) ?? null;\n  const lastAt = snapshot.lastChunkAtByRole.get(role) ?? 0;\n  const roleChanged = !!snapshot.lastRole && snapshot.lastRole !== role;\n  const turnExpired = nowMonotonic - lastAt > TURN_GAP_MS;\n\n  if (!existingId || roleChanged || turnExpired) {\n    return { turnId: generateId(), isNewTurn: true };\n  }\n  return { turnId: existingId, isNewTurn: false };\n}\n\n/**\n * Pure: applies an already-decided plan to the message list — no refs, no\n * Maps, no mutation of anything outside its own return value.\n */\nexport function applyTranscriptTurn(\n  prev: ChatMessage[],\n  plan: TranscriptTurnPlan,\n  role: ChatRole,\n  content: string,\n  isFinal: boolean,\n  wallClock: number\n): ChatMessage[] {\n  const next = [...prev];\n\n  if (plan.isNewTurn) {\n    next.push({ id: plan.turnId, role, content, at: wallClock, final: isFinal || false });\n  } else {\n    const idx = next.findIndex((l) => l.id === plan.turnId);\n    if (idx >= 0 && (next[idx].content !== content || next[idx].final !== isFinal)) {\n      next[idx] = { ...next[idx], content, at: wallClock, final: isFinal || false };\n    }\n  }\n\n  return next.length > 100 ? next.slice(next.length - 100) : next;\n}\n\nexport interface TranscriptEventPayload {\n  transcript?: string;\n  text?: string;\n  role?: string;\n  status?: string;\n  transcriptType?: string;\n  is_final?: boolean;\n  isFinal?: boolean;\n  final?: boolean;\n  [key: string]: unknown;\n}\n\nexport const isTranscriptEvent = (m: TranscriptEventPayload): boolean =>\n  Boolean((m.transcript ?? m.text ?? \"\").trim());\n","import type { ChatRequest, ChatStreamChunk } from \"./types\";\n\n/**\n * Streams a chat reply over Server-Sent Events using the standard\n * fetch/ReadableStream APIs — no third-party SSE library required.\n */\n\nexport const DEFAULT_API_URL = \"https://api.vapi.ai\";\n\n/** Defense-in-depth against a malformed/adversarial stream that never emits\n *  an event separator — bounds worst-case memory growth. Matters more here\n *  than in a typical internal tool, since this runs on arbitrary\n *  third-party pages. */\nexport const MAX_BUFFER_CHARS = 1_000_000;\n\nexport function extractContent(chunk: ChatStreamChunk): string | null {\n  if (chunk.delta && chunk.path === \"chat.output[0].content\") {\n    return chunk.delta;\n  }\n  if (chunk.output !== undefined) {\n    return chunk.output;\n  }\n  return null;\n}\n\n/**\n * Minimal SSE reader over the standard fetch/ReadableStream APIs.\n */\nexport async function streamChat(\n  url: string,\n  publicKey: string,\n  body: ChatRequest,\n  onChunk: (chunk: ChatStreamChunk) => void,\n  signal: AbortSignal,\n  maxBufferChars: number = MAX_BUFFER_CHARS\n): Promise<void> {\n  const response = await fetch(url, {\n    method: \"POST\",\n    headers: {\n      Authorization: `Bearer ${publicKey}`,\n      \"Content-Type\": \"application/json\",\n    },\n    body: JSON.stringify(body),\n    signal,\n  });\n\n  if (!response.ok || !response.body) {\n    throw new Error(`chat request failed: ${response.status}`);\n  }\n\n  const reader = response.body.getReader();\n  const decoder = new TextDecoder();\n  let buffer = \"\";\n\n  for (; ;) {\n    const { done, value } = await reader.read();\n    if (done) break;\n    buffer += decoder.decode(value, { stream: true });\n    buffer = buffer.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n\n    if (buffer.length > maxBufferChars) {\n      throw new Error(\"chat stream exceeded maximum buffered size\");\n    }\n\n    let sepIndex = buffer.indexOf(\"\\n\\n\");\n    while (sepIndex !== -1) {\n      const rawEvent = buffer.slice(0, sepIndex);\n      buffer = buffer.slice(sepIndex + 2);\n\n      const dataLines = rawEvent\n        .split(\"\\n\")\n        .map((line) => line.trim())\n        .filter((line) => line.startsWith(\"data:\"))\n        .map((line) => line.slice(5).trim());\n\n      if (dataLines.length > 0) {\n        const data = dataLines.join(\"\\n\");\n        if (data === \"[DONE]\") return;\n        try {\n          onChunk(JSON.parse(data) as ChatStreamChunk);\n        } catch {\n          // Malformed line — ignore and keep streaming.\n        }\n      }\n\n      sepIndex = buffer.indexOf(\"\\n\\n\");\n    }\n  }\n}\n","/** Tags outgoing variableValues with the live channel — lets an assistant's\n *  system prompt reference {{channelType}} instead of inferring it. */\nexport function mergeChannelType(\n  variableValues: Record<string, string> | undefined,\n  channelType: \"chat\" | \"voice\"\n): Record<string, string> {\n  return { ...variableValues, channelType };\n}\n","import type { AttachmentSummary, ChatMessage } from \"./types\";\nimport { DEFAULT_API_URL, extractContent, streamChat } from \"./chat-stream\";\nimport { mergeChannelType } from \"./overrides\";\n\nconst genId = (): string =>\n  globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;\n\nexport interface ChatEngineOptions {\n  assistantId: string;\n  publicKey: string;\n  apiUrl?: string;\n  assistantOverrides?: { variableValues?: Record<string, string> };\n}\n\n/**\n * Owns one chat conversation: sends messages, streams the reply, and\n * assembles it into ChatMessage entries. Emits a \"change\" event on every\n * update so a UI layer can re-render — framework-agnostic, no assumptions\n * about how the caller manages state.\n */\nexport class ChatEngine extends EventTarget {\n  private _messages: ChatMessage[] = [];\n  private _isTyping = false;\n  private sessionId: string | undefined;\n  private abortController: AbortController | null = null;\n\n  constructor(private options: ChatEngineOptions) {\n    super();\n  }\n\n  get messages(): ChatMessage[] {\n    return this._messages;\n  }\n\n  get isTyping(): boolean {\n    return this._isTyping;\n  }\n\n  updateOptions(options: ChatEngineOptions): void {\n    this.options = options;\n  }\n\n  private emitChange(): void {\n    this.dispatchEvent(new Event(\"change\"));\n  }\n\n  private setMessages(next: ChatMessage[]): void {\n    this._messages = next;\n    this.emitChange();\n  }\n\n  private setTyping(next: boolean): void {\n    this._isTyping = next;\n    this.emitChange();\n  }\n\n  private async runStream(\n    input: string | Array<{ role: string; content: string }>,\n    sessionEnd: boolean\n  ): Promise<void> {\n    const { assistantId, publicKey, apiUrl = DEFAULT_API_URL, assistantOverrides } = this.options;\n    if (!assistantId || !publicKey) return;\n\n    this.abortController?.abort();\n    const controller = new AbortController();\n    this.abortController = controller;\n\n    const assistantMessageId = genId();\n    let assistantContent = \"\";\n    this.setMessages([\n      ...this._messages,\n      { id: assistantMessageId, role: \"assistant\", content: \"\", final: false, at: Date.now() },\n    ]);\n    this.setTyping(true);\n\n    try {\n      await streamChat(\n        `${apiUrl}/chat/web`,\n        publicKey,\n        {\n          input,\n          assistantId,\n          assistantOverrides: {\n            variableValues: mergeChannelType(assistantOverrides?.variableValues, \"chat\"),\n          },\n          sessionId: this.sessionId,\n          stream: true,\n          sessionEnd,\n        },\n        (chunk) => {\n          if (chunk.sessionId && chunk.sessionId !== this.sessionId) {\n            this.sessionId = chunk.sessionId;\n          }\n          const content = extractContent(chunk);\n          if (!content) return;\n          assistantContent += content;\n          this.setMessages(\n            this._messages.map((m) => (m.id === assistantMessageId ? { ...m, content: assistantContent } : m))\n          );\n        },\n        controller.signal\n      );\n    } catch (error) {\n      if ((error as Error).name !== \"AbortError\") {\n        console.error(\"chat stream error:\", error);\n      }\n    } finally {\n      // A newer call to runStream() (a fresh send, or endChat) replaces\n      // this.abortController with its own before this one's abort even\n      // has a chance to propagate — if that's already happened, this is a\n      // stale, superseded request and must not touch state a newer one\n      // now owns (e.g. resetting mid-stream, then sending again).\n      if (this.abortController === controller) {\n        this.setTyping(false);\n        this.setMessages(this._messages.map((m) => (m.id === assistantMessageId ? { ...m, final: true } : m)));\n      }\n    }\n  }\n\n  /**\n   * `wireExtra` (e.g. formatted attachment content) is appended to what's\n   * actually sent to the assistant but kept out of `content` — the\n   * displayed bubble shows only what the user typed plus `attachments`'\n   * chips, never the raw extracted file text.\n   */\n  async sendMessage(text: string, options?: { wireExtra?: string; attachments?: AttachmentSummary[] }): Promise<void> {\n    const trimmed = text.trim();\n    const hasAttachments = Boolean(options?.attachments?.length);\n    if (!trimmed && !hasAttachments) return;\n\n    const wireText = options?.wireExtra ? `${trimmed}\\n\\n${options.wireExtra}`.trim() : trimmed;\n\n    this.setMessages([\n      ...this._messages,\n      { id: genId(), role: \"user\", content: trimmed, final: true, at: Date.now(), attachments: options?.attachments },\n    ]);\n    await this.runStream(wireText, false);\n  }\n\n  async endChat(closingText = \"Ending chat...\"): Promise<void> {\n    await this.runStream(closingText, true);\n  }\n\n  clearMessages(): void {\n    this.abortController?.abort();\n    this.abortController = null;\n    this._messages = [];\n    this._isTyping = false;\n    this.sessionId = undefined;\n    this.emitChange();\n  }\n\n  dispose(): void {\n    this.abortController?.abort();\n    this.abortController = null;\n  }\n}\n","function e(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function t(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e){return n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n(e)}function r(e){var t=function(e,t){if(\"object\"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||\"default\");if(\"object\"!=n(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==n(t)?t:t+\"\"}function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,r(i.key),i)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function s(e,t){if(t&&(\"object\"==n(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function l(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&c(e,t)}function u(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t,n,r,i,o,s){try{var a=e[o](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function s(e){d(o,r,i,s,a,\"next\",e)}function a(e){d(o,r,i,s,a,\"throw\",e)}s(void 0)}))}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,i,o,s,a=[],c=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function v(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var g,m={exports:{}};var y=function(){if(g)return m.exports;g=1;var e,t=\"object\"==typeof Reflect?Reflect:null,n=t&&\"function\"==typeof t.apply?t.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};e=t&&\"function\"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}m.exports=i,m.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){\"function\"==typeof e.removeListener&&e.removeListener(\"error\",i),n([].slice.call(arguments))}f(e,t,o,{once:!0}),\"error\"!==t&&function(e,t,n){\"function\"==typeof e.on&&f(e,\"error\",t,n)}(e,i,{once:!0})}))},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var o=10;function s(e){if(\"function\"!=typeof e)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}function a(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var i,o,c,l;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit(\"newListener\",t,n.listener?n.listener:n),o=e._events),c=o[t]),void 0===c)c=o[t]=n,++e._eventsCount;else if(\"function\"==typeof c?c=o[t]=r?[n,c]:[c,n]:r?c.unshift(n):c.push(n),(i=a(e))>0&&c.length>i&&!c.warned){c.warned=!0;var u=new Error(\"Possible EventEmitter memory leak detected. \"+c.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");u.name=\"MaxListenersExceededWarning\",u.emitter=e,u.type=t,u.count=c.length,l=u,console&&console.warn&&console.warn(l)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function d(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:\"function\"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):h(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if(\"function\"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function f(e,t,n,r){if(\"function\"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if(\"function\"!=typeof e.addEventListener)throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(o){r.once&&e.removeEventListener(t,i),n(o)}))}}return Object.defineProperty(i,\"defaultMaxListeners\",{enumerable:!0,get:function(){return o},set:function(e){if(\"number\"!=typeof e||e<0||r(e))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+e+\".\");o=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||r(e))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return a(this)},i.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i=\"error\"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var a=new Error(\"Unhandled error.\"+(s?\" (\"+s.message+\")\":\"\"));throw a.context=s,a}var c=o[e];if(void 0===c)return!1;if(\"function\"==typeof c)n(c,this,t);else{var l=c.length,u=h(c,l);for(r=0;r<l;++r)n(u[r],this,t)}return!0},i.prototype.addListener=function(e,t){return c(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return c(this,e,t,!0)},i.prototype.once=function(e,t){return s(t),this.on(e,u(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,u(this,e,t)),this},i.prototype.removeListener=function(e,t){var n,r,i,o,a;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(\"removeListener\",e,n.listener||t));else if(\"function\"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit(\"removeListener\",e,a||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)\"removeListener\"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(\"function\"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},i.prototype.listeners=function(e){return d(this,e,!0)},i.prototype.rawListeners=function(e){return d(this,e,!1)},i.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},i.prototype.listenerCount=p,i.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]},m.exports}(),b=v(y),_=Object.prototype.hasOwnProperty;function w(e,t,n){for(n of e.keys())if(S(n,t))return n}function S(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&S(e[r],t[r]););return-1===r}if(n===Set){if(e.size!==t.size)return!1;for(r of e){if((i=r)&&\"object\"==typeof i&&!(i=w(t,i)))return!1;if(!t.has(i))return!1}return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e){if((i=r[0])&&\"object\"==typeof i&&!(i=w(t,i)))return!1;if(!S(r[1],t.get(i)))return!1}return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return-1===r}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return-1===r}if(!n||\"object\"==typeof e){for(n in r=0,e){if(_.call(e,n)&&++r&&!_.call(t,n))return!1;if(!(n in t)||!S(e[n],t[n]))return!1}return Object.keys(t).length===r}}return e!=e&&t!=t}const k={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Electron:\"electron\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"},M={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",electron:\"Electron\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"},C={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"},E={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"},T={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"};class O{static getFirstMatch(e,t){const n=t.match(e);return n&&n.length>0&&n[1]||\"\"}static getSecondMatch(e,t){const n=t.match(e);return n&&n.length>1&&n[2]||\"\"}static matchAndReturnConst(e,t,n){if(e.test(t))return n}static getWindowsVersionName(e){switch(e){case\"NT\":return\"NT\";case\"XP\":case\"NT 5.1\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}}static getMacOSVersionName(e){const t=e.split(\".\").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}}static getAndroidVersionName(e){const t=e.split(\".\").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0}static getVersionPrecision(e){return e.split(\".\").length}static compareVersions(e,t,n=!1){const r=O.getVersionPrecision(e),i=O.getVersionPrecision(t);let o=Math.max(r,i),s=0;const a=O.map([e,t],(e=>{const t=o-O.getVersionPrecision(e),n=e+new Array(t+1).join(\".0\");return O.map(n.split(\".\"),(e=>new Array(20-e.length).join(\"0\")+e)).reverse()}));for(n&&(s=o-Math.min(r,i)),o-=1;o>=s;){if(a[0][o]>a[1][o])return 1;if(a[0][o]===a[1][o]){if(o===s)return 0;o-=1}else if(a[0][o]<a[1][o])return-1}}static map(e,t){const n=[];let r;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n}static find(e,t){let n,r;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(n=0,r=e.length;n<r;n+=1){const r=e[n];if(t(r,n))return r}}static assign(e,...t){const n=e;let r,i;if(Object.assign)return Object.assign(e,...t);for(r=0,i=t.length;r<i;r+=1){const e=t[r];if(\"object\"==typeof e&&null!==e){Object.keys(e).forEach((t=>{n[t]=e[t]}))}}return e}static getBrowserAlias(e){return k[e]}static getBrowserTypeByAlias(e){return M[e]||\"\"}}const P=/version\\/(\\d+(\\.?_?\\d+)+)/i,A=[{test:[/googlebot/i],describe(e){const t={name:\"Googlebot\"},n=O.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/opera/i],describe(e){const t={name:\"Opera\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opr\\/|opios/i],describe(e){const t={name:\"Opera\"},n=O.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/SamsungBrowser/i],describe(e){const t={name:\"Samsung Internet for Android\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Whale/i],describe(e){const t={name:\"NAVER Whale Browser\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MZBrowser/i],describe(e){const t={name:\"MZ Browser\"},n=O.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/focus/i],describe(e){const t={name:\"Focus\"},n=O.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/swing/i],describe(e){const t={name:\"Swing\"},n=O.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/coast/i],describe(e){const t={name:\"Opera Coast\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe(e){const t={name:\"Opera Touch\"},n=O.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/yabrowser/i],describe(e){const t={name:\"Yandex Browser\"},n=O.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/ucbrowser/i],describe(e){const t={name:\"UC Browser\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Maxthon|mxios/i],describe(e){const t={name:\"Maxthon\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/epiphany/i],describe(e){const t={name:\"Epiphany\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/puffin/i],describe(e){const t={name:\"Puffin\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sleipnir/i],describe(e){const t={name:\"Sleipnir\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/k-meleon/i],describe(e){const t={name:\"K-Meleon\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/micromessenger/i],describe(e){const t={name:\"WeChat\"},n=O.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/qqbrowser/i],describe(e){const t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},n=O.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/msie|trident/i],describe(e){const t={name:\"Internet Explorer\"},n=O.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/\\sedg\\//i],describe(e){const t={name:\"Microsoft Edge\"},n=O.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/edg([ea]|ios)/i],describe(e){const t={name:\"Microsoft Edge\"},n=O.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/vivaldi/i],describe(e){const t={name:\"Vivaldi\"},n=O.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/seamonkey/i],describe(e){const t={name:\"SeaMonkey\"},n=O.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sailfish/i],describe(e){const t={name:\"Sailfish\"},n=O.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return n&&(t.version=n),t}},{test:[/silk/i],describe(e){const t={name:\"Amazon Silk\"},n=O.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/phantom/i],describe(e){const t={name:\"PhantomJS\"},n=O.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/slimerjs/i],describe(e){const t={name:\"SlimerJS\"},n=O.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe(e){const t={name:\"BlackBerry\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(web|hpw)[o0]s/i],describe(e){const t={name:\"WebOS Browser\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/bada/i],describe(e){const t={name:\"Bada\"},n=O.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/tizen/i],describe(e){const t={name:\"Tizen\"},n=O.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/qupzilla/i],describe(e){const t={name:\"QupZilla\"},n=O.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/firefox|iceweasel|fxios/i],describe(e){const t={name:\"Firefox\"},n=O.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/electron/i],describe(e){const t={name:\"Electron\"},n=O.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MiuiBrowser/i],describe(e){const t={name:\"Miui\"},n=O.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/chromium/i],describe(e){const t={name:\"Chromium\"},n=O.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/chrome|crios|crmo/i],describe(e){const t={name:\"Chrome\"},n=O.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/GSA/i],describe(e){const t={name:\"Google Search\"},n=O.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t={name:\"Android Browser\"},n=O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/playstation 4/i],describe(e){const t={name:\"PlayStation 4\"},n=O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/safari|applewebkit/i],describe(e){const t={name:\"Safari\"},n=O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/.*/i],describe(e){const t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:O.getFirstMatch(t,e),version:O.getSecondMatch(t,e)}}}];var j=[{test:[/Roku\\/DVP/],describe(e){const t=O.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:E.Roku,version:t}}},{test:[/windows phone/i],describe(e){const t=O.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:E.WindowsPhone,version:t}}},{test:[/windows /i],describe(e){const t=O.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),n=O.getWindowsVersionName(t);return{name:E.Windows,version:t,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe(e){const t={name:E.iOS},n=O.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return n&&(t.version=n),t}},{test:[/macintosh/i],describe(e){const t=O.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),n=O.getMacOSVersionName(t),r={name:E.MacOS,version:t};return n&&(r.versionName=n),r}},{test:[/(ipod|iphone|ipad)/i],describe(e){const t=O.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:E.iOS,version:t}}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t=O.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),n=O.getAndroidVersionName(t),r={name:E.Android,version:t};return n&&(r.versionName=n),r}},{test:[/(web|hpw)[o0]s/i],describe(e){const t=O.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),n={name:E.WebOS};return t&&t.length&&(n.version=t),n}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe(e){const t=O.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||O.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||O.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:E.BlackBerry,version:t}}},{test:[/bada/i],describe(e){const t=O.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:E.Bada,version:t}}},{test:[/tizen/i],describe(e){const t=O.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:E.Tizen,version:t}}},{test:[/linux/i],describe:()=>({name:E.Linux})},{test:[/CrOS/],describe:()=>({name:E.ChromeOS})},{test:[/PlayStation 4/],describe(e){const t=O.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:E.PlayStation4,version:t}}}],I=[{test:[/googlebot/i],describe:()=>({type:\"bot\",vendor:\"Google\"})},{test:[/huawei/i],describe(e){const t=O.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",n={type:C.mobile,vendor:\"Huawei\"};return t&&(n.model=t),n}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:()=>({type:C.tablet,vendor:\"Nexus\"})},{test:[/ipad/i],describe:()=>({type:C.tablet,vendor:\"Apple\",model:\"iPad\"})},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:()=>({type:C.tablet,vendor:\"Apple\",model:\"iPad\"})},{test:[/kftt build/i],describe:()=>({type:C.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"})},{test:[/silk/i],describe:()=>({type:C.tablet,vendor:\"Amazon\"})},{test:[/tablet(?! pc)/i],describe:()=>({type:C.tablet})},{test(e){const t=e.test(/ipod|iphone/i),n=e.test(/like (ipod|iphone)/i);return t&&!n},describe(e){const t=O.getFirstMatch(/(ipod|iphone)/i,e);return{type:C.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:C.mobile,vendor:\"Nexus\"})},{test:[/[^-]mobi/i],describe:()=>({type:C.mobile})},{test:e=>\"blackberry\"===e.getBrowserName(!0),describe:()=>({type:C.mobile,vendor:\"BlackBerry\"})},{test:e=>\"bada\"===e.getBrowserName(!0),describe:()=>({type:C.mobile})},{test:e=>\"windows phone\"===e.getBrowserName(),describe:()=>({type:C.mobile,vendor:\"Microsoft\"})},{test(e){const t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:()=>({type:C.tablet})},{test:e=>\"android\"===e.getOSName(!0),describe:()=>({type:C.mobile})},{test:e=>\"macos\"===e.getOSName(!0),describe:()=>({type:C.desktop,vendor:\"Apple\"})},{test:e=>\"windows\"===e.getOSName(!0),describe:()=>({type:C.desktop})},{test:e=>\"linux\"===e.getOSName(!0),describe:()=>({type:C.desktop})},{test:e=>\"playstation 4\"===e.getOSName(!0),describe:()=>({type:C.tv})},{test:e=>\"roku\"===e.getOSName(!0),describe:()=>({type:C.tv})}],x=[{test:e=>\"microsoft edge\"===e.getBrowserName(!0),describe(e){if(/\\sedg\\//i.test(e))return{name:T.Blink};const t=O.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:T.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const t={name:T.Trident},n=O.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:e=>e.test(/presto/i),describe(e){const t={name:T.Presto},n=O.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=e.test(/gecko/i),n=e.test(/like gecko/i);return t&&!n},describe(e){const t={name:T.Gecko},n=O.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:()=>({name:T.Blink})},{test:[/(apple)?webkit/i],describe(e){const t={name:T.WebKit},n=O.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}}];class L{constructor(e,t=!1){if(null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=O.find(A,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=O.find(j,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||\"\":t||\"\"}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||\"\":t||\"\"}parsePlatform(){this.parsedResult.platform={};const e=O.find(I,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"}parseEngine(){this.parsedResult.engine={};const e=O.find(x,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return O.assign({},this.parsedResult)}satisfies(e){const t={};let n=0;const r={};let i=0;if(Object.keys(e).forEach((o=>{const s=e[o];\"string\"==typeof s?(r[o]=s,i+=1):\"object\"==typeof s&&(t[o]=s,n+=1)})),n>0){const e=Object.keys(t),n=O.find(e,(e=>this.isOS(e)));if(n){const e=this.satisfies(t[n]);if(void 0!==e)return e}const r=O.find(e,(e=>this.isPlatform(e)));if(r){const e=this.satisfies(t[r]);if(void 0!==e)return e}}if(i>0){const e=Object.keys(r),t=O.find(e,(e=>this.isBrowser(e,!0)));if(void 0!==t)return this.compareVersion(r[t])}}isBrowser(e,t=!1){const n=this.getBrowserName().toLowerCase();let r=e.toLowerCase();const i=O.getBrowserTypeByAlias(r);return t&&i&&(r=i.toLowerCase()),r===n}compareVersion(e){let t=[0],n=e,r=!1;const i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(n=e.substr(1),\"=\"===e[1]?(r=!0,n=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?n=e.substr(1):\"~\"===e[0]&&(r=!0,n=e.substr(1)),t.indexOf(O.compareVersions(i,n,r))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some((e=>this.is(e)))}}\n/*!\n * Bowser - a browser detector\n * https://github.com/lancedikson/bowser\n * MIT License | (c) Dustin Diaz 2012-2015\n * MIT License | (c) Denis Demchenko 2015-2019\n */class D{static getParser(e,t=!1){if(\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new L(e,t)}static parse(e){return new L(e).getResult()}static get BROWSER_MAP(){return M}static get ENGINE_MAP(){return T}static get OS_MAP(){return E}static get PLATFORMS_MAP(){return C}}function N(){return Date.now()+Math.random().toString()}function R(){throw new Error(\"Method must be implemented in subclass\")}function F(e,t){return null!=t&&t.proxyUrl?t.proxyUrl+(\"/\"===t.proxyUrl.slice(-1)?\"\":\"/\")+e.substring(8):e}function B(e){return null!=e&&e.callObjectBundleUrlOverride?e.callObjectBundleUrlOverride:F(\"https://c.daily.co/call-machine/versioned/\".concat(\"0.87.0\",\"/static/call-machine-object-bundle.js\"),e)}function U(e){try{new URL(e)}catch(e){return!1}return!0}const V=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,J=\"8.55.0\",$=globalThis;function q(e,t,n){const r=n||$,i=r.__SENTRY__=r.__SENTRY__||{},o=i[J]=i[J]||{};return o[e]||(o[e]=t())}const z=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,W=[\"debug\",\"info\",\"warn\",\"error\",\"log\",\"assert\",\"trace\"],H={};function G(e){if(!(\"console\"in $))return e();const t=$.console,n={},r=Object.keys(H);r.forEach((e=>{const r=H[e];n[e]=t[e],t[e]=r}));try{return e()}finally{r.forEach((e=>{t[e]=n[e]}))}}const Q=q(\"logger\",(function(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1},isEnabled:()=>e};return z?W.forEach((n=>{t[n]=(...t)=>{e&&G((()=>{$.console[n](`Sentry Logger [${n}]:`,...t)}))}})):W.forEach((e=>{t[e]=()=>{}})),t})),K=\"?\",Y=/\\(error: (.*)\\)/,X=/captureMessage|captureException/;function Z(e){return e[e.length-1]||{}}const ee=\"<anonymous>\";function te(e){try{return e&&\"function\"==typeof e&&e.name||ee}catch(e){return ee}}function ne(e){const t=e.exception;if(t){const e=[];try{return t.values.forEach((t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)})),e}catch(e){return}}}const re={},ie={};function oe(e,t){re[e]=re[e]||[],re[e].push(t)}function se(e,t){if(!ie[e]){ie[e]=!0;try{t()}catch(t){z&&Q.error(`Error while instrumenting ${e}`,t)}}}function ae(e,t){const n=e&&re[e];if(n)for(const r of n)try{r(t)}catch(t){z&&Q.error(`Error while triggering instrumentation handler.\\nType: ${e}\\nName: ${te(r)}\\nError:`,t)}}let ce=null;function le(){ce=$.onerror,$.onerror=function(e,t,n,r,i){return ae(\"error\",{column:r,error:i,line:n,msg:e,url:t}),!!ce&&ce.apply(this,arguments)},$.onerror.__SENTRY_INSTRUMENTED__=!0}let ue=null;function de(){ue=$.onunhandledrejection,$.onunhandledrejection=function(e){return ae(\"unhandledrejection\",e),!ue||ue.apply(this,arguments)},$.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function pe(){return he($),$}function he(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||J,t[J]=t[J]||{}}const fe=Object.prototype.toString;function ve(e){switch(fe.call(e)){case\"[object Error]\":case\"[object Exception]\":case\"[object DOMException]\":case\"[object WebAssembly.Exception]\":return!0;default:return Ce(e,Error)}}function ge(e,t){return fe.call(e)===`[object ${t}]`}function me(e){return ge(e,\"ErrorEvent\")}function ye(e){return ge(e,\"DOMError\")}function be(e){return ge(e,\"String\")}function _e(e){return\"object\"==typeof e&&null!==e&&\"__sentry_template_string__\"in e&&\"__sentry_template_values__\"in e}function we(e){return null===e||_e(e)||\"object\"!=typeof e&&\"function\"!=typeof e}function Se(e){return ge(e,\"Object\")}function ke(e){return\"undefined\"!=typeof Event&&Ce(e,Event)}function Me(e){return Boolean(e&&e.then&&\"function\"==typeof e.then)}function Ce(e,t){try{return e instanceof t}catch(e){return!1}}function Ee(e){return!(\"object\"!=typeof e||null===e||!e.__isVue&&!e._isVue)}const Te=$;function Oe(e,t={}){if(!e)return\"<unknown>\";try{let n=e;const r=5,i=[];let o=0,s=0;const a=\" > \",c=a.length;let l;const u=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||80;for(;n&&o++<r&&(l=Pe(n,u),!(\"html\"===l||o>1&&s+i.length*c+l.length>=d));)i.push(l),s+=l.length,n=n.parentNode;return i.reverse().join(a)}catch(e){return\"<unknown>\"}}function Pe(e,t){const n=e,r=[];if(!n||!n.tagName)return\"\";if(Te.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());const i=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(i&&i.length)i.forEach((e=>{r.push(`[${e[0]}=\"${e[1]}\"]`)}));else{n.id&&r.push(`#${n.id}`);const e=n.className;if(e&&be(e)){const t=e.split(/\\s+/);for(const e of t)r.push(`.${e}`)}}const o=[\"aria-label\",\"type\",\"name\",\"title\",\"alt\"];for(const e of o){const t=n.getAttribute(e);t&&r.push(`[${e}=\"${t}\"]`)}return r.join(\"\")}function Ae(e,t=0){return\"string\"!=typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function je(e,t){if(!Array.isArray(e))return\"\";const n=[];for(let t=0;t<e.length;t++){const r=e[t];try{Ee(r)?n.push(\"[VueViewModel]\"):n.push(String(r))}catch(e){n.push(\"[value cannot be serialized]\")}}return n.join(t)}function Ie(e,t,n=!1){return!!be(e)&&(ge(t,\"RegExp\")?t.test(e):!!be(t)&&(n?e===t:e.includes(t)))}function xe(e,t=[],n=!1){return t.some((t=>Ie(e,t,n)))}function Le(e,t,n){if(!(t in e))return;const r=e[t],i=n(r);\"function\"==typeof i&&Ne(i,r);try{e[t]=i}catch(n){z&&Q.log(`Failed to replace method \"${t}\" in object`,e)}}function De(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch(n){z&&Q.log(`Failed to add non-enumerable property \"${t}\" to object`,e)}}function Ne(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,De(e,\"__sentry_original__\",t)}catch(e){}}function Re(e){return e.__sentry_original__}function Fe(e){if(ve(e))return{message:e.message,name:e.name,stack:e.stack,...Ue(e)};if(ke(e)){const t={type:e.type,target:Be(e.target),currentTarget:Be(e.currentTarget),...Ue(e)};return\"undefined\"!=typeof CustomEvent&&Ce(e,CustomEvent)&&(t.detail=e.detail),t}return e}function Be(e){try{return t=e,\"undefined\"!=typeof Element&&Ce(t,Element)?Oe(e):Object.prototype.toString.call(e)}catch(e){return\"<unknown>\"}var t}function Ue(e){if(\"object\"==typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function Ve(e){return Je(e,new Map)}function Je(e,t){if(function(e){if(!Se(e))return!1;try{const t=Object.getPrototypeOf(e).constructor.name;return!t||\"Object\"===t}catch(e){return!0}}(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const n of Object.getOwnPropertyNames(e))void 0!==e[n]&&(r[n]=Je(e[n],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(Je(e,t))})),r}return e}function $e(){return Date.now()/1e3}const qe=function(){const{performance:e}=$;if(!e||!e.now)return $e;const t=Date.now()-e.now(),n=null==e.timeOrigin?t:e.timeOrigin;return()=>(n+e.now())/1e3}();function ze(){const e=$,t=e.crypto||e.msCrypto;let n=()=>16*Math.random();try{if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,\"\");t&&t.getRandomValues&&(n=()=>{const e=new Uint8Array(1);return t.getRandomValues(e),e[0]})}catch(e){}return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,(e=>(e^(15&n())>>e/4).toString(16)))}function We(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function He(e){const{message:t,event_id:n}=e;if(t)return t;const r=We(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||\"<unknown>\":n||\"<unknown>\"}function Ge(e,t,n){const r=e.exception=e.exception||{},i=r.values=r.values||[],o=i[0]=i[0]||{};o.value||(o.value=t||\"\"),o.type||(o.type=n||\"Error\")}function Qe(e,t){const n=We(e);if(!n)return;const r=n.mechanism;if(n.mechanism={type:\"generic\",handled:!0,...r,...t},t&&\"data\"in t){const e={...r&&r.data,...t.data};n.mechanism.data=e}}function Ke(e){if(function(e){try{return e.__sentry_captured__}catch(e){}}(e))return!0;try{De(e,\"__sentry_captured__\",!0)}catch(e){}return!1}var Ye;function Xe(e){return new et((t=>{t(e)}))}function Ze(e){return new et(((t,n)=>{n(e)}))}(()=>{const{performance:e}=$;if(!e||!e.now)return;const t=36e5,n=e.now(),r=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+n-r):t,o=i<t,s=e.timing&&e.timing.navigationStart,a=\"number\"==typeof s?Math.abs(s+n-r):t;(o||a<t)&&(i<=a&&e.timeOrigin)})(),function(e){e[e.PENDING=0]=\"PENDING\";e[e.RESOLVED=1]=\"RESOLVED\";e[e.REJECTED=2]=\"REJECTED\"}(Ye||(Ye={}));class et{constructor(e){et.prototype.__init.call(this),et.prototype.__init2.call(this),et.prototype.__init3.call(this),et.prototype.__init4.call(this),this._state=Ye.PENDING,this._handlers=[];try{e(this._resolve,this._reject)}catch(e){this._reject(e)}}then(e,t){return new et(((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(e){r(e)}else n(t)},e=>{if(t)try{n(t(e))}catch(e){r(e)}else r(e)}]),this._executeHandlers()}))}catch(e){return this.then((e=>e),e)}finally(e){return new et(((t,n)=>{let r,i;return this.then((t=>{i=!1,r=t,e&&e()}),(t=>{i=!0,r=t,e&&e()})).then((()=>{i?n(r):t(r)}))}))}__init(){this._resolve=e=>{this._setResult(Ye.RESOLVED,e)}}__init2(){this._reject=e=>{this._setResult(Ye.REJECTED,e)}}__init3(){this._setResult=(e,t)=>{this._state===Ye.PENDING&&(Me(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init4(){this._executeHandlers=()=>{if(this._state===Ye.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach((e=>{e[0]||(this._state===Ye.RESOLVED&&e[1](this._value),this._state===Ye.REJECTED&&e[2](this._value),e[0]=!0)}))}}}function tt(e){const t=qe(),n={sid:ze(),init:!0,timestamp:t,started:t,duration:0,status:\"ok\",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return Ve({sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:\"number\"==typeof e.did||\"string\"==typeof e.did?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}(n)};return e&&nt(n,e),n}function nt(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||qe(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:ze()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),\"number\"==typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(\"number\"==typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),\"number\"==typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function rt(){return ze()}function it(){return ze().substring(16)}function ot(e,t,n=2){if(!t||\"object\"!=typeof t||n<=0)return t;if(e&&t&&0===Object.keys(t).length)return e;const r={...e};for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=ot(r[e],t[e],n-1));return r}const st=\"_sentrySpan\";function at(e,t){t?De(e,st,t):delete e[st]}function ct(e){return e[st]}class lt{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:rt(),spanId:it()}}clone(){const e=new lt;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._requestSession=this._requestSession,e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,at(e,ct(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&nt(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=\"function\"==typeof e?e(this):e,[n,r]=t instanceof ut?[t.getScopeData(),t.getRequestSession()]:Se(t)?[e,e.requestSession]:[],{tags:i,extra:o,user:s,contexts:a,level:c,fingerprint:l=[],propagationContext:u}=n||{};return this._tags={...this._tags,...i},this._extra={...this._extra,...o},this._contexts={...this._contexts,...a},s&&Object.keys(s).length&&(this._user=s),c&&(this._level=c),l.length&&(this._fingerprint=l),u&&(this._propagationContext=u),r&&(this._requestSession=r),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._session=void 0,at(this,void 0),this._attachments=[],this.setPropagationContext({traceId:rt()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){const n=\"number\"==typeof t?t:100;if(n<=0)return this;const r={timestamp:$e(),...e};return this._breadcrumbs.push(r),this._breadcrumbs.length>n&&(this._breadcrumbs=this._breadcrumbs.slice(-n),this._client&&this._client.recordDroppedEvent(\"buffer_overflow\",\"log_item\")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:ct(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=ot(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext={spanId:it(),...e},this}getPropagationContext(){return this._propagationContext}captureException(e,t){const n=t&&t.event_id?t.event_id:ze();if(!this._client)return Q.warn(\"No client configured on scope - will not capture exception!\"),n;const r=new Error(\"Sentry syntheticException\");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){const r=n&&n.event_id?n.event_id:ze();if(!this._client)return Q.warn(\"No client configured on scope - will not capture message!\"),r;const i=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r},this),r}captureEvent(e,t){const n=t&&t.event_id?t.event_id:ze();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(Q.warn(\"No client configured on scope - will not capture event!\"),n)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((e=>{e(this)})),this._notifyingListeners=!1)}}const ut=lt;class dt{constructor(e,t){let n,r;n=e||new ut,r=t||new ut,this._stack=[{scope:n}],this._isolationScope=r}withScope(e){const t=this._pushScope();let n;try{n=e(t)}catch(e){throw this._popScope(),e}return Me(n)?n.then((e=>(this._popScope(),e)),(e=>{throw this._popScope(),e})):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return!(this._stack.length<=1)&&!!this._stack.pop()}}function pt(){const e=he(pe());return e.stack=e.stack||new dt(q(\"defaultCurrentScope\",(()=>new ut)),q(\"defaultIsolationScope\",(()=>new ut)))}function ht(e){return pt().withScope(e)}function ft(e,t){const n=pt();return n.withScope((()=>(n.getStackTop().scope=e,t(e))))}function vt(e){return pt().withScope((()=>e(pt().getIsolationScope())))}function gt(e){const t=he(e);return t.acs?t.acs:{withIsolationScope:vt,withScope:ht,withSetScope:ft,withSetIsolationScope:(e,t)=>vt(t),getCurrentScope:()=>pt().getScope(),getIsolationScope:()=>pt().getIsolationScope()}}function mt(){return gt(pe()).getCurrentScope()}function yt(){return gt(pe()).getIsolationScope()}function bt(){return mt().getClient()}function _t(e){const t=e.getPropagationContext(),{traceId:n,spanId:r,parentSpanId:i}=t;return Ve({trace_id:n,span_id:r,parent_span_id:i})}function wt(e){const t=e._sentryMetrics;if(!t)return;const n={};for(const[,[e,r]]of t){(n[e]||(n[e]=[])).push(Ve(r))}return n}const St=/^sentry-/;function kt(e){const t=function(e){if(!e||!be(e)&&!Array.isArray(e))return;if(Array.isArray(e))return e.reduce(((e,t)=>{const n=Mt(t);return Object.entries(n).forEach((([t,n])=>{e[t]=n})),e}),{});return Mt(e)}(e);if(!t)return;const n=Object.entries(t).reduce(((e,[t,n])=>{if(t.match(St)){e[t.slice(7)]=n}return e}),{});return Object.keys(n).length>0?n:void 0}function Mt(e){return e.split(\",\").map((e=>e.split(\"=\").map((e=>decodeURIComponent(e.trim()))))).reduce(((e,[t,n])=>(t&&n&&(e[t]=n),e)),{})}let Ct=!1;function Et(e){const{spanId:t,traceId:n,isRemote:r}=e.spanContext();return Ve({parent_span_id:r?t:Pt(e).parent_span_id,span_id:r?it():t,trace_id:n})}function Tt(e){return\"number\"==typeof e?Ot(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?Ot(e.getTime()):qe()}function Ot(e){return e>9999999999?e/1e3:e}function Pt(e){if(function(e){return\"function\"==typeof e.getSpanJSON}(e))return e.getSpanJSON();try{const{spanId:t,traceId:n}=e.spanContext();if(function(e){const t=e;return!!(t.attributes&&t.startTime&&t.name&&t.endTime&&t.status)}(e)){const{attributes:r,startTime:i,name:o,endTime:s,parentSpanId:a,status:c}=e;return Ve({span_id:t,trace_id:n,data:r,description:o,parent_span_id:a,start_timestamp:Tt(i),timestamp:Tt(s)||void 0,status:At(c),op:r[\"sentry.op\"],origin:r[\"sentry.origin\"],_metrics_summary:wt(e)})}return{span_id:t,trace_id:n}}catch(e){return{}}}function At(e){if(e&&0!==e.code)return 1===e.code?\"ok\":e.message||\"unknown_error\"}function jt(e){return e._sentryRootSpan||e}function It(){Ct||(G((()=>{console.warn(\"[Sentry] Deprecation warning: Returning null from `beforeSendSpan` will be disallowed from SDK version 9.0.0 onwards. The callback will only support mutating spans. To drop certain spans, configure the respective integrations directly.\")})),Ct=!0)}const xt=\"production\";function Lt(e,t){const n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i=Ve({environment:n.environment||xt,release:n.release,public_key:r,trace_id:e});return t.emit(\"createDsc\",i),i}function Dt(e){const t=bt();if(!t)return{};const n=jt(e),r=n._frozenDsc;if(r)return r;const i=n.spanContext().traceState,o=i&&i.get(\"sentry.dsc\"),s=o&&kt(o);if(s)return s;const a=Lt(e.spanContext().traceId,t),c=Pt(n),l=c.data||{},u=l[\"sentry.sample_rate\"];null!=u&&(a.sample_rate=`${u}`);const d=l[\"sentry.source\"],p=c.description;return\"url\"!==d&&p&&(a.transaction=p),function(e){if(\"boolean\"==typeof __SENTRY_TRACING__&&!__SENTRY_TRACING__)return!1;const t=bt(),n=e||t&&t.getOptions();return!!n&&(n.enableTracing||\"tracesSampleRate\"in n||\"tracesSampler\"in n)}()&&(a.sampled=String(function(e){const{traceFlags:t}=e.spanContext();return 1===t}(n))),t.emit(\"createDsc\",a,n),a}const Nt=/^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;function Rt(e,t=!1){const{host:n,path:r,pass:i,port:o,projectId:s,protocol:a,publicKey:c}=e;return`${a}://${c}${t&&i?`:${i}`:\"\"}@${n}${o?`:${o}`:\"\"}/${r?`${r}/`:r}${s}`}function Ft(e){return{protocol:e.protocol,publicKey:e.publicKey||\"\",pass:e.pass||\"\",host:e.host,port:e.port||\"\",path:e.path||\"\",projectId:e.projectId}}function Bt(e){const t=\"string\"==typeof e?function(e){const t=Nt.exec(e);if(!t)return void G((()=>{console.error(`Invalid Sentry Dsn: ${e}`)}));const[n,r,i=\"\",o=\"\",s=\"\",a=\"\"]=t.slice(1);let c=\"\",l=a;const u=l.split(\"/\");if(u.length>1&&(c=u.slice(0,-1).join(\"/\"),l=u.pop()),l){const e=l.match(/^\\d+/);e&&(l=e[0])}return Ft({host:o,pass:i,path:c,projectId:l,port:s,protocol:n,publicKey:r})}(e):Ft(e);if(t&&function(e){if(!z)return!0;const{port:t,projectId:n,protocol:r}=e;return!([\"protocol\",\"publicKey\",\"host\",\"projectId\"].find((t=>!e[t]&&(Q.error(`Invalid Sentry Dsn: ${t} missing`),!0)))||(n.match(/^\\d+$/)?function(e){return\"http\"===e||\"https\"===e}(r)?t&&isNaN(parseInt(t,10))&&(Q.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(Q.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),1):(Q.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}function Ut(e,t=100,n=1/0){try{return Jt(\"\",e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function Vt(e,t=3,n=102400){const r=Ut(e,t);return i=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(i))>n?Vt(e,t-1,n):r;var i}function Jt(e,t,n=1/0,r=1/0,i=function(){const e=\"function\"==typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;e<t.length;e++)if(t[e]===n)return!0;return t.push(n),!1},function(n){if(e)t.delete(n);else for(let e=0;e<t.length;e++)if(t[e]===n){t.splice(e,1);break}}]}()){const[o,s]=i;if(null==t||[\"boolean\",\"string\"].includes(typeof t)||\"number\"==typeof t&&Number.isFinite(t))return t;const a=function(e,t){try{if(\"domain\"===e&&t&&\"object\"==typeof t&&t._events)return\"[Domain]\";if(\"domainEmitter\"===e)return\"[DomainEmitter]\";if(\"undefined\"!=typeof global&&t===global)return\"[Global]\";if(\"undefined\"!=typeof window&&t===window)return\"[Window]\";if(\"undefined\"!=typeof document&&t===document)return\"[Document]\";if(Ee(t))return\"[VueViewModel]\";if(Se(n=t)&&\"nativeEvent\"in n&&\"preventDefault\"in n&&\"stopPropagation\"in n)return\"[SyntheticEvent]\";if(\"number\"==typeof t&&!Number.isFinite(t))return`[${t}]`;if(\"function\"==typeof t)return`[Function: ${te(t)}]`;if(\"symbol\"==typeof t)return`[${String(t)}]`;if(\"bigint\"==typeof t)return`[BigInt: ${String(t)}]`;const r=function(e){const t=Object.getPrototypeOf(e);return t?t.constructor.name:\"null prototype\"}(t);return/^HTML(\\w*)Element$/.test(r)?`[HTMLElement: ${r}]`:`[object ${r}]`}catch(e){return`**non-serializable** (${e})`}var n}(e,t);if(!a.startsWith(\"[object \"))return a;if(t.__sentry_skip_normalization__)return t;const c=\"number\"==typeof t.__sentry_override_normalization_depth__?t.__sentry_override_normalization_depth__:n;if(0===c)return a.replace(\"object \",\"\");if(o(t))return\"[Circular ~]\";const l=t;if(l&&\"function\"==typeof l.toJSON)try{return Jt(\"\",l.toJSON(),c-1,r,i)}catch(e){}const u=Array.isArray(t)?[]:{};let d=0;const p=Fe(t);for(const e in p){if(!Object.prototype.hasOwnProperty.call(p,e))continue;if(d>=r){u[e]=\"[MaxProperties ~]\";break}const t=p[e];u[e]=Jt(e,t,c-1,r,i),d++}return s(t),u}function $t(e,t=[]){return[e,t]}function qt(e,t){const[n,r]=e;return[n,[...r,t]]}function zt(e,t){const n=e[1];for(const e of n){if(t(e,e[0].type))return!0}return!1}function Wt(e){return $.__SENTRY__&&$.__SENTRY__.encodePolyfill?$.__SENTRY__.encodePolyfill(e):(new TextEncoder).encode(e)}function Ht(e){const[t,n]=e;let r=JSON.stringify(t);function i(e){\"string\"==typeof r?r=\"string\"==typeof e?r+e:[Wt(r),e]:r.push(\"string\"==typeof e?Wt(e):e)}for(const e of n){const[t,n]=e;if(i(`\\n${JSON.stringify(t)}\\n`),\"string\"==typeof n||n instanceof Uint8Array)i(n);else{let e;try{e=JSON.stringify(n)}catch(t){e=JSON.stringify(Ut(n))}i(e)}}return\"string\"==typeof r?r:function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}(r)}function Gt(e){const t=\"string\"==typeof e.data?Wt(e.data):e.data;return[Ve({type:\"attachment\",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),t]}const Qt={session:\"session\",sessions:\"session\",attachment:\"attachment\",transaction:\"transaction\",event:\"error\",client_report:\"internal\",user_report:\"default\",profile:\"profile\",profile_chunk:\"profile\",replay_event:\"replay\",replay_recording:\"replay\",check_in:\"monitor\",feedback:\"feedback\",span:\"span\",statsd:\"metric_bucket\",raw_security:\"security\"};function Kt(e){return Qt[e]}function Yt(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function Xt(e,t,n,r){const i=Yt(n),o=e.type&&\"replay_event\"!==e.type?e.type:\"event\";!function(e,t){t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]])}(e,n&&n.sdk);const s=function(e,t,n,r){const i=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:Rt(r)},...i&&{trace:Ve({...i})}}}(e,i,r,t);delete e.sdkProcessingMetadata;return $t(s,[[{type:o},e]])}function Zt(e,t,n,r=0){return new et(((i,o)=>{const s=e[r];if(null===t||\"function\"!=typeof s)i(t);else{const a=s({...t},n);V&&s.id&&null===a&&Q.log(`Event processor \"${s.id}\" dropped event`),Me(a)?a.then((t=>Zt(e,t,n,r+1).then(i))).then(null,o):Zt(e,a,n,r+1).then(i).then(null,o)}}))}let en,tn,nn;function rn(e,t){const{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:o}=t;!function(e,t){const{extra:n,tags:r,user:i,contexts:o,level:s,transactionName:a}=t,c=Ve(n);c&&Object.keys(c).length&&(e.extra={...c,...e.extra});const l=Ve(r);l&&Object.keys(l).length&&(e.tags={...l,...e.tags});const u=Ve(i);u&&Object.keys(u).length&&(e.user={...u,...e.user});const d=Ve(o);d&&Object.keys(d).length&&(e.contexts={...d,...e.contexts});s&&(e.level=s);a&&\"transaction\"!==e.type&&(e.transaction=a)}(e,t),r&&function(e,t){e.contexts={trace:Et(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Dt(t),...e.sdkProcessingMetadata};const n=jt(t),r=Pt(n).description;r&&!e.transaction&&\"transaction\"===e.type&&(e.transaction=r)}(e,r),function(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t));e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}(e,n),function(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}(e,i),function(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}(e,o)}function on(e,t){const{extra:n,tags:r,user:i,contexts:o,level:s,sdkProcessingMetadata:a,breadcrumbs:c,fingerprint:l,eventProcessors:u,attachments:d,propagationContext:p,transactionName:h,span:f}=t;sn(e,\"extra\",n),sn(e,\"tags\",r),sn(e,\"user\",i),sn(e,\"contexts\",o),e.sdkProcessingMetadata=ot(e.sdkProcessingMetadata,a,2),s&&(e.level=s),h&&(e.transactionName=h),f&&(e.span=f),c.length&&(e.breadcrumbs=[...e.breadcrumbs,...c]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),u.length&&(e.eventProcessors=[...e.eventProcessors,...u]),d.length&&(e.attachments=[...e.attachments,...d]),e.propagationContext={...e.propagationContext,...p}}function sn(e,t,n){e[t]=ot(e[t],n,1)}function an(e,t,n,r,i,o){const{normalizeDepth:s=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||ze(),timestamp:t.timestamp||$e()},l=n.integrations||e.integrations.map((e=>e.name));!function(e,t){const{environment:n,release:r,dist:i,maxValueLength:o=250}=t;e.environment=e.environment||n||xt,!e.release&&r&&(e.release=r);!e.dist&&i&&(e.dist=i);e.message&&(e.message=Ae(e.message,o));const s=e.exception&&e.exception.values&&e.exception.values[0];s&&s.value&&(s.value=Ae(s.value,o));const a=e.request;a&&a.url&&(a.url=Ae(a.url,o))}(c,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(c,l),i&&i.emit(\"applyFrameMetadata\",t),void 0===t.type&&function(e,t){const n=function(e){const t=$._sentryDebugIds;if(!t)return{};const n=Object.keys(t);return nn&&n.length===tn||(tn=n.length,nn=n.reduce(((n,r)=>{en||(en={});const i=en[r];if(i)n[i[0]]=i[1];else{const i=e(r);for(let e=i.length-1;e>=0;e--){const o=i[e],s=o&&o.filename,a=t[r];if(s&&a){n[s]=a,en[r]=[s,a];break}}}return n}),{})),nn}(t);try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{n&&e.filename&&(e.debug_id=n[e.filename])}))}))}catch(e){}}(c,e.stackParser);const u=function(e,t){if(!t)return e;const n=e?e.clone():new ut;return n.update(t),n}(r,n.captureContext);n.mechanism&&Qe(c,n.mechanism);const d=i?i.getEventProcessors():[],p=q(\"globalScope\",(()=>new ut)).getScopeData();if(o){on(p,o.getScopeData())}if(u){on(p,u.getScopeData())}const h=[...n.attachments||[],...p.attachments];h.length&&(n.attachments=h),rn(c,p);return Zt([...d,...p.eventProcessors],c,n).then((e=>(e&&function(e){const t={};try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)}))}))}catch(e){}if(0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.entries(t).forEach((([e,t])=>{n.push({type:\"sourcemap\",code_file:e,debug_id:t})}))}(e),\"number\"==typeof s&&s>0?function(e,t,n){if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((e=>({...e,...e.data&&{data:Ut(e.data,t,n)}})))},...e.user&&{user:Ut(e.user,t,n)},...e.contexts&&{contexts:Ut(e.contexts,t,n)},...e.extra&&{extra:Ut(e.extra,t,n)}};e.contexts&&e.contexts.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=Ut(e.contexts.trace.data,t,n)));e.spans&&(r.spans=e.spans.map((e=>({...e,...e.data&&{data:Ut(e.data,t,n)}}))));e.contexts&&e.contexts.flags&&r.contexts&&(r.contexts.flags=Ut(e.contexts.flags,3,n));return r}(e,s,a):e)))}function cn(e){if(e)return function(e){return e instanceof ut||\"function\"==typeof e}(e)||function(e){return Object.keys(e).some((e=>ln.includes(e)))}(e)?{captureContext:e}:e}const ln=[\"user\",\"level\",\"extra\",\"contexts\",\"tags\",\"fingerprint\",\"requestSession\",\"propagationContext\"];function un(e,t){return mt().captureEvent(e,t)}function dn(e){const t=bt(),n=yt(),r=mt(),{release:i,environment:o=xt}=t&&t.getOptions()||{},{userAgent:s}=$.navigator||{},a=tt({release:i,environment:o,user:r.getUser()||n.getUser(),...s&&{userAgent:s},...e}),c=n.getSession();return c&&\"ok\"===c.status&&nt(c,{status:\"exited\"}),pn(),n.setSession(a),r.setSession(a),a}function pn(){const e=yt(),t=mt(),n=t.getSession()||e.getSession();n&&function(e,t){let n={};t?n={status:t}:\"ok\"===e.status&&(n={status:\"exited\"}),nt(e,n)}(n),hn(),e.setSession(),t.setSession()}function hn(){const e=yt(),t=mt(),n=bt(),r=t.getSession()||e.getSession();r&&n&&n.captureSession(r)}function fn(e=!1){e?pn():hn()}function vn(e,t,n){return t||`${function(e){return`${function(e){const t=e.protocol?`${e.protocol}:`:\"\",n=e.port?`:${e.port}`:\"\";return`${t}//${e.host}${n}${e.path?`/${e.path}`:\"\"}/api/`}(e)}${e.projectId}/envelope/`}(e)}?${function(e,t){const n={sentry_version:\"7\"};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}(e,n)}`}const gn=[];function mn(e,t){for(const n of t)n&&n.afterAllSetup&&n.afterAllSetup(e)}function yn(e,t,n){if(n[t.name])V&&Q.log(`Integration skipped because it was already installed: ${t.name}`);else{if(n[t.name]=t,-1===gn.indexOf(t.name)&&\"function\"==typeof t.setupOnce&&(t.setupOnce(),gn.push(t.name)),t.setup&&\"function\"==typeof t.setup&&t.setup(e),\"function\"==typeof t.preprocessEvent){const n=t.preprocessEvent.bind(t);e.on(\"preprocessEvent\",((t,r)=>n(t,r,e)))}if(\"function\"==typeof t.processEvent){const n=t.processEvent.bind(t),r=Object.assign(((t,r)=>n(t,r,e)),{id:t.name});e.addEventProcessor(r)}V&&Q.log(`Integration installed: ${t.name}`)}}class bn extends Error{constructor(e,t=\"warn\"){super(e),this.message=e,this.logLevel=t}}const _n=\"Not capturing exception because it's already been captured.\";class wn{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=Bt(e.dsn):V&&Q.warn(\"No DSN provided, client will not send events.\"),this._dsn){const t=vn(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}const t=[\"enableTracing\",\"tracesSampleRate\",\"tracesSampler\"].find((t=>t in e&&null==e[t]));t&&G((()=>{console.warn(`[Sentry] Deprecation warning: \\`${t}\\` is set to undefined, which leads to tracing being enabled. In v9, a value of \\`undefined\\` will result in tracing being disabled.`)}))}captureException(e,t,n){const r=ze();if(Ke(e))return V&&Q.log(_n),r;const i={event_id:r,...t};return this._process(this.eventFromException(e,i).then((e=>this._captureEvent(e,i,n)))),i.event_id}captureMessage(e,t,n,r){const i={event_id:ze(),...n},o=_e(e)?e:String(e),s=we(e)?this.eventFromMessage(o,t,i):this.eventFromException(e,i);return this._process(s.then((e=>this._captureEvent(e,i,r)))),i.event_id}captureEvent(e,t,n){const r=ze();if(t&&t.originalException&&Ke(t.originalException))return V&&Q.log(_n),r;const i={event_id:r,...t},o=(e.sdkProcessingMetadata||{}).capturedSpanScope;return this._process(this._captureEvent(e,i,o||n)),i.event_id}captureSession(e){\"string\"!=typeof e.release?V&&Q.warn(\"Discarded session because of missing or non-string release\"):(this.sendSession(e),nt(e,{init:!1}))}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit(\"flush\"),this._isClientDoneProcessing(e).then((n=>t.flush(e).then((e=>n&&e))))):Xe(!0)}close(e){return this.flush(e).then((e=>(this.getOptions().enabled=!1,this.emit(\"close\"),e)))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some((({name:e})=>e.startsWith(\"Spotlight\"))))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];yn(this,e,this._integrations),t||mn(this,[e])}sendEvent(e,t={}){this.emit(\"beforeSendEvent\",e,t);let n=Xt(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=qt(n,Gt(e));const r=this.sendEnvelope(n);r&&r.then((t=>this.emit(\"afterSendEvent\",e,t)),null)}sendSession(e){const t=function(e,t,n,r){const i=Yt(n);return $t({sent_at:(new Date).toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:Rt(t)}},[\"aggregates\"in e?[{type:\"sessions\"},e]:[{type:\"session\"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(t)}recordDroppedEvent(e,t,n){if(this._options.sendClientReports){const r=\"number\"==typeof n?n:1,i=`${e}:${t}`;V&&Q.log(`Recording outcome: \"${i}\"${r>1?` (${r} times)`:\"\"}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(e,t){const n=this._hooks[e]=this._hooks[e]||[];return n.push(t),()=>{const e=n.indexOf(t);e>-1&&n.splice(e,1)}}emit(e,...t){const n=this._hooks[e];n&&n.forEach((e=>e(...t)))}sendEnvelope(e){return this.emit(\"beforeEnvelope\",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,(e=>(V&&Q.error(\"Error while sending envelope:\",e),e))):(V&&Q.error(\"Transport disabled\"),Xe({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=function(e,t){const n={};return t.forEach((t=>{t&&yn(e,t,n)})),n}(this,e),mn(this,e)}_updateSessionFromEvent(e,t){let n=\"fatal\"===t.level,r=!1;const i=t.exception&&t.exception.values;if(i){r=!0;for(const e of i){const t=e.mechanism;if(t&&!1===t.handled){n=!0;break}}}const o=\"ok\"===e.status;(o&&0===e.errors||o&&n)&&(nt(e,{...n&&{status:\"crashed\"},errors:e.errors||Number(r||n)}),this.captureSession(e))}_isClientDoneProcessing(e){return new et((t=>{let n=0;const r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),t(!0)):(n+=1,e&&n>=e&&(clearInterval(r),t(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._transport}_prepareEvent(e,t,n=mt(),r=yt()){const i=this.getOptions(),o=Object.keys(this._integrations);return!t.integrations&&o.length>0&&(t.integrations=o),this.emit(\"preprocessEvent\",e,t),e.type||r.setLastEventId(e.event_id||t.event_id),an(i,e,t,n,this,r).then((e=>{if(null===e)return e;e.contexts={trace:_t(n),...e.contexts};const t=function(e,t){const n=t.getPropagationContext();return n.dsc||Lt(n.traceId,e)}(this,n);return e.sdkProcessingMetadata={dynamicSamplingContext:t,...e.sdkProcessingMetadata},e}))}_captureEvent(e,t={},n){return this._processEvent(e,t,n).then((e=>e.event_id),(e=>{V&&(e instanceof bn&&\"log\"===e.logLevel?Q.log(e.message):Q.warn(e))}))}_processEvent(e,t,n){const r=this.getOptions(),{sampleRate:i}=r,o=kn(e),s=Sn(e),a=e.type||\"error\",c=`before send for type \\`${a}\\``,l=void 0===i?void 0:function(e){if(\"boolean\"==typeof e)return Number(e);const t=\"string\"==typeof e?parseFloat(e):e;if(!(\"number\"!=typeof t||isNaN(t)||t<0||t>1))return t;V&&Q.warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`)}(i);if(s&&\"number\"==typeof l&&Math.random()>l)return this.recordDroppedEvent(\"sample_rate\",\"error\",e),Ze(new bn(`Discarding event because it's not included in the random sample (sampling rate = ${i})`,\"log\"));const u=\"replay_event\"===a?\"replay\":a,d=(e.sdkProcessingMetadata||{}).capturedSpanIsolationScope;return this._prepareEvent(e,t,n,d).then((n=>{if(null===n)throw this.recordDroppedEvent(\"event_processor\",u,e),new bn(\"An event processor returned `null`, will not send event.\",\"log\");if(t.data&&!0===t.data.__sentry__)return n;const i=function(e,t,n,r){const{beforeSend:i,beforeSendTransaction:o,beforeSendSpan:s}=t;if(Sn(n)&&i)return i(n,r);if(kn(n)){if(n.spans&&s){const t=[];for(const r of n.spans){const n=s(r);n?t.push(n):(It(),e.recordDroppedEvent(\"before_send\",\"span\"))}n.spans=t}if(o){if(n.spans){const e=n.spans.length;n.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return o(n,r)}}return n}(this,r,n,t);return function(e,t){const n=`${t} must return \\`null\\` or a valid event.`;if(Me(e))return e.then((e=>{if(!Se(e)&&null!==e)throw new bn(n);return e}),(e=>{throw new bn(`${t} rejected with ${e}`)}));if(!Se(e)&&null!==e)throw new bn(n);return e}(i,c)})).then((r=>{if(null===r){if(this.recordDroppedEvent(\"before_send\",u,e),o){const t=1+(e.spans||[]).length;this.recordDroppedEvent(\"before_send\",\"span\",t)}throw new bn(`${c} returned \\`null\\`, will not send event.`,\"log\")}const i=n&&n.getSession();if(!o&&i&&this._updateSessionFromEvent(i,r),o){const e=(r.sdkProcessingMetadata&&r.sdkProcessingMetadata.spanCountBeforeProcessing||0)-(r.spans?r.spans.length:0);e>0&&this.recordDroppedEvent(\"before_send\",\"span\",e)}const s=r.transaction_info;if(o&&s&&r.transaction!==e.transaction){const e=\"custom\";r.transaction_info={...s,source:e}}return this.sendEvent(r,t),r})).then(null,(e=>{if(e instanceof bn)throw e;throw this.captureException(e,{data:{__sentry__:!0},originalException:e}),new bn(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${e}`)}))}_process(e){this._numProcessing++,e.then((e=>(this._numProcessing--,e)),(e=>(this._numProcessing--,e)))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map((([e,t])=>{const[n,r]=e.split(\":\");return{reason:n,category:r,quantity:t}}))}_flushOutcomes(){V&&Q.log(\"Flushing outcomes...\");const e=this._clearOutcomes();if(0===e.length)return void(V&&Q.log(\"No outcomes to send\"));if(!this._dsn)return void(V&&Q.log(\"No dsn provided, will not send outcomes\"));V&&Q.log(\"Sending outcomes:\",e);const t=(n=e,$t((r=this._options.tunnel&&Rt(this._dsn))?{dsn:r}:{},[[{type:\"client_report\"},{timestamp:i||$e(),discarded_events:n}]]));var n,r,i;this.sendEnvelope(t)}}function Sn(e){return void 0===e.type}function kn(e){return\"transaction\"===e.type}function Mn(e){const t=[];function n(e){return t.splice(t.indexOf(e),1)[0]||Promise.resolve(void 0)}return{$:t,add:function(r){if(!(void 0===e||t.length<e))return Ze(new bn(\"Not adding Promise because buffer limit was reached.\"));const i=r();return-1===t.indexOf(i)&&t.push(i),i.then((()=>n(i))).then(null,(()=>n(i).then(null,(()=>{})))),i},drain:function(e){return new et(((n,r)=>{let i=t.length;if(!i)return n(!0);const o=setTimeout((()=>{e&&e>0&&n(!1)}),e);t.forEach((e=>{Xe(e).then((()=>{--i||(clearTimeout(o),n(!0))}),r)}))}))}}}function Cn(e,{statusCode:t,headers:n},r=Date.now()){const i={...e},o=n&&n[\"x-sentry-rate-limits\"],s=n&&n[\"retry-after\"];if(o)for(const e of o.trim().split(\",\")){const[t,n,,,o]=e.split(\":\",5),s=parseInt(t,10),a=1e3*(isNaN(s)?60:s);if(n)for(const e of n.split(\";\"))\"metric_bucket\"===e&&o&&!o.split(\";\").includes(\"custom\")||(i[e]=r+a);else i.all=r+a}else s?i.all=r+function(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const r=Date.parse(`${e}`);return isNaN(r)?6e4:r-t}(s,r):429===t&&(i.all=r+6e4);return i}function En(e,t,n=Mn(e.bufferSize||64)){let r={};return{send:function(i){const o=[];if(zt(i,((t,n)=>{const i=Kt(n);if(function(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}(r,i)){const r=Tn(t,n);e.recordDroppedEvent(\"ratelimit_backoff\",i,r)}else o.push(t)})),0===o.length)return Xe({});const s=$t(i[0],o),a=t=>{zt(s,((n,r)=>{const i=Tn(n,r);e.recordDroppedEvent(t,Kt(r),i)}))};return n.add((()=>t({body:Ht(s)}).then((e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&V&&Q.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),r=Cn(r,e),e)),(e=>{throw a(\"network_error\"),e})))).then((e=>e),(e=>{if(e instanceof bn)return V&&Q.error(\"Skipped sending event because buffer is full.\"),a(\"queue_overflow\"),Xe({});throw e}))},flush:e=>n.drain(e)}}function Tn(e,t){if(\"event\"===t||\"transaction\"===t)return Array.isArray(e)?e[1]:void 0}const On=100;function Pn(e,t){const n=bt(),r=yt();if(!n)return;const{beforeBreadcrumb:i=null,maxBreadcrumbs:o=On}=n.getOptions();if(o<=0)return;const s={timestamp:$e(),...e},a=i?G((()=>i(s,t))):s;null!==a&&(n.emit&&n.emit(\"beforeAddBreadcrumb\",a,t),r.addBreadcrumb(a,o))}let An;const jn=new WeakMap,In=()=>({name:\"FunctionToString\",setupOnce(){An=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=Re(this),n=jn.has(bt())&&void 0!==t?t:this;return An.apply(n,e)}}catch(e){}},setup(e){jn.set(e,!0)}}),xn=[/^Script error\\.?$/,/^Javascript error: Script error\\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,\"undefined is not an object (evaluating 'a.L')\",'can\\'t redefine non-configurable property \"solana\"',\"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\",\"Can't find variable: _AutofillCallbackHandler\",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\\d+, MethodName:simulateEvent, ParamCount:\\d+$/],Ln=(e={})=>({name:\"InboundFilters\",processEvent(t,n,r){const i=r.getOptions(),o=function(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:xn],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]],ignoreInternal:void 0===e.ignoreInternal||e.ignoreInternal}}(e,i);return function(e,t){if(t.ignoreInternal&&function(e){try{return\"SentryError\"===e.exception.values[0].type}catch(e){}return!1}(e))return V&&Q.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${He(e)}`),!0;if(function(e,t){if(e.type||!t||!t.length)return!1;return function(e){const t=[];e.message&&t.push(e.message);let n;try{n=e.exception.values[e.exception.values.length-1]}catch(e){}n&&n.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`));return t}(e).some((e=>xe(e,t)))}(e,t.ignoreErrors))return V&&Q.warn(`Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${He(e)}`),!0;if(function(e){if(e.type)return!1;if(!e.exception||!e.exception.values||0===e.exception.values.length)return!1;return!e.message&&!e.exception.values.some((e=>e.stacktrace||e.type&&\"Error\"!==e.type||e.value))}(e))return V&&Q.warn(`Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${He(e)}`),!0;if(function(e,t){if(\"transaction\"!==e.type||!t||!t.length)return!1;const n=e.transaction;return!!n&&xe(n,t)}(e,t.ignoreTransactions))return V&&Q.warn(`Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${He(e)}`),!0;if(function(e,t){if(!t||!t.length)return!1;const n=Dn(e);return!!n&&xe(n,t)}(e,t.denyUrls))return V&&Q.warn(`Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${He(e)}.\\nUrl: ${Dn(e)}`),!0;if(!function(e,t){if(!t||!t.length)return!0;const n=Dn(e);return!n||xe(n,t)}(e,t.allowUrls))return V&&Q.warn(`Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${He(e)}.\\nUrl: ${Dn(e)}`),!0;return!1}(t,o)?null:t}});function Dn(e){try{let t;try{t=e.exception.values[0].stacktrace.frames}catch(e){}return t?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&\"<anonymous>\"!==n.filename&&\"[native code]\"!==n.filename)return n.filename||null}return null}(t):null}catch(t){return V&&Q.error(`Cannot extract url for event ${He(e)}`),null}}function Nn(e,t,n=250,r,i,o,s){if(!(o.exception&&o.exception.values&&s&&Ce(s.originalException,Error)))return;const a=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;var c,l;a&&(o.exception.values=(c=Rn(e,t,i,s.originalException,r,o.exception.values,a,0),l=n,c.map((e=>(e.value&&(e.value=Ae(e.value,l)),e)))))}function Rn(e,t,n,r,i,o,s,a){if(o.length>=n+1)return o;let c=[...o];if(Ce(r[i],Error)){Fn(s,a);const o=e(t,r[i]),l=c.length;Bn(o,i,l,a),c=Rn(e,t,n,r[i],i,[o,...c],o,l)}return Array.isArray(r.errors)&&r.errors.forEach(((r,o)=>{if(Ce(r,Error)){Fn(s,a);const l=e(t,r),u=c.length;Bn(l,`errors[${o}]`,u,a),c=Rn(e,t,n,r,i,[l,...c],l,u)}})),c}function Fn(e,t){e.mechanism=e.mechanism||{type:\"generic\",handled:!0},e.mechanism={...e.mechanism,...\"AggregateError\"===e.type&&{is_exception_group:!0},exception_id:t}}function Bn(e,t,n,r){e.mechanism=e.mechanism||{type:\"generic\",handled:!0},e.mechanism={...e.mechanism,type:\"chained\",source:t,exception_id:n,parent_id:r}}function Un(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||\"\",r=t[8]||\"\";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function Vn(){\"console\"in $&&W.forEach((function(e){e in $.console&&Le($.console,e,(function(t){return H[e]=t,function(...t){ae(\"console\",{args:t,level:e});const n=H[e];n&&n.apply($.console,t)}}))}))}function Jn(e){return\"warn\"===e?\"warning\":[\"fatal\",\"error\",\"warning\",\"log\",\"info\",\"debug\"].includes(e)?e:\"log\"}const $n=()=>{let e;return{name:\"Dedupe\",processEvent(t){if(t.type)return t;try{if(function(e,t){if(!t)return!1;if(function(e,t){const n=e.message,r=t.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!zn(e,t))return!1;if(!qn(e,t))return!1;return!0}(e,t))return!0;if(function(e,t){const n=Wn(t),r=Wn(e);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!zn(e,t))return!1;if(!qn(e,t))return!1;return!0}(e,t))return!0;return!1}(t,e))return V&&Q.warn(\"Event dropped due to being a duplicate of previously captured event.\"),null}catch(e){}return e=t}}};function qn(e,t){let n=ne(e),r=ne(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(r.length!==n.length)return!1;for(let e=0;e<r.length;e++){const t=r[e],i=n[e];if(t.filename!==i.filename||t.lineno!==i.lineno||t.colno!==i.colno||t.function!==i.function)return!1}return!0}function zn(e,t){let n=e.fingerprint,r=t.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;try{return!(n.join(\"\")!==r.join(\"\"))}catch(e){return!1}}function Wn(e){return e.exception&&e.exception.values&&e.exception.values[0]}function Hn(e){return void 0===e?void 0:e>=400&&e<500?\"warning\":e>=500?\"error\":void 0}const Gn=$;function Qn(e){return e&&/^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(e.toString())}function Kn(){if(\"string\"==typeof EdgeRuntime)return!0;if(!function(){if(!(\"fetch\"in Gn))return!1;try{return new Headers,new Request(\"http://www.example.com\"),new Response,!0}catch(e){return!1}}())return!1;if(Qn(Gn.fetch))return!0;let e=!1;const t=Gn.document;if(t&&\"function\"==typeof t.createElement)try{const n=t.createElement(\"iframe\");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=Qn(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){z&&Q.warn(\"Could not create sandbox iframe for pure fetch check, bailing to window.fetch: \",e)}return e}function Yn(e,t){const n=\"fetch\";oe(n,e),se(n,(()=>function(e,t=!1){if(t&&!Kn())return;Le($,\"fetch\",(function(t){return function(...n){const r=new Error,{method:i,url:o}=function(e){if(0===e.length)return{method:\"GET\",url:\"\"};if(2===e.length){const[t,n]=e;return{url:Zn(t),method:Xn(n,\"method\")?String(n.method).toUpperCase():\"GET\"}}const t=e[0];return{url:Zn(t),method:Xn(t,\"method\")?String(t.method).toUpperCase():\"GET\"}}(n),s={args:n,fetchData:{method:i,url:o},startTimestamp:1e3*qe(),virtualError:r};return e||ae(\"fetch\",{...s}),t.apply($,n).then((async t=>(e?e(t):ae(\"fetch\",{...s,endTimestamp:1e3*qe(),response:t}),t)),(e=>{throw ae(\"fetch\",{...s,endTimestamp:1e3*qe(),error:e}),ve(e)&&void 0===e.stack&&(e.stack=r.stack,De(e,\"framesToPop\",1)),e}))}}))}(void 0,t)))}function Xn(e,t){return!!e&&\"object\"==typeof e&&!!e[t]}function Zn(e){return\"string\"==typeof e?e:e?Xn(e,\"url\")?e.url:e.toString?e.toString():\"\":\"\"}const er=$;const tr=$;let nr=0;function rr(){return nr>0}function ir(e,t={}){if(!function(e){return\"function\"==typeof e}(e))return e;try{const t=e.__sentry_wrapped__;if(t)return\"function\"==typeof t?t:e;if(Re(e))return e}catch(t){return e}const n=function(...n){try{const r=n.map((e=>ir(e,t)));return e.apply(this,r)}catch(e){throw nr++,setTimeout((()=>{nr--})),function(...e){const t=gt(pe());if(2===e.length){const[n,r]=e;return n?t.withSetScope(n,r):t.withScope(r)}t.withScope(e[0])}((r=>{var i,o;r.addEventProcessor((e=>(t.mechanism&&(Ge(e,void 0,void 0),Qe(e,t.mechanism)),e.extra={...e.extra,arguments:n},e))),i=e,mt().captureException(i,cn(o))})),e}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}catch(e){}Ne(n,e),De(e,\"__sentry_wrapped__\",n);try{Object.getOwnPropertyDescriptor(n,\"name\").configurable&&Object.defineProperty(n,\"name\",{get:()=>e.name})}catch(e){}return n}const or=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;function sr(e,t){const n=lr(e,t),r={type:pr(t),value:hr(t)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&\"\"===r.value&&(r.value=\"Unrecoverable error caught\"),r}function ar(e,t,n,r){const i=bt(),o=i&&i.getOptions().normalizeDepth,s=function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];if(n instanceof Error)return n}return}(t),a={__serialized__:Vt(t,o)};if(s)return{exception:{values:[sr(e,s)]},extra:a};const c={exception:{values:[{type:ke(t)?t.constructor.name:r?\"UnhandledRejection\":\"Error\",value:gr(t,{isUnhandledRejection:r})}]},extra:a};if(n){const t=lr(e,n);t.length&&(c.exception.values[0].stacktrace={frames:t})}return c}function cr(e,t){return{exception:{values:[sr(e,t)]}}}function lr(e,t){const n=t.stacktrace||t.stack||\"\",r=function(e){if(e&&ur.test(e.message))return 1;return 0}(t),i=function(e){if(\"number\"==typeof e.framesToPop)return e.framesToPop;return 0}(t);try{return e(n,r,i)}catch(e){}return[]}const ur=/Minified React error #\\d+;/i;function dr(e){return\"undefined\"!=typeof WebAssembly&&void 0!==WebAssembly.Exception&&e instanceof WebAssembly.Exception}function pr(e){const t=e&&e.name;if(!t&&dr(e)){return e.message&&Array.isArray(e.message)&&2==e.message.length?e.message[0]:\"WebAssembly.Exception\"}return t}function hr(e){const t=e&&e.message;return t?t.error&&\"string\"==typeof t.error.message?t.error.message:dr(e)&&Array.isArray(e.message)&&2==e.message.length?e.message[1]:t:\"No error message\"}function fr(e,t,n,r,i){let o;if(me(t)&&t.error){return cr(e,t.error)}if(ye(t)||ge(t,\"DOMException\")){const i=t;if(\"stack\"in t)o=cr(e,t);else{const t=i.name||(ye(i)?\"DOMError\":\"DOMException\"),s=i.message?`${t}: ${i.message}`:t;o=vr(e,s,n,r),Ge(o,s)}return\"code\"in i&&(o.tags={...o.tags,\"DOMException.code\":`${i.code}`}),o}if(ve(t))return cr(e,t);if(Se(t)||ke(t)){return o=ar(e,t,n,i),Qe(o,{synthetic:!0}),o}return o=vr(e,t,n,r),Ge(o,`${t}`,void 0),Qe(o,{synthetic:!0}),o}function vr(e,t,n,r){const i={};if(r&&n){const r=lr(e,n);r.length&&(i.exception={values:[{value:t,stacktrace:{frames:r}}]}),Qe(i,{synthetic:!0})}if(_e(t)){const{__sentry_template_string__:e,__sentry_template_values__:n}=t;return i.logentry={message:e,params:n},i}return i.message=t,i}function gr(e,{isUnhandledRejection:t}){const n=function(e,t=40){const n=Object.keys(Fe(e));n.sort();const r=n[0];if(!r)return\"[object has no keys]\";if(r.length>=t)return Ae(r,t);for(let e=n.length;e>0;e--){const r=n.slice(0,e).join(\", \");if(!(r.length>t))return e===n.length?r:Ae(r,t)}return\"\"}(e),r=t?\"promise rejection\":\"exception\";if(me(e))return`Event \\`ErrorEvent\\` captured as ${r} with message \\`${e.message}\\``;if(ke(e)){return`Event \\`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){}}(e)}\\` (type=${e.type}) captured as ${r}`}return`Object captured as ${r} with keys: ${n}`}class mr extends wn{constructor(e){const t={parentSpanIsAlwaysRootSpan:!0,...e};!function(e,t,n=[t],r=\"npm\"){const i=e._metadata||{};i.sdk||(i.sdk={name:`sentry.javascript.${t}`,packages:n.map((e=>({name:`${r}:@sentry/${e}`,version:J}))),version:J}),e._metadata=i}(t,\"browser\",[\"browser\"],tr.SENTRY_SDK_SOURCE||\"npm\"),super(t),t.sendClientReports&&tr.document&&tr.document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===tr.document.visibilityState&&this._flushOutcomes()}))}eventFromException(e,t){return function(e,t,n,r){const i=fr(e,t,n&&n.syntheticException||void 0,r);return Qe(i),i.level=\"error\",n&&n.event_id&&(i.event_id=n.event_id),Xe(i)}(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t=\"info\",n){return function(e,t,n=\"info\",r,i){const o=vr(e,t,r&&r.syntheticException||void 0,i);return o.level=n,r&&r.event_id&&(o.event_id=r.event_id),Xe(o)}(this._options.stackParser,e,t,n,this._options.attachStacktrace)}captureUserFeedback(e){if(!this._isEnabled())return void(or&&Q.warn(\"SDK not enabled, will not capture user feedback.\"));const t=function(e,{metadata:t,tunnel:n,dsn:r}){const i={event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&t.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!r&&{dsn:Rt(r)}},o=function(e){return[{type:\"user_report\"},e]}(e);return $t(i,[o])}(e,{metadata:this.getSdkMetadata(),dsn:this.getDsn(),tunnel:this.getOptions().tunnel});this.sendEnvelope(t)}_prepareEvent(e,t,n){return e.platform=e.platform||\"javascript\",super._prepareEvent(e,t,n)}}const yr=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,br=$;let _r,wr,Sr,kr;function Mr(){if(!br.document)return;const e=ae.bind(null,\"dom\"),t=Cr(e,!0);br.document.addEventListener(\"click\",t,!1),br.document.addEventListener(\"keypress\",t,!1),[\"EventTarget\",\"Node\"].forEach((t=>{const n=br[t],r=n&&n.prototype;r&&r.hasOwnProperty&&r.hasOwnProperty(\"addEventListener\")&&(Le(r,\"addEventListener\",(function(t){return function(n,r,i){if(\"click\"===n||\"keypress\"==n)try{const r=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},o=r[n]=r[n]||{refCount:0};if(!o.handler){const r=Cr(e);o.handler=r,t.call(this,n,r,i)}o.refCount++}catch(e){}return t.call(this,n,r,i)}})),Le(r,\"removeEventListener\",(function(e){return function(t,n,r){if(\"click\"===t||\"keypress\"==t)try{const n=this.__sentry_instrumentation_handlers__||{},i=n[t];i&&(i.refCount--,i.refCount<=0&&(e.call(this,t,i.handler,r),i.handler=void 0,delete n[t]),0===Object.keys(n).length&&delete this.__sentry_instrumentation_handlers__)}catch(e){}return e.call(this,t,n,r)}})))}))}function Cr(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const r=function(e){try{return e.target}catch(e){return null}}(n);if(function(e,t){return\"keypress\"===e&&(!t||!t.tagName||\"INPUT\"!==t.tagName&&\"TEXTAREA\"!==t.tagName&&!t.isContentEditable)}(n.type,r))return;De(n,\"_sentryCaptured\",!0),r&&!r._sentryId&&De(r,\"_sentryId\",ze());const i=\"keypress\"===n.type?\"input\":n.type;if(!function(e){if(e.type!==wr)return!1;try{if(!e.target||e.target._sentryId!==Sr)return!1}catch(e){}return!0}(n)){e({event:n,name:i,global:t}),wr=n.type,Sr=r?r._sentryId:void 0}clearTimeout(_r),_r=br.setTimeout((()=>{Sr=void 0,wr=void 0}),1e3)}}function Er(e){const t=\"history\";oe(t,e),se(t,Tr)}function Tr(){if(!function(){const e=er.chrome,t=e&&e.app&&e.app.runtime,n=\"history\"in er&&!!er.history.pushState&&!!er.history.replaceState;return!t&&n}())return;const e=br.onpopstate;function t(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const e=kr,t=String(n);kr=t;ae(\"history\",{from:e,to:t})}return e.apply(this,t)}}br.onpopstate=function(...t){const n=br.location.href,r=kr;kr=n;if(ae(\"history\",{from:r,to:n}),e)try{return e.apply(this,t)}catch(e){}},Le(br.history,\"pushState\",t),Le(br.history,\"replaceState\",t)}const Or={};function Pr(e){Or[e]=void 0}const Ar=\"__sentry_xhr_v3__\";function jr(){if(!br.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,n){const r=new Error,i=1e3*qe(),o=be(n[0])?n[0].toUpperCase():void 0,s=function(e){if(be(e))return e;try{return e.toString()}catch(e){}return}(n[1]);if(!o||!s)return e.apply(t,n);t[Ar]={method:o,url:s,request_headers:{}},\"POST\"===o&&s.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const a=()=>{const e=t[Ar];if(e&&4===t.readyState){try{e.status_code=t.status}catch(e){}ae(\"xhr\",{endTimestamp:1e3*qe(),startTimestamp:i,xhr:t,virtualError:r})}};return\"onreadystatechange\"in t&&\"function\"==typeof t.onreadystatechange?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply:(e,t,n)=>(a(),e.apply(t,n))}):t.addEventListener(\"readystatechange\",a),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,n){const[r,i]=n,o=t[Ar];return o&&be(r)&&be(i)&&(o.request_headers[r.toLowerCase()]=i),e.apply(t,n)}}),e.apply(t,n)}}),e.send=new Proxy(e.send,{apply(e,t,n){const r=t[Ar];if(!r)return e.apply(t,n);void 0!==n[0]&&(r.body=n[0]);return ae(\"xhr\",{startTimestamp:1e3*qe(),xhr:t}),e.apply(t,n)}})}function Ir(e,t=function(e){const t=Or[e];if(t)return t;let n=br[e];if(Qn(n))return Or[e]=n.bind(br);const r=br.document;if(r&&\"function\"==typeof r.createElement)try{const t=r.createElement(\"iframe\");t.hidden=!0,r.head.appendChild(t);const i=t.contentWindow;i&&i[e]&&(n=i[e]),r.head.removeChild(t)}catch(t){yr&&Q.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,t)}return n?Or[e]=n.bind(br):n}(\"fetch\")){let n=0,r=0;return En(e,(function(i){const o=i.body.length;n+=o,r++;const s={body:i.body,method:\"POST\",referrerPolicy:\"origin\",headers:e.headers,keepalive:n<=6e4&&r<15,...e.fetchOptions};if(!t)return Pr(\"fetch\"),Ze(\"No fetch implementation available\");try{return t(e.url,s).then((e=>(n-=o,r--,{statusCode:e.status,headers:{\"x-sentry-rate-limits\":e.headers.get(\"X-Sentry-Rate-Limits\"),\"retry-after\":e.headers.get(\"Retry-After\")}})))}catch(e){return Pr(\"fetch\"),n-=o,r--,Ze(e)}}))}function xr(e,t,n,r){const i={filename:e,function:\"<anonymous>\"===t?K:t,in_app:!0};return void 0!==n&&(i.lineno=n),void 0!==r&&(i.colno=r),i}const Lr=/^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i,Dr=/^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,Nr=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,Rr=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i,Fr=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,Br=function(...e){const t=e.sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));return(e,n=0,r=0)=>{const i=[],o=e.split(\"\\n\");for(let e=n;e<o.length;e++){const n=o[e];if(n.length>1024)continue;const s=Y.test(n)?n.replace(Y,\"$1\"):n;if(!s.match(/\\S*Error: /)){for(const e of t){const t=e(s);if(t){i.push(t);break}}if(i.length>=50+r)break}}return function(e){if(!e.length)return[];const t=Array.from(e);/sentryWrapped/.test(Z(t).function||\"\")&&t.pop();t.reverse(),X.test(Z(t).function||\"\")&&(t.pop(),X.test(Z(t).function||\"\")&&t.pop());return t.slice(0,50).map((e=>({...e,filename:e.filename||Z(t).filename,function:e.function||K})))}(i.slice(r))}}(...[[30,e=>{const t=Lr.exec(e);if(t){const[,e,n,r]=t;return xr(e,K,+n,+r)}const n=Dr.exec(e);if(n){if(n[2]&&0===n[2].indexOf(\"eval\")){const e=Nr.exec(n[2]);e&&(n[2]=e[1],n[3]=e[2],n[4]=e[3])}const[e,t]=Ur(n[1]||K,n[2]);return xr(t,e,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}}],[50,e=>{const t=Rr.exec(e);if(t){if(t[3]&&t[3].indexOf(\" > eval\")>-1){const e=Fr.exec(t[3]);e&&(t[1]=t[1]||\"eval\",t[3]=e[1],t[4]=e[2],t[5]=\"\")}let e=t[3],n=t[1]||K;return[n,e]=Ur(n,e),xr(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}]]),Ur=(e,t)=>{const n=-1!==e.indexOf(\"safari-extension\"),r=-1!==e.indexOf(\"safari-web-extension\");return n||r?[-1!==e.indexOf(\"@\")?e.split(\"@\")[0]:K,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},Vr=1024,Jr=(e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:\"Breadcrumbs\",setup(e){var n;t.console&&function(e){const t=\"console\";oe(t,e),se(t,Vn)}(function(e){return function(t){if(bt()!==e)return;const n={category:\"console\",data:{arguments:t.args,logger:\"console\"},level:Jn(t.level),message:je(t.args,\" \")};if(\"assert\"===t.level){if(!1!==t.args[0])return;n.message=`Assertion failed: ${je(t.args.slice(1),\" \")||\"console.assert\"}`,n.data.arguments=t.args.slice(1)}Pn(n,{input:t.args,level:t.level})}}(e)),t.dom&&(n=function(e,t){return function(n){if(bt()!==e)return;let r,i,o=\"object\"==typeof t?t.serializeAttribute:void 0,s=\"object\"==typeof t&&\"number\"==typeof t.maxStringLength?t.maxStringLength:void 0;s&&s>Vr&&(or&&Q.warn(`\\`dom.maxStringLength\\` cannot exceed 1024, but a value of ${s} was configured. Sentry will use 1024 instead.`),s=Vr),\"string\"==typeof o&&(o=[o]);try{const e=n.event,t=function(e){return!!e&&!!e.target}(e)?e.target:e;r=Oe(t,{keyAttrs:o,maxStringLength:s}),i=function(e){if(!Te.HTMLElement)return null;let t=e;for(let e=0;e<5;e++){if(!t)return null;if(t instanceof HTMLElement){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}t=t.parentNode}return null}(t)}catch(e){r=\"<unknown>\"}if(0===r.length)return;const a={category:`ui.${n.name}`,message:r};i&&(a.data={\"ui.component_name\":i}),Pn(a,{event:n.event,name:n.name,global:n.global})}}(e,t.dom),oe(\"dom\",n),se(\"dom\",Mr)),t.xhr&&function(e){oe(\"xhr\",e),se(\"xhr\",jr)}(function(e){return function(t){if(bt()!==e)return;const{startTimestamp:n,endTimestamp:r}=t,i=t.xhr[Ar];if(!n||!r||!i)return;const{method:o,url:s,status_code:a,body:c}=i,l={method:o,url:s,status_code:a},u={xhr:t.xhr,input:c,startTimestamp:n,endTimestamp:r};Pn({category:\"xhr\",data:l,type:\"http\",level:Hn(a)},u)}}(e)),t.fetch&&Yn(function(e){return function(t){if(bt()!==e)return;const{startTimestamp:n,endTimestamp:r}=t;if(r&&(!t.fetchData.url.match(/sentry_key/)||\"POST\"!==t.fetchData.method))if(t.error){Pn({category:\"fetch\",data:t.fetchData,level:\"error\",type:\"http\"},{data:t.error,input:t.args,startTimestamp:n,endTimestamp:r})}else{const e=t.response,i={...t.fetchData,status_code:e&&e.status},o={input:t.args,response:e,startTimestamp:n,endTimestamp:r};Pn({category:\"fetch\",data:i,type:\"http\",level:Hn(i.status_code)},o)}}}(e)),t.history&&Er(function(e){return function(t){if(bt()!==e)return;let n=t.from,r=t.to;const i=Un(tr.location.href);let o=n?Un(n):void 0;const s=Un(r);o&&o.path||(o=i),i.protocol===s.protocol&&i.host===s.host&&(r=s.relative),i.protocol===o.protocol&&i.host===o.host&&(n=o.relative),Pn({category:\"navigation\",data:{from:n,to:r}})}}(e)),t.sentry&&e.on(\"beforeSendEvent\",function(e){return function(t){bt()===e&&Pn({category:\"sentry.\"+(\"transaction\"===t.type?\"transaction\":\"event\"),event_id:t.event_id,level:t.level,message:He(t)},{event:t})}}(e))}}};const $r=[\"EventTarget\",\"Window\",\"Node\",\"ApplicationCache\",\"AudioTrackList\",\"BroadcastChannel\",\"ChannelMergerNode\",\"CryptoOperation\",\"EventSource\",\"FileReader\",\"HTMLUnknownElement\",\"IDBDatabase\",\"IDBRequest\",\"IDBTransaction\",\"KeyOperation\",\"MediaController\",\"MessagePort\",\"ModalWindow\",\"Notification\",\"SVGElementInstance\",\"Screen\",\"SharedWorker\",\"TextTrack\",\"TextTrackCue\",\"TextTrackList\",\"WebSocket\",\"WebSocketWorker\",\"Worker\",\"XMLHttpRequest\",\"XMLHttpRequestEventTarget\",\"XMLHttpRequestUpload\"],qr=(e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...e};return{name:\"BrowserApiErrors\",setupOnce(){t.setTimeout&&Le(tr,\"setTimeout\",zr),t.setInterval&&Le(tr,\"setInterval\",zr),t.requestAnimationFrame&&Le(tr,\"requestAnimationFrame\",Wr),t.XMLHttpRequest&&\"XMLHttpRequest\"in tr&&Le(XMLHttpRequest.prototype,\"send\",Hr);const e=t.eventTarget;if(e){(Array.isArray(e)?e:$r).forEach(Gr)}}}};function zr(e){return function(...t){const n=t[0];return t[0]=ir(n,{mechanism:{data:{function:te(e)},handled:!1,type:\"instrument\"}}),e.apply(this,t)}}function Wr(e){return function(t){return e.apply(this,[ir(t,{mechanism:{data:{function:\"requestAnimationFrame\",handler:te(e)},handled:!1,type:\"instrument\"}})])}}function Hr(e){return function(...t){const n=this;return[\"onload\",\"onerror\",\"onprogress\",\"onreadystatechange\"].forEach((e=>{e in n&&\"function\"==typeof n[e]&&Le(n,e,(function(t){const n={mechanism:{data:{function:e,handler:te(t)},handled:!1,type:\"instrument\"}},r=Re(t);return r&&(n.mechanism.data.handler=te(r)),ir(t,n)}))})),e.apply(this,t)}}function Gr(e){const t=tr[e],n=t&&t.prototype;n&&n.hasOwnProperty&&n.hasOwnProperty(\"addEventListener\")&&(Le(n,\"addEventListener\",(function(t){return function(n,r,i){try{\"function\"==typeof r.handleEvent&&(r.handleEvent=ir(r.handleEvent,{mechanism:{data:{function:\"handleEvent\",handler:te(r),target:e},handled:!1,type:\"instrument\"}}))}catch(e){}return t.apply(this,[n,ir(r,{mechanism:{data:{function:\"addEventListener\",handler:te(r),target:e},handled:!1,type:\"instrument\"}}),i])}})),Le(n,\"removeEventListener\",(function(e){return function(t,n,r){try{const i=n.__sentry_wrapped__;i&&e.call(this,t,i,r)}catch(e){}return e.call(this,t,n,r)}})))}const Qr=()=>({name:\"BrowserSession\",setupOnce(){void 0!==tr.document?(dn({ignoreDuration:!0}),fn(),Er((({from:e,to:t})=>{void 0!==e&&e!==t&&(dn({ignoreDuration:!0}),fn())}))):or&&Q.warn(\"Using the `browserSessionIntegration` in non-browser environments is not supported.\")}}),Kr=(e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:\"GlobalHandlers\",setupOnce(){Error.stackTraceLimit=50},setup(e){t.onerror&&(!function(e){!function(e){const t=\"error\";oe(t,e),se(t,le)}((t=>{const{stackParser:n,attachStacktrace:r}=Xr();if(bt()!==e||rr())return;const{msg:i,url:o,line:s,column:a,error:c}=t,l=function(e,t,n,r){const i=e.exception=e.exception||{},o=i.values=i.values||[],s=o[0]=o[0]||{},a=s.stacktrace=s.stacktrace||{},c=a.frames=a.frames||[],l=r,u=n,d=be(t)&&t.length>0?t:function(){try{return Te.document.location.href}catch(e){return\"\"}}();0===c.length&&c.push({colno:l,filename:d,function:K,in_app:!0,lineno:u});return e}(fr(n,c||i,void 0,r,!1),o,s,a);l.level=\"error\",un(l,{originalException:c,mechanism:{handled:!1,type:\"onerror\"}})}))}(e),Yr(\"onerror\")),t.onunhandledrejection&&(!function(e){!function(e){const t=\"unhandledrejection\";oe(t,e),se(t,de)}((t=>{const{stackParser:n,attachStacktrace:r}=Xr();if(bt()!==e||rr())return;const i=function(e){if(we(e))return e;try{if(\"reason\"in e)return e.reason;if(\"detail\"in e&&\"reason\"in e.detail)return e.detail.reason}catch(e){}return e}(t),o=we(i)?{exception:{values:[{type:\"UnhandledRejection\",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}:fr(n,i,void 0,r,!0);o.level=\"error\",un(o,{originalException:i,mechanism:{handled:!1,type:\"onunhandledrejection\"}})}))}(e),Yr(\"onunhandledrejection\"))}}};function Yr(e){or&&Q.log(`Global Handler attached: ${e}`)}function Xr(){const e=bt();return e&&e.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}const Zr=()=>({name:\"HttpContext\",preprocessEvent(e){if(!tr.navigator&&!tr.location&&!tr.document)return;const t=e.request&&e.request.url||tr.location&&tr.location.href,{referrer:n}=tr.document||{},{userAgent:r}=tr.navigator||{},i={...e.request&&e.request.headers,...n&&{Referer:n},...r&&{\"User-Agent\":r}},o={...e.request,...t&&{url:t},headers:i};e.request=o}}),ei=(e={})=>{const t=e.limit||5,n=e.key||\"cause\";return{name:\"LinkedErrors\",preprocessEvent(e,r,i){const o=i.getOptions();Nn(sr,o.stackParser,o.maxValueLength,n,t,e,r)}}};var ti=\"new\",ni=\"loading\",ri=\"loaded\",ii=\"joining-meeting\",oi=\"joined-meeting\",si=\"left-meeting\",ai=\"error\",ci=\"blocked\",li=\"off\",ui=\"sendable\",di=\"loading\",pi=\"interrupted\",hi=\"playable\",fi=\"unknown\",vi=\"full\",gi=\"lobby\",mi=\"none\",yi=\"base\",bi=\"*\",_i=\"ejected\",wi=\"nbf-room\",Si=\"nbf-token\",ki=\"exp-room\",Mi=\"exp-token\",Ci=\"no-room\",Ei=\"meeting-full\",Ti=\"end-of-life\",Oi=\"not-allowed\",Pi=\"connection-error\",Ai=\"cam-in-use\",ji=\"mic-in-use\",Ii=\"cam-mic-in-use\",xi=\"permissions\",Li=\"undefined-mediadevices\",Di=\"not-found\",Ni=\"constraints\",Ri=\"unknown\",Fi=\"iframe-ready-for-launch-config\",Bi=\"iframe-launch-config\",Ui=\"theme-updated\",Vi=\"loading\",Ji=\"load-attempt-failed\",$i=\"loaded\",qi=\"started-camera\",zi=\"camera-error\",Wi=\"joining-meeting\",Hi=\"joined-meeting\",Gi=\"left-meeting\",Qi=\"participant-joined\",Ki=\"participant-updated\",Yi=\"participant-left\",Xi=\"participant-counts-updated\",Zi=\"access-state-updated\",eo=\"meeting-session-summary-updated\",to=\"meeting-session-state-updated\",no=\"meeting-session-data-error\",ro=\"waiting-participant-added\",io=\"waiting-participant-updated\",oo=\"waiting-participant-removed\",so=\"track-started\",ao=\"track-stopped\",co=\"transcription-started\",lo=\"transcription-stopped\",uo=\"transcription-error\",po=\"recording-started\",ho=\"recording-stopped\",fo=\"recording-stats\",vo=\"recording-error\",go=\"recording-upload-completed\",mo=\"recording-data\",yo=\"app-message\",bo=\"transcription-message\",_o=\"remote-media-player-started\",wo=\"remote-media-player-updated\",So=\"remote-media-player-stopped\",ko=\"local-screen-share-started\",Mo=\"local-screen-share-stopped\",Co=\"local-screen-share-canceled\",Eo=\"active-speaker-change\",To=\"active-speaker-mode-change\",Oo=\"network-quality-change\",Po=\"network-connection\",Ao=\"cpu-load-change\",jo=\"face-counts-updated\",Io=\"fullscreen\",xo=\"exited-fullscreen\",Lo=\"live-streaming-started\",Do=\"live-streaming-updated\",No=\"live-streaming-stopped\",Ro=\"live-streaming-error\",Fo=\"lang-updated\",Bo=\"receive-settings-updated\",Uo=\"input-settings-updated\",Vo=\"nonfatal-error\",Jo=\"error\",$o=4096,qo=102400,zo=\"iframe-call-message\",Wo=\"local-screen-start\",Ho=\"daily-method-update-live-streaming-endpoints\",Go=\"transmit-log\",Qo=\"daily-custom-track\",Ko={NONE:\"none\",BGBLUR:\"background-blur\",BGIMAGE:\"background-image\",FACE_DETECTION:\"face-detection\"},Yo={NONE:\"none\",NOISE_CANCELLATION:\"noise-cancellation\"},Xo={PLAY:\"play\",PAUSE:\"pause\"},Zo=[\"jpg\",\"png\",\"jpeg\"],es=\"add-endpoints\",ts=\"remove-endpoints\",ns=\"sip-call-transfer\";function rs(){return!is()&&\"undefined\"!=typeof window&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:\"\"}function is(){return\"undefined\"!=typeof navigator&&navigator.product&&\"ReactNative\"===navigator.product}function os(){return navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function ss(){return!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)&&(function(e,t){if(!e||!t)return!0;switch(e){case\"Chrome\":return t.major>=75;case\"Safari\":return RTCRtpTransceiver.prototype.hasOwnProperty(\"currentDirection\")&&!(13===t.major&&0===t.minor&&0===t.point);case\"Firefox\":return t.major>=67}return!0}(ms(),ys())||is())}function as(){if(is())return!1;if(!document)return!1;var e=document.createElement(\"iframe\");return!!e.requestFullscreen||!!e.webkitRequestFullscreen}var cs=\"none\",ls=\"software\",us=\"hardware\";var ds=function(){try{var e,t=document.createElement(\"canvas\"),n=!1;(e=t.getContext(\"webgl2\",{failIfMajorPerformanceCaveat:!0}))||(n=!0,e=t.getContext(\"webgl2\"));var r=null!=e;return t.remove(),r?n?ls:us:cs}catch(e){return cs}}();function ps(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return!is()&&(ds!==cs&&(e?function(){if(gs())return!1;return[\"Chrome\",\"Firefox\"].includes(ms())}():function(){if(gs())return!1;var e=ms();if(\"Safari\"===e){var t=Ss();if(t.major<15||15===t.major&&t.minor<4)return!1}if(\"Chrome\"===e){return bs().major>=77}if(\"Firefox\"===e){return ks().major>=97}return[\"Chrome\",\"Firefox\",\"Safari\"].includes(e)}()))}function hs(){if(is())return!1;if(vs())return!1;if(\"undefined\"==typeof AudioWorkletNode)return!1;switch(ms()){case\"Chrome\":case\"Firefox\":return!0;case\"Safari\":var e=ys();return e.major>17||17===e.major&&e.minor>=4}return!1}function fs(){return os()&&\"undefined\"!=typeof MediaStreamTrack&&!function(){var e,t=ms();if(!rs())return!0;switch(t){case\"Chrome\":return(e=bs()).major&&e.major>0&&e.major<75;case\"Firefox\":return(e=ks()).major<91;case\"Safari\":return(e=Ss()).major<13||13===e.major&&e.minor<1;default:return!0}}()}function vs(){return rs().match(/Linux; Android/)}function gs(){var e,t=rs(),n=t.match(/Mac/)&&(!is()&&\"undefined\"!=typeof window&&null!==(e=window)&&void 0!==e&&null!==(e=e.navigator)&&void 0!==e&&e.maxTouchPoints?window.navigator.maxTouchPoints:0)>=5;return!!(t.match(/Mobi/)||t.match(/Android/)||n)||(!!rs().match(/DailyAnd\\//)||void 0)}function ms(){if(\"undefined\"!=typeof window){var e=rs();return _s()?\"Safari\":e.indexOf(\"Edge\")>-1?\"Edge\":e.match(/Chrome\\//)?\"Chrome\":e.indexOf(\"Safari\")>-1||ws()?\"Safari\":e.indexOf(\"Firefox\")>-1?\"Firefox\":e.indexOf(\"MSIE\")>-1||e.indexOf(\".NET\")>-1?\"IE\":\"Unknown Browser\"}}function ys(){switch(ms()){case\"Chrome\":return bs();case\"Safari\":return Ss();case\"Firefox\":return ks();case\"Edge\":return function(){var e=0,t=0;if(\"undefined\"!=typeof window){var n=rs().match(/Edge\\/(\\d+).(\\d+)/);if(n)try{e=parseInt(n[1]),t=parseInt(n[2])}catch(e){}}return{major:e,minor:t}}()}}function bs(){var e=0,t=0,n=0,r=0,i=!1;if(\"undefined\"!=typeof window){var o=rs(),s=o.match(/Chrome\\/(\\d+).(\\d+).(\\d+).(\\d+)/);if(s)try{e=parseInt(s[1]),t=parseInt(s[2]),n=parseInt(s[3]),r=parseInt(s[4]),i=o.indexOf(\"OPR/\")>-1}catch(e){}}return{major:e,minor:t,build:n,patch:r,opera:i}}function _s(){return!!rs().match(/iPad|iPhone|iPod/i)&&os()}function ws(){return rs().indexOf(\"AppleWebKit/605.1.15\")>-1}function Ss(){var e=0,t=0,n=0;if(\"undefined\"!=typeof window){var r=rs().match(/Version\\/(\\d+).(\\d+)(.(\\d+))?/);if(r)try{e=parseInt(r[1]),t=parseInt(r[2]),n=parseInt(r[4])}catch(e){}else(_s()||ws())&&(e=14,t=0,n=3)}return{major:e,minor:t,point:n}}function ks(){var e=0,t=0;if(\"undefined\"!=typeof window){var n=rs().match(/Firefox\\/(\\d+).(\\d+)/);if(n)try{e=parseInt(n[1]),t=parseInt(n[2])}catch(e){}}return{major:e,minor:t}}var Ms=function(){return o((function e(){t(this,e)}),[{key:\"addListenerForMessagesFromCallMachine\",value:function(e,t,n){R()}},{key:\"addListenerForMessagesFromDailyJs\",value:function(e,t,n){R()}},{key:\"sendMessageToCallMachine\",value:function(e,t,n,r){R()}},{key:\"sendMessageToDailyJs\",value:function(e,t){R()}},{key:\"removeListener\",value:function(e){R()}}])}();function Cs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Es(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cs(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ts(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ts=function(){return!!e})()}var Os=function(){function e(){var n,r,i,o;return t(this,e),r=this,i=a(i=e),(n=s(r,Ts()?Reflect.construct(i,o||[],a(r).constructor):i.apply(r,o)))._wrappedListeners={},n._messageCallbacks={},n}return l(e,Ms),o(e,[{key:\"addListenerForMessagesFromCallMachine\",value:function(e,t,n){var r=this,i=function(i){if(i.data&&\"iframe-call-message\"===i.data.what&&(!i.data.callClientId||i.data.callClientId===t)&&(!i.data.from||\"module\"!==i.data.from)){var o=Es({},i.data);if(delete o.from,o.callbackStamp&&r._messageCallbacks[o.callbackStamp]){var s=o.callbackStamp;r._messageCallbacks[s].call(n,o),delete r._messageCallbacks[s]}delete o.what,delete o.callbackStamp,e.call(n,o)}};this._wrappedListeners[e]=i,window.addEventListener(\"message\",i)}},{key:\"addListenerForMessagesFromDailyJs\",value:function(e,t,n){var r=function(r){var i;if(!(!r.data||r.data.what!==zo||!r.data.action||r.data.from&&\"module\"!==r.data.from||r.data.callClientId&&t&&r.data.callClientId!==t||null!=r&&null!==(i=r.data)&&void 0!==i&&i.callFrameId)){var o=r.data;e.call(n,o)}};this._wrappedListeners[e]=r,window.addEventListener(\"message\",r)}},{key:\"sendMessageToCallMachine\",value:function(e,t,n,r){if(!n)throw new Error(\"undefined callClientId. Are you trying to use a DailyCall instance previously destroyed?\");var i=Es({},e);if(i.what=zo,i.from=\"module\",i.callClientId=n,t){var o=N();this._messageCallbacks[o]=t,i.callbackStamp=o}var s=r?r.contentWindow:window,a=this._callMachineTargetOrigin(r);a&&s.postMessage(i,a)}},{key:\"sendMessageToDailyJs\",value:function(e,t){e.what=zo,e.callClientId=t,e.from=\"embedded\",window.postMessage(e,this._targetOriginFromWindowLocation())}},{key:\"removeListener\",value:function(e){var t=this._wrappedListeners[e];t&&(window.removeEventListener(\"message\",t),delete this._wrappedListeners[e])}},{key:\"forwardPackagedMessageToCallMachine\",value:function(e,t,n){var r=Es({},e);r.callClientId=n;var i=t?t.contentWindow:window,o=this._callMachineTargetOrigin(t);o&&i.postMessage(r,o)}},{key:\"addListenerForPackagedMessagesFromCallMachine\",value:function(e,t){var n=function(n){if(n.data&&\"iframe-call-message\"===n.data.what&&(!n.data.callClientId||n.data.callClientId===t)&&(!n.data.from||\"module\"!==n.data.from)){var r=n.data;e(r)}};return this._wrappedListeners[e]=n,window.addEventListener(\"message\",n),e}},{key:\"removeListenerForPackagedMessagesFromCallMachine\",value:function(e){var t=this._wrappedListeners[e];t&&(window.removeEventListener(\"message\",t),delete this._wrappedListeners[e])}},{key:\"_callMachineTargetOrigin\",value:function(e){return e?e.src?new URL(e.src).origin:void 0:this._targetOriginFromWindowLocation()}},{key:\"_targetOriginFromWindowLocation\",value:function(){return\"file:\"===window.location.protocol?\"*\":window.location.origin}}])}();function Ps(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function As(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(As=function(){return!!e})()}var js=function(){function e(){var n,r,i,o;return t(this,e),r=this,i=a(i=e),n=s(r,As()?Reflect.construct(i,o||[],a(r).constructor):i.apply(r,o)),global.callMachineToDailyJsEmitter=global.callMachineToDailyJsEmitter||new y.EventEmitter,global.dailyJsToCallMachineEmitter=global.dailyJsToCallMachineEmitter||new y.EventEmitter,n._wrappedListeners={},n._messageCallbacks={},n}return l(e,Ms),o(e,[{key:\"addListenerForMessagesFromCallMachine\",value:function(e,t,n){this._addListener(e,global.callMachineToDailyJsEmitter,t,n,\"received call machine message\")}},{key:\"addListenerForMessagesFromDailyJs\",value:function(e,t,n){this._addListener(e,global.dailyJsToCallMachineEmitter,t,n,\"received daily-js message\")}},{key:\"sendMessageToCallMachine\",value:function(e,t,n){this._sendMessage(e,global.dailyJsToCallMachineEmitter,n,t,\"sending message to call machine\")}},{key:\"sendMessageToDailyJs\",value:function(e,t){this._sendMessage(e,global.callMachineToDailyJsEmitter,t,null,\"sending message to daily-js\")}},{key:\"removeListener\",value:function(e){var t=this._wrappedListeners[e];t&&(global.callMachineToDailyJsEmitter.removeListener(\"message\",t),global.dailyJsToCallMachineEmitter.removeListener(\"message\",t),delete this._wrappedListeners[e])}},{key:\"_addListener\",value:function(e,t,n,r,i){var o=this,s=function(t){if(t.callClientId===n){if(t.callbackStamp&&o._messageCallbacks[t.callbackStamp]){var i=t.callbackStamp;o._messageCallbacks[i].call(r,t),delete o._messageCallbacks[i]}e.call(r,t)}};this._wrappedListeners[e]=s,t.addListener(\"message\",s)}},{key:\"_sendMessage\",value:function(e,t,n,r,i){var o=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ps(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ps(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e);if(o.callClientId=n,r){var s=N();this._messageCallbacks[s]=r,o.callbackStamp=s}t.emit(\"message\",o)}}])}(),Is=\"replace\",xs=\"shallow-merge\",Ls=[Is,xs];var Ds=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.data,i=n.mergeStrategy,o=void 0===i?Is:i;t(this,e),e._validateMergeStrategy(o),e._validateData(r,o),this.mergeStrategy=o,this.data=r}return o(e,[{key:\"isNoOp\",value:function(){return e.isNoOpUpdate(this.data,this.mergeStrategy)}}],[{key:\"isNoOpUpdate\",value:function(e,t){return 0===Object.keys(e).length&&t===xs}},{key:\"_validateMergeStrategy\",value:function(e){if(!Ls.includes(e))throw Error(\"Unrecognized mergeStrategy provided. Options are: [\".concat(Ls,\"]\"))}},{key:\"_validateData\",value:function(e,t){if(!function(e){if(null==e||\"object\"!==n(e))return!1;var t=Object.getPrototypeOf(e);return null==t||t===Object.prototype}(e))throw Error(\"Meeting session data must be a plain (map-like) object\");var r;try{if(r=JSON.stringify(e),t===Is){var i=JSON.parse(r);S(i,e)||console.warn(\"The meeting session data provided will be modified when serialized.\",i,e)}else if(t===xs)for(var o in e)if(Object.hasOwnProperty.call(e,o)&&void 0!==e[o]){var s=JSON.parse(JSON.stringify(e[o]));S(e[o],s)||console.warn(\"At least one key in the meeting session data provided will be modified when serialized.\",s,e[o])}}catch(e){throw Error(\"Meeting session data must be serializable to JSON: \".concat(e))}if(r.length>qo)throw Error(\"Meeting session data is too large (\".concat(r.length,\" characters). Maximum size suppported is \").concat(qo,\".\"))}}])}();function Ns(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ns=function(){return!!e})()}function Rs(e){var t=\"function\"==typeof Map?new Map:void 0;return Rs=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf(\"[native code]\")}catch(t){return\"function\"==typeof e}}(e))return e;if(\"function\"!=typeof e)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(Ns())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&c(i,n.prototype),i}(e,arguments,a(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,e)},Rs(e)}function Fs(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Fs=function(){return!!e})()}function Bs(e){var t,n=null===(t=window._daily)||void 0===t?void 0:t.pendings;if(n){var r=n.indexOf(e);-1!==r&&n.splice(r,1)}}var Us=function(){return o((function e(n){t(this,e),this._currentLoad=null,this._callClientId=n}),[{key:\"load\",value:function(){var e,t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;if(this.loaded)return window._daily.instances[this._callClientId].callMachine.reset(),void r(!0);e=this._callClientId,window._daily.pendings.push(e),this._currentLoad&&this._currentLoad.cancel(),this._currentLoad=new Vs(n,(function(){r(!1)}),(function(e,n){n||Bs(t._callClientId),i(e,n)})),this._currentLoad.start()}},{key:\"cancel\",value:function(){this._currentLoad&&this._currentLoad.cancel(),Bs(this._callClientId)}},{key:\"loaded\",get:function(){return this._currentLoad&&this._currentLoad.succeeded}}])}(),Vs=function(){return o((function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;t(this,e),this._attemptsRemaining=3,this._currentAttempt=null,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i}),[{key:\"start\",value:function(){var e=this;if(!this._currentAttempt){var t=function(n){e._currentAttempt.cancelled||(e._attemptsRemaining--,e._failureCallback(n,e._attemptsRemaining>0),e._attemptsRemaining<=0||setTimeout((function(){e._currentAttempt.cancelled||(e._currentAttempt=new qs(e._dailyConfig,e._successCallback,t),e._currentAttempt.start())}),3e3))};this._currentAttempt=new qs(this._dailyConfig,this._successCallback,t),this._currentAttempt.start()}}},{key:\"cancel\",value:function(){this._currentAttempt&&this._currentAttempt.cancel()}},{key:\"cancelled\",get:function(){return this._currentAttempt&&this._currentAttempt.cancelled}},{key:\"succeeded\",get:function(){return this._currentAttempt&&this._currentAttempt.succeeded}}])}(),Js=function(){function e(){return t(this,e),n=this,i=arguments,r=a(r=e),s(n,Fs()?Reflect.construct(r,i||[],a(n).constructor):r.apply(n,i));var n,r,i}return l(e,Rs(Error)),o(e)}(),$s=2e4,qs=function(){return o((function e(n,r,i){t(this,e),this._loadAttemptImpl=is()||!n.avoidEval?new zs(n,r,i):new Ws(n,r,i)}),[{key:\"start\",value:(e=p((function*(){return this._loadAttemptImpl.start()})),function(){return e.apply(this,arguments)})},{key:\"cancel\",value:function(){this._loadAttemptImpl.cancel()}},{key:\"cancelled\",get:function(){return this._loadAttemptImpl.cancelled}},{key:\"succeeded\",get:function(){return this._loadAttemptImpl.succeeded}}]);var e}(),zs=function(){return o((function e(n,r,i){t(this,e),this.cancelled=!1,this.succeeded=!1,this._networkTimedOut=!1,this._networkTimeout=null,this._iosCache=\"undefined\"!=typeof iOSCallObjectBundleCache&&iOSCallObjectBundleCache,this._refetchHeaders=null,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i}),[{key:\"start\",value:(i=p((function*(){var e=B(this._dailyConfig);!(yield this._tryLoadFromIOSCache(e))&&this._loadFromNetwork(e)})),function(){return i.apply(this,arguments)})},{key:\"cancel\",value:function(){clearTimeout(this._networkTimeout),this.cancelled=!0}},{key:\"_tryLoadFromIOSCache\",value:(r=p((function*(e){if(!this._iosCache)return!1;try{var t=yield this._iosCache.get(e);return!!this.cancelled||!!t&&(t.code?(Function('\"use strict\";'+t.code)(),this.succeeded=!0,this._successCallback(),!0):(this._refetchHeaders=t.refetchHeaders,!1))}catch(e){return!1}})),function(e){return r.apply(this,arguments)})},{key:\"_loadFromNetwork\",value:(n=p((function*(e){var t=this;this._networkTimeout=setTimeout((function(){t._networkTimedOut=!0,t._failureCallback({msg:\"Timed out (>\".concat($s,\" ms) when loading call object bundle \").concat(e),type:\"timeout\"})}),$s);try{var n=this._refetchHeaders?{headers:this._refetchHeaders}:{},r=yield fetch(e,n);if(clearTimeout(this._networkTimeout),this.cancelled||this._networkTimedOut)throw new Js;var i=yield this._getBundleCodeFromResponse(e,r);if(this.cancelled)throw new Js;Function('\"use strict\";'+i)(),this._iosCache&&this._iosCache.set(e,i,r.headers),this.succeeded=!0,this._successCallback()}catch(t){if(clearTimeout(this._networkTimeout),t instanceof Js||this.cancelled||this._networkTimedOut)return;this._failureCallback({msg:\"Failed to load call object bundle \".concat(e,\": \").concat(t),type:t.message})}})),function(e){return n.apply(this,arguments)})},{key:\"_getBundleCodeFromResponse\",value:(e=p((function*(e,t){if(t.ok)return yield t.text();if(this._iosCache&&304===t.status)return(yield this._iosCache.renew(e,t.headers)).code;throw new Error(\"Received \".concat(t.status,\" response\"))})),function(t,n){return e.apply(this,arguments)})}]);var e,n,r,i}(),Ws=function(){return o((function e(n,r,i){t(this,e),this.cancelled=!1,this.succeeded=!1,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i,this._attemptId=N(),this._networkTimeout=null,this._scriptElement=null}),[{key:\"start\",value:function(){window._dailyCallMachineLoadWaitlist||(window._dailyCallMachineLoadWaitlist=new Set);var e=B(this._dailyConfig);\"object\"===(\"undefined\"==typeof document?\"undefined\":n(document))?this._startLoading(e):this._failureCallback({msg:\"Call object bundle must be loaded in a DOM/web context\",type:\"missing context\"})}},{key:\"cancel\",value:function(){this._stopLoading(),this.cancelled=!0}},{key:\"_startLoading\",value:function(e){var t=this;this._signUpForCallMachineLoadWaitlist(),this._networkTimeout=setTimeout((function(){t._stopLoading(),t._failureCallback({msg:\"Timed out (>\".concat($s,\" ms) when loading call object bundle \").concat(e),type:\"timeout\"})}),$s);var n=document.getElementsByTagName(\"head\")[0],r=document.createElement(\"script\");this._scriptElement=r,r.onload=function(){t._stopLoading(),t.succeeded=!0,t._successCallback()},r.onerror=function(e){t._stopLoading(),t._failureCallback({msg:\"Failed to load call object bundle \".concat(e.target.src),type:e.message})},r.src=e,n.appendChild(r)}},{key:\"_stopLoading\",value:function(){this._withdrawFromCallMachineLoadWaitlist(),clearTimeout(this._networkTimeout),this._scriptElement&&(this._scriptElement.onload=null,this._scriptElement.onerror=null)}},{key:\"_signUpForCallMachineLoadWaitlist\",value:function(){window._dailyCallMachineLoadWaitlist.add(this._attemptId)}},{key:\"_withdrawFromCallMachineLoadWaitlist\",value:function(){window._dailyCallMachineLoadWaitlist.delete(this._attemptId)}}])}(),Hs=function(e,t,n){return!0===Ks(e.local,t,n)},Gs=function(e,t,n){return e.local.streams&&e.local.streams[t]&&e.local.streams[t].stream&&e.local.streams[t].stream[\"get\".concat(\"video\"===n?\"Video\":\"Audio\",\"Tracks\")]()[0]},Qs=function(e,t,n,r){var i=Ys(e,t,n,r);return i&&i.pendingTrack},Ks=function(e,t,n){if(!e)return!1;var r=function(e){switch(e){case\"avatar\":return!0;case\"staged\":return e;default:return!!e}},i=e.public.subscribedTracks;return i&&i[t]?-1===[\"cam-audio\",\"cam-video\",\"screen-video\",\"screen-audio\",\"rmpAudio\",\"rmpVideo\"].indexOf(n)&&i[t].custom?[!0,\"staged\"].includes(i[t].custom)?r(i[t].custom):r(i[t].custom[n]):r(i[t][n]):!i||r(i.ALL)},Ys=function(e,t,n,r){var i=Object.values(e.streams||{}).filter((function(e){return e.participantId===t&&e.type===n&&e.pendingTrack&&e.pendingTrack.kind===r})).sort((function(e,t){return new Date(t.starttime)-new Date(e.starttime)}));return i&&i[0]},Xs=function(e,t){var n=e.local.public.customTracks;if(n&&n[t])return n[t].track};function Zs(e,t){for(var n=t.getState(),r=0,i=[\"cam\",\"screen\"];r<i.length;r++)for(var o=i[r],s=0,a=[\"video\",\"audio\"];s<a.length;s++){var c=a[s],l=\"cam\"===o?c:\"screen\".concat(c.charAt(0).toUpperCase()+c.slice(1)),u=e.tracks[l];if(u){var d=e.local?Gs(n,o,c):Qs(n,e.session_id,o,c);\"playable\"===u.state&&(u.track=d),u.persistentTrack=d}}}function ea(e,t){try{var n=t.getState();for(var r in e.tracks)if(!ta(r)){var i=e.tracks[r].kind;if(i){var o=e.tracks[r];if(o){var s=e.local?Xs(n,r):Qs(n,e.session_id,r,i);\"playable\"===o.state&&(e.tracks[r].track=s),o.persistentTrack=s}}else console.error(\"unknown type for custom track\")}}catch(e){console.error(e)}}function ta(e){return[\"video\",\"audio\",\"screenVideo\",\"screenAudio\"].includes(e)}function na(e,t,n){var r=n.getState();if(e.local){if(e.audio)try{e.audioTrack=r.local.streams.cam.stream.getAudioTracks()[0],e.audioTrack||(e.audio=!1)}catch(e){}if(e.video)try{e.videoTrack=r.local.streams.cam.stream.getVideoTracks()[0],e.videoTrack||(e.video=!1)}catch(e){}if(e.screen)try{e.screenVideoTrack=r.local.streams.screen.stream.getVideoTracks()[0],e.screenAudioTrack=r.local.streams.screen.stream.getAudioTracks()[0],e.screenVideoTrack||e.screenAudioTrack||(e.screen=!1)}catch(e){}}else{var i=!0;try{var o=r.participants[e.session_id];o&&o.public&&o.public.rtcType&&\"peer-to-peer\"===o.public.rtcType.impl&&o.private&&![\"connected\",\"completed\"].includes(o.private.peeringState)&&(i=!1)}catch(e){console.error(e)}if(!i)return e.audio=!1,e.audioTrack=!1,e.video=!1,e.videoTrack=!1,e.screen=!1,void(e.screenTrack=!1);try{r.streams;if(e.audio&&Hs(r,e.session_id,\"cam-audio\")){var s=Qs(r,e.session_id,\"cam\",\"audio\");s&&(t&&t.audioTrack&&t.audioTrack.id===s.id?e.audioTrack=s:s.muted||(e.audioTrack=s)),e.audioTrack||(e.audio=!1)}if(e.video&&Hs(r,e.session_id,\"cam-video\")){var a=Qs(r,e.session_id,\"cam\",\"video\");a&&(t&&t.videoTrack&&t.videoTrack.id===a.id?e.videoTrack=a:a.muted||(e.videoTrack=a)),e.videoTrack||(e.video=!1)}if(e.screen&&Hs(r,e.session_id,\"screen-audio\")){var c=Qs(r,e.session_id,\"screen\",\"audio\");c&&(t&&t.screenAudioTrack&&t.screenAudioTrack.id===c.id?e.screenAudioTrack=c:c.muted||(e.screenAudioTrack=c))}if(e.screen&&Hs(r,e.session_id,\"screen-video\")){var l=Qs(r,e.session_id,\"screen\",\"video\");l&&(t&&t.screenVideoTrack&&t.screenVideoTrack.id===l.id?e.screenVideoTrack=l:l.muted||(e.screenVideoTrack=l))}e.screenVideoTrack||e.screenAudioTrack||(e.screen=!1)}catch(e){console.error(\"unexpected error matching up tracks\",e)}}}function ra(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return ia(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ia(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function ia(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var oa=new Map,sa=null;function aa(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return ca(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ca(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function ca(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var la=new Map,ua=null;function da(e){ha()?function(e){oa.has(e)||(oa.set(e,{}),navigator.mediaDevices.enumerateDevices().then((function(t){oa.has(e)&&(oa.get(e).lastDevicesString=JSON.stringify(t),sa||(sa=function(){var e=p((function*(){var e,t=yield navigator.mediaDevices.enumerateDevices(),n=ra(oa.keys());try{for(n.s();!(e=n.n()).done;){var r=e.value,i=JSON.stringify(t);i!==oa.get(r).lastDevicesString&&(oa.get(r).lastDevicesString=i,r(t))}}catch(e){n.e(e)}finally{n.f()}}));return function(){return e.apply(this,arguments)}}(),navigator.mediaDevices.addEventListener(\"devicechange\",sa)))})).catch((function(){})))}(e):function(e){la.has(e)||(la.set(e,{}),navigator.mediaDevices.enumerateDevices().then((function(t){la.has(e)&&(la.get(e).lastDevicesString=JSON.stringify(t),ua||(ua=setInterval(p((function*(){var e,t=yield navigator.mediaDevices.enumerateDevices(),n=aa(la.keys());try{for(n.s();!(e=n.n()).done;){var r=e.value,i=JSON.stringify(t);i!==la.get(r).lastDevicesString&&(la.get(r).lastDevicesString=i,r(t))}}catch(e){n.e(e)}finally{n.f()}})),3e3)))})))}(e)}function pa(e){ha()?function(e){oa.has(e)&&(oa.delete(e),0===oa.size&&sa&&(navigator.mediaDevices.removeEventListener(\"devicechange\",sa),sa=null))}(e):function(e){la.has(e)&&(la.delete(e),0===la.size&&ua&&(clearInterval(ua),ua=null))}(e)}function ha(){var e;return is()||void 0!==(null===(e=navigator.mediaDevices)||void 0===e?void 0:e.ondevicechange)}var fa=new Set;function va(e,t){var n=t.isLocalScreenVideo;return e&&\"live\"===e.readyState&&!function(e,t){return(!t.isLocalScreenVideo||\"Chrome\"!==ms())&&e.muted&&!fa.has(e.id)}(e,{isLocalScreenVideo:n})}function ga(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ma(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ga(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ga(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ya=Object.freeze({VIDEO:\"video\",AUDIO:\"audio\",SCREEN_VIDEO:\"screenVideo\",SCREEN_AUDIO:\"screenAudio\",CUSTOM_VIDEO:\"customVideo\",CUSTOM_AUDIO:\"customAudio\"}),ba=Object.freeze({PARTICIPANTS:\"participants\",STREAMING:\"streaming\",TRANSCRIPTION:\"transcription\"}),_a=Object.values(ya),wa=[\"v\",\"a\",\"sv\",\"sa\",\"cv\",\"ca\"];Object.freeze(_a.reduce((function(e,t,n){return e[t]=wa[n],e}),{})),Object.freeze(wa.reduce((function(e,t,n){return e[t]=_a[n],e}),{}));var Sa=[ya.VIDEO,ya.AUDIO,ya.SCREEN_VIDEO,ya.SCREEN_AUDIO],ka=Object.values(ba),Ma=[\"p\",\"s\",\"t\"];Object.freeze(ka.reduce((function(e,t,n){return e[t]=Ma[n],e}),{})),Object.freeze(Ma.reduce((function(e,t,n){return e[t]=ka[n],e}),{}));var Ca=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.base,i=n.byUserId,o=n.byParticipantId;t(this,e),this.base=r,this.byUserId=i,this.byParticipantId=o}return o(e,[{key:\"clone\",value:function(){var t=new e;if(this.base instanceof Ea?t.base=this.base.clone():t.base=this.base,void 0!==this.byUserId)for(var n in t.byUserId={},this.byUserId){var r=this.byUserId[n];t.byUserId[n]=r instanceof Ea?r.clone():r}if(void 0!==this.byParticipantId)for(var i in t.byParticipantId={},this.byParticipantId){var o=this.byParticipantId[i];t.byParticipantId[i]=o instanceof Ea?o.clone():o}return t}},{key:\"toJSONObject\",value:function(){var e={};if(\"boolean\"==typeof this.base?e.base=this.base:this.base instanceof Ea&&(e.base=this.base.toJSONObject()),void 0!==this.byUserId)for(var t in e.byUserId={},this.byUserId){var n=this.byUserId[t];e.byUserId[t]=n instanceof Ea?n.toJSONObject():n}if(void 0!==this.byParticipantId)for(var r in e.byParticipantId={},this.byParticipantId){var i=this.byParticipantId[r];e.byParticipantId[r]=i instanceof Ea?i.toJSONObject():i}return e}},{key:\"toMinifiedJSONObject\",value:function(){var e={};if(void 0!==this.base&&(\"boolean\"==typeof this.base?e.b=this.base:e.b=this.base.toMinifiedJSONObject()),void 0!==this.byUserId)for(var t in e.u={},this.byUserId){var n=this.byUserId[t];e.u[t]=\"boolean\"==typeof n?n:n.toMinifiedJSONObject()}if(void 0!==this.byParticipantId)for(var r in e.p={},this.byParticipantId){var i=this.byParticipantId[r];e.p[r]=\"boolean\"==typeof i?i:i.toMinifiedJSONObject()}return e}},{key:\"normalize\",value:function(){return this.base instanceof Ea&&(this.base=this.base.normalize()),this.byUserId&&(this.byUserId=Object.fromEntries(Object.entries(this.byUserId).map((function(e){var t=f(e,2),n=t[0],r=t[1];return[n,r instanceof Ea?r.normalize():r]})))),this.byParticipantId&&(this.byParticipantId=Object.fromEntries(Object.entries(this.byParticipantId).map((function(e){var t=f(e,2),n=t[0],r=t[1];return[n,r instanceof Ea?r.normalize():r]})))),this}}],[{key:\"fromJSONObject\",value:function(t){var n,r,i;if(void 0!==t.base&&(n=\"boolean\"==typeof t.base?t.base:Ea.fromJSONObject(t.base)),void 0!==t.byUserId)for(var o in r={},t.byUserId){var s=t.byUserId[o];r[o]=\"boolean\"==typeof s?s:Ea.fromJSONObject(s)}if(void 0!==t.byParticipantId)for(var a in i={},t.byParticipantId){var c=t.byParticipantId[a];i[a]=\"boolean\"==typeof c?c:Ea.fromJSONObject(c)}return new e({base:n,byUserId:r,byParticipantId:i})}},{key:\"fromMinifiedJSONObject\",value:function(t){var n,r,i;if(void 0!==t.b&&(n=\"boolean\"==typeof t.b?t.b:Ea.fromMinifiedJSONObject(t.b)),void 0!==t.u)for(var o in r={},t.u){var s=t.u[o];r[o]=\"boolean\"==typeof s?s:Ea.fromMinifiedJSONObject(s)}if(void 0!==t.p)for(var a in i={},t.p){var c=t.p[a];i[a]=\"boolean\"==typeof c?c:Ea.fromMinifiedJSONObject(c)}return new e({base:n,byUserId:r,byParticipantId:i})}},{key:\"validateJSONObject\",value:function(e){if(\"object\"!==n(e))return[!1,\"canReceive must be an object\"];for(var t=[\"base\",\"byUserId\",\"byParticipantId\"],r=0,i=Object.keys(e);r<i.length;r++){var o=i[r];if(!t.includes(o))return[!1,\"canReceive can only contain keys (\".concat(t.join(\", \"),\")\")];if(\"base\"===o){var s=f(Ea.validateJSONObject(e.base,!0),2),a=s[0],c=s[1];if(!a)return[!1,c]}else{if(\"object\"!==n(e[o]))return[!1,\"invalid (non-object) value for field '\".concat(o,\"' in canReceive\")];for(var l=0,u=Object.values(e[o]);l<u.length;l++){var d=u[l],p=f(Ea.validateJSONObject(d),2),h=p[0],v=p[1];if(!h)return[!1,v]}}}return[!0]}}])}(),Ea=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.video,i=n.audio,o=n.screenVideo,s=n.screenAudio,a=n.customVideo,c=n.customAudio;t(this,e),this.video=r,this.audio=i,this.screenVideo=o,this.screenAudio=s,this.customVideo=a,this.customAudio=c}return o(e,[{key:\"clone\",value:function(){var t=new e;return void 0!==this.video&&(t.video=this.video),void 0!==this.audio&&(t.audio=this.audio),void 0!==this.screenVideo&&(t.screenVideo=this.screenVideo),void 0!==this.screenAudio&&(t.screenAudio=this.screenAudio),void 0!==this.customVideo&&(t.customVideo=ma({},this.customVideo)),void 0!==this.customAudio&&(t.customAudio=ma({},this.customAudio)),t}},{key:\"toJSONObject\",value:function(){var e={};return void 0!==this.video&&(e.video=this.video),void 0!==this.audio&&(e.audio=this.audio),void 0!==this.screenVideo&&(e.screenVideo=this.screenVideo),void 0!==this.screenAudio&&(e.screenAudio=this.screenAudio),void 0!==this.customVideo&&(e.customVideo=ma({},this.customVideo)),void 0!==this.customAudio&&(e.customAudio=ma({},this.customAudio)),e}},{key:\"toMinifiedJSONObject\",value:function(){var e={};return void 0!==this.video&&(e.v=this.video),void 0!==this.audio&&(e.a=this.audio),void 0!==this.screenVideo&&(e.sv=this.screenVideo),void 0!==this.screenAudio&&(e.sa=this.screenAudio),void 0!==this.customVideo&&(e.cv=ma({},this.customVideo)),void 0!==this.customAudio&&(e.ca=ma({},this.customAudio)),e}},{key:\"normalize\",value:function(){function e(e,t){return e&&1===Object.keys(e).length&&e[\"*\"]===t}return!(!0!==this.video||!0!==this.audio||!0!==this.screenVideo||!0!==this.screenAudio||!e(this.customVideo,!0)||!e(this.customAudio,!0))||(!1!==this.video||!1!==this.audio||!1!==this.screenVideo||!1!==this.screenAudio||!e(this.customVideo,!1)||!e(this.customAudio,!1))&&this}}],[{key:\"fromBoolean\",value:function(t){return new e({video:t,audio:t,screenVideo:t,screenAudio:t,customVideo:{\"*\":t},customAudio:{\"*\":t}})}},{key:\"fromJSONObject\",value:function(t){return new e({video:t.video,audio:t.audio,screenVideo:t.screenVideo,screenAudio:t.screenAudio,customVideo:void 0!==t.customVideo?ma({},t.customVideo):void 0,customAudio:void 0!==t.customAudio?ma({},t.customAudio):void 0})}},{key:\"fromMinifiedJSONObject\",value:function(t){return new e({video:t.v,audio:t.a,screenVideo:t.sv,screenAudio:t.sa,customVideo:t.cv,customAudio:t.ca})}},{key:\"validateJSONObject\",value:function(e,t){if(\"boolean\"==typeof e)return[!0];if(\"object\"!==n(e))return[!1,\"invalid (non-object, non-boolean) value in canReceive\"];for(var r=Object.keys(e),i=0,o=r;i<o.length;i++){var s=o[i];if(!_a.includes(s))return[!1,\"invalid media type '\".concat(s,\"' in canReceive\")];if(Sa.includes(s)){if(\"boolean\"!=typeof e[s])return[!1,\"invalid (non-boolean) value for media type '\".concat(s,\"' in canReceive\")]}else{if(\"object\"!==n(e[s]))return[!1,\"invalid (non-object) value for media type '\".concat(s,\"' in canReceive\")];for(var a=0,c=Object.values(e[s]);a<c.length;a++){if(\"boolean\"!=typeof c[a])return[!1,\"invalid (non-boolean) value for entry within '\".concat(s,\"' in canReceive\")]}if(t&&void 0===e[s][\"*\"])return[!1,'canReceive \"base\" permission must specify \"*\" as an entry within \\''.concat(s,\"'\")]}}return t&&r.length!==_a.length?[!1,'canReceive \"base\" permission must specify all media types: '.concat(_a.join(\", \"),\" (or be set to a boolean shorthand)\")]:[!0]}}])}(),Ta=[\"result\"],Oa=[\"preserveIframe\"];function Pa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Aa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pa(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ja(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ja=function(){return!!e})()}function Ia(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return xa(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xa(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function xa(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var La={};var Da=\"video\",Na=\"voice\",Ra=is()?{data:{}}:{data:{},topology:\"none\"},Fa={present:0,hidden:0},Ba={maxBitrate:{min:1e5,max:25e5},maxFramerate:{min:1,max:30},scaleResolutionDownBy:{min:1,max:8}},Ua=Object.keys(Ba),Va=[\"state\",\"volume\",\"simulcastEncodings\"],Ja={androidInCallNotification:{title:\"string\",subtitle:\"string\",iconName:\"string\",disableForCustomOverride:\"boolean\"},disableAutoDeviceManagement:{audio:\"boolean\",video:\"boolean\"}},$a={id:{iconPath:\"string\",iconPathDarkMode:\"string\",label:\"string\",tooltip:\"string\",visualState:\"'default' | 'sidebar-open' | 'active'\"}},qa={id:{allow:\"string\",controlledBy:\"'*' | 'owners' | string[]\",csp:\"string\",iconURL:\"string\",label:\"string\",loading:\"'eager' | 'lazy'\",location:\"'main' | 'sidebar'\",name:\"string\",referrerPolicy:\"string\",sandbox:\"string\",src:\"string\",srcdoc:\"string\",shared:\"string[] | 'owners' | boolean\"}},za={customIntegrations:{validate:gc,help:fc()},customTrayButtons:{validate:vc,help:\"customTrayButtons should be a dictionary of the type \".concat(JSON.stringify($a))},url:{validate:function(e){return\"string\"==typeof e},help:\"url should be a string\"},baseUrl:{validate:function(e){return\"string\"==typeof e},help:\"baseUrl should be a string\"},token:{validate:function(e){return\"string\"==typeof e},help:\"token should be a string\",queryString:\"t\"},dailyConfig:{validate:function(e,t){try{return t.validateDailyConfig(e),!0}catch(e){console.error(\"Failed to validate dailyConfig\",e)}return!1},help:\"Unsupported dailyConfig. Check error logs for detailed info.\"},reactNativeConfig:{validate:function(e){return mc(e,Ja)},help:\"reactNativeConfig should look like \".concat(JSON.stringify(Ja),\", all fields optional\")},lang:{validate:function(e){return[\"da\",\"de\",\"en-us\",\"en\",\"es\",\"fi\",\"fr\",\"it\",\"jp\",\"ka\",\"nl\",\"no\",\"pl\",\"pt\",\"pt-BR\",\"ru\",\"sv\",\"tr\",\"user\"].includes(e)},help:\"language not supported. Options are: da, de, en-us, en, es, fi, fr, it, jp, ka, nl, no, pl, pt, pt-BR, ru, sv, tr, user\"},userName:!0,userData:{validate:function(e){try{return oc(e),!0}catch(e){return console.error(e),!1}},help:\"invalid userData type provided\"},startVideoOff:!0,startAudioOff:!0,allowLocalVideo:!0,allowLocalAudio:!0,activeSpeakerMode:!0,showLeaveButton:!0,showLocalVideo:!0,showParticipantsBar:!0,showFullscreenButton:!0,showUserNameChangeUI:!0,iframeStyle:!0,customLayout:!0,cssFile:!0,cssText:!0,bodyClass:!0,videoSource:{validate:function(e,t){if(\"boolean\"==typeof e)return t._preloadCache.allowLocalVideo=e,!0;var n;if(e instanceof MediaStreamTrack)t._sharedTracks.videoTrack=e,n={customTrack:Qo};else{if(delete t._sharedTracks.videoTrack,\"string\"!=typeof e)return console.error(\"videoSource must be a MediaStreamTrack, boolean, or a string\"),!1;n={deviceId:e}}return t._updatePreloadCacheInputSettings({video:{settings:n}},!1),!0}},audioSource:{validate:function(e,t){if(\"boolean\"==typeof e)return t._preloadCache.allowLocalAudio=e,!0;var n;if(e instanceof MediaStreamTrack)t._sharedTracks.audioTrack=e,n={customTrack:Qo};else{if(delete t._sharedTracks.audioTrack,\"string\"!=typeof e)return console.error(\"audioSource must be a MediaStreamTrack, boolean, or a string\"),!1;n={deviceId:e}}return t._updatePreloadCacheInputSettings({audio:{settings:n}},!1),!0}},subscribeToTracksAutomatically:{validate:function(e,t){return t._preloadCache.subscribeToTracksAutomatically=e,!0}},theme:{validate:function(e){var t=[\"accent\",\"accentText\",\"background\",\"backgroundAccent\",\"baseText\",\"border\",\"mainAreaBg\",\"mainAreaBgAccent\",\"mainAreaText\",\"supportiveText\"],r=function(e){for(var n=0,r=Object.keys(e);n<r.length;n++){var i=r[n];if(!t.includes(i))return console.error('unsupported color \"'.concat(i,'\". Valid colors: ').concat(t.join(\", \"))),!1;if(!e[i].match(/^#[0-9a-f]{6}|#[0-9a-f]{3}$/i))return console.error(\"\".concat(i,' theme color should be provided in valid hex color format. Received: \"').concat(e[i],'\"')),!1}return!0};return\"object\"===n(e)&&(\"light\"in e&&\"dark\"in e||\"colors\"in e)?\"light\"in e&&\"dark\"in e?\"colors\"in e.light?\"colors\"in e.dark?r(e.light.colors)&&r(e.dark.colors):(console.error('Dark theme is missing \"colors\" property.',e),!1):(console.error('Light theme is missing \"colors\" property.',e),!1):r(e.colors):(console.error('Theme must contain either both \"light\" and \"dark\" properties, or \"colors\".',e),!1)},help:\"unsupported theme configuration. Check error logs for detailed info.\"},layoutConfig:{validate:function(e){if(\"grid\"in e){var t=e.grid;if(\"maxTilesPerPage\"in t){if(!Number.isInteger(t.maxTilesPerPage))return console.error(\"grid.maxTilesPerPage should be an integer. You passed \".concat(t.maxTilesPerPage,\".\")),!1;if(t.maxTilesPerPage>49)return console.error(\"grid.maxTilesPerPage can't be larger than 49 without sacrificing browser performance. Please contact us at https://www.daily.co/contact to talk about your use case.\"),!1}if(\"minTilesPerPage\"in t){if(!Number.isInteger(t.minTilesPerPage))return console.error(\"grid.minTilesPerPage should be an integer. You passed \".concat(t.minTilesPerPage,\".\")),!1;if(t.minTilesPerPage<1)return console.error(\"grid.minTilesPerPage can't be lower than 1.\"),!1;if(\"maxTilesPerPage\"in t&&t.minTilesPerPage>t.maxTilesPerPage)return console.error(\"grid.minTilesPerPage can't be higher than grid.maxTilesPerPage.\"),!1}}return!0},help:\"unsupported layoutConfig. Check error logs for detailed info.\"},receiveSettings:{validate:function(e){return sc(e,{allowAllParticipantsKey:!1})},help:hc({allowAllParticipantsKey:!1})},sendSettings:{validate:function(e,t){return!!function(e,t){try{return t.validateUpdateSendSettings(e),!0}catch(e){return console.error(\"Failed to validate send settings\",e),!1}}(e,t)&&(t._preloadCache.sendSettings=e,!0)},help:\"Invalid sendSettings provided. Check error logs for detailed info.\"},inputSettings:{validate:function(e,t){var n;return!!ac(e)&&(t._inputSettings||(t._inputSettings={}),cc(e,null===(n=t.properties)||void 0===n?void 0:n.dailyConfig,t._sharedTracks),t._updatePreloadCacheInputSettings(e,!0),!0)},help:pc()},layout:{validate:function(e){return\"custom-v1\"===e||\"browser\"===e||\"none\"===e},help:'layout may only be set to \"custom-v1\"',queryString:\"layout\"},emb:{queryString:\"emb\"},embHref:{queryString:\"embHref\"},dailyJsVersion:{queryString:\"dailyJsVersion\"},proxy:{queryString:\"proxy\"},strictMode:!0,allowMultipleCallInstances:!0},Wa={styles:{validate:function(e){for(var t in e)if(\"cam\"!==t&&\"screen\"!==t)return!1;if(e.cam)for(var n in e.cam)if(\"div\"!==n&&\"video\"!==n)return!1;if(e.screen)for(var r in e.screen)if(\"div\"!==r&&\"video\"!==r)return!1;return!0},help:\"styles format should be a subset of: { cam: {div: {}, video: {}}, screen: {div: {}, video: {}} }\"},setSubscribedTracks:{validate:function(e,t){if(t._preloadCache.subscribeToTracksAutomatically)return!1;var n=[!0,!1,\"staged\"];if(n.includes(e)||!is()&&\"avatar\"===e)return!0;var r=[\"audio\",\"video\",\"screenAudio\",\"screenVideo\",\"rmpAudio\",\"rmpVideo\"],i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(var o in e)if(\"custom\"===o){if(!n.includes(e[o])&&!i(e[o],!0))return!1}else{var s=!t&&!r.includes(o),a=!n.includes(e[o]);if(s||a)return!1}return!0};return i(e)},help:\"setSubscribedTracks cannot be used when setSubscribeToTracksAutomatically is enabled, and should be of the form: \"+\"true\".concat(is()?\"\":\" | 'avatar'\",\" | false | 'staged' | { [audio: true|false|'staged'], [video: true|false|'staged'], [screenAudio: true|false|'staged'], [screenVideo: true|false|'staged'] }\")},setAudio:!0,setVideo:!0,setScreenShare:{validate:function(e){return!1===e},help:\"setScreenShare must be false, as it's only meant for stopping remote participants' screen shares\"},eject:!0,updatePermissions:{validate:function(e){for(var t=0,n=Object.entries(e);t<n.length;t++){var r=f(n[t],2),i=r[0],o=r[1];switch(i){case\"hasPresence\":if(\"boolean\"!=typeof o)return!1;break;case\"canSend\":if(o instanceof Set||o instanceof Array||Array.isArray(o)){var s,a=[\"video\",\"audio\",\"screenVideo\",\"screenAudio\",\"customVideo\",\"customAudio\"],c=Ia(o);try{for(c.s();!(s=c.n()).done;){var l=s.value;if(!a.includes(l))return!1}}catch(e){c.e(e)}finally{c.f()}}else if(\"boolean\"!=typeof o)return!1;(o instanceof Array||Array.isArray(o))&&(e.canSend=new Set(o));break;case\"canReceive\":var u=f(Ca.validateJSONObject(o),2),d=u[0],p=u[1];if(!d)return console.error(p),!1;break;case\"canAdmin\":if(o instanceof Set||o instanceof Array||Array.isArray(o)){var h,v=[\"participants\",\"streaming\",\"transcription\"],g=Ia(o);try{for(g.s();!(h=g.n()).done;){var m=h.value;if(!v.includes(m))return!1}}catch(e){g.e(e)}finally{g.f()}}else if(\"boolean\"!=typeof o)return!1;(o instanceof Array||Array.isArray(o))&&(e.canAdmin=new Set(o));break;default:return!1}}return!0},help:\"updatePermissions can take hasPresence, canSend, canReceive, and canAdmin permissions. hasPresence must be a boolean. canSend can be a boolean or an Array or Set of media types (video, audio, screenVideo, screenAudio, customVideo, customAudio). canReceive must be an object specifying base, byUserId, and/or byParticipantId fields (see documentation for more details). canAdmin can be a boolean or an Array or Set of admin types (participants, streaming, transcription).\"}};Promise.any||(Promise.any=function(){var e=p((function*(e){return new Promise((function(t,n){var r=[];e.forEach((function(i){return Promise.resolve(i).then((function(e){t(e)})).catch((function(t){r.push(t),r.length===e.length&&n(r)}))}))}))}));return function(t){return e.apply(this,arguments)}}());var Ha=function(){function r(e){var n,i,o,c,l,d,h=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,r),o=this,c=a(c=r),u(i=s(o,ja()?Reflect.construct(c,l||[],a(o).constructor):c.apply(o,l)),\"startListeningForDeviceChanges\",(function(){da(i.handleDeviceChange)})),u(i,\"stopListeningForDeviceChanges\",(function(){pa(i.handleDeviceChange)})),u(i,\"handleDeviceChange\",(function(e){e=e.map((function(e){return JSON.parse(JSON.stringify(e))})),i.emitDailyJSEvent({action:\"available-devices-updated\",availableDevices:e})})),u(i,\"handleNativeAppStateChange\",function(){var e=p((function*(e){if(\"destroyed\"===e)return console.warn(\"App has been destroyed before leaving the meeting. Cleaning up all the resources!\"),void(yield i.destroy());var t=\"active\"===e;i.disableReactNativeAutoDeviceManagement(\"video\")||(t?i.camUnmutedBeforeLosingNativeActiveState&&i.setLocalVideo(!0):(i.camUnmutedBeforeLosingNativeActiveState=i.localVideo(),i.camUnmutedBeforeLosingNativeActiveState&&i.setLocalVideo(!1)))}));return function(t){return e.apply(this,arguments)}}()),u(i,\"handleNativeAudioFocusChange\",(function(e){i.disableReactNativeAutoDeviceManagement(\"audio\")||(i._hasNativeAudioFocus=e,i.toggleParticipantAudioBasedOnNativeAudioFocus(),i._hasNativeAudioFocus?i.micUnmutedBeforeLosingNativeAudioFocus&&i.setLocalAudio(!0):(i.micUnmutedBeforeLosingNativeAudioFocus=i.localAudio(),i.setLocalAudio(!1)))})),u(i,\"handleNativeSystemScreenCaptureStop\",(function(){i.stopScreenShare()})),!fs()&&!is())throw new Error(\"WebRTC not supported or suppressed\");if(i.strictMode=void 0===h.strictMode||h.strictMode,i.allowMultipleCallInstances=null!==(n=h.allowMultipleCallInstances)&&void 0!==n&&n,Object.keys(La).length&&(i._logDuplicateInstanceAttempt(),!i.allowMultipleCallInstances)){if(i.strictMode)throw new Error(\"Duplicate DailyIframe instances are not allowed\");console.warn(\"Using strictMode: false to allow multiple call instances is now deprecated. Set `allowMultipleCallInstances: true`\")}if(window._daily||(window._daily={pendings:[],instances:{}}),i.callClientId=N(),La[(d=i).callClientId]=d,window._daily.instances[i.callClientId]={},i._sharedTracks={},window._daily.instances[i.callClientId].tracks=i._sharedTracks,h.dailyJsVersion=r.version(),i._iframe=e,i._callObjectMode=\"none\"===h.layout&&!i._iframe,i._preloadCache={subscribeToTracksAutomatically:!0,outputDeviceId:null,inputSettings:null,sendSettings:null,videoTrackForNetworkConnectivityTest:null,videoTrackForConnectionQualityTest:null},void 0!==h.showLocalVideo?i._callObjectMode?console.error(\"showLocalVideo is not available in call object mode\"):i._showLocalVideo=!!h.showLocalVideo:i._showLocalVideo=!0,void 0!==h.showParticipantsBar?i._callObjectMode?console.error(\"showParticipantsBar is not available in call object mode\"):i._showParticipantsBar=!!h.showParticipantsBar:i._showParticipantsBar=!0,void 0!==h.customIntegrations?i._callObjectMode?console.error(\"customIntegrations is not available in call object mode\"):i._customIntegrations=h.customIntegrations:i._customIntegrations={},void 0!==h.customTrayButtons?i._callObjectMode?console.error(\"customTrayButtons is not available in call object mode\"):i._customTrayButtons=h.customTrayButtons:i._customTrayButtons={},void 0!==h.activeSpeakerMode?i._callObjectMode?console.error(\"activeSpeakerMode is not available in call object mode\"):i._activeSpeakerMode=!!h.activeSpeakerMode:i._activeSpeakerMode=!1,h.receiveSettings?i._callObjectMode?i._receiveSettings=h.receiveSettings:console.error(\"receiveSettings is only available in call object mode\"):i._receiveSettings={},i.validateProperties(h),i.properties=Aa({},h),i._inputSettings||(i._inputSettings={}),i._callObjectLoader=i._callObjectMode?new Us(i.callClientId):null,i._callState=ti,i._isPreparingToJoin=!1,i._accessState={access:fi},i._meetingSessionSummary={},i._finalSummaryOfPrevSession={},i._meetingSessionState=wc(Ra,i._callObjectMode),i._nativeInCallAudioMode=Da,i._participants={},i._isScreenSharing=!1,i._participantCounts=Fa,i._rmpPlayerState={},i._waitingParticipants={},i._network={threshold:\"good\",quality:100,networkState:\"unknown\",stats:{}},i._activeSpeaker={},i._localAudioLevel=0,i._isLocalAudioLevelObserverRunning=!1,i._remoteParticipantsAudioLevel={},i._isRemoteParticipantsAudioLevelObserverRunning=!1,i._maxAppMessageSize=$o,i._messageChannel=is()?new js:new Os,i._iframe&&(i._iframe.requestFullscreen?i._iframe.addEventListener(\"fullscreenchange\",(function(){document.fullscreenElement===i._iframe?(i.emitDailyJSEvent({action:Io}),i.sendMessageToCallMachine({action:Io})):(i.emitDailyJSEvent({action:xo}),i.sendMessageToCallMachine({action:xo}))})):i._iframe.webkitRequestFullscreen&&i._iframe.addEventListener(\"webkitfullscreenchange\",(function(){document.webkitFullscreenElement===i._iframe?(i.emitDailyJSEvent({action:Io}),i.sendMessageToCallMachine({action:Io})):(i.emitDailyJSEvent({action:xo}),i.sendMessageToCallMachine({action:xo}))}))),is()){var f=i.nativeUtils();f.addAudioFocusChangeListener&&f.removeAudioFocusChangeListener&&f.addAppStateChangeListener&&f.removeAppStateChangeListener&&f.addSystemScreenCaptureStopListener&&f.removeSystemScreenCaptureStopListener||console.warn(\"expected (add|remove)(AudioFocusChange|AppActiveStateChange|SystemScreenCaptureStop)Listener to be available in React Native\"),i._hasNativeAudioFocus=!0,f.addAudioFocusChangeListener(i.handleNativeAudioFocusChange),f.addAppStateChangeListener(i.handleNativeAppStateChange),f.addSystemScreenCaptureStopListener(i.handleNativeSystemScreenCaptureStop)}return i._callObjectMode&&i.startListeningForDeviceChanges(),i._messageChannel.addListenerForMessagesFromCallMachine(i.handleMessageFromCallMachine,i.callClientId,i),i}return l(r,b),o(r,[{key:\"destroy\",value:(ee=p((function*(){var e;try{yield this.leave()}catch(e){}var t=this._iframe;if(t){var n=t.parentElement;n&&n.removeChild(t)}if(this._messageChannel.removeListener(this.handleMessageFromCallMachine),is()){var r=this.nativeUtils();r.removeAudioFocusChangeListener(this.handleNativeAudioFocusChange),r.removeAppStateChangeListener(this.handleNativeAppStateChange),r.removeSystemScreenCaptureStopListener(this.handleNativeSystemScreenCaptureStop)}this._callObjectMode&&this.stopListeningForDeviceChanges(),this.resetMeetingDependentVars(),this._destroyed=!0,this.emitDailyJSEvent({action:\"call-instance-destroyed\"}),delete La[this.callClientId],(null===(e=window)||void 0===e||null===(e=e._daily)||void 0===e?void 0:e.instances)&&delete window._daily.instances[this.callClientId],this.strictMode&&(this.callClientId=void 0)})),function(){return ee.apply(this,arguments)})},{key:\"isDestroyed\",value:function(){return!!this._destroyed}},{key:\"loadCss\",value:function(e){var t=e.bodyClass,n=e.cssFile,r=e.cssText;return rc(),this.sendMessageToCallMachine({action:\"load-css\",cssFile:this.absoluteUrl(n),bodyClass:t,cssText:r}),this}},{key:\"iframe\",value:function(){return rc(),this._iframe}},{key:\"meetingState\",value:function(){return this._callState}},{key:\"accessState\",value:function(){return tc(this._callObjectMode,\"accessState()\"),this._accessState}},{key:\"participants\",value:function(){return this._participants}},{key:\"participantCounts\",value:function(){return this._participantCounts}},{key:\"waitingParticipants\",value:function(){return tc(this._callObjectMode,\"waitingParticipants()\"),this._waitingParticipants}},{key:\"validateParticipantProperties\",value:function(e,t){for(var n in t){if(!Wa[n])throw new Error(\"unrecognized updateParticipant property \".concat(n));if(Wa[n].validate&&!Wa[n].validate(t[n],this,this._participants[e]))throw new Error(Wa[n].help)}}},{key:\"updateParticipant\",value:function(e,t){return this._participants.local&&this._participants.local.session_id===e&&(e=\"local\"),e&&t&&(this.validateParticipantProperties(e,t),this.sendMessageToCallMachine({action:\"update-participant\",id:e,properties:t})),this}},{key:\"updateParticipants\",value:function(e){var t=this._participants.local&&this._participants.local.session_id;for(var n in e)n===t&&(n=\"local\"),n&&e[n]&&this.validateParticipantProperties(n,e[n]);return this.sendMessageToCallMachine({action:\"update-participants\",participants:e}),this}},{key:\"updateWaitingParticipant\",value:(Z=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(tc(this._callObjectMode,\"updateWaitingParticipant()\"),Ka(this._callState,\"updateWaitingParticipant()\"),\"string\"!=typeof t||\"object\"!==n(r))throw new Error(\"updateWaitingParticipant() must take an id string and a updates object\");return new Promise((function(n,i){e.sendMessageToCallMachine({action:\"daily-method-update-waiting-participant\",id:t,updates:r},(function(e){e.error&&i(e.error),e.id||i(new Error(\"unknown error in updateWaitingParticipant()\")),n({id:e.id})}))}))})),function(){return Z.apply(this,arguments)})},{key:\"updateWaitingParticipants\",value:(X=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(tc(this._callObjectMode,\"updateWaitingParticipants()\"),Ka(this._callState,\"updateWaitingParticipants()\"),\"object\"!==n(t))throw new Error(\"updateWaitingParticipants() must take a mapping between ids and update objects\");return new Promise((function(n,r){e.sendMessageToCallMachine({action:\"daily-method-update-waiting-participants\",updatesById:t},(function(e){e.error&&r(e.error),e.ids||r(new Error(\"unknown error in updateWaitingParticipants()\")),n({ids:e.ids})}))}))})),function(){return X.apply(this,arguments)})},{key:\"requestAccess\",value:(Y=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.access,r=void 0===n?{level:vi}:n,i=t.name,o=void 0===i?\"\":i;return tc(this._callObjectMode,\"requestAccess()\"),Ka(this._callState,\"requestAccess()\"),new Promise((function(t,n){e.sendMessageToCallMachine({action:\"daily-method-request-access\",access:r,name:o},(function(e){e.error&&n(e.error),e.access||n(new Error(\"unknown error in requestAccess()\")),t({access:e.access,granted:e.granted})}))}))})),function(){return Y.apply(this,arguments)})},{key:\"localAudio\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.audio.state):null}},{key:\"localVideo\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.video.state):null}},{key:\"setLocalAudio\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return\"forceDiscardTrack\"in t&&(is()?(console.warn(\"forceDiscardTrack option not supported in React Native; ignoring\"),t={}):e&&(console.warn(\"forceDiscardTrack option only supported when calling setLocalAudio(false); ignoring\"),t={})),this.sendMessageToCallMachine({action:\"local-audio\",state:e,options:t}),this}},{key:\"localScreenAudio\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.screenAudio.state):null}},{key:\"localScreenVideo\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.screenVideo.state):null}},{key:\"updateScreenShare\",value:function(e){if(this._isScreenSharing)return this.sendMessageToCallMachine({action:\"local-screen-update\",options:e}),this;console.warn(\"There is no screen share in progress. Try calling startScreenShare first.\")}},{key:\"setLocalVideo\",value:function(e){return this.sendMessageToCallMachine({action:\"local-video\",state:e}),this}},{key:\"_setAllowLocalAudio\",value:function(e){if(this._preloadCache.allowLocalAudio=e,this._callMachineInitialized)return this.sendMessageToCallMachine({action:\"set-allow-local-audio\",state:e}),this}},{key:\"_setAllowLocalVideo\",value:function(e){if(this._preloadCache.allowLocalVideo=e,this._callMachineInitialized)return this.sendMessageToCallMachine({action:\"set-allow-local-video\",state:e}),this}},{key:\"getReceiveSettings\",value:(K=p((function*(e){var t=this,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).showInheritedValues,i=void 0!==r&&r;if(tc(this._callObjectMode,\"getReceiveSettings()\"),!this._callMachineInitialized)return this._receiveSettings;switch(n(e)){case\"string\":return new Promise((function(n){t.sendMessageToCallMachine({action:\"get-single-participant-receive-settings\",id:e,showInheritedValues:i},(function(e){n(e.receiveSettings)}))}));case\"undefined\":return this._receiveSettings;default:throw new Error('first argument to getReceiveSettings() must be a participant id (or \"base\"), or there should be no arguments')}})),function(e){return K.apply(this,arguments)})},{key:\"updateReceiveSettings\",value:(Q=p((function*(e){var t=this;if(tc(this._callObjectMode,\"updateReceiveSettings()\"),!sc(e,{allowAllParticipantsKey:!0}))throw new Error(hc({allowAllParticipantsKey:!0}));return Ka(this._callState,\"updateReceiveSettings()\",\"To specify receive settings earlier, use the receiveSettings config property.\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"update-receive-settings\",receiveSettings:e},(function(e){n({receiveSettings:e.receiveSettings})}))}))})),function(e){return Q.apply(this,arguments)})},{key:\"_prepInputSettingsForSharing\",value:function(e,t){if(e){var n={};if(e.audio){var r,i,o;e.audio.settings&&(!Object.keys(e.audio.settings).length&&t||(n.audio={settings:Aa({},e.audio.settings)})),t&&null!==(r=n.audio)&&void 0!==r&&null!==(r=r.settings)&&void 0!==r&&r.customTrack&&(n.audio.settings={customTrack:this._sharedTracks.audioTrack});var s=\"none\"===(null===(i=e.audio.processor)||void 0===i?void 0:i.type)&&(null===(o=e.audio.processor)||void 0===o?void 0:o._isDefaultWhenNone);if(e.audio.processor&&!s){var a=Aa({},e.audio.processor);delete a._isDefaultWhenNone,n.audio=Aa(Aa({},n.audio),{},{processor:a})}}if(e.video){var c,l,u;e.video.settings&&(!Object.keys(e.video.settings).length&&t||(n.video={settings:Aa({},e.video.settings)})),t&&null!==(c=n.video)&&void 0!==c&&null!==(c=c.settings)&&void 0!==c&&c.customTrack&&(n.video.settings={customTrack:this._sharedTracks.videoTrack});var d=\"none\"===(null===(l=e.video.processor)||void 0===l?void 0:l.type)&&(null===(u=e.video.processor)||void 0===u?void 0:u._isDefaultWhenNone);if(e.video.processor&&!d){var p=Aa({},e.video.processor);delete p._isDefaultWhenNone,n.video=Aa(Aa({},n.video),{},{processor:p})}}return n}}},{key:\"getInputSettings\",value:function(){var e=this;return rc(),new Promise((function(t){t(e._getInputSettings())}))}},{key:\"_getInputSettings\",value:function(){var e,t,n,r,i,o,s={processor:{type:\"none\",_isDefaultWhenNone:!0}};this._inputSettings?(e=(null===(n=this._inputSettings)||void 0===n?void 0:n.video)||s,t=(null===(r=this._inputSettings)||void 0===r?void 0:r.audio)||s):(e=(null===(i=this._preloadCache)||void 0===i||null===(i=i.inputSettings)||void 0===i?void 0:i.video)||s,t=(null===(o=this._preloadCache)||void 0===o||null===(o=o.inputSettings)||void 0===o?void 0:o.audio)||s);var a={audio:t,video:e};return this._prepInputSettingsForSharing(a,!0)}},{key:\"_updatePreloadCacheInputSettings\",value:function(e,t){var n=this._inputSettings||{},r={};if(e.video){var i,o,s;if(r.video={},e.video.settings)r.video.settings={},t||e.video.settings.customTrack||null===(s=n.video)||void 0===s||!s.settings?r.video.settings=e.video.settings:r.video.settings=Aa(Aa({},n.video.settings),e.video.settings),Object.keys(r.video.settings).length||delete r.video.settings;else null!==(i=n.video)&&void 0!==i&&i.settings&&(r.video.settings=n.video.settings);e.video.processor?r.video.processor=e.video.processor:null!==(o=n.video)&&void 0!==o&&o.processor&&(r.video.processor=n.video.processor)}else n.video&&(r.video=n.video);if(e.audio){var a,c,l;if(r.audio={},e.audio.settings)r.audio.settings={},t||e.audio.settings.customTrack||null===(l=n.audio)||void 0===l||!l.settings?r.audio.settings=e.audio.settings:r.audio.settings=Aa(Aa({},n.audio.settings),e.audio.settings),Object.keys(r.audio.settings).length||delete r.audio.settings;else null!==(a=n.audio)&&void 0!==a&&a.settings&&(r.audio.settings=n.audio.settings);e.audio.processor?r.audio.processor=e.audio.processor:null!==(c=n.audio)&&void 0!==c&&c.processor&&(r.audio.processor=n.audio.processor)}else n.audio&&(r.audio=n.audio);this._maybeUpdateInputSettings(r)}},{key:\"_devicesFromInputSettings\",value:function(e){var t,n,r=(null==e||null===(t=e.video)||void 0===t||null===(t=t.settings)||void 0===t?void 0:t.deviceId)||null,i=(null==e||null===(n=e.audio)||void 0===n||null===(n=n.settings)||void 0===n?void 0:n.deviceId)||null,o=this._preloadCache.outputDeviceId||null;return{camera:r?{deviceId:r}:{},mic:i?{deviceId:i}:{},speaker:o?{deviceId:o}:{}}}},{key:\"updateInputSettings\",value:(G=p((function*(e){var t=this;return rc(),ac(e)?e.video||e.audio?(cc(e,this.properties.dailyConfig,this._sharedTracks),this._callObjectMode&&!this._callMachineInitialized?(this._updatePreloadCacheInputSettings(e,!0),this._getInputSettings()):new Promise((function(n,r){t.sendMessageToCallMachine({action:\"update-input-settings\",inputSettings:e},(function(i){if(i.error)r(i.error);else{if(i.returnPreloadCache)return t._updatePreloadCacheInputSettings(e,!0),void n(t._getInputSettings());t._maybeUpdateInputSettings(i.inputSettings),n(t._prepInputSettingsForSharing(i.inputSettings,!0))}}))}))):this._getInputSettings():(console.error(pc()),Promise.reject(pc()))})),function(e){return G.apply(this,arguments)})},{key:\"setBandwidth\",value:function(e){var t=e.kbs,n=e.trackConstraints;if(rc(),this._callMachineInitialized)return this.sendMessageToCallMachine({action:\"set-bandwidth\",kbs:t,trackConstraints:n}),this}},{key:\"getDailyLang\",value:function(){var e=this;if(rc(),this._callMachineInitialized)return new Promise((function(t){e.sendMessageToCallMachine({action:\"get-daily-lang\"},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))}},{key:\"setDailyLang\",value:function(e){return rc(),this.sendMessageToCallMachine({action:\"set-daily-lang\",lang:e}),this}},{key:\"setProxyUrl\",value:function(e){return this.sendMessageToCallMachine({action:\"set-proxy-url\",proxyUrl:e}),this}},{key:\"setIceConfig\",value:function(e){return this.sendMessageToCallMachine({action:\"set-ice-config\",iceConfig:e}),this}},{key:\"meetingSessionSummary\",value:function(){return[si,ai].includes(this._callState)?this._finalSummaryOfPrevSession:this._meetingSessionSummary}},{key:\"getMeetingSession\",value:(H=p((function*(){var e=this;return console.warn(\"getMeetingSession() is deprecated: use meetingSessionSummary(), which will return immediately\"),Ka(this._callState,\"getMeetingSession()\"),new Promise((function(t){e.sendMessageToCallMachine({action:\"get-meeting-session\"},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))})),function(){return H.apply(this,arguments)})},{key:\"meetingSessionState\",value:function(){return Ka(this._callState,\"meetingSessionState\"),this._meetingSessionState}},{key:\"setMeetingSessionData\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"replace\";tc(this._callObjectMode,\"setMeetingSessionData()\"),Ka(this._callState,\"setMeetingSessionData\");try{!function(e,t){new Ds({data:e,mergeStrategy:t})}(e,t)}catch(e){throw console.error(e),e}try{this.sendMessageToCallMachine({action:\"set-session-data\",data:e,mergeStrategy:t})}catch(e){throw new Error(\"Error setting meeting session data: \".concat(e))}}},{key:\"setUserName\",value:function(e,t){var n=this;return this.properties.userName=e,new Promise((function(r){n.sendMessageToCallMachine({action:\"set-user-name\",name:null!=e?e:\"\",thisMeetingOnly:is()||!!t&&!!t.thisMeetingOnly},(function(e){delete e.action,delete e.callbackStamp,r(e)}))}))}},{key:\"setUserData\",value:(W=p((function*(e){var t=this;try{oc(e)}catch(e){throw console.error(e),e}if(this.properties.userData=e,this._callMachineInitialized)return new Promise((function(n){try{t.sendMessageToCallMachine({action:\"set-user-data\",userData:e},(function(e){delete e.action,delete e.callbackStamp,n(e)}))}catch(e){throw new Error(\"Error setting user data: \".concat(e))}}))})),function(e){return W.apply(this,arguments)})},{key:\"validateAudioLevelInterval\",value:function(e){if(e&&(e<100||\"number\"!=typeof e))throw new Error(\"The interval must be a number greater than or equal to 100 milliseconds.\")}},{key:\"startLocalAudioLevelObserver\",value:function(e){var t=this;if(\"undefined\"==typeof AudioWorkletNode&&!is())throw new Error(\"startLocalAudioLevelObserver() is not supported on this browser\");if(this.validateAudioLevelInterval(e),this._callMachineInitialized)return this._isLocalAudioLevelObserverRunning=!0,new Promise((function(n,r){t.sendMessageToCallMachine({action:\"start-local-audio-level-observer\",interval:e},(function(e){t._isLocalAudioLevelObserverRunning=!e.error,e.error?r({error:e.error}):n()}))}));this._preloadCache.localAudioLevelObserver={enabled:!0,interval:e}}},{key:\"isLocalAudioLevelObserverRunning\",value:function(){return this._isLocalAudioLevelObserverRunning}},{key:\"stopLocalAudioLevelObserver\",value:function(){this._preloadCache.localAudioLevelObserver=null,this._localAudioLevel=0,this._isLocalAudioLevelObserverRunning=!1,this.sendMessageToCallMachine({action:\"stop-local-audio-level-observer\"})}},{key:\"startRemoteParticipantsAudioLevelObserver\",value:function(e){var t=this;if(this.validateAudioLevelInterval(e),this._callMachineInitialized)return this._isRemoteParticipantsAudioLevelObserverRunning=!0,new Promise((function(n,r){t.sendMessageToCallMachine({action:\"start-remote-participants-audio-level-observer\",interval:e},(function(e){t._isRemoteParticipantsAudioLevelObserverRunning=!e.error,e.error?r({error:e.error}):n()}))}));this._preloadCache.remoteParticipantsAudioLevelObserver={enabled:!0,interval:e}}},{key:\"isRemoteParticipantsAudioLevelObserverRunning\",value:function(){return this._isRemoteParticipantsAudioLevelObserverRunning}},{key:\"stopRemoteParticipantsAudioLevelObserver\",value:function(){this._preloadCache.remoteParticipantsAudioLevelObserver=null,this._remoteParticipantsAudioLevel={},this._isRemoteParticipantsAudioLevelObserverRunning=!1,this.sendMessageToCallMachine({action:\"stop-remote-participants-audio-level-observer\"})}},{key:\"startCamera\",value:(z=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(tc(this._callObjectMode,\"startCamera()\"),Xa(this._callState,this._isPreparingToJoin,\"startCamera()\",\"Did you mean to use setLocalAudio() and/or setLocalVideo() instead?\"),this.needsLoad())try{yield this.load(t)}catch(e){return Promise.reject(e)}else{if(this._didPreAuth){if(t.url&&t.url!==this.properties.url)return console.error(\"url in startCamera() is different than the one used in preAuth()\"),Promise.reject();if(t.token&&t.token!==this.properties.token)return console.error(\"token in startCamera() is different than the one used in preAuth()\"),Promise.reject()}this.validateProperties(t),this.properties=Aa(Aa({},this.properties),t)}return new Promise((function(t,n){e._preloadCache.inputSettings=e._prepInputSettingsForSharing(e._inputSettings,!1),e.sendMessageToCallMachine({action:\"start-camera\",properties:Qa(e.properties,e.callClientId),preloadCache:Qa(e._preloadCache,e.callClientId)},(function(e){e.error?n(e.error):t({camera:e.camera,mic:e.mic,speaker:e.speaker})}))}))})),function(){return z.apply(this,arguments)})},{key:\"validateCustomTrack\",value:function(e,t,n){if(n&&n.length>50)throw new Error(\"Custom track `trackName` must not be more than 50 characters\");if(t&&\"music\"!==t&&\"speech\"!==t&&!(t instanceof Object))throw new Error(\"Custom track `mode` must be either `music` | `speech` | `DailyMicAudioModeSettings` or `undefined`\");if(!!n&&[\"cam-audio\",\"cam-video\",\"screen-video\",\"screen-audio\",\"rmpAudio\",\"rmpVideo\",\"customVideoDefaults\"].includes(n))throw new Error(\"Custom track `trackName` must not match a track name already used by daily: cam-audio, cam-video, customVideoDefaults, screen-video, screen-audio, rmpAudio, rmpVideo\");if(!(e instanceof MediaStreamTrack))throw new Error(\"Custom tracks provided must be instances of MediaStreamTrack\")}},{key:\"startCustomTrack\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{track:track,mode:mode,trackName:trackName,ignoreAudioLevel:ignoreAudioLevel};return rc(),Ka(this._callState,\"startCustomTrack()\"),this.validateCustomTrack(t.track,t.mode,t.trackName),new Promise((function(n,r){e._sharedTracks.customTrack=t.track,t.track=Qo,e.sendMessageToCallMachine({action:\"start-custom-track\",properties:t},(function(e){e.error?r({error:e.error}):n(e.mediaTag)}))}))}},{key:\"stopCustomTrack\",value:function(e){var t=this;return rc(),Ka(this._callState,\"stopCustomTrack()\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"stop-custom-track\",mediaTag:e},(function(e){n(e.mediaTag)}))}))}},{key:\"setCamera\",value:function(e){var t=this;return ic(),Za(this._callMachineInitialized,\"setCamera()\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"set-camera\",cameraDeviceId:e},(function(e){n({device:e.device})}))}))}},{key:\"setAudioDevice\",value:(q=p((function*(e){return ic(),this.nativeUtils().setAudioDevice(e),{deviceId:yield this.nativeUtils().getAudioDevice()}})),function(e){return q.apply(this,arguments)})},{key:\"cycleCamera\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise((function(n){e.sendMessageToCallMachine({action:\"cycle-camera\",properties:t},(function(e){n({device:e.device})}))}))}},{key:\"cycleMic\",value:function(){var e=this;return rc(),new Promise((function(t){e.sendMessageToCallMachine({action:\"cycle-mic\"},(function(e){t({device:e.device})}))}))}},{key:\"getCameraFacingMode\",value:function(){var e=this;return ic(),new Promise((function(t){e.sendMessageToCallMachine({action:\"get-camera-facing-mode\"},(function(e){t(e.facingMode)}))}))}},{key:\"setInputDevicesAsync\",value:($=p((function*(e){var t=this,n=e.audioDeviceId,r=e.videoDeviceId,i=e.audioSource,o=e.videoSource;if(rc(),void 0!==i&&(n=i),void 0!==o&&(r=o),\"boolean\"==typeof n&&(this._setAllowLocalAudio(n),n=void 0),\"boolean\"==typeof r&&(this._setAllowLocalVideo(r),r=void 0),!n&&!r)return yield this.getInputDevices();var s={};return n&&(n instanceof MediaStreamTrack?(this._sharedTracks.audioTrack=n,n=Qo,s.audio={settings:{customTrack:n}}):(delete this._sharedTracks.audioTrack,s.audio={settings:{deviceId:n}})),r&&(r instanceof MediaStreamTrack?(this._sharedTracks.videoTrack=r,r=Qo,s.video={settings:{customTrack:r}}):(delete this._sharedTracks.videoTrack,s.video={settings:{deviceId:r}})),this._callObjectMode&&this.needsLoad()?(this._updatePreloadCacheInputSettings(s,!1),this._devicesFromInputSettings(this._inputSettings)):new Promise((function(e){t.sendMessageToCallMachine({action:\"set-input-devices\",audioDeviceId:n,videoDeviceId:r},(function(n){if(delete n.action,delete n.callbackStamp,n.returnPreloadCache)return t._updatePreloadCacheInputSettings(s,!1),void e(t._devicesFromInputSettings(t._inputSettings));e(n)}))}))})),function(e){return $.apply(this,arguments)})},{key:\"setOutputDeviceAsync\",value:(J=p((function*(e){var t=this,n=e.outputDeviceId;if(rc(),!n||\"string\"!=typeof n)throw new Error(\"outputDeviceId must be provided and must be a valid device id\");return this._preloadCache.outputDeviceId=n,this._callObjectMode&&this.needsLoad()?this._devicesFromInputSettings(this._inputSettings):new Promise((function(e,r){t.sendMessageToCallMachine({action:\"set-output-device\",outputDeviceId:n},(function(n){if(delete n.action,delete n.callbackStamp,n.error){var i=new Error(n.error.message);return i.type=n.error.type,void r(i)}n.returnPreloadCache?e(t._devicesFromInputSettings(t._inputSettings)):e(n)}))}))})),function(e){return J.apply(this,arguments)})},{key:\"getInputDevices\",value:(V=p((function*(){var e=this;return this._callObjectMode&&this.needsLoad()?this._devicesFromInputSettings(this._inputSettings):new Promise((function(t){e.sendMessageToCallMachine({action:\"get-input-devices\"},(function(n){n.returnPreloadCache?t(e._devicesFromInputSettings(e._inputSettings)):t({camera:n.camera,mic:n.mic,speaker:n.speaker})}))}))})),function(){return V.apply(this,arguments)})},{key:\"nativeInCallAudioMode\",value:function(){return ic(),this._nativeInCallAudioMode}},{key:\"setNativeInCallAudioMode\",value:function(e){if(ic(),[Da,Na].includes(e)){if(e!==this._nativeInCallAudioMode)return this._nativeInCallAudioMode=e,!this.disableReactNativeAutoDeviceManagement(\"audio\")&&Ya(this._callState,this._isPreparingToJoin)&&this.nativeUtils().setAudioMode(this._nativeInCallAudioMode),this}else console.error(\"invalid in-call audio mode specified: \",e)}},{key:\"preAuth\",value:(U=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(tc(this._callObjectMode,\"preAuth()\"),Xa(this._callState,this._isPreparingToJoin,\"preAuth()\"),this.needsLoad()&&(yield this.load(t)),!t.url)throw new Error(\"preAuth() requires at least a url to be provided\");return this.validateProperties(t),this.properties=Aa(Aa({},this.properties),t),new Promise((function(t,n){e._preloadCache.inputSettings=e._prepInputSettingsForSharing(e._inputSettings,!1),e.sendMessageToCallMachine({action:\"daily-method-preauth\",properties:Qa(e.properties,e.callClientId),preloadCache:Qa(e._preloadCache,e.callClientId)},(function(r){return r.error?n(r.error):r.access?(e._didPreAuth=!0,void t({access:r.access})):n(new Error(\"unknown error in preAuth()\"))}))}))})),function(){return U.apply(this,arguments)})},{key:\"load\",value:(R=p((function*(e){var t=this;if(this.needsLoad()){if(this._destroyed&&(this._logUseAfterDestroy(),this.strictMode))throw new Error(\"Use after destroy\");if(e&&(this.validateProperties(e),this.properties=Aa(Aa({},this.properties),e)),!this._callObjectMode&&!this.properties.url)throw new Error(\"can't load iframe meeting because url property isn't set\");return this._updateCallState(ni),this.emitDailyJSEvent({action:Vi}),this._callObjectMode?new Promise((function(e,n){t._callObjectLoader.cancel();var r=Date.now();t._callObjectLoader.load(t.properties.dailyConfig,(function(n){t._bundleLoadTime=n?\"no-op\":Date.now()-r,t._updateCallState(ri),n&&t.emitDailyJSEvent({action:$i}),e()}),(function(e,r){if(t.emitDailyJSEvent({action:Ji}),!r){t._updateCallState(ai),t.resetMeetingDependentVars();var i={action:Jo,errorMsg:e.msg,error:{type:\"connection-error\",msg:\"Failed to load call object bundle.\",details:{on:\"load\",sourceError:e,bundleUrl:B(t.properties.dailyConfig)}}};t._maybeSendToSentry(i),t.emitDailyJSEvent(i),n(e.msg)}}))})):(this._iframe.src=F(this.assembleMeetingUrl(),this.properties.dailyConfig),new Promise((function(e,n){t._loadedCallback=function(r){t._callState!==ai?(t._updateCallState(ri),(t.properties.cssFile||t.properties.cssText)&&t.loadCss(t.properties),e()):n(r)}})))}})),function(e){return R.apply(this,arguments)})},{key:\"join\",value:(L=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._testCallInProgress&&this.stopTestCallQuality(),!t.url&&!this.properties.url){var n=\"No room URL has been provided\";return console.error(n),Promise.reject(new Error(n))}var r=!1;if(this.needsLoad()){this.updateIsPreparingToJoin(!0);try{yield this.load(t)}catch(e){return this.updateIsPreparingToJoin(!1),Promise.reject(e)}}else{if(r=!(!this.properties.cssFile&&!this.properties.cssText),this._didPreAuth){if(t.url&&t.url!==this.properties.url)return console.error(\"url in join() is different than the one used in preAuth()\"),this.updateIsPreparingToJoin(!1),Promise.reject();if(t.token&&t.token!==this.properties.token)return console.error(\"token in join() is different than the one used in preAuth()\"),this.updateIsPreparingToJoin(!1),Promise.reject()}if(t.url&&!this._callObjectMode&&t.url&&t.url!==this.properties.url)return console.error(\"url in join() is different than the one used in load() (\".concat(this.properties.url,\" -> \").concat(t.url,\")\")),this.updateIsPreparingToJoin(!1),Promise.reject();this.validateProperties(t),this.properties=Aa(Aa({},this.properties),t)}return void 0!==t.showLocalVideo&&(this._callObjectMode?console.error(\"showLocalVideo is not available in callObject mode\"):this._showLocalVideo=!!t.showLocalVideo),void 0!==t.showParticipantsBar&&(this._callObjectMode?console.error(\"showParticipantsBar is not available in callObject mode\"):this._showParticipantsBar=!!t.showParticipantsBar),this._callState===oi||this._callState===ii?(console.warn(\"already joined meeting, call leave() before joining again\"),void this.updateIsPreparingToJoin(!1)):(this._updateCallState(ii,!1),this.emitDailyJSEvent({action:Wi}),this._preloadCache.inputSettings=this._prepInputSettingsForSharing(this._inputSettings||{},!1),this.sendMessageToCallMachine({action:\"join-meeting\",properties:Qa(this.properties,this.callClientId),preloadCache:Qa(this._preloadCache,this.callClientId)},(function(t){t.error&&e._joinedCallback&&(e._joinedCallback(null,t.error),e._joinedCallback=null)})),new Promise((function(t,n){e._joinedCallback=function(i,o){if(e._callState!==ai){if(o)return e._updateCallState(si),void n(o);if(e._updateCallState(oi),i)for(var s in i){if(e._callObjectMode){var a=e._callMachine().store;Zs(i[s],a),ea(i[s],a),na(i[s],e._participants[s],a)}e._participants[s]=Aa({},i[s]),e.toggleParticipantAudioBasedOnNativeAudioFocus()}r&&e.loadCss(e.properties),t(i)}else n(o)}})))})),function(){return L.apply(this,arguments)})},{key:\"leave\",value:(x=p((function*(){var e=this;return this._testCallInProgress&&this.stopTestCallQuality(),new Promise((function(t){e._callState===si||e._callState===ai?t():e._callObjectLoader&&!e._callObjectLoader.loaded?(e._callObjectLoader.cancel(),e._updateCallState(si),e.resetMeetingDependentVars(),e.emitDailyJSEvent({action:si}),t()):(e._resolveLeave=t,e.sendMessageToCallMachine({action:\"leave-meeting\"}))}))})),function(){return x.apply(this,arguments)})},{key:\"startScreenShare\",value:(I=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Za(this._callMachineInitialized,\"startScreenShare()\"),t.screenVideoSendSettings&&this._validateVideoSendSettings(\"screenVideo\",t.screenVideoSendSettings),t.mediaStream&&(this._sharedTracks.screenMediaStream=t.mediaStream,t.mediaStream=Qo),\"undefined\"!=typeof DailyNativeUtils&&void 0!==DailyNativeUtils.isIOS&&DailyNativeUtils.isIOS){var n=this.nativeUtils();if(yield n.isScreenBeingCaptured())return void this.emitDailyJSEvent({action:Vo,type:\"screen-share-error\",errorMsg:\"Could not start the screen sharing. The screen is already been captured!\"});n.setSystemScreenCaptureStartCallback((function(){n.setSystemScreenCaptureStartCallback(null),e.sendMessageToCallMachine({action:Wo,captureOptions:t})})),n.presentSystemScreenCapturePrompt()}else this.sendMessageToCallMachine({action:Wo,captureOptions:t})})),function(){return I.apply(this,arguments)})},{key:\"stopScreenShare\",value:function(){Za(this._callMachineInitialized,\"stopScreenShare()\"),this.sendMessageToCallMachine({action:\"local-screen-stop\"})}},{key:\"startRecording\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.type;if(t&&\"cloud\"!==t&&\"cloud-audio-only\"!==t&&\"raw-tracks\"!==t&&\"local\"!==t)throw new Error(\"invalid type: \".concat(t,\", allowed values 'cloud', 'cloud-audio-only', 'raw-tracks', or 'local'\"));this.sendMessageToCallMachine(Aa({action:\"local-recording-start\"},e))}},{key:\"updateRecording\",value:function(e){var t=e.layout,n=void 0===t?{preset:\"default\"}:t,r=e.instanceId;this.sendMessageToCallMachine({action:\"daily-method-update-recording\",layout:n,instanceId:r})}},{key:\"stopRecording\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(Aa({action:\"local-recording-stop\"},e))}},{key:\"startLiveStreaming\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(Aa({action:\"daily-method-start-live-streaming\"},e))}},{key:\"updateLiveStreaming\",value:function(e){var t=e.layout,n=void 0===t?{preset:\"default\"}:t,r=e.instanceId;this.sendMessageToCallMachine({action:\"daily-method-update-live-streaming\",layout:n,instanceId:r})}},{key:\"addLiveStreamingEndpoints\",value:function(e){var t=e.endpoints,n=e.instanceId;this.sendMessageToCallMachine({action:Ho,endpointsOp:es,endpoints:t,instanceId:n})}},{key:\"removeLiveStreamingEndpoints\",value:function(e){var t=e.endpoints,n=e.instanceId;this.sendMessageToCallMachine({action:Ho,endpointsOp:ts,endpoints:t,instanceId:n})}},{key:\"stopLiveStreaming\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(Aa({action:\"daily-method-stop-live-streaming\"},e))}},{key:\"validateDailyConfig\",value:function(e){e.camSimulcastEncodings&&(console.warn(\"camSimulcastEncodings is deprecated. Use sendSettings, found in DailyCallOptions, to provide camera simulcast settings.\"),this.validateSimulcastEncodings(e.camSimulcastEncodings)),e.screenSimulcastEncodings&&console.warn(\"screenSimulcastEncodings is deprecated. Use sendSettings, found in DailyCallOptions, to provide screen simulcast settings.\"),vs()&&e.noAutoDefaultDeviceChange&&console.warn(\"noAutoDefaultDeviceChange is not supported on Android, and will be ignored.\")}},{key:\"validateSimulcastEncodings\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e){if(!(e instanceof Array||Array.isArray(e)))throw new Error(\"encodings must be an Array\");if(!_c(e.length,1,3))throw new Error(\"encodings must be an Array with between 1 to \".concat(3,\" layers\"));for(var r=0;r<e.length;r++){var i=e[r];for(var o in this._validateEncodingLayerHasValidProperties(i),i)if(Ua.includes(o)){if(\"number\"!=typeof i[o])throw new Error(\"\".concat(o,\" must be a number\"));if(t){var s=t[o],a=s.min,c=s.max;if(!_c(i[o],a,c))throw new Error(\"\".concat(o,\" value not in range. valid range: \").concat(a,\" to \").concat(c))}}else if(![\"active\",\"scalabilityMode\"].includes(o))throw new Error(\"Invalid key \".concat(o,\", valid keys are:\")+Object.values(Ua));if(n&&!i.hasOwnProperty(\"maxBitrate\"))throw new Error(\"maxBitrate is not specified\")}}}},{key:\"startRemoteMediaPlayer\",value:(j=p((function*(e){var t=this,n=e.url,r=e.settings,i=void 0===r?{state:Xo.PLAY}:r;try{!function(e){if(\"string\"!=typeof e)throw new Error('url parameter must be \"string\" type')}(n),bc(i),function(e){for(var t in e)if(!Va.includes(t))throw new Error(\"Invalid key \".concat(t,\", valid keys are: \").concat(Va));e.simulcastEncodings&&this.validateSimulcastEncodings(e.simulcastEncodings,Ba,!0)}(i)}catch(e){throw console.error(\"invalid argument Error: \".concat(e)),console.error('startRemoteMediaPlayer arguments must be of the form:\\n  { url: \"playback url\",\\n  settings?:\\n  {state: \"play\"|\"pause\", simulcastEncodings?: [{}] } }'),e}return new Promise((function(e,r){t.sendMessageToCallMachine({action:\"daily-method-start-remote-media-player\",url:n,settings:i},(function(t){t.error?r({error:t.error,errorMsg:t.errorMsg}):e({session_id:t.session_id,remoteMediaPlayerState:{state:t.state,settings:t.settings}})}))}))})),function(e){return j.apply(this,arguments)})},{key:\"stopRemoteMediaPlayer\",value:(A=p((function*(e){var t=this;if(\"string\"!=typeof e)throw new Error(\" remotePlayerID must be of type string\");return new Promise((function(n,r){t.sendMessageToCallMachine({action:\"daily-method-stop-remote-media-player\",session_id:e},(function(e){e.error?r({error:e.error,errorMsg:e.errorMsg}):n()}))}))})),function(e){return A.apply(this,arguments)})},{key:\"updateRemoteMediaPlayer\",value:(P=p((function*(e){var t=this,n=e.session_id,r=e.settings;try{bc(r)}catch(e){throw console.error(\"invalid argument Error: \".concat(e)),console.error('updateRemoteMediaPlayer arguments must be of the form:\\n  session_id: \"participant session\",\\n  { settings?: {state: \"play\"|\"pause\"} }'),e}return new Promise((function(e,i){t.sendMessageToCallMachine({action:\"daily-method-update-remote-media-player\",session_id:n,settings:r},(function(t){t.error?i({error:t.error,errorMsg:t.errorMsg}):e({session_id:t.session_id,remoteMediaPlayerState:{state:t.state,settings:t.settings}})}))}))})),function(e){return P.apply(this,arguments)})},{key:\"startTranscription\",value:function(e){Ka(this._callState,\"startTranscription()\"),this.sendMessageToCallMachine(Aa({action:\"daily-method-start-transcription\"},e))}},{key:\"updateTranscription\",value:function(e){if(Ka(this._callState,\"updateTranscription()\"),!e)throw new Error(\"updateTranscription Error: options is mandatory\");if(\"object\"!==n(e))throw new Error(\"updateTranscription Error: options must be object type\");if(e.participants&&!Array.isArray(e.participants))throw new Error(\"updateTranscription Error: participants must be an array\");this.sendMessageToCallMachine(Aa({action:\"daily-method-update-transcription\"},e))}},{key:\"stopTranscription\",value:function(e){if(Ka(this._callState,\"stopTranscription()\"),e&&\"object\"!==n(e))throw new Error(\"stopTranscription Error: options must be object type\");if(e&&!e.instanceId)throw new Error('\"instanceId\" not provided');this.sendMessageToCallMachine(Aa({action:\"daily-method-stop-transcription\"},e))}},{key:\"startDialOut\",value:(O=p((function*(e){var t=this;Ka(this._callState,\"startDialOut()\");var n=function(e){if(e){if(!Array.isArray(e))throw new Error(\"Error starting dial out: audio codec must be an array\");if(e.length<=0)throw new Error(\"Error starting dial out: audio codec array specified but empty\");e.forEach((function(e){if(\"string\"!=typeof e)throw new Error(\"Error starting dial out: audio codec must be a string\");if(\"OPUS\"!==e&&\"PCMU\"!==e&&\"PCMA\"!==e&&\"G722\"!==e)throw new Error(\"Error starting dial out: audio codec must be one of OPUS, PCMU, PCMA, G722\")}))}};if(!e.sipUri&&!e.phoneNumber)throw new Error(\"Error starting dial out: either a sip uri or phone number must be provided\");if(e.sipUri&&e.phoneNumber)throw new Error(\"Error starting dial out: only one of sip uri or phone number must be provided\");if(e.sipUri){if(\"string\"!=typeof e.sipUri)throw new Error(\"Error starting dial out: sipUri must be a string\");if(!e.sipUri.startsWith(\"sip:\"))throw new Error(\"Error starting dial out: Invalid SIP URI, must start with 'sip:'\");if(e.video&&\"boolean\"!=typeof e.video)throw new Error(\"Error starting dial out: video must be a boolean value\");!function(e){if(e&&(n(e.audio),e.video)){if(!Array.isArray(e.video))throw new Error(\"Error starting dial out: video codec must be an array\");if(e.video.length<=0)throw new Error(\"Error starting dial out: video codec array specified but empty\");e.video.forEach((function(e){if(\"string\"!=typeof e)throw new Error(\"Error starting dial out: video codec must be a string\");if(\"H264\"!==e&&\"VP8\"!==e)throw new Error(\"Error starting dial out: video codec must be H264 or VP8\")}))}}(e.codecs)}if(e.phoneNumber){if(\"string\"!=typeof e.phoneNumber)throw new Error(\"Error starting dial out: phoneNumber must be a string\");if(!/^\\+\\d{1,}$/.test(e.phoneNumber))throw new Error(\"Error starting dial out: Invalid phone number, must be valid phone number as per E.164\");e.codecs&&n(e.codecs.audio)}if(e.callerId){if(\"string\"!=typeof e.callerId)throw new Error(\"Error starting dial out: callerId must be a string\");if(e.sipUri)throw new Error(\"Error starting dial out: callerId not allowed with sipUri\")}if(e.displayName){if(\"string\"!=typeof e.displayName)throw new Error(\"Error starting dial out: displayName must be a string\");if(e.displayName.length>=200)throw new Error(\"Error starting dial out: displayName length must be less than 200\")}if(e.userId){if(\"string\"!=typeof e.userId)throw new Error(\"Error starting dial out: userId must be a string\");if(e.userId.length>36)throw new Error(\"Error starting dial out: userId length must be less than or equal to 36\")}if(Ga(e),e.permissions&&e.permissions.canReceive){var r=f(Ca.validateJSONObject(e.permissions.canReceive),2),i=r[0],o=r[1];if(!i)throw new Error(o)}if(e.provider){if(\"daily\"!==e.provider)throw new Error(\"Error: provider can be set only to 'daily', got: \".concat(e.provider));if(e.phoneNumber)throw new Error(\"Error starting dial out: provider valid only for sipUri, not phoneNumber\");console.warn(\"(pre-beta) provider=daily is currently in pre-beta, things might break!\")}return new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:\"dialout-start\"},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return O.apply(this,arguments)})},{key:\"stopDialOut\",value:function(e){var t=this;return Ka(this._callState,\"stopDialOut()\"),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:\"dialout-stop\"},e),(function(e){e.error?r(e.error):n(e)}))}))}},{key:\"sipCallTransfer\",value:(T=p((function*(e){var t=this;if(Ka(this._callState,\"sipCallTransfer()\"),!e)throw new Error(\"sipCallTransfer() requires a sessionId and toEndPoint\");return e.useSipRefer=!1,yc(e,\"sipCallTransfer\"),Ga(e),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:ns},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return T.apply(this,arguments)})},{key:\"sipRefer\",value:(E=p((function*(e){var t=this;if(Ka(this._callState,\"sipRefer()\"),!e)throw new Error(\"sessionId and toEndPoint are mandatory parameter\");return e.useSipRefer=!0,yc(e,\"sipRefer\"),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:ns},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return E.apply(this,arguments)})},{key:\"sendDTMF\",value:(C=p((function*(e){var t=this;return Ka(this._callState,\"sendDTMF()\"),function(e){var t=e.sessionId,n=e.tones;if(!t||!n)throw new Error(\"sessionId and tones are mandatory parameter\");if(\"string\"!=typeof t||\"string\"!=typeof n)throw new Error(\"sessionId and tones should be of string type\");if(n.length>20)throw new Error(\"tones string must be upto 20 characters\");var r=/[^0-9A-D*#]/g,i=n.match(r);if(i&&i[0])throw new Error(\"\".concat(i[0],\" is not valid DTMF tone\"))}(e),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:\"send-dtmf\"},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return C.apply(this,arguments)})},{key:\"getNetworkStats\",value:function(){var e=this;if(this._callState!==oi){return Promise.resolve(Aa({stats:{latest:{}}},this._network))}return new Promise((function(t){e.sendMessageToCallMachine({action:\"get-calc-stats\"},(function(n){t(Aa(Aa({},e._network),{},{stats:n.stats}))}))}))}},{key:\"testWebsocketConnectivity\",value:(M=p((function*(){var e=this;if(ec(this._testCallInProgress,\"testWebsocketConnectivity()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}return new Promise((function(t,n){e.sendMessageToCallMachine({action:\"test-websocket-connectivity\"},(function(e){e.error?n(e.error):t(e.results)}))}))})),function(){return M.apply(this,arguments)})},{key:\"abortTestWebsocketConnectivity\",value:function(){this.sendMessageToCallMachine({action:\"abort-test-websocket-connectivity\"})}},{key:\"_validateVideoTrackForNetworkTests\",value:function(e){return e?e instanceof MediaStreamTrack?!!va(e,{isLocalScreenVideo:!1})||(console.error(\"Video track is not playable. This test needs a live video track.\"),!1):(console.error(\"Video track needs to be of type `MediaStreamTrack`.\"),!1):(console.error(\"Missing video track. You must provide a video track in order to run this test.\"),!1)}},{key:\"testCallQuality\",value:(k=p((function*(){var t=this;rc(),tc(this._callObjectMode,\"testCallQuality()\"),Za(this._callMachineInitialized,\"testCallQuality()\",null,!0),Xa(this._callState,this._isPreparingToJoin,\"testCallQuality()\");var n=this._testCallAlreadyInProgress,r=function(e){n||(t._testCallInProgress=e)};if(r(!0),this.needsLoad())try{var i=this._callState;yield this.load(),this._callState=i}catch(e){return r(!1),Promise.reject(e)}return new Promise((function(n){t.sendMessageToCallMachine({action:\"test-call-quality\",dailyJsVersion:t.properties.dailyJsVersion},(function(i){var o=i.results,s=o.result,a=e(o,Ta);if(\"failed\"===s){var c,l=Aa({},a);null!==(c=a.error)&&void 0!==c&&c.details?(a.error.details=JSON.parse(a.error.details),l.error=Aa(Aa({},l.error),{},{details:Aa({},l.error.details)}),l.error.details.duringTest=\"testCallQuality\"):(l.error=l.error?Aa({},l.error):{},l.error.details={duringTest:\"testCallQuality\"}),t._maybeSendToSentry(l)}r(!1),n(Aa({result:s},a))}))}))})),function(){return k.apply(this,arguments)})},{key:\"stopTestCallQuality\",value:function(){this.sendMessageToCallMachine({action:\"stop-test-call-quality\"})}},{key:\"testConnectionQuality\",value:(w=p((function*(e){var t;is()?(console.warn(\"testConnectionQuality() is deprecated: use testPeerToPeerCallQuality() instead\"),t=yield this.testPeerToPeerCallQuality(e)):(console.warn(\"testConnectionQuality() is deprecated: use testCallQuality() instead\"),t=yield this.testCallQuality());var n={result:t.result,secondsElapsed:t.secondsElapsed};return t.data&&(n.data={maxRTT:t.data.maxRoundTripTime,packetLoss:t.data.avgRecvPacketLoss}),n})),function(e){return w.apply(this,arguments)})},{key:\"testPeerToPeerCallQuality\",value:(_=p((function*(e){var t=this;if(ec(this._testCallInProgress,\"testPeerToPeerCallQuality()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}var n=e.videoTrack,r=e.duration;if(!this._validateVideoTrackForNetworkTests(n))throw new Error(\"Video track error\");return this._sharedTracks.videoTrackForConnectionQualityTest=n,new Promise((function(e,n){t.sendMessageToCallMachine({action:\"test-p2p-call-quality\",duration:r},(function(t){t.error?n(t.error):e(t.results)}))}))})),function(e){return _.apply(this,arguments)})},{key:\"stopTestConnectionQuality\",value:function(){is()?(console.warn(\"stopTestConnectionQuality() is deprecated: use testPeerToPeerCallQuality() and stopTestPeerToPeerCallQuality() instead\"),this.stopTestPeerToPeerCallQuality()):(console.warn(\"stopTestConnectionQuality() is deprecated: use testCallQuality() and stopTestCallQuality() instead\"),this.stopTestCallQuality())}},{key:\"stopTestPeerToPeerCallQuality\",value:function(){this.sendMessageToCallMachine({action:\"stop-test-p2p-call-quality\"})}},{key:\"testNetworkConnectivity\",value:(y=p((function*(e){var t=this;if(ec(this._testCallInProgress,\"testNetworkConnectivity()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}if(!this._validateVideoTrackForNetworkTests(e))throw new Error(\"Video track error\");return this._sharedTracks.videoTrackForNetworkConnectivityTest=e,new Promise((function(e,n){t.sendMessageToCallMachine({action:\"test-network-connectivity\"},(function(t){t.error?n(t.error):e(t.results)}))}))})),function(e){return y.apply(this,arguments)})},{key:\"abortTestNetworkConnectivity\",value:function(){this.sendMessageToCallMachine({action:\"abort-test-network-connectivity\"})}},{key:\"getCpuLoadStats\",value:function(){var e=this;return new Promise((function(t){if(e._callState===oi){e.sendMessageToCallMachine({action:\"get-cpu-load-stats\"},(function(e){t(e.cpuStats)}))}else t({cpuLoadState:void 0,cpuLoadStateReason:void 0,stats:{}})}))}},{key:\"_validateEncodingLayerHasValidProperties\",value:function(e){var t;if(!((null===(t=Object.keys(e))||void 0===t?void 0:t.length)>0))throw new Error(\"Empty encoding is not allowed. At least one of these valid keys should be specified:\"+Object.values(Ua))}},{key:\"_validateVideoSendSettings\",value:function(e,t){var r=\"screenVideo\"===e?[\"default-screen-video\",\"detail-optimized\",\"motion-optimized\",\"motion-and-detail-balanced\"]:[\"default-video\",\"bandwidth-optimized\",\"bandwidth-and-quality-balanced\",\"quality-optimized\",\"adaptive-2-layers\",\"adaptive-3-layers\"],i=\"Video send settings should be either an object or one of the supported presets: \".concat(r.join());if(\"string\"==typeof t){if(!r.includes(t))throw new Error(i)}else{if(\"object\"!==n(t))throw new Error(i);if(!t.maxQuality&&!t.encodings&&void 0===t.allowAdaptiveLayers)throw new Error(\"Video send settings must contain at least maxQuality, allowAdaptiveLayers or encodings attribute\");if(t.maxQuality&&-1===[\"low\",\"medium\",\"high\"].indexOf(t.maxQuality))throw new Error(\"maxQuality must be either low, medium or high\");if(t.encodings){var o=!1;switch(Object.keys(t.encodings).length){case 1:o=!t.encodings.low;break;case 2:o=!t.encodings.low||!t.encodings.medium;break;case 3:o=!t.encodings.low||!t.encodings.medium||!t.encodings.high;break;default:o=!0}if(o)throw new Error(\"Encodings must be defined as: low, low and medium, or low, medium and high.\");t.encodings.low&&this._validateEncodingLayerHasValidProperties(t.encodings.low),t.encodings.medium&&this._validateEncodingLayerHasValidProperties(t.encodings.medium),t.encodings.high&&this._validateEncodingLayerHasValidProperties(t.encodings.high)}}}},{key:\"validateUpdateSendSettings\",value:function(e){var t=this;if(!e||0===Object.keys(e).length)throw new Error(\"Send settings must contain at least information for one track!\");Object.entries(e).forEach((function(e){var n=f(e,2),r=n[0],i=n[1];t._validateVideoSendSettings(r,i)}))}},{key:\"updateSendSettings\",value:function(e){var t=this;return this.validateUpdateSendSettings(e),this.needsLoad()?(this._preloadCache.sendSettings=e,{sendSettings:this._preloadCache.sendSettings}):new Promise((function(n,r){t.sendMessageToCallMachine({action:\"update-send-settings\",sendSettings:e},(function(e){e.error?r(e.error):n(e.sendSettings)}))}))}},{key:\"getSendSettings\",value:function(){return this._sendSettings||this._preloadCache.sendSettings}},{key:\"getLocalAudioLevel\",value:function(){return this._localAudioLevel}},{key:\"getRemoteParticipantsAudioLevel\",value:function(){return this._remoteParticipantsAudioLevel}},{key:\"getActiveSpeaker\",value:function(){return rc(),this._activeSpeaker}},{key:\"setActiveSpeakerMode\",value:function(e){return rc(),this.sendMessageToCallMachine({action:\"set-active-speaker-mode\",enabled:e}),this}},{key:\"activeSpeakerMode\",value:function(){return rc(),this._activeSpeakerMode}},{key:\"subscribeToTracksAutomatically\",value:function(){return this._preloadCache.subscribeToTracksAutomatically}},{key:\"setSubscribeToTracksAutomatically\",value:function(e){return Ka(this._callState,\"setSubscribeToTracksAutomatically()\",\"Use the subscribeToTracksAutomatically configuration property.\"),this._preloadCache.subscribeToTracksAutomatically=e,this.sendMessageToCallMachine({action:\"daily-method-subscribe-to-tracks-automatically\",enabled:e}),this}},{key:\"enumerateDevices\",value:(m=p((function*(){var e=this;if(this._callObjectMode){var t=yield navigator.mediaDevices.enumerateDevices();return\"Firefox\"===ms()&&ys().major>115&&ys().major<123&&(t=t.filter((function(e){return\"audiooutput\"!==e.kind}))),{devices:t.map((function(e){var t=JSON.parse(JSON.stringify(e));if(!is()&&\"videoinput\"===e.kind&&e.getCapabilities){var n,r=e.getCapabilities();t.facing=(null==r||null===(n=r.facingMode)||void 0===n?void 0:n.length)>=1?r.facingMode[0]:void 0}return t}))}}return new Promise((function(t){e.sendMessageToCallMachine({action:\"enumerate-devices\"},(function(e){t({devices:e.devices})}))}))})),function(){return m.apply(this,arguments)})},{key:\"sendAppMessage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"*\";if(Ka(this._callState,\"sendAppMessage()\"),JSON.stringify(e).length>this._maxAppMessageSize)throw new Error(\"Message data too large. Max size is \"+this._maxAppMessageSize);return this.sendMessageToCallMachine({action:\"app-msg\",data:e,to:t}),this}},{key:\"addFakeParticipant\",value:function(e){return rc(),Ka(this._callState,\"addFakeParticipant()\"),this.sendMessageToCallMachine(Aa({action:\"add-fake-participant\"},e)),this}},{key:\"setShowNamesMode\",value:function(e){return nc(this._callObjectMode,\"setShowNamesMode()\"),rc(),e&&\"always\"!==e&&\"never\"!==e?(console.error('setShowNamesMode argument should be \"always\", \"never\", or false'),this):(this.sendMessageToCallMachine({action:\"set-show-names\",mode:e}),this)}},{key:\"setShowLocalVideo\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return nc(this._callObjectMode,\"setShowLocalVideo()\"),rc(),Ka(this._callState,\"setShowLocalVideo()\"),\"boolean\"!=typeof e?(console.error(\"setShowLocalVideo only accepts a boolean value\"),this):(this.sendMessageToCallMachine({action:\"set-show-local-video\",show:e}),this._showLocalVideo=e,this)}},{key:\"showLocalVideo\",value:function(){return nc(this._callObjectMode,\"showLocalVideo()\"),rc(),this._showLocalVideo}},{key:\"setShowParticipantsBar\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return nc(this._callObjectMode,\"setShowParticipantsBar()\"),rc(),Ka(this._callState,\"setShowParticipantsBar()\"),\"boolean\"!=typeof e?(console.error(\"setShowParticipantsBar only accepts a boolean value\"),this):(this.sendMessageToCallMachine({action:\"set-show-participants-bar\",show:e}),this._showParticipantsBar=e,this)}},{key:\"showParticipantsBar\",value:function(){return nc(this._callObjectMode,\"showParticipantsBar()\"),rc(),this._showParticipantsBar}},{key:\"customIntegrations\",value:function(){return rc(),nc(this._callObjectMode,\"customIntegrations()\"),this._customIntegrations}},{key:\"setCustomIntegrations\",value:function(e){return rc(),nc(this._callObjectMode,\"setCustomIntegrations()\"),Ka(this._callState,\"setCustomIntegrations()\"),gc(e)?(this.sendMessageToCallMachine({action:\"set-custom-integrations\",integrations:e}),this._customIntegrations=e,this):this}},{key:\"startCustomIntegrations\",value:function(e){var t=this;if(rc(),nc(this._callObjectMode,\"startCustomIntegrations()\"),Ka(this._callState,\"startCustomIntegrations()\"),Array.isArray(e)&&e.some((function(e){return\"string\"!=typeof e}))||!Array.isArray(e)&&\"string\"!=typeof e)return console.error(\"startCustomIntegrations() only accepts string | string[]\"),this;var n=\"string\"==typeof e?[e]:e,r=n.filter((function(e){return!(e in t._customIntegrations)}));return r.length?(console.error(\"Can't find custom integration(s): \\\"\".concat(r.join(\", \"),'\"')),this):(this.sendMessageToCallMachine({action:\"start-custom-integrations\",ids:n}),this)}},{key:\"stopCustomIntegrations\",value:function(e){var t=this;if(rc(),nc(this._callObjectMode,\"stopCustomIntegrations()\"),Ka(this._callState,\"stopCustomIntegrations()\"),Array.isArray(e)&&e.some((function(e){return\"string\"!=typeof e}))||!Array.isArray(e)&&\"string\"!=typeof e)return console.error(\"stopCustomIntegrations() only accepts string | string[]\"),this;var n=\"string\"==typeof e?[e]:e,r=n.filter((function(e){return!(e in t._customIntegrations)}));return r.length?(console.error(\"Can't find custom integration(s): \\\"\".concat(r.join(\", \"),'\"')),this):(this.sendMessageToCallMachine({action:\"stop-custom-integrations\",ids:n}),this)}},{key:\"customTrayButtons\",value:function(){return nc(this._callObjectMode,\"customTrayButtons()\"),rc(),this._customTrayButtons}},{key:\"updateCustomTrayButtons\",value:function(e){return nc(this._callObjectMode,\"updateCustomTrayButtons()\"),rc(),Ka(this._callState,\"updateCustomTrayButtons()\"),vc(e)?(this.sendMessageToCallMachine({action:\"update-custom-tray-buttons\",btns:e}),this._customTrayButtons=e,this):(console.error(\"updateCustomTrayButtons only accepts a dictionary of the type \".concat(JSON.stringify($a))),this)}},{key:\"theme\",value:function(){return nc(this._callObjectMode,\"theme()\"),this.properties.theme}},{key:\"setTheme\",value:function(e){var t=this;return nc(this._callObjectMode,\"setTheme()\"),new Promise((function(n,r){try{t.validateProperties({theme:e}),t.properties.theme=Aa({},e),t.sendMessageToCallMachine({action:\"set-theme\",theme:t.properties.theme});try{t.emitDailyJSEvent({action:Ui,theme:t.properties.theme})}catch(e){console.log(\"could not emit 'theme-updated'\",e)}n(t.properties.theme)}catch(e){r(e)}}))}},{key:\"requestFullscreen\",value:(g=p((function*(){if(rc(),this._iframe&&!document.fullscreenElement&&as())try{(yield this._iframe.requestFullscreen)?this._iframe.requestFullscreen():this._iframe.webkitRequestFullscreen()}catch(e){console.log(\"could not make video call fullscreen\",e)}})),function(){return g.apply(this,arguments)})},{key:\"exitFullscreen\",value:function(){rc(),document.fullscreenElement?document.exitFullscreen():document.webkitFullscreenElement&&document.webkitExitFullscreen()}},{key:\"getSidebarView\",value:(v=p((function*(){var e=this;return this._callObjectMode?(console.error(\"getSidebarView is not available in callObject mode\"),Promise.resolve(null)):new Promise((function(t){e.sendMessageToCallMachine({action:\"get-sidebar-view\"},(function(e){t(e.view)}))}))})),function(){return v.apply(this,arguments)})},{key:\"setSidebarView\",value:function(e){return this._callObjectMode?(console.error(\"setSidebarView is not available in callObject mode\"),this):(this.sendMessageToCallMachine({action:\"set-sidebar-view\",view:e}),this)}},{key:\"room\",value:(h=p((function*(){var e=this,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).includeRoomConfigDefaults,n=void 0===t||t;return this._accessState.access===fi||this.needsLoad()?this.properties.url?{roomUrlPendingJoin:this.properties.url}:null:new Promise((function(t){e.sendMessageToCallMachine({action:\"lib-room-info\",includeRoomConfigDefaults:n},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))})),function(){return h.apply(this,arguments)})},{key:\"geo\",value:(d=p((function*(){try{var e=yield fetch(\"https://gs.daily.co/_ks_/x-swsl/:\");return{current:(yield e.json()).geo}}catch(e){return console.error(\"geo lookup failed\",e),{current:\"\"}}})),function(){return d.apply(this,arguments)})},{key:\"setNetworkTopology\",value:(c=p((function*(e){var t=this;return rc(),Ka(this._callState,\"setNetworkTopology()\"),new Promise((function(n,r){t.sendMessageToCallMachine({action:\"set-network-topology\",opts:e},(function(e){e.error?r({error:e.error}):n({workerId:e.workerId})}))}))})),function(e){return c.apply(this,arguments)})},{key:\"getNetworkTopology\",value:(i=p((function*(){var e=this;return new Promise((function(t,n){e.needsLoad()&&t({topology:\"none\"}),e.sendMessageToCallMachine({action:\"get-network-topology\"},(function(e){e.error?n({error:e.error}):t({topology:e.topology})}))}))})),function(){return i.apply(this,arguments)})},{key:\"setPlayNewParticipantSound\",value:function(e){if(rc(),\"number\"!=typeof e&&!0!==e&&!1!==e)throw new Error(\"argument to setShouldPlayNewParticipantSound should be true, false, or a number, but is \".concat(e));this.sendMessageToCallMachine({action:\"daily-method-set-play-ding\",arg:e})}},{key:\"on\",value:function(e,t){return b.prototype.on.call(this,e,t)}},{key:\"once\",value:function(e,t){return b.prototype.once.call(this,e,t)}},{key:\"off\",value:function(e,t){return b.prototype.off.call(this,e,t)}},{key:\"validateProperties\",value:function(e){var t,n;if(null!=e&&null!==(t=e.dailyConfig)&&void 0!==t&&t.userMediaAudioConstraints){var r,i;is()||console.warn(\"userMediaAudioConstraints is deprecated. You can override constraints with inputSettings.audio.settings, found in DailyCallOptions.\");var o=e.inputSettings||{};o.audio=(null===(r=e.inputSettings)||void 0===r?void 0:r.audio)||{},o.audio.settings=(null===(i=e.inputSettings)||void 0===i||null===(i=i.audio)||void 0===i?void 0:i.settings)||{},o.audio.settings=Aa(Aa({},o.audio.settings),e.dailyConfig.userMediaAudioConstraints),e.inputSettings=o,delete e.dailyConfig.userMediaAudioConstraints}if(null!=e&&null!==(n=e.dailyConfig)&&void 0!==n&&n.userMediaVideoConstraints){var s,a;is()||console.warn(\"userMediaVideoConstraints is deprecated. You can override constraints with inputSettings.video.settings, found in DailyCallOptions.\");var c=e.inputSettings||{};c.video=(null===(s=e.inputSettings)||void 0===s?void 0:s.video)||{},c.video.settings=(null===(a=e.inputSettings)||void 0===a||null===(a=a.video)||void 0===a?void 0:a.settings)||{},c.video.settings=Aa(Aa({},c.video.settings),e.dailyConfig.userMediaVideoConstraints),e.inputSettings=c,delete e.dailyConfig.userMediaVideoConstraints}for(var l in e)if(za[l]){if(za[l].validate&&!za[l].validate(e[l],this))throw new Error(\"property '\".concat(l,\"': \").concat(za[l].help))}else console.warn(\"Ignoring unrecognized property '\".concat(l,\"'\")),delete e[l]}},{key:\"assembleMeetingUrl\",value:function(){var e,t,n=Aa(Aa({},this.properties),{},{emb:this.callClientId,embHref:encodeURIComponent(window.location.href),proxy:null!==(e=this.properties.dailyConfig)&&void 0!==e&&e.proxyUrl?encodeURIComponent(null===(t=this.properties.dailyConfig)||void 0===t?void 0:t.proxyUrl):void 0}),r=n.url.match(/\\?/)?\"&\":\"?\";return n.url+r+Object.keys(za).filter((function(e){return za[e].queryString&&void 0!==n[e]})).map((function(e){return\"\".concat(za[e].queryString,\"=\").concat(n[e])})).join(\"&\")}},{key:\"needsLoad\",value:function(){return[ti,ni,si,ai].includes(this._callState)}},{key:\"sendMessageToCallMachine\",value:function(e,t){if(this._destroyed&&(this._logUseAfterDestroy(),this.strictMode))throw new Error(\"Use after destroy\");this._messageChannel.sendMessageToCallMachine(e,t,this.callClientId,this._iframe)}},{key:\"forwardPackagedMessageToCallMachine\",value:function(e){this._messageChannel.forwardPackagedMessageToCallMachine(e,this._iframe,this.callClientId)}},{key:\"addListenerForPackagedMessagesFromCallMachine\",value:function(e){return this._messageChannel.addListenerForPackagedMessagesFromCallMachine(e,this.callClientId)}},{key:\"removeListenerForPackagedMessagesFromCallMachine\",value:function(e){this._messageChannel.removeListenerForPackagedMessagesFromCallMachine(e)}},{key:\"handleMessageFromCallMachine\",value:function(t){switch(t.action){case Fi:this.sendMessageToCallMachine(Aa({action:Bi},this.properties));break;case\"call-machine-initialized\":this._callMachineInitialized=!0;var n={action:Go,level:\"log\",code:1011,stats:{event:\"bundle load\",time:\"no-op\"===this._bundleLoadTime?0:this._bundleLoadTime,preLoaded:\"no-op\"===this._bundleLoadTime,url:B(this.properties.dailyConfig)}};this.sendMessageToCallMachine(n),this._delayDuplicateInstanceLog&&this._logDuplicateInstanceAttempt();break;case $i:this._loadedCallback&&(this._loadedCallback(),this._loadedCallback=null),this.emitDailyJSEvent(t);break;case Hi:var r,i=Aa({},t);delete i.internal,this._maxAppMessageSize=(null===(r=t.internal)||void 0===r?void 0:r._maxAppMessageSize)||$o,this._joinedCallback&&(this._joinedCallback(t.participants),this._joinedCallback=null),this.emitDailyJSEvent(i);break;case Qi:case Ki:if(this._callState===si)return;if(t.participant&&t.participant.session_id){var o=t.participant.local?\"local\":t.participant.session_id;if(this._callObjectMode){var s=this._callMachine().store;Zs(t.participant,s),ea(t.participant,s),na(t.participant,this._participants[o],s)}try{this.maybeParticipantTracksStopped(this._participants[o],t.participant),this.maybeParticipantTracksStarted(this._participants[o],t.participant),this.maybeEventRecordingStopped(this._participants[o],t.participant),this.maybeEventRecordingStarted(this._participants[o],t.participant)}catch(e){console.error(\"track events error\",e)}this.compareEqualForParticipantUpdateEvent(t.participant,this._participants[o])||(this._participants[o]=Aa({},t.participant),this.toggleParticipantAudioBasedOnNativeAudioFocus(),this.emitDailyJSEvent(t))}break;case Yi:if(t.participant&&t.participant.session_id){var a=this._participants[t.participant.session_id];a&&this.maybeParticipantTracksStopped(a,null),delete this._participants[t.participant.session_id],this.emitDailyJSEvent(t)}break;case Xi:S(this._participantCounts,t.participantCounts)||(this._participantCounts=t.participantCounts,this.emitDailyJSEvent(t));break;case Zi:var c={access:t.access};t.awaitingAccess&&(c.awaitingAccess=t.awaitingAccess),S(this._accessState,c)||(this._accessState=c,this.emitDailyJSEvent(t));break;case eo:if(t.meetingSession){this._meetingSessionSummary=t.meetingSession,this.emitDailyJSEvent(t);var l=Aa(Aa({},t),{},{action:\"meeting-session-updated\"});this.emitDailyJSEvent(l)}break;case Jo:var u;this._iframe&&!t.preserveIframe&&(this._iframe.src=\"\"),this._updateCallState(ai),this.resetMeetingDependentVars(),this._loadedCallback&&(this._loadedCallback(t.errorMsg),this._loadedCallback=null),t.preserveIframe;var d=e(t,Oa);null!=d&&null!==(u=d.error)&&void 0!==u&&u.details&&(d.error.details=JSON.parse(d.error.details)),this._maybeSendToSentry(t),this._joinedCallback&&(this._joinedCallback(null,d),this._joinedCallback=null),this.emitDailyJSEvent(d);break;case Gi:this._callState!==ai&&this._updateCallState(si),this.resetMeetingDependentVars(),this._resolveLeave&&(this._resolveLeave(),this._resolveLeave=null),this.emitDailyJSEvent(t);break;case\"selected-devices-updated\":t.devices&&this.emitDailyJSEvent(t);break;case Oo:var p=t.state,h=t.threshold,f=t.quality,v=p.state,g=p.reasons;v===this._network.networkState&&S(g,this._network.networkStateReasons)&&h===this._network.threshold&&f===this._network.quality||(this._network.networkState=v,this._network.networkStateReasons=g,this._network.quality=f,this._network.threshold=h,t.networkState=v,g.length&&(t.networkStateReasons=g),delete t.state,this.emitDailyJSEvent(t));break;case Ao:t&&t.cpuLoadState&&this.emitDailyJSEvent(t);break;case jo:t&&void 0!==t.faceCounts&&this.emitDailyJSEvent(t);break;case Eo:var m=t.activeSpeaker;this._activeSpeaker.peerId!==m.peerId&&(this._activeSpeaker.peerId=m.peerId,this.emitDailyJSEvent({action:t.action,activeSpeaker:this._activeSpeaker}));break;case\"show-local-video-changed\":if(this._callObjectMode)return;var y=t.show;this._showLocalVideo=y,this.emitDailyJSEvent({action:t.action,show:y});break;case To:var b=t.enabled;this._activeSpeakerMode!==b&&(this._activeSpeakerMode=b,this.emitDailyJSEvent({action:t.action,enabled:this._activeSpeakerMode}));break;case ro:case io:case oo:this._waitingParticipants=t.allWaitingParticipants,this.emitDailyJSEvent({action:t.action,participant:t.participant});break;case Bo:S(this._receiveSettings,t.receiveSettings)||(this._receiveSettings=t.receiveSettings,this.emitDailyJSEvent({action:t.action,receiveSettings:t.receiveSettings}));break;case Uo:this._maybeUpdateInputSettings(t.inputSettings);break;case\"send-settings-updated\":S(this._sendSettings,t.sendSettings)||(this._sendSettings=t.sendSettings,this._preloadCache.sendSettings=null,this.emitDailyJSEvent({action:t.action,sendSettings:t.sendSettings}));break;case\"local-audio-level\":this._localAudioLevel=t.audioLevel,this._preloadCache.localAudioLevelObserver=null,this.emitDailyJSEvent(t);break;case\"remote-participants-audio-level\":this._remoteParticipantsAudioLevel=t.participantsAudioLevel,this._preloadCache.remoteParticipantsAudioLevelObserver=null,this.emitDailyJSEvent(t);break;case _o:var _=t.session_id;this._rmpPlayerState[_]=t.playerState,this.emitDailyJSEvent(t);break;case So:delete this._rmpPlayerState[t.session_id],this.emitDailyJSEvent(t);break;case wo:var w=t.session_id,k=this._rmpPlayerState[w];k&&this.compareEqualForRMPUpdateEvent(k,t.remoteMediaPlayerState)||(this._rmpPlayerState[w]=t.remoteMediaPlayerState,this.emitDailyJSEvent(t));break;case\"custom-button-click\":case\"sidebar-view-changed\":case\"pip-started\":case\"pip-stopped\":this.emitDailyJSEvent(t);break;case to:var M=this._meetingSessionState.topology!==(t.meetingSessionState&&t.meetingSessionState.topology);this._meetingSessionState=wc(t.meetingSessionState,this._callObjectMode),(this._callObjectMode||M)&&this.emitDailyJSEvent(t);break;case ko:this._isScreenSharing=!0,this.emitDailyJSEvent(t);break;case Mo:case Co:this._isScreenSharing=!1,this.emitDailyJSEvent(t);break;case po:case ho:case fo:case vo:case go:case co:case lo:case uo:case qi:case zi:case yo:case bo:case\"test-completed\":case Po:case mo:case Lo:case Do:case No:case Ro:case Vo:case Fo:case\"dialin-ready\":case\"dialin-connected\":case\"dialin-error\":case\"dialin-stopped\":case\"dialin-warning\":case\"dialout-connected\":case\"dialout-answered\":case\"dialout-error\":case\"dialout-stopped\":case\"dialout-warning\":this.emitDailyJSEvent(t);break;case\"request-fullscreen\":this.requestFullscreen();break;case\"request-exit-fullscreen\":this.exitFullscreen()}}},{key:\"maybeEventRecordingStopped\",value:function(e,t){var n=\"record\";e&&(t.local||!1!==t[n]||e[n]===t[n]||this.emitDailyJSEvent({action:ho}))}},{key:\"maybeEventRecordingStarted\",value:function(e,t){var n=\"record\";e&&(t.local||!0!==t[n]||e[n]===t[n]||this.emitDailyJSEvent({action:po}))}},{key:\"_trackStatePlayable\",value:function(e){return!(!e||e.state!==hi)}},{key:\"_trackChanged\",value:function(e,t){return!((null==e?void 0:e.id)===(null==t?void 0:t.id))}},{key:\"maybeEventTrackStopped\",value:function(e,t,n){var r,i,o=null!==(r=null==t?void 0:t.tracks[e])&&void 0!==r?r:null,s=null!==(i=null==n?void 0:n.tracks[e])&&void 0!==i?i:null,a=null==o?void 0:o.track;if(a){var c=this._trackStatePlayable(o),l=this._trackStatePlayable(s),u=this._trackChanged(a,null==s?void 0:s.track);c&&(l&&!u||this.emitDailyJSEvent({action:ao,track:a,participant:null!=n?n:t,type:e}))}}},{key:\"maybeEventTrackStarted\",value:function(e,t,n){var r,i,o=null!==(r=null==t?void 0:t.tracks[e])&&void 0!==r?r:null,s=null!==(i=null==n?void 0:n.tracks[e])&&void 0!==i?i:null,a=null==s?void 0:s.track;if(a){var c=this._trackStatePlayable(o),l=this._trackStatePlayable(s),u=this._trackChanged(null==o?void 0:o.track,a);l&&(c&&!u||this.emitDailyJSEvent({action:so,track:a,participant:n,type:e}))}}},{key:\"maybeParticipantTracksStopped\",value:function(e,t){if(e)for(var n in e.tracks)this.maybeEventTrackStopped(n,e,t)}},{key:\"maybeParticipantTracksStarted\",value:function(e,t){if(t)for(var n in t.tracks)this.maybeEventTrackStarted(n,e,t)}},{key:\"compareEqualForRMPUpdateEvent\",value:function(e,t){var n,r;return e.state===t.state&&(null===(n=e.settings)||void 0===n?void 0:n.volume)===(null===(r=t.settings)||void 0===r?void 0:r.volume)}},{key:\"emitDailyJSEvent\",value:function(e){try{e.callClientId=this.callClientId,this.emit(e.action,e)}catch(t){console.log(\"could not emit\",e,t)}}},{key:\"compareEqualForParticipantUpdateEvent\",value:function(e,t){return!!S(e,t)&&((!e.videoTrack||!t.videoTrack||e.videoTrack.id===t.videoTrack.id&&e.videoTrack.muted===t.videoTrack.muted&&e.videoTrack.enabled===t.videoTrack.enabled)&&(!e.audioTrack||!t.audioTrack||e.audioTrack.id===t.audioTrack.id&&e.audioTrack.muted===t.audioTrack.muted&&e.audioTrack.enabled===t.audioTrack.enabled))}},{key:\"nativeUtils\",value:function(){return is()?\"undefined\"==typeof DailyNativeUtils?(console.warn(\"in React Native, DailyNativeUtils is expected to be available\"),null):DailyNativeUtils:null}},{key:\"updateIsPreparingToJoin\",value:function(e){this._updateCallState(this._callState,e)}},{key:\"_updateCallState\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._isPreparingToJoin;if(e!==this._callState||t!==this._isPreparingToJoin){var n=this._callState,r=this._isPreparingToJoin;this._callState=e,this._isPreparingToJoin=t;var i=this._callState===oi;this.updateShowAndroidOngoingMeetingNotification(i);var o=Ya(n,r),s=Ya(this._callState,this._isPreparingToJoin);o!==s&&(this.updateKeepDeviceAwake(s),this.updateDeviceAudioMode(s),this.updateNoOpRecordingEnsuringBackgroundContinuity(s))}}},{key:\"resetMeetingDependentVars\",value:function(){this._participants={},this._participantCounts=Fa,this._waitingParticipants={},this._activeSpeaker={},this._activeSpeakerMode=!1,this._didPreAuth=!1,this._accessState={access:fi},this._finalSummaryOfPrevSession=this._meetingSessionSummary,this._meetingSessionSummary={},this._meetingSessionState=wc(Ra,this._callObjectMode),this._isScreenSharing=!1,this._receiveSettings={},this._inputSettings=void 0,this._sendSettings={},this._localAudioLevel=0,this._isLocalAudioLevelObserverRunning=!1,this._remoteParticipantsAudioLevel={},this._isRemoteParticipantsAudioLevelObserverRunning=!1,this._maxAppMessageSize=$o,this._callMachineInitialized=!1,this._bundleLoadTime=void 0,this._preloadCache}},{key:\"updateKeepDeviceAwake\",value:function(e){is()&&this.nativeUtils().setKeepDeviceAwake(e,this.callClientId)}},{key:\"updateDeviceAudioMode\",value:function(e){if(is()&&!this.disableReactNativeAutoDeviceManagement(\"audio\")){var t=e?this._nativeInCallAudioMode:\"idle\";this.nativeUtils().setAudioMode(t)}}},{key:\"updateShowAndroidOngoingMeetingNotification\",value:function(e){if(is()&&this.nativeUtils().setShowOngoingMeetingNotification){var t,n,r,i;if(this.properties.reactNativeConfig&&this.properties.reactNativeConfig.androidInCallNotification){var o=this.properties.reactNativeConfig.androidInCallNotification;t=o.title,n=o.subtitle,r=o.iconName,i=o.disableForCustomOverride}i&&(e=!1),this.nativeUtils().setShowOngoingMeetingNotification(e,t,n,r,this.callClientId)}}},{key:\"updateNoOpRecordingEnsuringBackgroundContinuity\",value:function(e){is()&&this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity&&this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity(e)}},{key:\"toggleParticipantAudioBasedOnNativeAudioFocus\",value:function(){var e;if(is()){var t=null===(e=this._callMachine())||void 0===e||null===(e=e.store)||void 0===e?void 0:e.getState();for(var n in null==t?void 0:t.streams){var r=t.streams[n];r&&r.pendingTrack&&\"audio\"===r.pendingTrack.kind&&(r.pendingTrack.enabled=this._hasNativeAudioFocus)}}}},{key:\"disableReactNativeAutoDeviceManagement\",value:function(e){return this.properties.reactNativeConfig&&this.properties.reactNativeConfig.disableAutoDeviceManagement&&this.properties.reactNativeConfig.disableAutoDeviceManagement[e]}},{key:\"absoluteUrl\",value:function(e){if(void 0!==e){var t=document.createElement(\"a\");return t.href=e,t.href}}},{key:\"sayHello\",value:function(){var e=\"hello, world.\";return console.log(e),e}},{key:\"_logUseAfterDestroy\",value:function(){var e=Object.values(La)[0];if(this.needsLoad()){if(e&&!e.needsLoad()){var t={action:Go,level:\"error\",code:this.strictMode?9995:9997};e.sendMessageToCallMachine(t)}else if(!this.strictMode){console.error(\"You are are attempting to use a call instance that was previously destroyed, which is unsupported. Please remove `strictMode: false` from your constructor properties to enable strict mode to track down and fix this unsupported usage.\")}}else{var n={action:Go,level:\"error\",code:this.strictMode?9995:9997};this._messageChannel.sendMessageToCallMachine(n,null,this.callClientId,this._iframe)}}},{key:\"_logDuplicateInstanceAttempt\",value:function(){for(var e=0,t=Object.values(La);e<t.length;e++){var n=t[e];n._callMachineInitialized?(n.sendMessageToCallMachine({action:Go,level:\"warn\",code:this.allowMultipleCallInstances?9993:9992}),n._delayDuplicateInstanceLog=!1):n._delayDuplicateInstanceLog=!0}}},{key:\"_maybeSendToSentry\",value:function(e){var t,n,i,o;if(null!==(t=e.error)&&void 0!==t&&t.type){if(![Pi,Ti,Ci].includes(e.error.type))return;if(e.error.type===Ci&&e.error.msg.includes(\"deleted\"))return}var s=null!==(n=this.properties)&&void 0!==n&&n.url?new URL(this.properties.url):void 0,a=\"production\";s&&s.host.includes(\".staging.daily\")&&(a=\"staging\");var c,l,u,d,p,h=function(e){const t=[Ln(),In(),qr(),Jr(),Kr(),ei(),$n(),Zr()];return!1!==e.autoSessionTracking&&t.push(Qr()),t}({}).filter((function(e){return![\"BrowserApiErrors\",\"Breadcrumbs\",\"GlobalHandlers\"].includes(e.name)})),f=new mr({dsn:\"https://f10f1c81e5d44a4098416c0867a8b740@o77906.ingest.sentry.io/168844\",transport:Ir,stackParser:Br,integrations:h,environment:a}),v=new ut;if(v.setClient(f),f.init(),this.session_id&&v.setExtra(\"sessionId\",this.session_id),this.properties){var g=Aa({},this.properties);g.userName=g.userName?\"[Filtered]\":void 0,g.userData=g.userData?\"[Filtered]\":void 0,g.token=g.token?\"[Filtered]\":void 0,v.setExtra(\"properties\",g)}if(s){var m=s.searchParams.get(\"domain\");if(!m){var y=s.host.match(/(.*?)\\./);m=y&&y[1]||\"\"}m&&v.setTag(\"domain\",m)}e.error&&(v.setTag(\"fatalErrorType\",e.error.type),v.setExtra(\"errorDetails\",e.error.details),(null===(c=e.error.details)||void 0===c?void 0:c.uri)&&v.setTag(\"serverAddress\",e.error.details.uri),(null===(l=e.error.details)||void 0===l?void 0:l.workerGroup)&&v.setTag(\"workerGroup\",e.error.details.workerGroup),(null===(u=e.error.details)||void 0===u?void 0:u.geoGroup)&&v.setTag(\"geoGroup\",e.error.details.geoGroup),(null===(d=e.error.details)||void 0===d?void 0:d.on)&&v.setTag(\"connectionAttempt\",e.error.details.on),null!==(p=e.error.details)&&void 0!==p&&p.bundleUrl&&(v.setTag(\"bundleUrl\",e.error.details.bundleUrl),v.setTag(\"bundleError\",e.error.details.sourceError.type)));v.setTags({callMode:this._callObjectMode?is()?\"reactNative\":null!==(i=this.properties)&&void 0!==i&&null!==(i=i.dailyConfig)&&void 0!==i&&null!==(i=i.callMode)&&void 0!==i&&i.includes(\"prebuilt\")?this.properties.dailyConfig.callMode:\"custom\":\"prebuilt-frame\",version:r.version()});var b=(null===(o=e.error)||void 0===o?void 0:o.msg)||e.errorMsg;v.captureException(new Error(b))}},{key:\"_callMachine\",value:function(){var e;return null===(e=window._daily)||void 0===e||null===(e=e.instances)||void 0===e||null===(e=e[this.callClientId])||void 0===e?void 0:e.callMachine}},{key:\"_maybeUpdateInputSettings\",value:function(e){if(!S(this._inputSettings,e)){var t=this._getInputSettings();this._inputSettings=e;var n=this._getInputSettings();S(t,n)||this.emitDailyJSEvent({action:Uo,inputSettings:n})}}}],[{key:\"supportedBrowser\",value:function(){if(is())return{supported:!0,mobile:!0,name:\"React Native\",version:null,supportsScreenShare:!0,supportsSfu:!0,supportsVideoProcessing:!1,supportsAudioProcessing:!1};var e=D.getParser(rs());return{supported:!!fs(),mobile:\"mobile\"===e.getPlatformType(),name:e.getBrowserName(),version:e.getBrowserVersion(),supportsFullscreen:!!as(),supportsScreenShare:!!ss(),supportsSfu:!!fs(),supportsVideoProcessing:ps(),supportsAudioProcessing:hs()}}},{key:\"version\",value:function(){return\"0.87.0\"}},{key:\"createCallObject\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.layout=\"none\",new r(null,e)}},{key:\"wrap\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(rc(),!e||!e.contentWindow||\"string\"!=typeof e.src)throw new Error(\"DailyIframe::Wrap needs an iframe-like first argument\");return t.layout||(t.customLayout?t.layout=\"custom-v1\":t.layout=\"browser\"),new r(e,t)}},{key:\"createFrame\",value:function(e,t){var n,i;rc(),e&&t?(n=e,i=t):e&&e.append?(n=e,i={}):(n=document.body,i=e||{});var o=i.iframeStyle;o||(o=n===document.body?{position:\"fixed\",border:\"1px solid black\",backgroundColor:\"white\",width:\"375px\",height:\"450px\",right:\"1em\",bottom:\"1em\"}:{border:0,width:\"100%\",height:\"100%\"});var s=document.createElement(\"iframe\");window.navigator&&window.navigator.userAgent.match(/Chrome\\/61\\./)?s.allow=\"microphone, camera\":s.allow=\"microphone; camera; autoplay; display-capture; screen-wake-lock; compute-pressure;\",s.style.visibility=\"hidden\",n.appendChild(s),s.style.visibility=null,Object.keys(o).forEach((function(e){return s.style[e]=o[e]})),i.layout||(i.customLayout?i.layout=\"custom-v1\":i.layout=\"browser\");try{return new r(s,i)}catch(e){throw n.removeChild(s),e}}},{key:\"createTransparentFrame\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};rc();var t=document.createElement(\"iframe\");return t.allow=\"microphone; camera; autoplay\",t.style.cssText=\"\\n      position: fixed;\\n      top: 0;\\n      left: 0;\\n      width: 100%;\\n      height: 100%;\\n      border: 0;\\n      pointer-events: none;\\n    \",document.body.appendChild(t),e.layout||(e.layout=\"custom-v1\"),r.wrap(t,e)}},{key:\"getCallInstance\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return e?La[e]:Object.values(La)[0]}}]);var i,c,d,h,v,g,m,y,_,w,k,M,C,E,T,O,P,A,j,I,x,L,R,U,V,J,$,q,z,W,H,G,Q,K,Y,X,Z,ee}();function Ga(e){if(e.extension){if(\"string\"!=typeof e.extension)throw new Error(\"Error starting dial out: extension must be a string\");if(e.extension.length>20)throw new Error(\"Error starting dial out: extension length must be less than or equal to 20\")}if(e.waitBeforeExtensionDialSec){if(\"number\"!=typeof e.waitBeforeExtensionDialSec)throw new Error(\"Error starting dial out: waitBeforeExtensionDialSec must be a number\");if(e.waitBeforeExtensionDialSec>60)throw new Error(\"Error starting dial out: waitBeforeExtensionDialSec must be less than or equal to 60\");if(!e.extension)throw new Error(\"Error starting dial out: waitBeforeExtensionDialSec requires a phoneNumber and extension\")}}function Qa(e,t){var n={};for(var r in e)if(e[r]instanceof MediaStreamTrack)console.warn(\"MediaStreamTrack found in props or cache.\",r),n[r]=Qo;else if(\"dailyConfig\"===r){if(e[r].modifyLocalSdpHook){var i=window._daily.instances[t].customCallbacks||{};i.modifyLocalSdpHook=e[r].modifyLocalSdpHook,window._daily.instances[t].customCallbacks=i,delete e[r].modifyLocalSdpHook}if(e[r].modifyRemoteSdpHook){var o=window._daily.instances[t].customCallbacks||{};o.modifyRemoteSdpHook=e[r].modifyRemoteSdpHook,window._daily.instances[t].customCallbacks=o,delete e[r].modifyRemoteSdpHook}n[r]=e[r]}else n[r]=e[r];return n}function Ka(e){var t=arguments.length>2?arguments[2]:void 0;if(e!==oi){var n=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" only supported after join.\");throw t&&(n+=\" \".concat(t)),console.error(n),new Error(n)}}function Ya(e,t){return[ii,oi].includes(e)||t}function Xa(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"This daily-js method\",r=arguments.length>3?arguments[3]:void 0;if(Ya(e,t)){var i=\"\".concat(n,\" not supported after joining a meeting.\");throw r&&(i+=\" \".concat(r)),console.error(i),new Error(i)}}function Za(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",n=arguments.length>2?arguments[2]:void 0;if(!e){var r=\"\".concat(t,arguments.length>3&&void 0!==arguments[3]&&arguments[3]?\" requires preAuth() or startCamera() to initialize call state.\":\" requires preAuth(), startCamera(), or join() to initialize call state.\");throw n&&(r+=\" \".concat(n)),console.error(r),new Error(r)}}function ec(e){if(e){var t=\"A pre-call quality test is in progress. Please try \".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" again once testing has completed. Use stopTestCallQuality() to end it early.\");throw console.error(t),new Error(t)}}function tc(e){if(!e){var t=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" is only supported on custom callObject instances\");throw console.error(t),new Error(t)}}function nc(e){if(e){var t=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" is only supported as part of Daily's Prebuilt\");throw console.error(t),new Error(t)}}function rc(){if(is())throw new Error(\"This daily-js method is not currently supported in React Native\")}function ic(){if(!is())throw new Error(\"This daily-js method is only supported in React Native\")}function oc(e){if(void 0===e)return!0;var t;if(\"string\"==typeof e)t=e;else try{t=JSON.stringify(e),S(JSON.parse(t),e)||console.warn(\"The userData provided will be modified when serialized.\")}catch(e){throw Error(\"userData must be serializable to JSON: \".concat(e))}if(t.length>4096)throw Error(\"userData is too large (\".concat(t.length,\" characters). Maximum size suppported is \").concat(4096,\".\"));return!0}function sc(e,t){for(var n=t.allowAllParticipantsKey,r=function(e){var t=[\"local\"];return n||t.push(\"*\"),e&&!t.includes(e)},i=function(e){return!!(void 0===e.layer||Number.isInteger(e.layer)&&e.layer>=0||\"inherit\"===e.layer)},o=function(e){return!!e&&(!(e.video&&!i(e.video))&&!(e.screenVideo&&!i(e.screenVideo)))},s=0,a=Object.entries(e);s<a.length;s++){var c=f(a[s],2),l=c[0],u=c[1];if(!r(l)||!o(u))return!1}return!0}function ac(e){if(\"object\"!==n(e))return!1;for(var t=0,r=Object.entries(e);t<r.length;t++){var i=f(r[t],2),o=i[0],s=i[1];switch(o){case\"video\":if(\"object\"!==n(s))return!1;for(var a=0,c=Object.entries(s);a<c.length;a++){var l=f(c[a],2),u=l[0],d=l[1];switch(u){case\"processor\":if(!uc(d))return!1;break;case\"settings\":if(!dc(d))return!1;break;default:return!1}}break;case\"audio\":if(\"object\"!==n(s))return!1;for(var p=0,h=Object.entries(s);p<h.length;p++){var v=f(h[p],2),g=v[0],m=v[1];switch(g){case\"processor\":if(!lc(m))return!1;break;case\"settings\":if(!dc(m))return!1;break;default:return!1}}break;default:return!1}}return!0}function cc(e,t,n){var r,i=[];e.video&&e.video.processor&&(ps(null!==(r=null==t?void 0:t.useLegacyVideoProcessor)&&void 0!==r&&r)||(e.video.settings?delete e.video.processor:delete e.video,i.push(\"video\")));e.audio&&e.audio.processor&&(hs()||(e.audio.settings?delete e.audio.processor:delete e.audio,i.push(\"audio\"))),i.length>0&&console.error(\"Ignoring settings for browser- or platform-unsupported input processor(s): \".concat(i.join(\", \"))),e.audio&&e.audio.settings&&(e.audio.settings.customTrack?(n.audioTrack=e.audio.settings.customTrack,e.audio.settings={customTrack:Qo}):delete n.audioTrack),e.video&&e.video.settings&&(e.video.settings.customTrack?(n.videoTrack=e.video.settings.customTrack,e.video.settings={customTrack:Qo}):delete n.videoTrack)}function lc(e){if(is())return console.warn(\"Video processing is not yet supported in React Native\"),!1;var t=[\"type\"];return!!e&&(\"object\"===n(e)&&(Object.keys(e).filter((function(e){return!t.includes(e)})).forEach((function(t){console.warn(\"invalid key inputSettings -> audio -> processor : \".concat(t)),delete e[t]})),!!function(e){if(\"string\"!=typeof e)return!1;if(!Object.values(Yo).includes(e))return console.error(\"inputSettings audio processor type invalid\"),!1;return!0}(e.type)))}function uc(e){if(is())return console.warn(\"Video processing is not yet supported in React Native\"),!1;var t=[\"type\",\"config\"];if(!e)return!1;if(\"object\"!==n(e))return!1;if(!function(e){if(\"string\"!=typeof e)return!1;if(!Object.values(Ko).includes(e))return console.error(\"inputSettings video processor type invalid\"),!1;return!0}(e.type))return!1;if(e.config){if(\"object\"!==n(e.config))return!1;if(!function(e,t){var n=Object.keys(t);if(0===n.length)return!0;var r=\"invalid object in inputSettings -> video -> processor -> config\";switch(e){case Ko.BGBLUR:return n.length>1||\"strength\"!==n[0]?(console.error(r),!1):!(\"number\"!=typeof t.strength||t.strength<=0||t.strength>1||isNaN(t.strength))||(console.error(\"\".concat(r,\"; expected: {0 < strength <= 1}, got: \").concat(t.strength)),!1);case Ko.BGIMAGE:return!(void 0!==t.source&&!function(e){if(\"default\"===e.source)return e.type=\"default\",!0;if(e.source instanceof ArrayBuffer)return!0;if(U(e.source))return e.type=\"url\",!!function(e){var t=new URL(e),n=t.pathname;if(\"data:\"===t.protocol)try{var r=n.substring(n.indexOf(\":\")+1,n.indexOf(\";\")).split(\"/\")[1];return Zo.includes(r)}catch(e){return console.error(\"failed to deduce blob content type\",e),!1}var i=n.split(\".\").at(-1).toLowerCase().trim();return Zo.includes(i)}(e.source)||(console.error(\"invalid image type; supported types: [\".concat(Zo.join(\", \"),\"]\")),!1);return t=e.source,n=Number(t),isNaN(n)||!Number.isInteger(n)||n<=0||n>10?(console.error(\"invalid image selection; must be an int, > 0, <= \".concat(10)),!1):(e.type=\"daily-preselect\",!0);var t,n}(t));default:return!0}}(e.type,e.config))return!1}return Object.keys(e).filter((function(e){return!t.includes(e)})).forEach((function(t){console.warn(\"invalid key inputSettings -> video -> processor : \".concat(t)),delete e[t]})),!0}function dc(e){return\"object\"===n(e)&&(!e.customTrack||e.customTrack instanceof MediaStreamTrack)}function pc(){var e=Object.values(Ko).join(\" | \"),t=Object.values(Yo).join(\" | \");return\"inputSettings must be of the form: { video?: { processor?: { type: [ \".concat(e,\" ], config?: {} } }, audio?: { processor: {type: [ \").concat(t,\" ] } } }\")}function hc(e){var t=e.allowAllParticipantsKey;return\"receiveSettings must be of the form { [<remote participant id> | \".concat(yi).concat(t?' | \"'.concat(\"*\",'\"'):\"\",\"]: \")+'{ [video: [{ layer: [<non-negative integer> | \"inherit\"] } | \"inherit\"]], [screenVideo: [{ layer: [<non-negative integer> | \"inherit\"] } | \"inherit\"]] }}}'}function fc(){return\"customIntegrations should be an object of type \".concat(JSON.stringify(qa),\".\")}function vc(e){if(e&&\"object\"!==n(e)||Array.isArray(e))return console.error(\"customTrayButtons should be an Object of the type \".concat(JSON.stringify($a),\".\")),!1;if(e)for(var t=0,r=Object.entries(e);t<r.length;t++)for(var i=f(r[t],1)[0],o=0,s=Object.entries(e[i]);o<s.length;o++){var a=f(s[o],2),c=a[0],l=a[1],u=$a.id[c];if(!u)return console.error(\"customTrayButton does not support key \".concat(c)),!1;switch(c){case\"iconPath\":case\"iconPathDarkMode\":if(!U(l))return console.error(\"customTrayButton \".concat(c,\" should be a url.\")),!1;break;case\"visualState\":if(![\"default\",\"sidebar-open\",\"active\"].includes(l))return console.error(\"customTrayButton \".concat(c,\" should be \").concat(u,\". Got: \").concat(l)),!1;break;default:if(n(l)!==u)return console.error(\"customTrayButton \".concat(c,\" should be a \").concat(u,\".\")),!1}}return!0}function gc(e){if(!e||e&&\"object\"!==n(e)||Array.isArray(e))return console.error(fc()),!1;for(var t=function(e){return\"\".concat(e,\" should be \").concat(qa.id[e])},r=function(e,t){return console.error(\"customIntegration \".concat(e,\": \").concat(t))},i=0,o=Object.entries(e);i<o.length;i++){var s=f(o[i],1)[0];if(!(\"label\"in e[s]))return r(s,\"label is required\"),!1;if(!(\"location\"in e[s]))return r(s,\"location is required\"),!1;if(!(\"src\"in e[s])&&!(\"srcdoc\"in e[s]))return r(s,\"src or srcdoc is required\"),!1;for(var a=0,c=Object.entries(e[s]);a<c.length;a++){var l=f(c[a],2),u=l[0],d=l[1];switch(u){case\"allow\":case\"csp\":case\"name\":case\"referrerPolicy\":case\"sandbox\":if(\"string\"!=typeof d)return r(s,t(u)),!1;break;case\"iconURL\":if(!U(d))return r(s,\"\".concat(u,\" should be a url\")),!1;break;case\"src\":if(\"srcdoc\"in e[s])return r(s,\"cannot have both src and srcdoc\"),!1;if(!U(d))return r(s,'src \"'.concat(d,'\" is not a valid URL')),!1;break;case\"srcdoc\":if(\"src\"in e[s])return r(s,\"cannot have both src and srcdoc\"),!1;if(\"string\"!=typeof d)return r(s,t(u)),!1;break;case\"location\":if(![\"main\",\"sidebar\"].includes(d))return r(s,t(u)),!1;break;case\"controlledBy\":if(\"*\"!==d&&\"owners\"!==d&&(!Array.isArray(d)||d.some((function(e){return\"string\"!=typeof e}))))return r(s,t(u)),!1;break;case\"shared\":if((!Array.isArray(d)||d.some((function(e){return\"string\"!=typeof e})))&&\"owners\"!==d&&\"boolean\"!=typeof d)return r(s,t(u)),!1;break;default:if(!qa.id[u])return console.error(\"customIntegration does not support key \".concat(u)),!1}}}return!0}function mc(e,t){if(void 0===t)return!1;switch(n(t)){case\"string\":return n(e)===t;case\"object\":if(\"object\"!==n(e))return!1;for(var r in e)if(!mc(e[r],t[r]))return!1;return!0;default:return!1}}function yc(e,t){var n=e.sessionId,r=e.toEndPoint,i=e.callerId,o=e.useSipRefer;if(!n||!r)throw new Error(\"\".concat(t,\"() requires a sessionId and toEndPoint\"));if(\"string\"!=typeof n||\"string\"!=typeof r)throw new Error(\"Invalid paramater: sessionId and toEndPoint must be of type string\");if(o&&!r.startsWith(\"sip:\"))throw new Error('\"toEndPoint\" must be a \"sip\" address');if(!r.startsWith(\"sip:\")&&!r.startsWith(\"+\"))throw new Error(\"toEndPoint: \".concat(r,' must starts with either \"sip:\" or \"+\"'));if(i&&\"string\"!=typeof i)throw new Error(\"callerId must be of type string\");if(i&&!r.startsWith(\"+\"))throw new Error(\"callerId is only valid when transferring to a PSTN number\")}function bc(e){if(\"object\"!==n(e))throw new Error('RemoteMediaPlayerSettings: must be \"object\" type');if(e.state&&!Object.values(Xo).includes(e.state))throw new Error(\"Invalid value for RemoteMediaPlayerSettings.state, valid values are: \"+JSON.stringify(Xo));if(e.volume){if(\"number\"!=typeof e.volume)throw new Error('RemoteMediaPlayerSettings.volume: must be \"number\" type');if(e.volume<0||e.volume>2)throw new Error(\"RemoteMediaPlayerSettings.volume: must be between 0.0 - 2.0\")}}function _c(e,t,n){return!(\"number\"!=typeof e||e<t||e>n)}function wc(e,t){return e&&!t&&delete e.data,e}export{vi as DAILY_ACCESS_LEVEL_FULL,gi as DAILY_ACCESS_LEVEL_LOBBY,mi as DAILY_ACCESS_LEVEL_NONE,fi as DAILY_ACCESS_UNKNOWN,Ii as DAILY_CAMERA_ERROR_CAM_AND_MIC_IN_USE,Ai as DAILY_CAMERA_ERROR_CAM_IN_USE,Ni as DAILY_CAMERA_ERROR_CONSTRAINTS,ji as DAILY_CAMERA_ERROR_MIC_IN_USE,Di as DAILY_CAMERA_ERROR_NOT_FOUND,xi as DAILY_CAMERA_ERROR_PERMISSIONS,Li as DAILY_CAMERA_ERROR_UNDEF_MEDIADEVICES,Ri as DAILY_CAMERA_ERROR_UNKNOWN,Zi as DAILY_EVENT_ACCESS_STATE_UPDATED,Eo as DAILY_EVENT_ACTIVE_SPEAKER_CHANGE,To as DAILY_EVENT_ACTIVE_SPEAKER_MODE_CHANGE,yo as DAILY_EVENT_APP_MSG,zi as DAILY_EVENT_CAMERA_ERROR,Ao as DAILY_EVENT_CPU_LOAD_CHANGE,Jo as DAILY_EVENT_ERROR,xo as DAILY_EVENT_EXIT_FULLSCREEN,jo as DAILY_EVENT_FACE_COUNTS_UPDATED,Io as DAILY_EVENT_FULLSCREEN,Bi as DAILY_EVENT_IFRAME_LAUNCH_CONFIG,Fi as DAILY_EVENT_IFRAME_READY_FOR_LAUNCH_CONFIG,Uo as DAILY_EVENT_INPUT_SETTINGS_UPDATED,Hi as DAILY_EVENT_JOINED_MEETING,Wi as DAILY_EVENT_JOINING_MEETING,Fo as DAILY_EVENT_LANG_UPDATED,Gi as DAILY_EVENT_LEFT_MEETING,Ro as DAILY_EVENT_LIVE_STREAMING_ERROR,Lo as DAILY_EVENT_LIVE_STREAMING_STARTED,No as DAILY_EVENT_LIVE_STREAMING_STOPPED,Do as DAILY_EVENT_LIVE_STREAMING_UPDATED,$i as DAILY_EVENT_LOADED,Vi as DAILY_EVENT_LOADING,Ji as DAILY_EVENT_LOAD_ATTEMPT_FAILED,Co as DAILY_EVENT_LOCAL_SCREEN_SHARE_CANCELED,ko as DAILY_EVENT_LOCAL_SCREEN_SHARE_STARTED,Mo as DAILY_EVENT_LOCAL_SCREEN_SHARE_STOPPED,no as DAILY_EVENT_MEETING_SESSION_DATA_ERROR,to as DAILY_EVENT_MEETING_SESSION_STATE_UPDATED,eo as DAILY_EVENT_MEETING_SESSION_SUMMARY_UPDATED,Po as DAILY_EVENT_NETWORK_CONNECTION,Oo as DAILY_EVENT_NETWORK_QUALITY_CHANGE,Vo as DAILY_EVENT_NONFATAL_ERROR,Xi as DAILY_EVENT_PARTICIPANT_COUNTS_UPDATED,Qi as DAILY_EVENT_PARTICIPANT_JOINED,Yi as DAILY_EVENT_PARTICIPANT_LEFT,Ki as DAILY_EVENT_PARTICIPANT_UPDATED,Bo as DAILY_EVENT_RECEIVE_SETTINGS_UPDATED,mo as DAILY_EVENT_RECORDING_DATA,vo as DAILY_EVENT_RECORDING_ERROR,po as DAILY_EVENT_RECORDING_STARTED,fo as DAILY_EVENT_RECORDING_STATS,ho as DAILY_EVENT_RECORDING_STOPPED,go as DAILY_EVENT_RECORDING_UPLOAD_COMPLETED,_o as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STARTED,So as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STOPPED,wo as DAILY_EVENT_REMOTE_MEDIA_PLAYER_UPDATED,qi as DAILY_EVENT_STARTED_CAMERA,Ui as DAILY_EVENT_THEME_UPDATED,so as DAILY_EVENT_TRACK_STARTED,ao as DAILY_EVENT_TRACK_STOPPED,uo as DAILY_EVENT_TRANSCRIPTION_ERROR,bo as DAILY_EVENT_TRANSCRIPTION_MSG,co as DAILY_EVENT_TRANSCRIPTION_STARTED,lo as DAILY_EVENT_TRANSCRIPTION_STOPPED,ro as DAILY_EVENT_WAITING_PARTICIPANT_ADDED,oo as DAILY_EVENT_WAITING_PARTICIPANT_REMOVED,io as DAILY_EVENT_WAITING_PARTICIPANT_UPDATED,Pi as DAILY_FATAL_ERROR_CONNECTION,_i as DAILY_FATAL_ERROR_EJECTED,Ti as DAILY_FATAL_ERROR_EOL,ki as DAILY_FATAL_ERROR_EXP_ROOM,Mi as DAILY_FATAL_ERROR_EXP_TOKEN,Ei as DAILY_FATAL_ERROR_MEETING_FULL,wi as DAILY_FATAL_ERROR_NBF_ROOM,Si as DAILY_FATAL_ERROR_NBF_TOKEN,Oi as DAILY_FATAL_ERROR_NOT_ALLOWED,Ci as DAILY_FATAL_ERROR_NO_ROOM,bi as DAILY_RECEIVE_SETTINGS_ALL_PARTICIPANTS_KEY,yi as DAILY_RECEIVE_SETTINGS_BASE_KEY,ai as DAILY_STATE_ERROR,oi as DAILY_STATE_JOINED,ii as DAILY_STATE_JOINING,si as DAILY_STATE_LEFT,ti as DAILY_STATE_NEW,ci as DAILY_TRACK_STATE_BLOCKED,pi as DAILY_TRACK_STATE_INTERRUPTED,di as DAILY_TRACK_STATE_LOADING,li as DAILY_TRACK_STATE_OFF,hi as DAILY_TRACK_STATE_PLAYABLE,ui as DAILY_TRACK_STATE_SENDABLE,Ha as default};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n  ? R.apply\n  : function ReflectApply(target, receiver, args) {\n    return Function.prototype.apply.call(target, receiver, args);\n  }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n  ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target)\n      .concat(Object.getOwnPropertySymbols(target));\n  };\n} else {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target);\n  };\n}\n\nfunction ProcessEmitWarning(warning) {\n  if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n  return value !== value;\n}\n\nfunction EventEmitter() {\n  EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n  enumerable: true,\n  get: function() {\n    return defaultMaxListeners;\n  },\n  set: function(arg) {\n    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n      throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n    }\n    defaultMaxListeners = arg;\n  }\n});\n\nEventEmitter.init = function() {\n\n  if (this._events === undefined ||\n      this._events === Object.getPrototypeOf(this)._events) {\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n  }\n\n  this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n    throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n  }\n  this._maxListeners = n;\n  return this;\n};\n\nfunction _getMaxListeners(that) {\n  if (that._maxListeners === undefined)\n    return EventEmitter.defaultMaxListeners;\n  return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n  return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n  var args = [];\n  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n  var doError = (type === 'error');\n\n  var events = this._events;\n  if (events !== undefined)\n    doError = (doError && events.error === undefined);\n  else if (!doError)\n    return false;\n\n  // If there is no 'error' event listener then throw.\n  if (doError) {\n    var er;\n    if (args.length > 0)\n      er = args[0];\n    if (er instanceof Error) {\n      // Note: The comments on the `throw` lines are intentional, they show\n      // up in Node's output if this results in an unhandled exception.\n      throw er; // Unhandled 'error' event\n    }\n    // At least give some kind of context to the user\n    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n    err.context = er;\n    throw err; // Unhandled 'error' event\n  }\n\n  var handler = events[type];\n\n  if (handler === undefined)\n    return false;\n\n  if (typeof handler === 'function') {\n    ReflectApply(handler, this, args);\n  } else {\n    var len = handler.length;\n    var listeners = arrayClone(handler, len);\n    for (var i = 0; i < len; ++i)\n      ReflectApply(listeners[i], this, args);\n  }\n\n  return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n  var m;\n  var events;\n  var existing;\n\n  checkListener(listener);\n\n  events = target._events;\n  if (events === undefined) {\n    events = target._events = Object.create(null);\n    target._eventsCount = 0;\n  } else {\n    // To avoid recursion in the case that type === \"newListener\"! Before\n    // adding it to the listeners, first emit \"newListener\".\n    if (events.newListener !== undefined) {\n      target.emit('newListener', type,\n                  listener.listener ? listener.listener : listener);\n\n      // Re-assign `events` because a newListener handler could have caused the\n      // this._events to be assigned to a new object\n      events = target._events;\n    }\n    existing = events[type];\n  }\n\n  if (existing === undefined) {\n    // Optimize the case of one listener. Don't need the extra array object.\n    existing = events[type] = listener;\n    ++target._eventsCount;\n  } else {\n    if (typeof existing === 'function') {\n      // Adding the second element, need to change to array.\n      existing = events[type] =\n        prepend ? [listener, existing] : [existing, listener];\n      // If we've already got an array, just append.\n    } else if (prepend) {\n      existing.unshift(listener);\n    } else {\n      existing.push(listener);\n    }\n\n    // Check for listener leak\n    m = _getMaxListeners(target);\n    if (m > 0 && existing.length > m && !existing.warned) {\n      existing.warned = true;\n      // No error code for this since it is a Warning\n      // eslint-disable-next-line no-restricted-syntax\n      var w = new Error('Possible EventEmitter memory leak detected. ' +\n                          existing.length + ' ' + String(type) + ' listeners ' +\n                          'added. Use emitter.setMaxListeners() to ' +\n                          'increase limit');\n      w.name = 'MaxListenersExceededWarning';\n      w.emitter = target;\n      w.type = type;\n      w.count = existing.length;\n      ProcessEmitWarning(w);\n    }\n  }\n\n  return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n  return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n    function prependListener(type, listener) {\n      return _addListener(this, type, listener, true);\n    };\n\nfunction onceWrapper() {\n  if (!this.fired) {\n    this.target.removeListener(this.type, this.wrapFn);\n    this.fired = true;\n    if (arguments.length === 0)\n      return this.listener.call(this.target);\n    return this.listener.apply(this.target, arguments);\n  }\n}\n\nfunction _onceWrap(target, type, listener) {\n  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n  var wrapped = onceWrapper.bind(state);\n  wrapped.listener = listener;\n  state.wrapFn = wrapped;\n  return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n  checkListener(listener);\n  this.on(type, _onceWrap(this, type, listener));\n  return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n    function prependOnceListener(type, listener) {\n      checkListener(listener);\n      this.prependListener(type, _onceWrap(this, type, listener));\n      return this;\n    };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n    function removeListener(type, listener) {\n      var list, events, position, i, originalListener;\n\n      checkListener(listener);\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      list = events[type];\n      if (list === undefined)\n        return this;\n\n      if (list === listener || list.listener === listener) {\n        if (--this._eventsCount === 0)\n          this._events = Object.create(null);\n        else {\n          delete events[type];\n          if (events.removeListener)\n            this.emit('removeListener', type, list.listener || listener);\n        }\n      } else if (typeof list !== 'function') {\n        position = -1;\n\n        for (i = list.length - 1; i >= 0; i--) {\n          if (list[i] === listener || list[i].listener === listener) {\n            originalListener = list[i].listener;\n            position = i;\n            break;\n          }\n        }\n\n        if (position < 0)\n          return this;\n\n        if (position === 0)\n          list.shift();\n        else {\n          spliceOne(list, position);\n        }\n\n        if (list.length === 1)\n          events[type] = list[0];\n\n        if (events.removeListener !== undefined)\n          this.emit('removeListener', type, originalListener || listener);\n      }\n\n      return this;\n    };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n    function removeAllListeners(type) {\n      var listeners, events, i;\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      // not listening for removeListener, no need to emit\n      if (events.removeListener === undefined) {\n        if (arguments.length === 0) {\n          this._events = Object.create(null);\n          this._eventsCount = 0;\n        } else if (events[type] !== undefined) {\n          if (--this._eventsCount === 0)\n            this._events = Object.create(null);\n          else\n            delete events[type];\n        }\n        return this;\n      }\n\n      // emit removeListener for all listeners on all events\n      if (arguments.length === 0) {\n        var keys = Object.keys(events);\n        var key;\n        for (i = 0; i < keys.length; ++i) {\n          key = keys[i];\n          if (key === 'removeListener') continue;\n          this.removeAllListeners(key);\n        }\n        this.removeAllListeners('removeListener');\n        this._events = Object.create(null);\n        this._eventsCount = 0;\n        return this;\n      }\n\n      listeners = events[type];\n\n      if (typeof listeners === 'function') {\n        this.removeListener(type, listeners);\n      } else if (listeners !== undefined) {\n        // LIFO order\n        for (i = listeners.length - 1; i >= 0; i--) {\n          this.removeListener(type, listeners[i]);\n        }\n      }\n\n      return this;\n    };\n\nfunction _listeners(target, type, unwrap) {\n  var events = target._events;\n\n  if (events === undefined)\n    return [];\n\n  var evlistener = events[type];\n  if (evlistener === undefined)\n    return [];\n\n  if (typeof evlistener === 'function')\n    return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n  return unwrap ?\n    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n  return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n  return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  if (typeof emitter.listenerCount === 'function') {\n    return emitter.listenerCount(type);\n  } else {\n    return listenerCount.call(emitter, type);\n  }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n  var events = this._events;\n\n  if (events !== undefined) {\n    var evlistener = events[type];\n\n    if (typeof evlistener === 'function') {\n      return 1;\n    } else if (evlistener !== undefined) {\n      return evlistener.length;\n    }\n  }\n\n  return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n  var copy = new Array(n);\n  for (var i = 0; i < n; ++i)\n    copy[i] = arr[i];\n  return copy;\n}\n\nfunction spliceOne(list, index) {\n  for (; index + 1 < list.length; index++)\n    list[index] = list[index + 1];\n  list.pop();\n}\n\nfunction unwrapListeners(arr) {\n  var ret = new Array(arr.length);\n  for (var i = 0; i < ret.length; ++i) {\n    ret[i] = arr[i].listener || arr[i];\n  }\n  return ret;\n}\n\nfunction once(emitter, name) {\n  return new Promise(function (resolve, reject) {\n    function errorListener(err) {\n      emitter.removeListener(name, resolver);\n      reject(err);\n    }\n\n    function resolver() {\n      if (typeof emitter.removeListener === 'function') {\n        emitter.removeListener('error', errorListener);\n      }\n      resolve([].slice.call(arguments));\n    };\n\n    eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n    if (name !== 'error') {\n      addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n    }\n  });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n  if (typeof emitter.on === 'function') {\n    eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n  }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n  if (typeof emitter.on === 'function') {\n    if (flags.once) {\n      emitter.once(name, listener);\n    } else {\n      emitter.on(name, listener);\n    }\n  } else if (typeof emitter.addEventListener === 'function') {\n    // EventTarget does not have `error` event semantics like Node\n    // EventEmitters, we do not listen for `error` events here.\n    emitter.addEventListener(name, function wrapListener(arg) {\n      // IE does not have builtin `{ once: true }` support so we\n      // have to do it manually.\n      if (flags.once) {\n        emitter.removeEventListener(name, wrapListener);\n      }\n      listener(arg);\n    });\n  } else {\n    throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n  }\n}\n","\"use strict\";\n/* eslint-disable */\n/* tslint:disable */\n// @ts-nocheck\n/*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##\n * ##                                                           ##\n * ## AUTHOR: acacode                                           ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Api = exports.HttpClient = exports.ContentType = void 0;\nvar ContentType;\n(function (ContentType) {\n    ContentType[\"Json\"] = \"application/json\";\n    ContentType[\"JsonApi\"] = \"application/vnd.api+json\";\n    ContentType[\"FormData\"] = \"multipart/form-data\";\n    ContentType[\"UrlEncoded\"] = \"application/x-www-form-urlencoded\";\n    ContentType[\"Text\"] = \"text/plain\";\n})(ContentType || (exports.ContentType = ContentType = {}));\nclass HttpClient {\n    baseUrl = \"https://api.vapi.ai\";\n    securityData = null;\n    securityWorker;\n    abortControllers = new Map();\n    customFetch = (...fetchParams) => fetch(...fetchParams);\n    baseApiParams = {\n        credentials: \"same-origin\",\n        headers: {},\n        redirect: \"follow\",\n        referrerPolicy: \"no-referrer\",\n    };\n    constructor(apiConfig = {}) {\n        Object.assign(this, apiConfig);\n    }\n    setSecurityData = (data) => {\n        this.securityData = data;\n    };\n    encodeQueryParam(key, value) {\n        const encodedKey = encodeURIComponent(key);\n        return `${encodedKey}=${encodeURIComponent(typeof value === \"number\" ? value : `${value}`)}`;\n    }\n    addQueryParam(query, key) {\n        return this.encodeQueryParam(key, query[key]);\n    }\n    addArrayQueryParam(query, key) {\n        const value = query[key];\n        return value.map((v) => this.encodeQueryParam(key, v)).join(\"&\");\n    }\n    toQueryString(rawQuery) {\n        const query = rawQuery || {};\n        const keys = Object.keys(query).filter((key) => \"undefined\" !== typeof query[key]);\n        return keys\n            .map((key) => Array.isArray(query[key])\n            ? this.addArrayQueryParam(query, key)\n            : this.addQueryParam(query, key))\n            .join(\"&\");\n    }\n    addQueryParams(rawQuery) {\n        const queryString = this.toQueryString(rawQuery);\n        return queryString ? `?${queryString}` : \"\";\n    }\n    contentFormatters = {\n        [ContentType.Json]: (input) => input !== null && (typeof input === \"object\" || typeof input === \"string\")\n            ? JSON.stringify(input)\n            : input,\n        [ContentType.JsonApi]: (input) => input !== null && (typeof input === \"object\" || typeof input === \"string\")\n            ? JSON.stringify(input)\n            : input,\n        [ContentType.Text]: (input) => input !== null && typeof input !== \"string\"\n            ? JSON.stringify(input)\n            : input,\n        [ContentType.FormData]: (input) => {\n            if (input instanceof FormData) {\n                return input;\n            }\n            return Object.keys(input || {}).reduce((formData, key) => {\n                const property = input[key];\n                formData.append(key, property instanceof Blob\n                    ? property\n                    : typeof property === \"object\" && property !== null\n                        ? JSON.stringify(property)\n                        : `${property}`);\n                return formData;\n            }, new FormData());\n        },\n        [ContentType.UrlEncoded]: (input) => this.toQueryString(input),\n    };\n    mergeRequestParams(params1, params2) {\n        return {\n            ...this.baseApiParams,\n            ...params1,\n            ...(params2 || {}),\n            headers: {\n                ...(this.baseApiParams.headers || {}),\n                ...(params1.headers || {}),\n                ...((params2 && params2.headers) || {}),\n            },\n        };\n    }\n    createAbortSignal = (cancelToken) => {\n        if (this.abortControllers.has(cancelToken)) {\n            const abortController = this.abortControllers.get(cancelToken);\n            if (abortController) {\n                return abortController.signal;\n            }\n            return void 0;\n        }\n        const abortController = new AbortController();\n        this.abortControllers.set(cancelToken, abortController);\n        return abortController.signal;\n    };\n    abortRequest = (cancelToken) => {\n        const abortController = this.abortControllers.get(cancelToken);\n        if (abortController) {\n            abortController.abort();\n            this.abortControllers.delete(cancelToken);\n        }\n    };\n    request = async ({ body, secure, path, type, query, format, baseUrl, cancelToken, ...params }) => {\n        const secureParams = ((typeof secure === \"boolean\" ? secure : this.baseApiParams.secure) &&\n            this.securityWorker &&\n            (await this.securityWorker(this.securityData))) ||\n            {};\n        const requestParams = this.mergeRequestParams(params, secureParams);\n        const queryString = query && this.toQueryString(query);\n        const payloadFormatter = this.contentFormatters[type || ContentType.Json];\n        const responseFormat = format || requestParams.format;\n        return this.customFetch(`${baseUrl || this.baseUrl || \"\"}${path}${queryString ? `?${queryString}` : \"\"}`, {\n            ...requestParams,\n            headers: {\n                ...(requestParams.headers || {}),\n                ...(type && type !== ContentType.FormData\n                    ? { \"Content-Type\": type }\n                    : {}),\n            },\n            signal: (cancelToken\n                ? this.createAbortSignal(cancelToken)\n                : requestParams.signal) || null,\n            body: typeof body === \"undefined\" || body === null\n                ? null\n                : payloadFormatter(body),\n        }).then(async (response) => {\n            const r = response;\n            r.data = null;\n            r.error = null;\n            const responseToParse = responseFormat ? response.clone() : response;\n            const data = !responseFormat\n                ? r\n                : await responseToParse[responseFormat]()\n                    .then((data) => {\n                    if (r.ok) {\n                        r.data = data;\n                    }\n                    else {\n                        r.error = data;\n                    }\n                    return r;\n                })\n                    .catch((e) => {\n                    r.error = e;\n                    return r;\n                });\n            if (cancelToken) {\n                this.abortControllers.delete(cancelToken);\n            }\n            if (!response.ok)\n                throw data;\n            return data;\n        });\n    };\n}\nexports.HttpClient = HttpClient;\n/**\n * @title Vapi API\n * @version 1.0\n * @baseUrl https://api.vapi.ai\n * @contact\n *\n * Voice AI for developers.\n */\nclass Api extends HttpClient {\n    assistant = {\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerCreate\n         * @summary Create Assistant\n         * @request POST:/assistant\n         * @secure\n         */\n        assistantControllerCreate: (data, params = {}) => this.request({\n            path: `/assistant`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindAll\n         * @summary List Assistants\n         * @request GET:/assistant\n         * @secure\n         */\n        assistantControllerFindAll: (query, params = {}) => this.request({\n            path: `/assistant`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindAllOrgDrafts\n         * @summary List All Assistant Drafts\n         * @request GET:/assistant/draft\n         * @secure\n         */\n        assistantControllerFindAllOrgDrafts: (query, params = {}) => this.request({\n            path: `/assistant/draft`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindOne\n         * @summary Get Assistant\n         * @request GET:/assistant/{id}\n         * @secure\n         */\n        assistantControllerFindOne: (id, params = {}) => this.request({\n            path: `/assistant/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerUpdate\n         * @summary Update Assistant\n         * @request PATCH:/assistant/{id}\n         * @secure\n         */\n        assistantControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/assistant/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerReplace\n         * @summary Replace Assistant\n         * @request PUT:/assistant/{id}\n         * @secure\n         */\n        assistantControllerReplace: (id, data, params = {}) => this.request({\n            path: `/assistant/${id}`,\n            method: \"PUT\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerRemove\n         * @summary Delete Assistant\n         * @request DELETE:/assistant/{id}\n         * @secure\n         */\n        assistantControllerRemove: (id, params = {}) => this.request({\n            path: `/assistant/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * @description Deprecated. Use `GET /assistant/:id/versions` instead.\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindVersions\n         * @summary List Legacy Assistant Versions\n         * @request GET:/assistant/{id}/version\n         * @deprecated\n         * @secure\n         */\n        assistantControllerFindVersions: (id, query, params = {}) => this.request({\n            path: `/assistant/${id}/version`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * @description Returns the version history for the assistant.\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindAllVersions\n         * @summary List Assistant Versions\n         * @request GET:/assistant/{id}/versions\n         * @secure\n         */\n        assistantControllerFindAllVersions: (id, query, params = {}) => this.request({\n            path: `/assistant/${id}/versions`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindOneVersion\n         * @summary Get Assistant Version\n         * @request GET:/assistant/{id}/versions/{version}\n         * @secure\n         */\n        assistantControllerFindOneVersion: (id, version, query, params = {}) => this.request({\n            path: `/assistant/${id}/versions/${version}`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerAssistantVersionMetadataUpdate\n         * @summary Update Assistant Version Metadata\n         * @request PATCH:/assistant/{id}/versions/{version}\n         * @secure\n         */\n        assistantControllerAssistantVersionMetadataUpdate: (id, version, data, params = {}) => this.request({\n            path: `/assistant/${id}/versions/${version}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerSoftDeleteVersion\n         * @summary Delete Assistant Version\n         * @request DELETE:/assistant/{id}/versions/{version}\n         * @secure\n         */\n        assistantControllerSoftDeleteVersion: (id, version, query, params = {}) => this.request({\n            path: `/assistant/${id}/versions/${version}`,\n            method: \"DELETE\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * @description Restores the assistant to the selected version.\n         *\n         * @tags Assistants\n         * @name AssistantControllerRestoreVersion\n         * @summary Restore Assistant Version\n         * @request POST:/assistant/{id}/restore/{version}\n         * @secure\n         */\n        assistantControllerRestoreVersion: (id, version, params = {}) => this.request({\n            path: `/assistant/${id}/restore/${version}`,\n            method: \"POST\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindAllDrafts\n         * @summary List Assistant Drafts\n         * @request GET:/assistant/{id}/draft\n         * @secure\n         */\n        assistantControllerFindAllDrafts: (id, query, params = {}) => this.request({\n            path: `/assistant/${id}/draft`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerCreateDraft\n         * @summary Create Assistant Draft\n         * @request POST:/assistant/{id}/draft\n         * @secure\n         */\n        assistantControllerCreateDraft: (id, data, params = {}) => this.request({\n            path: `/assistant/${id}/draft`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindOneDraft\n         * @summary Get Assistant Draft\n         * @request GET:/assistant/{id}/draft/{draftId}\n         * @secure\n         */\n        assistantControllerFindOneDraft: (id, draftId, params = {}) => this.request({\n            path: `/assistant/${id}/draft/${draftId}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerUpdateDraft\n         * @summary Update Assistant Draft\n         * @request PATCH:/assistant/{id}/draft/{draftId}\n         * @secure\n         */\n        assistantControllerUpdateDraft: (id, draftId, data, params = {}) => this.request({\n            path: `/assistant/${id}/draft/${draftId}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerDeleteDraft\n         * @summary Delete Assistant Draft\n         * @request DELETE:/assistant/{id}/draft/{draftId}\n         * @secure\n         */\n        assistantControllerDeleteDraft: (id, draftId, params = {}) => this.request({\n            path: `/assistant/${id}/draft/${draftId}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    v2 = {\n        /**\n         * No description\n         *\n         * @tags Assistants\n         * @name AssistantControllerFindAllPaginated\n         * @summary List Assistants with pagination\n         * @request GET:/v2/assistant\n         * @secure\n         */\n        assistantControllerFindAllPaginated: (query, params = {}) => this.request({\n            path: `/v2/assistant`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerCallsExport\n         * @summary Export Calls to CSV\n         * @request GET:/v2/call/export\n         * @secure\n         */\n        callControllerCallsExport: (query, params = {}) => this.request({\n            path: `/v2/call/export`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerFindAllPaginated\n         * @summary List Calls\n         * @request GET:/v2/call\n         * @secure\n         */\n        callControllerFindAllPaginated: (query, params = {}) => this.request({\n            path: `/v2/call`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerFindAllMetadataPaginated\n         * @summary List Call Metadata\n         * @request GET:/v2/call/metadata\n         * @secure\n         */\n        callControllerFindAllMetadataPaginated: (query, params = {}) => this.request({\n            path: `/v2/call/metadata`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerCreateV2\n         * @summary Create Campaign V2\n         * @request POST:/v2/campaign\n         * @secure\n         */\n        campaignControllerCreateV2: (data, params = {}) => this.request({\n            path: `/v2/campaign`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerFindAllV2\n         * @summary List Campaigns V2\n         * @request GET:/v2/campaign\n         * @secure\n         */\n        campaignControllerFindAllV2: (query, params = {}) => this.request({\n            path: `/v2/campaign`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerFindOneV2\n         * @summary Get Campaign V2\n         * @request GET:/v2/campaign/{id}\n         * @secure\n         */\n        campaignControllerFindOneV2: (id, query, params = {}) => this.request({\n            path: `/v2/campaign/${id}`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerUpdateV2\n         * @summary Update Campaign\n         * @request PATCH:/v2/campaign/{id}\n         * @secure\n         */\n        campaignControllerUpdateV2: (id, data, params = {}) => this.request({\n            path: `/v2/campaign/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerRemoveV2\n         * @summary Delete Campaign\n         * @request DELETE:/v2/campaign/{id}\n         * @secure\n         */\n        campaignControllerRemoveV2: (id, params = {}) => this.request({\n            path: `/v2/campaign/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerGetCampaignV2Contacts\n         * @summary Get Campaign V2 Contacts\n         * @request GET:/v2/campaign/{id}/contacts\n         * @secure\n         */\n        campaignControllerGetCampaignV2Contacts: (id, query, params = {}) => this.request({\n            path: `/v2/campaign/${id}/contacts`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerFindAllPaginated\n         * @summary List Phone Numbers\n         * @request GET:/v2/phone-number\n         * @secure\n         */\n        phoneNumberControllerFindAllPaginated: (query, params = {}) => this.request({\n            path: `/v2/phone-number`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerCreate\n         * @summary Create a Knowledge Base V2\n         * @request POST:/v2/knowledge-base\n         * @secure\n         */\n        knowledgeBaseV2ControllerCreate: (data, params = {}) => this.request({\n            path: `/v2/knowledge-base`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerFindAll\n         * @summary List Knowledge Bases V2\n         * @request GET:/v2/knowledge-base\n         * @secure\n         */\n        knowledgeBaseV2ControllerFindAll: (query, params = {}) => this.request({\n            path: `/v2/knowledge-base`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerFilesGet\n         * @summary List files in a Knowledge Base V2\n         * @request GET:/v2/knowledge-base/{id}/file\n         * @secure\n         */\n        knowledgeBaseV2ControllerFilesGet: (id, params = {}) => this.request({\n            path: `/v2/knowledge-base/${id}/file`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerFileAttach\n         * @summary Attach and ingest a file\n         * @request POST:/v2/knowledge-base/{id}/file\n         * @secure\n         */\n        knowledgeBaseV2ControllerFileAttach: (id, data, params = {}) => this.request({\n            path: `/v2/knowledge-base/${id}/file`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerFileDetach\n         * @summary Detach a file\n         * @request DELETE:/v2/knowledge-base/{id}/file/{fileId}\n         * @secure\n         */\n        knowledgeBaseV2ControllerFileDetach: (id, fileId, params = {}) => this.request({\n            path: `/v2/knowledge-base/${id}/file/${fileId}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerFileRetry\n         * @summary Retry indexing a failed file\n         * @request POST:/v2/knowledge-base/{id}/file/{fileId}/retry\n         * @secure\n         */\n        knowledgeBaseV2ControllerFileRetry: (id, fileId, params = {}) => this.request({\n            path: `/v2/knowledge-base/${id}/file/${fileId}/retry`,\n            method: \"POST\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerUpdate\n         * @summary Update a Knowledge Base V2\n         * @request PATCH:/v2/knowledge-base/{id}\n         * @secure\n         */\n        knowledgeBaseV2ControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/v2/knowledge-base/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerFindOne\n         * @summary Get a Knowledge Base V2\n         * @request GET:/v2/knowledge-base/{id}\n         * @secure\n         */\n        knowledgeBaseV2ControllerFindOne: (id, params = {}) => this.request({\n            path: `/v2/knowledge-base/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Bases V2\n         * @name KnowledgeBaseV2ControllerRemove\n         * @summary Delete a Knowledge Base V2\n         * @request DELETE:/v2/knowledge-base/{id}\n         * @secure\n         */\n        knowledgeBaseV2ControllerRemove: (id, params = {}) => this.request({\n            path: `/v2/knowledge-base/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    squad = {\n        /**\n         * No description\n         *\n         * @tags Squads\n         * @name SquadControllerCreate\n         * @summary Create Squad\n         * @request POST:/squad\n         * @secure\n         */\n        squadControllerCreate: (data, params = {}) => this.request({\n            path: `/squad`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Squads\n         * @name SquadControllerFindAll\n         * @summary List Squads\n         * @request GET:/squad\n         * @secure\n         */\n        squadControllerFindAll: (query, params = {}) => this.request({\n            path: `/squad`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Squads\n         * @name SquadControllerFindOne\n         * @summary Get Squad\n         * @request GET:/squad/{id}\n         * @secure\n         */\n        squadControllerFindOne: (id, params = {}) => this.request({\n            path: `/squad/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Squads\n         * @name SquadControllerUpdate\n         * @summary Update Squad\n         * @request PATCH:/squad/{id}\n         * @secure\n         */\n        squadControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/squad/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Squads\n         * @name SquadControllerRemove\n         * @summary Delete Squad\n         * @request DELETE:/squad/{id}\n         * @secure\n         */\n        squadControllerRemove: (id, params = {}) => this.request({\n            path: `/squad/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    workflow = {\n        /**\n         * No description\n         *\n         * @tags Workflow\n         * @name WorkflowControllerFindAll\n         * @summary Get Workflows\n         * @request GET:/workflow\n         * @secure\n         */\n        workflowControllerFindAll: (params = {}) => this.request({\n            path: `/workflow`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Workflow\n         * @name WorkflowControllerCreate\n         * @summary Create Workflow\n         * @request POST:/workflow\n         * @secure\n         */\n        workflowControllerCreate: (data, params = {}) => this.request({\n            path: `/workflow`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Workflow\n         * @name WorkflowControllerFindOne\n         * @summary Get Workflow\n         * @request GET:/workflow/{id}\n         * @secure\n         */\n        workflowControllerFindOne: (id, params = {}) => this.request({\n            path: `/workflow/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Workflow\n         * @name WorkflowControllerDelete\n         * @summary Delete Workflow\n         * @request DELETE:/workflow/{id}\n         * @secure\n         */\n        workflowControllerDelete: (id, params = {}) => this.request({\n            path: `/workflow/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Workflow\n         * @name WorkflowControllerUpdate\n         * @summary Update Workflow\n         * @request PATCH:/workflow/{id}\n         * @secure\n         */\n        workflowControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/workflow/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    call = {\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerCreate\n         * @summary Create Call\n         * @request POST:/call\n         * @secure\n         */\n        callControllerCreate: (data, params = {}) => this.request({\n            path: `/call`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerFindAll\n         * @summary List Calls\n         * @request GET:/call\n         * @secure\n         */\n        callControllerFindAll: (query, params = {}) => this.request({\n            path: `/call`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerFindOne\n         * @summary Get Call\n         * @request GET:/call/{id}\n         * @secure\n         */\n        callControllerFindOne: (id, params = {}) => this.request({\n            path: `/call/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerUpdate\n         * @summary Update Call\n         * @request PATCH:/call/{id}\n         * @secure\n         */\n        callControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/call/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerDeleteCallData\n         * @summary Delete Call\n         * @request DELETE:/call/{id}\n         * @secure\n         */\n        callControllerDeleteCallData: (id, data, params = {}) => this.request({\n            path: `/call/${id}`,\n            method: \"DELETE\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerCreatePhoneCall\n         * @summary Create Phone Call\n         * @request POST:/call/phone\n         * @deprecated\n         * @secure\n         */\n        callControllerCreatePhoneCall: (data, params = {}) => this.request({\n            path: `/call/phone`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallControllerCreateWebCall\n         * @summary Create Web Call\n         * @request POST:/call/web\n         * @secure\n         */\n        callControllerCreateWebCall: (data, params = {}) => this.request({\n            path: `/call/web`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallArtifactControllerMonoRecordingDownload\n         * @summary Download Call Mono Recording\n         * @request GET:/call/{id}/mono-recording\n         * @secure\n         */\n        callArtifactControllerMonoRecordingDownload: (id, params = {}) => this.request({\n            path: `/call/${id}/mono-recording`,\n            method: \"GET\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallArtifactControllerStereoRecordingDownload\n         * @summary Download Call Stereo Recording\n         * @request GET:/call/{id}/stereo-recording\n         * @secure\n         */\n        callArtifactControllerStereoRecordingDownload: (id, params = {}) => this.request({\n            path: `/call/${id}/stereo-recording`,\n            method: \"GET\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallArtifactControllerVideoRecordingDownload\n         * @summary Download Call Video Recording\n         * @request GET:/call/{id}/video-recording\n         * @secure\n         */\n        callArtifactControllerVideoRecordingDownload: (id, params = {}) => this.request({\n            path: `/call/${id}/video-recording`,\n            method: \"GET\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallArtifactControllerCustomerRecordingDownload\n         * @summary Download Call Customer Recording\n         * @request GET:/call/{id}/customer-recording\n         * @secure\n         */\n        callArtifactControllerCustomerRecordingDownload: (id, params = {}) => this.request({\n            path: `/call/${id}/customer-recording`,\n            method: \"GET\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallArtifactControllerAssistantRecordingDownload\n         * @summary Download Call Assistant Recording\n         * @request GET:/call/{id}/assistant-recording\n         * @secure\n         */\n        callArtifactControllerAssistantRecordingDownload: (id, params = {}) => this.request({\n            path: `/call/${id}/assistant-recording`,\n            method: \"GET\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallArtifactControllerPcapDownload\n         * @summary Download Call Packet Capture (pcap)\n         * @request GET:/call/{id}/pcap\n         * @secure\n         */\n        callArtifactControllerPcapDownload: (id, params = {}) => this.request({\n            path: `/call/${id}/pcap`,\n            method: \"GET\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Calls\n         * @name CallArtifactControllerCallLogsDownload\n         * @summary Download Call Logs\n         * @request GET:/call/{id}/call-logs\n         * @secure\n         */\n        callArtifactControllerCallLogsDownload: (id, params = {}) => this.request({\n            path: `/call/${id}/call-logs`,\n            method: \"GET\",\n            secure: true,\n            ...params,\n        }),\n    };\n    chat = {\n        /**\n         * No description\n         *\n         * @tags Chats\n         * @name ChatControllerListChats\n         * @summary List Chats\n         * @request GET:/chat\n         * @secure\n         */\n        chatControllerListChats: (query, params = {}) => this.request({\n            path: `/chat`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * @description Creates a new chat with optional SMS delivery via transport field. Requires at least one of: assistantId/assistant, sessionId, or previousChatId. Note: sessionId and previousChatId are mutually exclusive. Transport field enables SMS delivery with two modes: (1) New conversation - provide transport.phoneNumberId and transport.customer to create a new session, (2) Existing conversation - provide sessionId to use existing session data. Cannot specify both sessionId and transport fields together. The transport.useLLMGeneratedMessageForOutbound flag controls whether input is processed by LLM (true, default) or forwarded directly as SMS (false).\n         *\n         * @tags Chats\n         * @name ChatControllerCreateChat\n         * @summary Create Chat\n         * @request POST:/chat\n         * @secure\n         */\n        chatControllerCreateChat: (data, params = {}) => this.request({\n            path: `/chat`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Chats\n         * @name ChatControllerChatsExport\n         * @summary Export Chats to CSV\n         * @request GET:/chat/export\n         * @secure\n         */\n        chatControllerChatsExport: (query, params = {}) => this.request({\n            path: `/chat/export`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Chats\n         * @name ChatControllerGetChat\n         * @summary Get Chat\n         * @request GET:/chat/{id}\n         * @secure\n         */\n        chatControllerGetChat: (id, params = {}) => this.request({\n            path: `/chat/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Chats\n         * @name ChatControllerDeleteChat\n         * @summary Delete Chat\n         * @request DELETE:/chat/{id}\n         * @secure\n         */\n        chatControllerDeleteChat: (id, params = {}) => this.request({\n            path: `/chat/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Chats\n         * @name ChatControllerCreateOpenAiChat\n         * @summary Create Chat (OpenAI Compatible)\n         * @request POST:/chat/responses\n         * @secure\n         */\n        chatControllerCreateOpenAiChat: (data, params = {}) => this.request({\n            path: `/chat/responses`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Chats\n         * @name ChatControllerCreateWebChat\n         * @summary Create WebChat\n         * @request POST:/chat/web\n         * @secure\n         */\n        chatControllerCreateWebChat: (data, params = {}) => this.request({\n            path: `/chat/web`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Chats\n         * @name ChatControllerCreateOpenAiWebChat\n         * @summary Create WebChat (OpenAI Compatible)\n         * @request POST:/chat/web/responses\n         * @secure\n         */\n        chatControllerCreateOpenAiWebChat: (data, params = {}) => this.request({\n            path: `/chat/web/responses`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    campaign = {\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerCreate\n         * @summary Create Campaign\n         * @request POST:/campaign\n         * @secure\n         */\n        campaignControllerCreate: (data, params = {}) => this.request({\n            path: `/campaign`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerFindAll\n         * @summary List Campaigns\n         * @request GET:/campaign\n         * @secure\n         */\n        campaignControllerFindAll: (query, params = {}) => this.request({\n            path: `/campaign`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerFindOne\n         * @summary Get Campaign\n         * @request GET:/campaign/{id}\n         * @secure\n         */\n        campaignControllerFindOne: (id, params = {}) => this.request({\n            path: `/campaign/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerUpdate\n         * @summary Update Campaign\n         * @request PATCH:/campaign/{id}\n         * @secure\n         */\n        campaignControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/campaign/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Campaigns\n         * @name CampaignControllerRemove\n         * @summary Delete Campaign\n         * @request DELETE:/campaign/{id}\n         * @secure\n         */\n        campaignControllerRemove: (id, params = {}) => this.request({\n            path: `/campaign/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    session = {\n        /**\n         * No description\n         *\n         * @tags Sessions\n         * @name SessionControllerCreate\n         * @summary Create Session\n         * @request POST:/session\n         * @secure\n         */\n        sessionControllerCreate: (data, params = {}) => this.request({\n            path: `/session`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Sessions\n         * @name SessionControllerFindAllPaginated\n         * @summary List Sessions\n         * @request GET:/session\n         * @secure\n         */\n        sessionControllerFindAllPaginated: (query, params = {}) => this.request({\n            path: `/session`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Sessions\n         * @name SessionControllerSessionsExport\n         * @summary Export Sessions to CSV\n         * @request GET:/session/export\n         * @secure\n         */\n        sessionControllerSessionsExport: (query, params = {}) => this.request({\n            path: `/session/export`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Sessions\n         * @name SessionControllerFindOne\n         * @summary Get Session\n         * @request GET:/session/{id}\n         * @secure\n         */\n        sessionControllerFindOne: (id, params = {}) => this.request({\n            path: `/session/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Sessions\n         * @name SessionControllerUpdate\n         * @summary Update Session\n         * @request PATCH:/session/{id}\n         * @secure\n         */\n        sessionControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/session/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Sessions\n         * @name SessionControllerRemove\n         * @summary Delete Session\n         * @request DELETE:/session/{id}\n         * @secure\n         */\n        sessionControllerRemove: (id, params = {}) => this.request({\n            path: `/session/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    phoneNumber = {\n        /**\n         * @description Use POST /phone-number instead.\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerImportTwilio\n         * @summary Import Twilio Number\n         * @request POST:/phone-number/import/twilio\n         * @deprecated\n         * @secure\n         */\n        phoneNumberControllerImportTwilio: (data, params = {}) => this.request({\n            path: `/phone-number/import/twilio`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * @description Use POST /phone-number instead.\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerImportVonage\n         * @summary Import Vonage Number\n         * @request POST:/phone-number/import/vonage\n         * @deprecated\n         * @secure\n         */\n        phoneNumberControllerImportVonage: (data, params = {}) => this.request({\n            path: `/phone-number/import/vonage`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerCreate\n         * @summary Create Phone Number\n         * @request POST:/phone-number\n         * @secure\n         */\n        phoneNumberControllerCreate: (data, params = {}) => this.request({\n            path: `/phone-number`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerFindAll\n         * @summary List Phone Numbers\n         * @request GET:/phone-number\n         * @secure\n         */\n        phoneNumberControllerFindAll: (query, params = {}) => this.request({\n            path: `/phone-number`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerFindOne\n         * @summary Get Phone Number\n         * @request GET:/phone-number/{id}\n         * @secure\n         */\n        phoneNumberControllerFindOne: (id, params = {}) => this.request({\n            path: `/phone-number/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerUpdate\n         * @summary Update Phone Number\n         * @request PATCH:/phone-number/{id}\n         * @secure\n         */\n        phoneNumberControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/phone-number/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Phone Numbers\n         * @name PhoneNumberControllerRemove\n         * @summary Delete Phone Number\n         * @request DELETE:/phone-number/{id}\n         * @secure\n         */\n        phoneNumberControllerRemove: (id, params = {}) => this.request({\n            path: `/phone-number/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    tool = {\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerCreate\n         * @summary Create Tool\n         * @request POST:/tool\n         * @secure\n         */\n        toolControllerCreate: (data, params = {}) => this.request({\n            path: `/tool`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerFindAll\n         * @summary List Tools\n         * @request GET:/tool\n         * @secure\n         */\n        toolControllerFindAll: (query, params = {}) => this.request({\n            path: `/tool`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerFindAllOrgDrafts\n         * @summary List All Tool Drafts\n         * @request GET:/tool/draft\n         * @secure\n         */\n        toolControllerFindAllOrgDrafts: (query, params = {}) => this.request({\n            path: `/tool/draft`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerFindOne\n         * @summary Get Tool\n         * @request GET:/tool/{id}\n         * @secure\n         */\n        toolControllerFindOne: (id, params = {}) => this.request({\n            path: `/tool/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerUpdate\n         * @summary Update Tool\n         * @request PATCH:/tool/{id}\n         * @secure\n         */\n        toolControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/tool/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerRemove\n         * @summary Delete Tool\n         * @request DELETE:/tool/{id}\n         * @secure\n         */\n        toolControllerRemove: (id, params = {}) => this.request({\n            path: `/tool/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * @description Returns the Postgres-backed version history for the tool.\n         *\n         * @tags Tools\n         * @name ToolControllerFindAllVersions\n         * @summary List Tool Versions\n         * @request GET:/tool/{id}/versions\n         * @secure\n         */\n        toolControllerFindAllVersions: (id, query, params = {}) => this.request({\n            path: `/tool/${id}/versions`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerFindOneVersion\n         * @summary Get Tool Version\n         * @request GET:/tool/{id}/versions/{version}\n         * @secure\n         */\n        toolControllerFindOneVersion: (id, version, query, params = {}) => this.request({\n            path: `/tool/${id}/versions/${version}`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerToolVersionMetadataUpdate\n         * @summary Update Tool Version Metadata\n         * @request PATCH:/tool/{id}/versions/{version}\n         * @secure\n         */\n        toolControllerToolVersionMetadataUpdate: (id, version, data, params = {}) => this.request({\n            path: `/tool/${id}/versions/${version}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerSoftDeleteVersion\n         * @summary Delete Tool Version\n         * @request DELETE:/tool/{id}/versions/{version}\n         * @secure\n         */\n        toolControllerSoftDeleteVersion: (id, version, query, params = {}) => this.request({\n            path: `/tool/${id}/versions/${version}`,\n            method: \"DELETE\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerFindAllDrafts\n         * @summary List Tool Drafts\n         * @request GET:/tool/{id}/draft\n         * @secure\n         */\n        toolControllerFindAllDrafts: (id, query, params = {}) => this.request({\n            path: `/tool/${id}/draft`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerCreateDraft\n         * @summary Create Tool Draft\n         * @request POST:/tool/{id}/draft\n         * @secure\n         */\n        toolControllerCreateDraft: (id, data, params = {}) => this.request({\n            path: `/tool/${id}/draft`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerFindOneDraft\n         * @summary Get Tool Draft\n         * @request GET:/tool/{id}/draft/{draftId}\n         * @secure\n         */\n        toolControllerFindOneDraft: (id, draftId, params = {}) => this.request({\n            path: `/tool/${id}/draft/${draftId}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerUpdateDraft\n         * @summary Update Tool Draft\n         * @request PATCH:/tool/{id}/draft/{draftId}\n         * @secure\n         */\n        toolControllerUpdateDraft: (id, draftId, data, params = {}) => this.request({\n            path: `/tool/${id}/draft/${draftId}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tools\n         * @name ToolControllerDeleteDraft\n         * @summary Delete Tool Draft\n         * @request DELETE:/tool/{id}/draft/{draftId}\n         * @secure\n         */\n        toolControllerDeleteDraft: (id, draftId, params = {}) => this.request({\n            path: `/tool/${id}/draft/${draftId}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    file = {\n        /**\n         * @description Use POST /file instead.\n         *\n         * @tags Files\n         * @name FileControllerCreateDeprecated\n         * @summary Upload File\n         * @request POST:/file/upload\n         * @deprecated\n         * @secure\n         */\n        fileControllerCreateDeprecated: (data, params = {}) => this.request({\n            path: `/file/upload`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.FormData,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Files\n         * @name FileControllerCreate\n         * @summary Upload File\n         * @request POST:/file\n         * @secure\n         */\n        fileControllerCreate: (data, params = {}) => this.request({\n            path: `/file`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.FormData,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Files\n         * @name FileControllerFindAll\n         * @summary List Files\n         * @request GET:/file\n         * @secure\n         */\n        fileControllerFindAll: (query, params = {}) => this.request({\n            path: `/file`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Files\n         * @name FileControllerFindOne\n         * @summary Get File\n         * @request GET:/file/{id}\n         * @secure\n         */\n        fileControllerFindOne: (id, params = {}) => this.request({\n            path: `/file/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Files\n         * @name FileControllerUpdate\n         * @summary Update File\n         * @request PATCH:/file/{id}\n         * @secure\n         */\n        fileControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/file/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Files\n         * @name FileControllerRemove\n         * @summary Delete File\n         * @request DELETE:/file/{id}\n         * @secure\n         */\n        fileControllerRemove: (id, params = {}) => this.request({\n            path: `/file/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    knowledgeBase = {\n        /**\n         * No description\n         *\n         * @tags Knowledge Base\n         * @name KnowledgeBaseControllerCreate\n         * @summary Create Knowledge Base\n         * @request POST:/knowledge-base\n         * @secure\n         */\n        knowledgeBaseControllerCreate: (data, params = {}) => this.request({\n            path: `/knowledge-base`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Base\n         * @name KnowledgeBaseControllerFindAll\n         * @summary List Knowledge Bases\n         * @request GET:/knowledge-base\n         * @secure\n         */\n        knowledgeBaseControllerFindAll: (query, params = {}) => this.request({\n            path: `/knowledge-base`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Base\n         * @name KnowledgeBaseControllerFindOne\n         * @summary Get Knowledge Base\n         * @request GET:/knowledge-base/{id}\n         * @secure\n         */\n        knowledgeBaseControllerFindOne: (id, params = {}) => this.request({\n            path: `/knowledge-base/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Base\n         * @name KnowledgeBaseControllerUpdate\n         * @summary Update Knowledge Base\n         * @request PATCH:/knowledge-base/{id}\n         * @secure\n         */\n        knowledgeBaseControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/knowledge-base/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Knowledge Base\n         * @name KnowledgeBaseControllerRemove\n         * @summary Delete Knowledge Base\n         * @request DELETE:/knowledge-base/{id}\n         * @secure\n         */\n        knowledgeBaseControllerRemove: (id, params = {}) => this.request({\n            path: `/knowledge-base/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    structuredOutput = {\n        /**\n         * No description\n         *\n         * @tags Structured Outputs\n         * @name StructuredOutputControllerFindAll\n         * @summary List Structured Outputs\n         * @request GET:/structured-output\n         * @secure\n         */\n        structuredOutputControllerFindAll: (query, params = {}) => this.request({\n            path: `/structured-output`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Structured Outputs\n         * @name StructuredOutputControllerCreate\n         * @summary Create Structured Output\n         * @request POST:/structured-output\n         * @secure\n         */\n        structuredOutputControllerCreate: (data, params = {}) => this.request({\n            path: `/structured-output`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Structured Outputs\n         * @name StructuredOutputControllerFindOne\n         * @summary Get Structured Output\n         * @request GET:/structured-output/{id}\n         * @secure\n         */\n        structuredOutputControllerFindOne: (id, params = {}) => this.request({\n            path: `/structured-output/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Structured Outputs\n         * @name StructuredOutputControllerUpdate\n         * @summary Update Structured Output\n         * @request PATCH:/structured-output/{id}\n         * @secure\n         */\n        structuredOutputControllerUpdate: (id, query, data, params = {}) => this.request({\n            path: `/structured-output/${id}`,\n            method: \"PATCH\",\n            query: query,\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Structured Outputs\n         * @name StructuredOutputControllerRemove\n         * @summary Delete Structured Output\n         * @request DELETE:/structured-output/{id}\n         * @secure\n         */\n        structuredOutputControllerRemove: (id, params = {}) => this.request({\n            path: `/structured-output/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Structured Outputs\n         * @name StructuredOutputControllerRun\n         * @summary Run Structured Output\n         * @request POST:/structured-output/run\n         * @secure\n         */\n        structuredOutputControllerRun: (data, params = {}) => this.request({\n            path: `/structured-output/run`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    testSuite = {\n        /**\n         * No description\n         *\n         * @tags Test Suites\n         * @name TestSuiteControllerFindAllPaginated\n         * @summary List Test Suites\n         * @request GET:/test-suite\n         * @secure\n         */\n        testSuiteControllerFindAllPaginated: (query, params = {}) => this.request({\n            path: `/test-suite`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suites\n         * @name TestSuiteControllerCreate\n         * @summary Create Test Suite\n         * @request POST:/test-suite\n         * @secure\n         */\n        testSuiteControllerCreate: (data, params = {}) => this.request({\n            path: `/test-suite`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suites\n         * @name TestSuiteControllerFindOne\n         * @summary Get Test Suite\n         * @request GET:/test-suite/{id}\n         * @secure\n         */\n        testSuiteControllerFindOne: (id, params = {}) => this.request({\n            path: `/test-suite/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suites\n         * @name TestSuiteControllerUpdate\n         * @summary Update Test Suite\n         * @request PATCH:/test-suite/{id}\n         * @secure\n         */\n        testSuiteControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/test-suite/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suites\n         * @name TestSuiteControllerRemove\n         * @summary Delete Test Suite\n         * @request DELETE:/test-suite/{id}\n         * @secure\n         */\n        testSuiteControllerRemove: (id, params = {}) => this.request({\n            path: `/test-suite/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Tests\n         * @name TestSuiteTestControllerFindAllPaginated\n         * @summary List Tests\n         * @request GET:/test-suite/{testSuiteId}/test\n         * @secure\n         */\n        testSuiteTestControllerFindAllPaginated: (testSuiteId, query, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/test`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Tests\n         * @name TestSuiteTestControllerCreate\n         * @summary Create Test\n         * @request POST:/test-suite/{testSuiteId}/test\n         * @secure\n         */\n        testSuiteTestControllerCreate: (testSuiteId, data, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/test`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Tests\n         * @name TestSuiteTestControllerFindOne\n         * @summary Get Test\n         * @request GET:/test-suite/{testSuiteId}/test/{id}\n         * @secure\n         */\n        testSuiteTestControllerFindOne: (testSuiteId, id, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/test/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Tests\n         * @name TestSuiteTestControllerUpdate\n         * @summary Update Test\n         * @request PATCH:/test-suite/{testSuiteId}/test/{id}\n         * @secure\n         */\n        testSuiteTestControllerUpdate: (testSuiteId, id, data, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/test/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Tests\n         * @name TestSuiteTestControllerRemove\n         * @summary Delete Test\n         * @request DELETE:/test-suite/{testSuiteId}/test/{id}\n         * @secure\n         */\n        testSuiteTestControllerRemove: (testSuiteId, id, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/test/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Runs\n         * @name TestSuiteRunControllerFindAllPaginated\n         * @summary List Test Suite Runs\n         * @request GET:/test-suite/{testSuiteId}/run\n         * @secure\n         */\n        testSuiteRunControllerFindAllPaginated: (testSuiteId, query, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/run`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Runs\n         * @name TestSuiteRunControllerCreate\n         * @summary Create Test Suite Run\n         * @request POST:/test-suite/{testSuiteId}/run\n         * @secure\n         */\n        testSuiteRunControllerCreate: (testSuiteId, data, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/run`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Runs\n         * @name TestSuiteRunControllerFindOne\n         * @summary Get Test Suite Run\n         * @request GET:/test-suite/{testSuiteId}/run/{id}\n         * @secure\n         */\n        testSuiteRunControllerFindOne: (testSuiteId, id, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/run/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Runs\n         * @name TestSuiteRunControllerUpdate\n         * @summary Update Test Suite Run\n         * @request PATCH:/test-suite/{testSuiteId}/run/{id}\n         * @secure\n         */\n        testSuiteRunControllerUpdate: (testSuiteId, id, data, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/run/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Test Suite Runs\n         * @name TestSuiteRunControllerRemove\n         * @summary Delete Test Suite Run\n         * @request DELETE:/test-suite/{testSuiteId}/run/{id}\n         * @secure\n         */\n        testSuiteRunControllerRemove: (testSuiteId, id, params = {}) => this.request({\n            path: `/test-suite/${testSuiteId}/run/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    eval = {\n        /**\n         * No description\n         *\n         * @tags Simulation Personalities\n         * @name PersonalityControllerCreate\n         * @summary Create Personality\n         * @request POST:/eval/simulation/personality\n         * @secure\n         */\n        personalityControllerCreate: (data, params = {}) => this.request({\n            path: `/eval/simulation/personality`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Personalities\n         * @name PersonalityControllerFindAll\n         * @summary List Personalities\n         * @request GET:/eval/simulation/personality\n         * @secure\n         */\n        personalityControllerFindAll: (query, params = {}) => this.request({\n            path: `/eval/simulation/personality`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Personalities\n         * @name PersonalityControllerFindOne\n         * @summary Get Personality\n         * @request GET:/eval/simulation/personality/{id}\n         * @secure\n         */\n        personalityControllerFindOne: (id, params = {}) => this.request({\n            path: `/eval/simulation/personality/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Personalities\n         * @name PersonalityControllerUpdate\n         * @summary Update Personality\n         * @request PATCH:/eval/simulation/personality/{id}\n         * @secure\n         */\n        personalityControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/eval/simulation/personality/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Personalities\n         * @name PersonalityControllerRemove\n         * @summary Delete Personality\n         * @request DELETE:/eval/simulation/personality/{id}\n         * @secure\n         */\n        personalityControllerRemove: (id, params = {}) => this.request({\n            path: `/eval/simulation/personality/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Scenarios\n         * @name ScenarioControllerCreate\n         * @summary Create Scenario\n         * @request POST:/eval/simulation/scenario\n         * @secure\n         */\n        scenarioControllerCreate: (data, params = {}) => this.request({\n            path: `/eval/simulation/scenario`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Scenarios\n         * @name ScenarioControllerFindAll\n         * @summary List Scenarios\n         * @request GET:/eval/simulation/scenario\n         * @secure\n         */\n        scenarioControllerFindAll: (query, params = {}) => this.request({\n            path: `/eval/simulation/scenario`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Scenarios\n         * @name ScenarioControllerFindOne\n         * @summary Get Scenario\n         * @request GET:/eval/simulation/scenario/{id}\n         * @secure\n         */\n        scenarioControllerFindOne: (id, params = {}) => this.request({\n            path: `/eval/simulation/scenario/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Scenarios\n         * @name ScenarioControllerUpdate\n         * @summary Update Scenario\n         * @request PATCH:/eval/simulation/scenario/{id}\n         * @secure\n         */\n        scenarioControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/eval/simulation/scenario/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Scenarios\n         * @name ScenarioControllerRemove\n         * @summary Delete Scenario\n         * @request DELETE:/eval/simulation/scenario/{id}\n         * @secure\n         */\n        scenarioControllerRemove: (id, params = {}) => this.request({\n            path: `/eval/simulation/scenario/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs\n         * @name SimulationRunControllerCreate\n         * @summary Create Simulation Run\n         * @request POST:/eval/simulation/run\n         * @secure\n         */\n        simulationRunControllerCreate: (data, params = {}) => this.request({\n            path: `/eval/simulation/run`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs\n         * @name SimulationRunControllerFindAll\n         * @summary List Simulation Runs\n         * @request GET:/eval/simulation/run\n         * @secure\n         */\n        simulationRunControllerFindAll: (query, params = {}) => this.request({\n            path: `/eval/simulation/run`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs\n         * @name SimulationRunControllerFindOne\n         * @summary Get Simulation Run\n         * @request GET:/eval/simulation/run/{id}\n         * @secure\n         */\n        simulationRunControllerFindOne: (id, params = {}) => this.request({\n            path: `/eval/simulation/run/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs\n         * @name SimulationRunControllerCancelGroup\n         * @summary Cancel Simulation Run\n         * @request PATCH:/eval/simulation/run/{id}\n         * @secure\n         */\n        simulationRunControllerCancelGroup: (id, params = {}) => this.request({\n            path: `/eval/simulation/run/${id}`,\n            method: \"PATCH\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs, Simulation Run Items\n         * @name SimulationRunControllerFindItems\n         * @summary List Simulation Run Items\n         * @request GET:/eval/simulation/run/{id}/item\n         * @secure\n         */\n        simulationRunControllerFindItems: (id, query, params = {}) => this.request({\n            path: `/eval/simulation/run/${id}/item`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs, Simulation Run Items\n         * @name SimulationRunControllerFindItem\n         * @summary Get Simulation Run Item\n         * @request GET:/eval/simulation/run/{id}/item/{itemId}\n         * @secure\n         */\n        simulationRunControllerFindItem: (id, itemId, params = {}) => this.request({\n            path: `/eval/simulation/run/${id}/item/${itemId}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs, Simulation Run Items\n         * @name SimulationRunControllerCancelItem\n         * @summary Cancel Simulation Run Item\n         * @request PATCH:/eval/simulation/run/{id}/item/{itemId}\n         * @secure\n         */\n        simulationRunControllerCancelItem: (id, itemId, params = {}) => this.request({\n            path: `/eval/simulation/run/${id}/item/${itemId}`,\n            method: \"PATCH\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Runs, Simulation Run Items\n         * @name SimulationRunControllerGenerateSuggestions\n         * @summary Generate Improvement Suggestions\n         * @request POST:/eval/simulation/run/{id}/item/{itemId}/generate\n         * @secure\n         */\n        simulationRunControllerGenerateSuggestions: (id, itemId, query, params = {}) => this.request({\n            path: `/eval/simulation/run/${id}/item/${itemId}/generate`,\n            method: \"POST\",\n            query: query,\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Suites\n         * @name SimulationSuiteControllerCreate\n         * @summary Create Simulation Suite\n         * @request POST:/eval/simulation/suite\n         * @secure\n         */\n        simulationSuiteControllerCreate: (data, params = {}) => this.request({\n            path: `/eval/simulation/suite`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Suites\n         * @name SimulationSuiteControllerFindAll\n         * @summary List Simulation Suites\n         * @request GET:/eval/simulation/suite\n         * @secure\n         */\n        simulationSuiteControllerFindAll: (query, params = {}) => this.request({\n            path: `/eval/simulation/suite`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Suites\n         * @name SimulationSuiteControllerFindOne\n         * @summary Get Simulation Suite\n         * @request GET:/eval/simulation/suite/{id}\n         * @secure\n         */\n        simulationSuiteControllerFindOne: (id, params = {}) => this.request({\n            path: `/eval/simulation/suite/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Suites\n         * @name SimulationSuiteControllerUpdate\n         * @summary Update Simulation Suite\n         * @request PATCH:/eval/simulation/suite/{id}\n         * @secure\n         */\n        simulationSuiteControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/eval/simulation/suite/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulation Suites\n         * @name SimulationSuiteControllerRemove\n         * @summary Delete Simulation Suite\n         * @request DELETE:/eval/simulation/suite/{id}\n         * @secure\n         */\n        simulationSuiteControllerRemove: (id, params = {}) => this.request({\n            path: `/eval/simulation/suite/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * @description Uses AI to analyze an assistant or squad configuration and generate test scenarios\n         *\n         * @tags Simulations\n         * @name SimulationGenerateControllerGenerate\n         * @summary Generate Scenarios with AI\n         * @request POST:/eval/simulation/scenario/generate\n         * @secure\n         */\n        simulationGenerateControllerGenerate: (data, params = {}) => this.request({\n            path: `/eval/simulation/scenario/generate`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulations\n         * @name SimulationControllerCreate\n         * @summary Create Simulation\n         * @request POST:/eval/simulation\n         * @secure\n         */\n        simulationControllerCreate: (data, params = {}) => this.request({\n            path: `/eval/simulation`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulations\n         * @name SimulationControllerFindAll\n         * @summary List Simulations\n         * @request GET:/eval/simulation\n         * @secure\n         */\n        simulationControllerFindAll: (query, params = {}) => this.request({\n            path: `/eval/simulation`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulations\n         * @name SimulationControllerFindOne\n         * @summary Get Simulation\n         * @request GET:/eval/simulation/{id}\n         * @secure\n         */\n        simulationControllerFindOne: (id, params = {}) => this.request({\n            path: `/eval/simulation/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulations\n         * @name SimulationControllerUpdate\n         * @summary Update Simulation\n         * @request PATCH:/eval/simulation/{id}\n         * @secure\n         */\n        simulationControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/eval/simulation/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulations\n         * @name SimulationControllerRemove\n         * @summary Delete Simulation\n         * @request DELETE:/eval/simulation/{id}\n         * @secure\n         */\n        simulationControllerRemove: (id, params = {}) => this.request({\n            path: `/eval/simulation/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Simulations\n         * @name SimulationControllerGetConcurrency\n         * @summary Get Simulation Concurrency\n         * @request GET:/eval/simulation/concurrency\n         * @secure\n         */\n        simulationControllerGetConcurrency: (params = {}) => this.request({\n            path: `/eval/simulation/concurrency`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerCreate\n         * @summary Create Eval\n         * @request POST:/eval\n         * @secure\n         */\n        evalControllerCreate: (data, params = {}) => this.request({\n            path: `/eval`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerGetPaginated\n         * @summary List Evals\n         * @request GET:/eval\n         * @secure\n         */\n        evalControllerGetPaginated: (query, params = {}) => this.request({\n            path: `/eval`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerUpdate\n         * @summary Update Eval\n         * @request PATCH:/eval/{id}\n         * @secure\n         */\n        evalControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/eval/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerRemove\n         * @summary Delete Eval\n         * @request DELETE:/eval/{id}\n         * @secure\n         */\n        evalControllerRemove: (id, params = {}) => this.request({\n            path: `/eval/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerGet\n         * @summary Get Eval\n         * @request GET:/eval/{id}\n         * @secure\n         */\n        evalControllerGet: (id, params = {}) => this.request({\n            path: `/eval/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerRemoveRun\n         * @summary Delete Eval Run\n         * @request DELETE:/eval/run/{id}\n         * @secure\n         */\n        evalControllerRemoveRun: (id, params = {}) => this.request({\n            path: `/eval/run/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerGetRun\n         * @summary Get Eval Run\n         * @request GET:/eval/run/{id}\n         * @secure\n         */\n        evalControllerGetRun: (id, params = {}) => this.request({\n            path: `/eval/run/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerRun\n         * @summary Create Eval Run\n         * @request POST:/eval/run\n         * @secure\n         */\n        evalControllerRun: (data, params = {}) => this.request({\n            path: `/eval/run`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Eval\n         * @name EvalControllerGetRunsPaginated\n         * @summary List Eval Runs\n         * @request GET:/eval/run\n         * @secure\n         */\n        evalControllerGetRunsPaginated: (query, params = {}) => this.request({\n            path: `/eval/run`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    reporting = {\n        /**\n         * No description\n         *\n         * @tags Insight\n         * @name InsightControllerCreate\n         * @summary Create Insight\n         * @request POST:/reporting/insight\n         * @secure\n         */\n        insightControllerCreate: (data, params = {}) => this.request({\n            path: `/reporting/insight`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Insight\n         * @name InsightControllerFindAll\n         * @summary Get Insights\n         * @request GET:/reporting/insight\n         * @secure\n         */\n        insightControllerFindAll: (query, params = {}) => this.request({\n            path: `/reporting/insight`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Insight\n         * @name InsightControllerUpdate\n         * @summary Update Insight\n         * @request PATCH:/reporting/insight/{id}\n         * @secure\n         */\n        insightControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/reporting/insight/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Insight\n         * @name InsightControllerFindOne\n         * @summary Get Insight\n         * @request GET:/reporting/insight/{id}\n         * @secure\n         */\n        insightControllerFindOne: (id, params = {}) => this.request({\n            path: `/reporting/insight/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Insight\n         * @name InsightControllerRemove\n         * @summary Delete Insight\n         * @request DELETE:/reporting/insight/{id}\n         * @secure\n         */\n        insightControllerRemove: (id, params = {}) => this.request({\n            path: `/reporting/insight/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Insight\n         * @name InsightControllerRun\n         * @summary Run Insight\n         * @request POST:/reporting/insight/{id}/run\n         * @secure\n         */\n        insightControllerRun: (id, data, params = {}) => this.request({\n            path: `/reporting/insight/${id}/run`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Insight\n         * @name InsightControllerPreview\n         * @summary Preview Insight\n         * @request POST:/reporting/insight/preview\n         * @secure\n         */\n        insightControllerPreview: (data, params = {}) => this.request({\n            path: `/reporting/insight/preview`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Board\n         * @name BoardControllerCreate\n         * @summary Create Board\n         * @request POST:/reporting/board\n         * @secure\n         */\n        boardControllerCreate: (data, params = {}) => this.request({\n            path: `/reporting/board`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Board\n         * @name BoardControllerFindAll\n         * @summary Get Boards\n         * @request GET:/reporting/board\n         * @secure\n         */\n        boardControllerFindAll: (query, params = {}) => this.request({\n            path: `/reporting/board`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Board\n         * @name BoardControllerMetricsOverviewEnsure\n         * @summary Get Default Metrics Overview Board\n         * @request GET:/reporting/board/default/metrics-overview\n         * @secure\n         */\n        boardControllerMetricsOverviewEnsure: (params = {}) => this.request({\n            path: `/reporting/board/default/metrics-overview`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Board\n         * @name BoardControllerUpdate\n         * @summary Update Board\n         * @request PATCH:/reporting/board/{id}\n         * @secure\n         */\n        boardControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/reporting/board/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Board\n         * @name BoardControllerFindOne\n         * @summary Get Board\n         * @request GET:/reporting/board/{id}\n         * @secure\n         */\n        boardControllerFindOne: (id, params = {}) => this.request({\n            path: `/reporting/board/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Board\n         * @name BoardControllerRemove\n         * @summary Delete Board\n         * @request DELETE:/reporting/board/{id}\n         * @secure\n         */\n        boardControllerRemove: (id, params = {}) => this.request({\n            path: `/reporting/board/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    observability = {\n        /**\n         * No description\n         *\n         * @tags Observability/Scorecard\n         * @name ScorecardControllerGet\n         * @summary Get Scorecard\n         * @request GET:/observability/scorecard/{id}\n         * @secure\n         */\n        scorecardControllerGet: (id, params = {}) => this.request({\n            path: `/observability/scorecard/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Observability/Scorecard\n         * @name ScorecardControllerUpdate\n         * @summary Update Scorecard\n         * @request PATCH:/observability/scorecard/{id}\n         * @secure\n         */\n        scorecardControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/observability/scorecard/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Observability/Scorecard\n         * @name ScorecardControllerRemove\n         * @summary Delete Scorecard\n         * @request DELETE:/observability/scorecard/{id}\n         * @secure\n         */\n        scorecardControllerRemove: (id, params = {}) => this.request({\n            path: `/observability/scorecard/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Observability/Scorecard\n         * @name ScorecardControllerGetPaginated\n         * @summary List Scorecards\n         * @request GET:/observability/scorecard\n         * @secure\n         */\n        scorecardControllerGetPaginated: (query, params = {}) => this.request({\n            path: `/observability/scorecard`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Observability/Scorecard\n         * @name ScorecardControllerCreate\n         * @summary Create Scorecard\n         * @request POST:/observability/scorecard\n         * @secure\n         */\n        scorecardControllerCreate: (data, params = {}) => this.request({\n            path: `/observability/scorecard`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    org = {\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerCreate\n         * @summary Create Org\n         * @request POST:/org\n         * @secure\n         */\n        orgControllerCreate: (data, params = {}) => this.request({\n            path: `/org`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerFindAll\n         * @summary List Orgs\n         * @request GET:/org\n         * @secure\n         */\n        orgControllerFindAll: (params = {}) => this.request({\n            path: `/org`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerFeatureFlagEnabled\n         * @summary Check if Feature Flag is enabled\n         * @request GET:/org/feature-flag\n         * @secure\n         */\n        orgControllerFeatureFlagEnabled: (query, params = {}) => this.request({\n            path: `/org/feature-flag`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerFindOne\n         * @summary Get Org\n         * @request GET:/org/{id}\n         * @secure\n         */\n        orgControllerFindOne: (id, params = {}) => this.request({\n            path: `/org/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerUpdate\n         * @summary Update Org\n         * @request PATCH:/org/{id}\n         * @secure\n         */\n        orgControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/org/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerDeleteOrg\n         * @summary Delete Org\n         * @request DELETE:/org/{id}\n         * @secure\n         */\n        orgControllerDeleteOrg: (id, params = {}) => this.request({\n            path: `/org/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerFindAllUsers\n         * @summary List Users\n         * @request GET:/org/{id}/user\n         * @secure\n         */\n        orgControllerFindAllUsers: (id, params = {}) => this.request({\n            path: `/org/${id}/user`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerOrgLeave\n         * @summary Leave Org\n         * @request DELETE:/org/{id}/leave\n         * @secure\n         */\n        orgControllerOrgLeave: (id, params = {}) => this.request({\n            path: `/org/${id}/leave`,\n            method: \"DELETE\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerOrgRemoveUser\n         * @summary Remove Org Member\n         * @request DELETE:/org/{id}/member/{memberId}/leave\n         * @secure\n         */\n        orgControllerOrgRemoveUser: (id, memberId, params = {}) => this.request({\n            path: `/org/${id}/member/${memberId}/leave`,\n            method: \"DELETE\",\n            secure: true,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerUsersInvite\n         * @summary Invite User\n         * @request POST:/org/{id}/invite\n         * @secure\n         */\n        orgControllerUsersInvite: (id, data, params = {}) => this.request({\n            path: `/org/${id}/invite`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerPendingInvitationsList\n         * @summary List Pending Organization Invitations\n         * @request GET:/org/{id}/invitations/pending\n         * @secure\n         */\n        orgControllerPendingInvitationsList: (id, params = {}) => this.request({\n            path: `/org/${id}/invitations/pending`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerPendingInvitationRevoke\n         * @summary Revoke Pending Organization Invitation\n         * @request DELETE:/org/{id}/invitations/{invitationId}\n         * @secure\n         */\n        orgControllerPendingInvitationRevoke: (id, invitationId, params = {}) => this.request({\n            path: `/org/${id}/invitations/${invitationId}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerUserUpdate\n         * @summary Update User Role\n         * @request PATCH:/org/{id}/role\n         * @secure\n         */\n        orgControllerUserUpdate: (id, data, params = {}) => this.request({\n            path: `/org/${id}/role`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerOrgToken\n         * @summary Generate User Org JWT\n         * @request GET:/org/{id}/auth\n         * @secure\n         */\n        orgControllerOrgToken: (id, params = {}) => this.request({\n            path: `/org/${id}/auth`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerZdrBuy\n         * @summary Purchase ZDR add-on\n         * @request POST:/org/{id}/zdr\n         * @secure\n         */\n        orgControllerZdrBuy: (id, params = {}) => this.request({\n            path: `/org/${id}/zdr`,\n            method: \"POST\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Orgs\n         * @name OrgControllerZdrRemove\n         * @summary Remove ZDR add-on\n         * @request DELETE:/org/{id}/zdr\n         * @secure\n         */\n        orgControllerZdrRemove: (id, params = {}) => this.request({\n            path: `/org/${id}/zdr`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    token = {\n        /**\n         * No description\n         *\n         * @tags Tokens\n         * @name TokenControllerCreate\n         * @summary Create Token\n         * @request POST:/token\n         * @secure\n         */\n        tokenControllerCreate: (data, params = {}) => this.request({\n            path: `/token`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tokens\n         * @name TokenControllerFindAll\n         * @summary List Tokens\n         * @request GET:/token\n         * @secure\n         */\n        tokenControllerFindAll: (query, params = {}) => this.request({\n            path: `/token`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tokens\n         * @name TokenControllerFindOne\n         * @summary Get Token\n         * @request GET:/token/{id}\n         * @secure\n         */\n        tokenControllerFindOne: (id, params = {}) => this.request({\n            path: `/token/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tokens\n         * @name TokenControllerUpdate\n         * @summary Update Token\n         * @request PATCH:/token/{id}\n         * @secure\n         */\n        tokenControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/token/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Tokens\n         * @name TokenControllerRemove\n         * @summary Delete Token\n         * @request DELETE:/token/{id}\n         * @secure\n         */\n        tokenControllerRemove: (id, params = {}) => this.request({\n            path: `/token/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    credential = {\n        /**\n         * No description\n         *\n         * @tags Credentials\n         * @name CredentialControllerCreate\n         * @summary Create Credential\n         * @request POST:/credential\n         * @secure\n         */\n        credentialControllerCreate: (data, params = {}) => this.request({\n            path: `/credential`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Credentials\n         * @name CredentialControllerFindAll\n         * @summary List Credentials\n         * @request GET:/credential\n         * @secure\n         */\n        credentialControllerFindAll: (query, params = {}) => this.request({\n            path: `/credential`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Credentials\n         * @name CredentialControllerFindOne\n         * @summary Get Credential\n         * @request GET:/credential/{id}\n         * @secure\n         */\n        credentialControllerFindOne: (id, params = {}) => this.request({\n            path: `/credential/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Credentials\n         * @name CredentialControllerUpdate\n         * @summary Update Credential\n         * @request PATCH:/credential/{id}\n         * @secure\n         */\n        credentialControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/credential/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Credentials\n         * @name CredentialControllerRemove\n         * @summary Delete Credential\n         * @request DELETE:/credential/{id}\n         * @secure\n         */\n        credentialControllerRemove: (id, params = {}) => this.request({\n            path: `/credential/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    template = {\n        /**\n         * No description\n         *\n         * @tags Templates\n         * @name TemplateControllerCreate\n         * @summary Create Template\n         * @request POST:/template\n         * @secure\n         */\n        templateControllerCreate: (data, params = {}) => this.request({\n            path: `/template`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Templates\n         * @name TemplateControllerFindAll\n         * @summary List Templates\n         * @request GET:/template\n         * @secure\n         */\n        templateControllerFindAll: (query, params = {}) => this.request({\n            path: `/template`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Templates\n         * @name TemplateControllerFindAllPinned\n         * @summary List Templates\n         * @request GET:/template/pinned\n         * @secure\n         */\n        templateControllerFindAllPinned: (params = {}) => this.request({\n            path: `/template/pinned`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Templates\n         * @name TemplateControllerFindOne\n         * @summary Get Template\n         * @request GET:/template/{id}\n         * @secure\n         */\n        templateControllerFindOne: (id, params = {}) => this.request({\n            path: `/template/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Templates\n         * @name TemplateControllerUpdate\n         * @summary Update Template\n         * @request PATCH:/template/{id}\n         * @secure\n         */\n        templateControllerUpdate: (id, data, params = {}) => this.request({\n            path: `/template/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Templates\n         * @name TemplateControllerRemove\n         * @summary Delete Template\n         * @request DELETE:/template/{id}\n         * @secure\n         */\n        templateControllerRemove: (id, params = {}) => this.request({\n            path: `/template/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    voiceLibrary = {\n        /**\n         * No description\n         *\n         * @tags Voice Library\n         * @name VoiceLibraryControllerVoiceGetByProvider\n         * @summary Get voices in Voice Library by Provider\n         * @request GET:/voice-library/{provider}\n         * @secure\n         */\n        voiceLibraryControllerVoiceGetByProvider: (provider, query, params = {}) => this.request({\n            path: `/voice-library/${provider}`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Voice Library\n         * @name VoiceLibraryControllerVoiceGetAccentsByProvider\n         * @summary Get accents in Voice Library by Provider\n         * @request GET:/voice-library/{provider}/accents\n         * @secure\n         */\n        voiceLibraryControllerVoiceGetAccentsByProvider: (provider, params = {}) => this.request({\n            path: `/voice-library/${provider}/accents`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Voice Library\n         * @name VoiceLibraryControllerVoiceLibrarySyncByProvider\n         * @summary Sync Private voices in Voice Library by Provider\n         * @request POST:/voice-library/sync/{provider}\n         * @secure\n         */\n        voiceLibraryControllerVoiceLibrarySyncByProvider: (provider, params = {}) => this.request({\n            path: `/voice-library/sync/${provider}`,\n            method: \"POST\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Voice Library\n         * @name VoiceLibraryControllerVoiceLibrarySyncDefaultVoices\n         * @summary Sync Default voices in Voice Library by Providers\n         * @request POST:/voice-library/sync\n         * @secure\n         */\n        voiceLibraryControllerVoiceLibrarySyncDefaultVoices: (data, params = {}) => this.request({\n            path: `/voice-library/sync`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Voice Library\n         * @name VoiceLibraryControllerVoiceLibraryCreateSesameVoice\n         * @summary Create a new voice in the Voice Library using Sesame\n         * @request POST:/voice-library/create-sesame-voice\n         * @secure\n         */\n        voiceLibraryControllerVoiceLibraryCreateSesameVoice: (data, params = {}) => this.request({\n            path: `/voice-library/create-sesame-voice`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.FormData,\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Voice Library\n         * @name VoiceLibraryControllerVoiceLibraryVoiceUpdate\n         * @summary Update a Voice Library voice (name/description).\n         * @request PATCH:/voice-library/{id}\n         * @secure\n         */\n        voiceLibraryControllerVoiceLibraryVoiceUpdate: (id, data, params = {}) => this.request({\n            path: `/voice-library/${id}`,\n            method: \"PATCH\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Voice Library\n         * @name VoiceLibraryControllerVoiceLibraryVoiceDelete\n         * @summary Delete a Voice Library voice.\n         * @request DELETE:/voice-library/{id}\n         * @secure\n         */\n        voiceLibraryControllerVoiceLibraryVoiceDelete: (id, params = {}) => this.request({\n            path: `/voice-library/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            ...params,\n        }),\n    };\n    provider = {\n        /**\n         * No description\n         *\n         * @tags Provider Resources\n         * @name ProviderResourceControllerCreateProviderResource\n         * @summary Create Provider Resource\n         * @request POST:/provider/{provider}/{resourceName}\n         * @secure\n         */\n        providerResourceControllerCreateProviderResource: (provider, resourceName, params = {}) => this.request({\n            path: `/provider/${provider}/${resourceName}`,\n            method: \"POST\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Provider Resources\n         * @name ProviderResourceControllerGetProviderResourcesPaginated\n         * @summary List Provider Resources\n         * @request GET:/provider/{provider}/{resourceName}\n         * @secure\n         */\n        providerResourceControllerGetProviderResourcesPaginated: (provider, resourceName, query, params = {}) => this.request({\n            path: `/provider/${provider}/${resourceName}`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Provider Resources\n         * @name ProviderResourceControllerGetProviderResource\n         * @summary Get Provider Resource\n         * @request GET:/provider/{provider}/{resourceName}/{id}\n         * @secure\n         */\n        providerResourceControllerGetProviderResource: (provider, resourceName, id, params = {}) => this.request({\n            path: `/provider/${provider}/${resourceName}/${id}`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Provider Resources\n         * @name ProviderResourceControllerDeleteProviderResource\n         * @summary Delete Provider Resource\n         * @request DELETE:/provider/{provider}/{resourceName}/{id}\n         * @secure\n         */\n        providerResourceControllerDeleteProviderResource: (provider, resourceName, id, params = {}) => this.request({\n            path: `/provider/${provider}/${resourceName}/${id}`,\n            method: \"DELETE\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Provider Resources\n         * @name ProviderResourceControllerUpdateProviderResource\n         * @summary Update Provider Resource\n         * @request PATCH:/provider/{provider}/{resourceName}/{id}\n         * @secure\n         */\n        providerResourceControllerUpdateProviderResource: (provider, resourceName, id, params = {}) => this.request({\n            path: `/provider/${provider}/${resourceName}/${id}`,\n            method: \"PATCH\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name ProviderControllerGetWorkflows\n         * @request GET:/{provider}/workflows\n         * @secure\n         */\n        providerControllerGetWorkflows: (provider, query, params = {}) => this.request({\n            path: `/${provider}/workflows`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name ProviderControllerGetWorkflowTriggerHook\n         * @request GET:/{provider}/workflows/{workflowId}/hooks\n         * @secure\n         */\n        providerControllerGetWorkflowTriggerHook: (provider, workflowId, params = {}) => this.request({\n            path: `/${provider}/workflows/${workflowId}/hooks`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name ProviderControllerGetLocations\n         * @request GET:/{provider}/locations\n         * @secure\n         */\n        providerControllerGetLocations: (provider, params = {}) => this.request({\n            path: `/${provider}/locations`,\n            method: \"GET\",\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name VoiceProviderControllerSearchVoices\n         * @summary Search Voice from Provider Voice Library.\n         * @request GET:/{provider}/voices/search\n         * @deprecated\n         * @secure\n         */\n        voiceProviderControllerSearchVoices: (provider, query, params = {}) => this.request({\n            path: `/${provider}/voices/search`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name VoiceProviderControllerSearchVoice\n         * @summary Search Voice from Provider Voice Library.\n         * @request GET:/{provider}/voice/search\n         * @secure\n         */\n        voiceProviderControllerSearchVoice: (provider, query, params = {}) => this.request({\n            path: `/${provider}/voice/search`,\n            method: \"GET\",\n            query: query,\n            secure: true,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name VoiceProviderControllerAddVoices\n         * @summary Add Shared Voice to your Provider Account.\n         * @request POST:/{provider}/voices/add\n         * @deprecated\n         * @secure\n         */\n        voiceProviderControllerAddVoices: (provider, data, params = {}) => this.request({\n            path: `/${provider}/voices/add`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name VoiceProviderControllerAddVoice\n         * @summary Add Shared Voice to your Provider Account.\n         * @request POST:/{provider}/voice/add\n         * @secure\n         */\n        voiceProviderControllerAddVoice: (provider, data, params = {}) => this.request({\n            path: `/${provider}/voice/add`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n    };\n    v11Labs = {\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name VoiceProviderControllerCloneVoices\n         * @summary Clone a voice to the provider account and add to Vapi Voice Library.\n         * @request POST:/11labs/voice/clone\n         * @secure\n         */\n        voiceProviderControllerCloneVoices: (data, params = {}) => this.request({\n            path: `/11labs/voice/clone`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.FormData,\n            ...params,\n        }),\n    };\n    vapi = {\n        /**\n         * No description\n         *\n         * @tags Providers\n         * @name VoiceProviderControllerCloneVapiVoice\n         * @summary Clone a Vapi Voice (xAI-backed) and add it to your Voice Library.\n         * @request POST:/vapi/voice/clone\n         * @secure\n         */\n        voiceProviderControllerCloneVapiVoice: (data, params = {}) => this.request({\n            path: `/vapi/voice/clone`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.FormData,\n            ...params,\n        }),\n    };\n    analytics = {\n        /**\n         * No description\n         *\n         * @tags Analytics\n         * @name AnalyticsControllerQuery\n         * @summary Create Analytics Queries\n         * @request POST:/analytics\n         * @secure\n         */\n        analyticsControllerQuery: (data, params = {}) => this.request({\n            path: `/analytics`,\n            method: \"POST\",\n            body: data,\n            secure: true,\n            type: ContentType.Json,\n            format: \"json\",\n            ...params,\n        }),\n    };\n}\nexports.Api = Api;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.client = void 0;\nconst api_1 = require(\"./api\");\nconst api = new api_1.Api({\n    baseUrl: \"https://api.vapi.ai\",\n    baseApiParams: {\n        secure: true,\n    },\n    securityWorker: async (securityData) => {\n        if (securityData) {\n            return {\n                headers: {\n                    Authorization: `Bearer ${securityData}`,\n                },\n            };\n        }\n    },\n});\nexports.client = api;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSafeDailyConfig = createSafeDailyConfig;\nexports.safeSetLocalAudio = safeSetLocalAudio;\nexports.safeSetInputDevicesAsync = safeSetInputDevicesAsync;\nexports.createSafeDailyFactoryOptions = createSafeDailyFactoryOptions;\nfunction createSafeDailyConfig(config) {\n    if (!config)\n        return {};\n    const { alwaysIncludeMicInPermissionPrompt, ...rest } = config;\n    // Force true or remove the property entirely. This can cause Chrome 140+ issues\n    if (alwaysIncludeMicInPermissionPrompt === false) {\n        console.warn('[Vapi] alwaysIncludeMicInPermissionPrompt:false detected. ' +\n            'This can cause Chrome 140+ issues. Removing the property.');\n        return rest;\n    }\n    return config;\n}\nfunction safeSetLocalAudio(call, enabled) {\n    if (!call) {\n        throw new Error('Call object is not available.');\n    }\n    // Never use forceDiscardTrack. This can cause Chrome 140+ issues\n    call.setLocalAudio(enabled);\n}\nasync function safeSetInputDevicesAsync(call, options) {\n    if (!call) {\n        throw new Error('Call object is not available.');\n    }\n    // Validate audioSource\n    if ('audioSource' in options && options.audioSource === false) {\n        console.warn('[Vapi] setInputDevicesAsync with audioSource:false detected. ' +\n            'This can cause Chrome 140+ issues. Using default device instead.');\n        const { audioSource, ...safeOptions } = options;\n        await call.setInputDevicesAsync(safeOptions);\n        return;\n    }\n    await call.setInputDevicesAsync(options);\n}\nfunction createSafeDailyFactoryOptions(options) {\n    if (!options)\n        return {};\n    // Ensure audioSource is never false\n    if (options.audioSource === false) {\n        console.warn('[Vapi] audioSource:false detected in factory options. ' +\n            'This can cause Chrome 140+ issues. Defaulting to true.');\n        return { ...options, audioSource: true };\n    }\n    return options;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst daily_js_1 = __importDefault(require(\"@daily-co/daily-js\"));\nconst events_1 = __importDefault(require(\"events\"));\nconst client_1 = require(\"./client\");\nconst daily_guards_1 = require(\"./daily-guards\");\n/**\n * Extracts error details into a plain object that serializes properly to JSON.\n * Error objects don't serialize well because their properties (message, stack, name)\n * are not enumerable and get lost when using JSON.stringify().\n */\nfunction serializeError(error) {\n    if (error === null || error === undefined) {\n        return { message: 'Unknown error (null or undefined)' };\n    }\n    if (error instanceof Error) {\n        const serialized = {\n            message: error.message,\n            name: error.name,\n            stack: error.stack,\n        };\n        // Include any additional properties that might be on the error\n        const errorAsAny = error;\n        if (errorAsAny.code !== undefined) {\n            serialized.code = errorAsAny.code;\n        }\n        if (errorAsAny.cause !== undefined) {\n            serialized.cause = String(errorAsAny.cause);\n        }\n        if (errorAsAny.reason !== undefined) {\n            serialized.reason = errorAsAny.reason;\n        }\n        if (errorAsAny.details !== undefined) {\n            serialized.details = errorAsAny.details;\n        }\n        // Daily.co specific error properties\n        if (errorAsAny.errorMsg !== undefined) {\n            serialized.errorMsg = errorAsAny.errorMsg;\n        }\n        if (errorAsAny.error !== undefined && typeof errorAsAny.error === 'string') {\n            serialized.errorDetail = errorAsAny.error;\n        }\n        return serialized;\n    }\n    if (typeof error === 'string') {\n        return { message: error };\n    }\n    if (typeof error === 'object') {\n        // It's already a plain object, but let's ensure message exists\n        const errorObj = error;\n        return {\n            message: errorObj.message || errorObj.error || JSON.stringify(error),\n            ...errorObj\n        };\n    }\n    return { message: String(error) };\n}\nasync function startAudioPlayer(player, track) {\n    player.muted = false;\n    player.autoplay = true;\n    if (track != null) {\n        player.srcObject = new MediaStream([track]);\n        await player.play();\n    }\n}\nasync function buildAudioPlayer(track, participantId, volume) {\n    const player = document.createElement('audio');\n    player.dataset.participantId = participantId;\n    // Before play(), so an already-flowing track never plays at full volume first.\n    if (typeof volume === 'number') {\n        player.volume = volume;\n    }\n    document.body.appendChild(player);\n    try {\n        await startAudioPlayer(player, track);\n    }\n    catch (error) {\n        // Appended before playback was attempted, so a failure would strand it.\n        player.remove();\n        throw error;\n    }\n    return player;\n}\nfunction destroyAudioPlayer(participantId) {\n    const player = document.querySelector(`audio[data-participant-id=\"${participantId}\"]`);\n    player?.remove();\n}\nfunction subscribeToTracks(e, call, isVideoRecordingEnabled, isVideoEnabled) {\n    if (e.participant.local)\n        return;\n    call.updateParticipant(e.participant.session_id, {\n        setSubscribedTracks: {\n            audio: true,\n            video: isVideoRecordingEnabled || isVideoEnabled,\n        },\n    });\n}\nclass VapiEventEmitter extends events_1.default {\n    on(event, listener) {\n        super.on(event, listener);\n        return this;\n    }\n    once(event, listener) {\n        super.once(event, listener);\n        return this;\n    }\n    emit(event, ...args) {\n        return super.emit(event, ...args);\n    }\n    removeListener(event, listener) {\n        super.removeListener(event, listener);\n        return this;\n    }\n    removeAllListeners(event) {\n        super.removeAllListeners(event);\n        return this;\n    }\n}\nclass Vapi extends VapiEventEmitter {\n    started = false;\n    call = null;\n    audioPlayer = null;\n    // Survives teardown so the caller's choice persists across calls.\n    desiredVolume = null;\n    // Builds are tracked individually, not by one counter: several can be in\n    // flight, they finish out of order, and a teardown must invalidate only the\n    // builds belonging to the participant that left.\n    audioBuildSequence = 0;\n    pendingAudioBuilds = new Map();\n    attachedAudioBuild = 0;\n    speakingTimeout = null;\n    dailyCallConfig = {};\n    dailyCallObject = {};\n    hasEmittedCallEndedStatus = false;\n    constructor(apiToken, apiBaseUrl, dailyCallConfig, dailyCallObject) {\n        super();\n        client_1.client.baseUrl = apiBaseUrl ?? 'https://api.vapi.ai';\n        client_1.client.setSecurityData(apiToken);\n        this.dailyCallConfig = (0, daily_guards_1.createSafeDailyConfig)(dailyCallConfig);\n        this.dailyCallObject = (0, daily_guards_1.createSafeDailyFactoryOptions)(dailyCallObject);\n    }\n    async cleanup() {\n        this.started = false;\n        this.hasEmittedCallEndedStatus = false;\n        if (this.call) {\n            await this.call.destroy();\n            this.call = null;\n        }\n        this.audioPlayer = null;\n        this.pendingAudioBuilds.clear();\n        this.speakingTimeout = null;\n    }\n    isMobileDevice() {\n        if (typeof navigator === 'undefined') {\n            return false;\n        }\n        const userAgent = navigator.userAgent;\n        return /android|iphone|ipad|ipod|iemobile|blackberry|bada/i.test(userAgent.toLowerCase());\n    }\n    async sleep(ms) {\n        return new Promise((resolve) => setTimeout(resolve, ms));\n    }\n    /**\n     * Reports a failed audio processing update on the SDK's `error` event.\n     *\n     * Daily applies input settings inside its remotely loaded call machine, so a\n     * failure - Krisp's `KrispInitError: Canceled`, for example - arrives as a\n     * rejected promise, which a synchronous try/catch around\n     * `updateInputSettings()` cannot see. Without this the rejection escapes to\n     * the page as an unhandled rejection instead of reaching the listeners\n     * consumers register. Audio processing is non-critical, so the call continues.\n     */\n    emitAudioProcessingError(stage, error) {\n        this.emit('error', {\n            type: `${stage}-error`,\n            stage,\n            error: serializeError(error),\n            timestamp: new Date().toISOString(),\n        });\n    }\n    async start(assistant, assistantOverrides, squad, workflow, workflowOverrides, options) {\n        const startTime = Date.now();\n        // Input validation with detailed error messages\n        if (!assistant && !squad && !workflow) {\n            const error = new Error('Assistant or Squad or Workflow must be provided.');\n            this.emit('error', {\n                type: 'validation-error',\n                stage: 'input-validation',\n                error: serializeError(error),\n                timestamp: new Date().toISOString()\n            });\n            throw error;\n        }\n        if (this.started) {\n            this.emit('call-start-progress', {\n                stage: 'validation',\n                status: 'failed',\n                timestamp: new Date().toISOString(),\n                metadata: { reason: 'already-started' }\n            });\n            return null;\n        }\n        this.emit('call-start-progress', {\n            stage: 'initialization',\n            status: 'started',\n            timestamp: new Date().toISOString(),\n            metadata: {\n                hasAssistant: !!assistant,\n                hasSquad: !!squad,\n                hasWorkflow: !!workflow\n            }\n        });\n        this.started = true;\n        try {\n            // Stage 1: Create web call\n            this.emit('call-start-progress', {\n                stage: 'web-call-creation',\n                status: 'started',\n                timestamp: new Date().toISOString()\n            });\n            const webCallStartTime = Date.now();\n            const webCall = (await client_1.client.call.callControllerCreateWebCall({\n                assistant: typeof assistant === 'string' ? undefined : assistant,\n                assistantId: typeof assistant === 'string' ? assistant : undefined,\n                assistantOverrides,\n                squad: typeof squad === 'string' ? undefined : squad,\n                squadId: typeof squad === 'string' ? squad : undefined,\n                workflow: typeof workflow === 'string' ? undefined : workflow,\n                workflowId: typeof workflow === 'string' ? workflow : undefined,\n                workflowOverrides,\n                roomDeleteOnUserLeaveEnabled: options?.roomDeleteOnUserLeaveEnabled,\n            })).data;\n            const webCallDuration = Date.now() - webCallStartTime;\n            this.emit('call-start-progress', {\n                stage: 'web-call-creation',\n                status: 'completed',\n                duration: webCallDuration,\n                timestamp: new Date().toISOString(),\n                metadata: {\n                    callId: webCall?.id || 'unknown',\n                    videoRecordingEnabled: webCall?.artifactPlan?.videoRecordingEnabled ?? false,\n                    voiceProvider: webCall?.assistant?.voice?.provider || 'unknown'\n                }\n            });\n            if (this.call) {\n                this.emit('call-start-progress', {\n                    stage: 'daily-call-object-creation',\n                    status: 'started',\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'cleanup-existing' }\n                });\n                await this.cleanup();\n            }\n            const isVideoRecordingEnabled = webCall?.artifactPlan?.videoRecordingEnabled ?? false;\n            const isVideoEnabled = webCall?.assistant?.voice?.provider === 'tavus';\n            // When video recording is enabled, the server sends a Daily meeting\n            // token that auto-starts the cloud recording on join — more reliable\n            // than calling startRecording() from a weak client network. Older\n            // servers don't send one; then the client starts the recording itself.\n            const callToken = webCall?.transport?.callToken;\n            // Stage 2: Create Daily call object\n            this.emit('call-start-progress', {\n                stage: 'daily-call-object-creation',\n                status: 'started',\n                timestamp: new Date().toISOString(),\n                metadata: {\n                    audioSource: this.dailyCallObject.audioSource ?? true,\n                    videoSource: this.dailyCallObject.videoSource ?? isVideoRecordingEnabled,\n                    isVideoRecordingEnabled,\n                    isVideoEnabled\n                }\n            });\n            const dailyCallStartTime = Date.now();\n            try {\n                this.call = daily_js_1.default.createCallObject({\n                    audioSource: this.dailyCallObject.audioSource ?? true,\n                    videoSource: this.dailyCallObject.videoSource ?? isVideoRecordingEnabled,\n                    dailyConfig: this.dailyCallConfig,\n                });\n                const dailyCallDuration = Date.now() - dailyCallStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'daily-call-object-creation',\n                    status: 'completed',\n                    duration: dailyCallDuration,\n                    timestamp: new Date().toISOString()\n                });\n            }\n            catch (error) {\n                const dailyCallDuration = Date.now() - dailyCallStartTime;\n                const serializedError = serializeError(error);\n                this.emit('call-start-progress', {\n                    stage: 'daily-call-object-creation',\n                    status: 'failed',\n                    duration: dailyCallDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { error: serializedError.message }\n                });\n                this.emit('error', {\n                    type: 'daily-call-object-creation-error',\n                    stage: 'daily-call-object-creation',\n                    error: serializedError,\n                    timestamp: new Date().toISOString()\n                });\n                throw error;\n            }\n            this.call.iframe()?.style.setProperty('display', 'none');\n            this.call.on('left-meeting', () => {\n                this.emit('call-end');\n                if (!this.hasEmittedCallEndedStatus) {\n                    this.emit('message', {\n                        type: 'status-update',\n                        status: 'ended',\n                        'endedReason': 'customer-ended-call',\n                    });\n                    this.hasEmittedCallEndedStatus = true;\n                }\n                if (isVideoRecordingEnabled) {\n                    // When using a token, the recording doesn't stop automatically on\n                    // leave, so still stop it manually to preserve existing behavior.\n                    this.call?.stopRecording();\n                }\n                this.cleanup().catch(console.error);\n            });\n            this.call.on('error', (error) => {\n                this.emit('error', {\n                    type: 'daily-error',\n                    error: serializeError(error),\n                    timestamp: new Date().toISOString()\n                });\n                if (isVideoRecordingEnabled) {\n                    this.call?.stopRecording();\n                }\n            });\n            this.call.on('camera-error', (error) => {\n                this.emit('camera-error', {\n                    type: 'camera-error',\n                    error: serializeError(error),\n                    timestamp: new Date().toISOString()\n                });\n            });\n            this.call.on('network-quality-change', (event) => {\n                this.emit('network-quality-change', event);\n            });\n            this.call.on('network-connection', (event) => {\n                this.emit('network-connection', event);\n            });\n            this.call.on('recording-started', (event) => {\n                if (event)\n                    this.emit('recording-started', event);\n            });\n            this.call.on('recording-stopped', (event) => {\n                if (event)\n                    this.emit('recording-stopped', event);\n            });\n            this.call.on('recording-stats', (event) => {\n                if (event)\n                    this.emit('recording-stats', event);\n            });\n            this.call.on('recording-error', (event) => {\n                if (event)\n                    this.emit('recording-error', event);\n            });\n            this.call.on('recording-upload-completed', (event) => {\n                if (event)\n                    this.emit('recording-upload-completed', event);\n            });\n            this.call.on('track-started', (e) => this.handleTrackStarted(e));\n            this.call.on('participant-joined', (e) => {\n                if (!e || !this.call)\n                    return;\n                subscribeToTracks(e, this.call, isVideoRecordingEnabled, isVideoEnabled);\n            });\n            this.call.on('participant-updated', (e) => {\n                if (!e) {\n                    return;\n                }\n                this.emit('daily-participant-updated', e.participant);\n            });\n            this.call.on('participant-left', (e) => {\n                if (!e) {\n                    return;\n                }\n                this.detachAudioPlayer(e.participant.session_id);\n            });\n            // Registered before join(): a token-auto-started recording can begin\n            // while join() is still in flight, so a listener added after join\n            // could miss the event.\n            let recordingRequestedTime = 0;\n            if (isVideoRecordingEnabled) {\n                this.call.once('recording-started', () => {\n                    const totalRecordingDelay = (new Date().getTime() - recordingRequestedTime) / 1000;\n                    this.emit('call-start-progress', {\n                        stage: 'video-recording-started',\n                        status: 'completed',\n                        timestamp: new Date().toISOString(),\n                        metadata: { delaySeconds: totalRecordingDelay }\n                    });\n                    this.send({\n                        type: 'control',\n                        control: 'say-first-message',\n                        videoRecordingStartDelaySeconds: totalRecordingDelay,\n                    });\n                });\n            }\n            // Stage 3: Mobile device handling and permissions\n            const isMobile = this.isMobileDevice();\n            this.emit('call-start-progress', {\n                stage: 'mobile-permissions',\n                status: 'started',\n                timestamp: new Date().toISOString(),\n                metadata: { isMobile }\n            });\n            if (isMobile) {\n                const mobileWaitStartTime = Date.now();\n                await this.sleep(1000);\n                const mobileWaitDuration = Date.now() - mobileWaitStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'mobile-permissions',\n                    status: 'completed',\n                    duration: mobileWaitDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'permissions-wait' }\n                });\n            }\n            else {\n                this.emit('call-start-progress', {\n                    stage: 'mobile-permissions',\n                    status: 'completed',\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'skipped-not-mobile' }\n                });\n            }\n            // Stage 4: Join the call\n            this.emit('call-start-progress', {\n                stage: 'daily-call-join',\n                status: 'started',\n                timestamp: new Date().toISOString()\n            });\n            const joinStartTime = Date.now();\n            recordingRequestedTime = joinStartTime;\n            try {\n                await this.call.join({\n                    // @ts-expect-error This exists\n                    url: webCall.webCallUrl,\n                    // daily-js rejects a `token` key that is present but undefined, so\n                    // only include it when the server actually sent one.\n                    ...(callToken ? { token: callToken } : {}),\n                    subscribeToTracksAutomatically: false,\n                });\n                const joinDuration = Date.now() - joinStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'daily-call-join',\n                    status: 'completed',\n                    duration: joinDuration,\n                    timestamp: new Date().toISOString()\n                });\n            }\n            catch (error) {\n                const joinDuration = Date.now() - joinStartTime;\n                const serializedError = serializeError(error);\n                this.emit('call-start-progress', {\n                    stage: 'daily-call-join',\n                    status: 'failed',\n                    duration: joinDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { error: serializedError.message }\n                });\n                this.emit('error', {\n                    type: 'daily-call-join-error',\n                    stage: 'daily-call-join',\n                    error: serializedError,\n                    duration: joinDuration,\n                    timestamp: new Date().toISOString()\n                });\n                throw error;\n            }\n            // Stage 5: Video recording setup (if enabled)\n            if (isVideoRecordingEnabled && callToken) {\n                // The meeting token auto-started the recording at join, so there is\n                // nothing to request from the client.\n                this.emit('call-start-progress', {\n                    stage: 'video-recording-setup',\n                    status: 'completed',\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'auto-started-via-meeting-token' }\n                });\n            }\n            else if (isVideoRecordingEnabled) {\n                this.emit('call-start-progress', {\n                    stage: 'video-recording-setup',\n                    status: 'started',\n                    timestamp: new Date().toISOString()\n                });\n                const recordingStartTime = Date.now();\n                try {\n                    recordingRequestedTime = new Date().getTime();\n                    this.startRecording();\n                    const recordingSetupDuration = Date.now() - recordingStartTime;\n                    this.emit('call-start-progress', {\n                        stage: 'video-recording-setup',\n                        status: 'completed',\n                        duration: recordingSetupDuration,\n                        timestamp: new Date().toISOString()\n                    });\n                }\n                catch (error) {\n                    const recordingSetupDuration = Date.now() - recordingStartTime;\n                    const serializedError = serializeError(error);\n                    this.emit('call-start-progress', {\n                        stage: 'video-recording-setup',\n                        status: 'failed',\n                        duration: recordingSetupDuration,\n                        timestamp: new Date().toISOString(),\n                        metadata: { error: serializedError.message }\n                    });\n                    this.emit('error', {\n                        type: 'video-recording-setup-error',\n                        stage: 'video-recording-setup',\n                        error: serializedError,\n                        timestamp: new Date().toISOString()\n                    });\n                    // Don't throw here, video recording is optional\n                }\n            }\n            else {\n                this.emit('call-start-progress', {\n                    stage: 'video-recording-setup',\n                    status: 'completed',\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'skipped-not-enabled' }\n                });\n            }\n            // Stage 6: Audio level observer setup\n            this.emit('call-start-progress', {\n                stage: 'audio-observer-setup',\n                status: 'started',\n                timestamp: new Date().toISOString()\n            });\n            const audioObserverStartTime = Date.now();\n            try {\n                this.call.startRemoteParticipantsAudioLevelObserver(100);\n                this.call.startLocalAudioLevelObserver(100);\n                const audioObserverDuration = Date.now() - audioObserverStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'audio-observer-setup',\n                    status: 'completed',\n                    duration: audioObserverDuration,\n                    timestamp: new Date().toISOString()\n                });\n            }\n            catch (error) {\n                const audioObserverDuration = Date.now() - audioObserverStartTime;\n                const serializedError = serializeError(error);\n                this.emit('call-start-progress', {\n                    stage: 'audio-observer-setup',\n                    status: 'failed',\n                    duration: audioObserverDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { error: serializedError.message }\n                });\n                this.emit('error', {\n                    type: 'audio-observer-setup-error',\n                    stage: 'audio-observer-setup',\n                    error: serializedError,\n                    timestamp: new Date().toISOString()\n                });\n                // Don't throw here, this is non-critical\n            }\n            this.call.on('remote-participants-audio-level', (e) => {\n                if (e)\n                    this.handleRemoteParticipantsAudioLevel(e);\n            });\n            this.call.on('local-audio-level', (e) => {\n                if (e)\n                    this.handleLocalAudioLevel(e);\n            });\n            this.call.on('app-message', (e) => this.onAppMessage(e));\n            this.call.on('nonfatal-error', (e) => {\n                // https://docs.daily.co/reference/daily-js/events/meeting-events#type-audio-processor-error\n                if (e?.type === 'local-audio-level-observer-error') {\n                    this.emit('local-audio-level-observer-error', serializeError(e));\n                }\n                if (e?.type === 'audio-processor-error') {\n                    this.call\n                        ?.updateInputSettings({\n                        audio: {\n                            processor: {\n                                type: 'none',\n                            },\n                        },\n                    })\n                        .then(() => {\n                        (0, daily_guards_1.safeSetLocalAudio)(this.call, true);\n                    })\n                        .catch((error) => {\n                        this.emitAudioProcessingError('audio-processor-recovery', error);\n                    });\n                }\n            });\n            // Stage 7: Audio processing setup\n            this.emit('call-start-progress', {\n                stage: 'audio-processing-setup',\n                status: 'started',\n                timestamp: new Date().toISOString()\n            });\n            const audioProcessingStartTime = Date.now();\n            try {\n                this.call\n                    .updateInputSettings({\n                    audio: {\n                        processor: {\n                            type: 'noise-cancellation',\n                        },\n                    },\n                })\n                    .catch((error) => {\n                    this.emitAudioProcessingError('audio-processing-setup', error);\n                });\n                const audioProcessingDuration = Date.now() - audioProcessingStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'audio-processing-setup',\n                    status: 'completed',\n                    duration: audioProcessingDuration,\n                    timestamp: new Date().toISOString()\n                });\n            }\n            catch (error) {\n                const audioProcessingDuration = Date.now() - audioProcessingStartTime;\n                const serializedError = serializeError(error);\n                this.emit('call-start-progress', {\n                    stage: 'audio-processing-setup',\n                    status: 'failed',\n                    duration: audioProcessingDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { error: serializedError.message }\n                });\n                this.emit('error', {\n                    type: 'audio-processing-setup-error',\n                    stage: 'audio-processing-setup',\n                    error: serializedError,\n                    timestamp: new Date().toISOString()\n                });\n                // Don't throw here, this is non-critical\n            }\n            const totalDuration = Date.now() - startTime;\n            this.emit('call-start-success', {\n                totalDuration,\n                callId: webCall?.id || 'unknown',\n                timestamp: new Date().toISOString()\n            });\n            return webCall;\n        }\n        catch (e) {\n            const totalDuration = Date.now() - startTime;\n            const serializedError = serializeError(e);\n            this.emit('call-start-failed', {\n                stage: 'unknown',\n                totalDuration,\n                error: serializedError.message,\n                errorStack: serializedError.stack || 'No stack trace available',\n                timestamp: new Date().toISOString(),\n                context: {\n                    hasAssistant: !!assistant,\n                    hasSquad: !!squad,\n                    hasWorkflow: !!workflow,\n                    isMobile: this.isMobileDevice()\n                }\n            });\n            // Also emit the generic error event for backward compatibility\n            this.emit('error', {\n                type: 'start-method-error',\n                stage: 'unknown',\n                error: serializedError,\n                totalDuration,\n                timestamp: new Date().toISOString(),\n                context: {\n                    hasAssistant: !!assistant,\n                    hasSquad: !!squad,\n                    hasWorkflow: !!workflow,\n                    isMobile: this.isMobileDevice()\n                }\n            });\n            await this.cleanup();\n            return null;\n        }\n    }\n    onAppMessage(e) {\n        if (!e) {\n            return;\n        }\n        try {\n            if (e.data === 'listening') {\n                return this.emit('call-start');\n            }\n            else {\n                try {\n                    const parsedMessage = JSON.parse(e.data);\n                    this.emit('message', parsedMessage);\n                    if (parsedMessage && 'type' in parsedMessage && 'status' in parsedMessage && parsedMessage.type === 'status-update' && parsedMessage.status === 'ended') {\n                        this.hasEmittedCallEndedStatus = true;\n                    }\n                }\n                catch (parseError) {\n                    console.log('Error parsing message data: ', parseError);\n                }\n            }\n        }\n        catch (e) {\n            console.error(e);\n        }\n    }\n    handleRemoteParticipantsAudioLevel(e) {\n        const speechLevel = Object.values(e.participantsAudioLevel).reduce((a, b) => a + b, 0);\n        this.emit('volume-level', Math.min(1, speechLevel / 0.15));\n        const isSpeaking = speechLevel > 0.01;\n        if (!isSpeaking) {\n            return;\n        }\n        if (this.speakingTimeout) {\n            clearTimeout(this.speakingTimeout);\n            this.speakingTimeout = null;\n        }\n        else {\n            this.emit('speech-start');\n        }\n        this.speakingTimeout = setTimeout(() => {\n            this.emit('speech-end');\n            this.speakingTimeout = null;\n        }, 1000);\n    }\n    handleLocalAudioLevel(e) {\n        this.emit('local-volume-level', e.audioLevel);\n    }\n    /**\n     * Stops the call by destroying the Daily call object.\n     *\n     * If `roomDeleteOnUserLeaveEnabled` is set to `false`, the Vapi call will be kept alive, allowing reconnections to the same call using the `reconnect` method.\n     * If `roomDeleteOnUserLeaveEnabled` is set to `true`, the Vapi call will also be destroyed, preventing any reconnections.\n     */\n    async stop() {\n        this.started = false;\n        if (this.call) {\n            await this.call.destroy();\n            this.call = null;\n        }\n        this.audioPlayer = null;\n        this.pendingAudioBuilds.clear();\n        this.speakingTimeout = null;\n    }\n    /**\n     * Sends a Live Call Control message to the Vapi server.\n     *\n     * Docs: https://docs.vapi.ai/calls/call-features\n     */\n    send(message) {\n        this.call?.sendAppMessage(JSON.stringify(message));\n    }\n    /**\n     * The two places this class touches the DOM, behind indirections so the\n     * lifecycle logic around them is testable without a browser.\n     */\n    audioPlayerBuild(track, participantId, volume) {\n        return buildAudioPlayer(track, participantId, volume);\n    }\n    audioPlayerDestroy(participantId) {\n        destroyAudioPlayer(participantId);\n    }\n    /**\n     * The remembered volume, bounded, or null if there is nothing to apply.\n     * Shared by both callers so they cannot disagree: the DOM throws on a\n     * non-finite or out-of-range volume, and that throw would stall the call.\n     */\n    desiredVolumeResolve() {\n        if (this.desiredVolume === null || !Number.isFinite(this.desiredVolume)) {\n            return null;\n        }\n        return Math.min(1, Math.max(0, this.desiredVolume));\n    }\n    /** Shared by the initial and reconnect paths so the two cannot drift. */\n    async handleTrackStarted(e) {\n        if (!e || !e.participant) {\n            return;\n        }\n        if (e.participant?.local) {\n            return;\n        }\n        if (e.participant?.user_name !== 'Vapi Speaker') {\n            return;\n        }\n        if (e.track.kind === 'video') {\n            this.emitToConsumer('video', e.track);\n        }\n        if (e.track.kind === 'audio') {\n            // play() pends for the whole of media startup, so the call can end or\n            // the participant can leave while the player is still being built.\n            const call = this.call;\n            const build = ++this.audioBuildSequence;\n            this.pendingAudioBuilds.set(build, e.participant.session_id);\n            let player;\n            try {\n                player = await this.audioPlayerBuild(e.track, e.participant.session_id, this.desiredVolumeResolve());\n            }\n            catch (error) {\n                // Usually autoplay policy, which is recoverable, so consumers get a\n                // signal to prompt for a gesture. Safe with no 'error' listener:\n                // emitToConsumer catches EventEmitter's unlistened-'error' throw.\n                this.pendingAudioBuilds.delete(build);\n                console.error('[vapi] could not start assistant audio', error);\n                this.emitToConsumer('error', {\n                    type: 'audio-start-failed',\n                    error: serializeError(error),\n                });\n                return;\n            }\n            const stillPending = this.pendingAudioBuilds.delete(build);\n            if (!call ||\n                this.call !== call ||\n                !stillPending ||\n                build < this.attachedAudioBuild) {\n                player.remove();\n                return;\n            }\n            this.attachedAudioBuild = build;\n            this.attachAudioPlayer(player);\n        }\n        this.call?.sendAppMessage('playable');\n    }\n    /**\n     * Assigns before emitting, since emit is synchronous and a listener may call\n     * getAudioPlayer or setVolume during the event.\n     */\n    attachAudioPlayer(player) {\n        // Renegotiation reuses the participant id, so a superseded element would\n        // still match the selector teardown uses and be removed in its place.\n        if (this.audioPlayer && this.audioPlayer !== player) {\n            this.audioPlayer.remove();\n        }\n        // Reapplied in case the volume changed while the player was building.\n        const volume = this.desiredVolumeResolve();\n        if (volume !== null) {\n            player.volume = volume;\n        }\n        this.audioPlayer = player;\n        this.emitToConsumer('audio', player);\n    }\n    /**\n     * A listener that throws must not take down the caller: track-started still\n     * has to signal that playback is ready. Not routed to the `error` event,\n     * which EventEmitter throws on when nothing is listening.\n     */\n    emitToConsumer(event, ...args) {\n        try {\n            this.emit(event, ...args);\n        }\n        catch (error) {\n            console.error(`[vapi] ${event} event listener threw`, error);\n        }\n    }\n    /** Drops the reference before removing, so nothing hands out a detached element. */\n    detachAudioPlayer(participantId) {\n        if (this.audioPlayer?.dataset.participantId === participantId) {\n            this.audioPlayer = null;\n        }\n        // Scoped to this participant: the call check cannot catch these, since the\n        // call itself has not changed, and an unrelated leave must not invalidate\n        // the assistant's build.\n        for (const [build, id] of this.pendingAudioBuilds) {\n            if (id === participantId) {\n                this.pendingAudioBuilds.delete(build);\n            }\n        }\n        this.audioPlayerDestroy(participantId);\n    }\n    /**\n     * The <audio> element playing the assistant, or null before its track has\n     * arrived. Pair with the `audio` event when you need it the moment it exists.\n     */\n    getAudioPlayer() {\n        return this.audioPlayer;\n    }\n    /**\n     * Sets assistant playback volume, 0 to 1.\n     *\n     * The setting is remembered, so it can be applied before the assistant's\n     * audio track has arrived and it survives across calls and mid-call track\n     * replacement. Callers do not have to race the start of the call.\n     *\n     * Values outside 0 to 1 are clamped and non-finite values are ignored, since\n     * the DOM rejects both rather than saturating.\n     *\n     * Only volume set through this method is remembered. Writing `volume`\n     * directly on the element from getAudioPlayer() or the `audio` event applies\n     * to that element alone, and is overwritten the next time one is attached.\n     *\n     * This is playback only. It does not change what the assistant hears, and it\n     * does not affect the levels reported by the `volume-level` event.\n     */\n    setVolume(volume) {\n        if (!Number.isFinite(volume)) {\n            return;\n        }\n        this.desiredVolume = Math.min(1, Math.max(0, volume));\n        if (this.audioPlayer) {\n            this.audioPlayer.volume = this.desiredVolume;\n        }\n    }\n    setMuted(mute) {\n        (0, daily_guards_1.safeSetLocalAudio)(this.call, !mute);\n    }\n    isMuted() {\n        if (!this.call) {\n            return false;\n        }\n        return this.call.localAudio() === false;\n    }\n    say(message, endCallAfterSpoken, interruptionsEnabled, interruptAssistantEnabled) {\n        this.send({\n            type: 'say',\n            message,\n            endCallAfterSpoken,\n            interruptionsEnabled: interruptionsEnabled ?? false,\n            interruptAssistantEnabled: interruptAssistantEnabled ?? false,\n        });\n    }\n    /**\n     * Ends the call immediately by sending a `end-call` message using Live Call Control, and destroys the Daily call object.\n     *\n     * This method always ends the call, regardless of the `roomDeleteOnUserLeaveEnabled` option.\n     */\n    end() {\n        this.send({\n            type: 'end-call',\n        });\n        this.stop();\n    }\n    setInputDevicesAsync(options) {\n        return (0, daily_guards_1.safeSetInputDevicesAsync)(this.call, options);\n    }\n    async increaseMicLevel(gain) {\n        if (!this.call) {\n            throw new Error('Call object is not available.');\n        }\n        try {\n            const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n            const audioContext = new AudioContext();\n            const source = audioContext.createMediaStreamSource(stream);\n            const gainNode = audioContext.createGain();\n            gainNode.gain.value = gain;\n            source.connect(gainNode);\n            const destination = audioContext.createMediaStreamDestination();\n            gainNode.connect(destination);\n            const [boostedTrack] = destination.stream.getAudioTracks();\n            await (0, daily_guards_1.safeSetInputDevicesAsync)(this.call, { audioSource: boostedTrack });\n        }\n        catch (error) {\n            console.error(\"Error adjusting microphone level:\", error);\n        }\n    }\n    setOutputDeviceAsync(options) {\n        this.call?.setOutputDeviceAsync(options);\n    }\n    getDailyCallObject() {\n        return this.call;\n    }\n    /**\n     * Returns the most recent local (microphone) audio level, a number between 0 and 1.\n     *\n     * Useful for detecting when the local participant's microphone is not picking up any\n     * audio (e.g. wrong input device selected, OS-level input volume at 0, or muted\n     * hardware) so you can surface a \"we can't hear you\" style warning in your UI.\n     *\n     * Returns 0 when there is no active call.\n     */\n    getLocalAudioLevel() {\n        if (!this.call) {\n            return 0;\n        }\n        return this.call.getLocalAudioLevel();\n    }\n    /**\n     * Starts (or restarts) the local audio level observer. The observer is started\n     * automatically when a call begins, but this can be used to change the sampling\n     * interval or restart it if it was stopped.\n     *\n     * While running, the Vapi instance emits 'local-volume-level' events with the local\n     * microphone audio level (0 to 1).\n     *\n     * @param interval How often, in milliseconds, to emit audio level events. Defaults to Daily's default.\n     */\n    async startLocalAudioLevelObserver(interval) {\n        if (!this.call) {\n            throw new Error('Call object is not available.');\n        }\n        await this.call.startLocalAudioLevelObserver(interval);\n    }\n    /**\n     * Stops the local audio level observer. After calling this, 'local-volume-level'\n     * events will no longer be emitted until the observer is started again.\n     */\n    stopLocalAudioLevelObserver() {\n        this.call?.stopLocalAudioLevelObserver();\n    }\n    /**\n     * Returns whether the local audio level observer is currently running.\n     */\n    isLocalAudioLevelObserverRunning() {\n        if (!this.call) {\n            return false;\n        }\n        return this.call.isLocalAudioLevelObserverRunning();\n    }\n    startScreenSharing(displayMediaOptions, screenVideoSendSettings) {\n        this.call?.startScreenShare({\n            displayMediaOptions,\n            screenVideoSendSettings,\n        });\n    }\n    stopScreenSharing() {\n        this.call?.stopScreenShare();\n    }\n    /**\n     * Starts (or retries) a cloud recording of the call.\n     *\n     * Recording start is asynchronous: success is signaled by the\n     * 'recording-started' event and failure by 'recording-error'. Daily does not\n     * retry automatically, so if you receive 'recording-error' (e.g. the\n     * recording start timed out), you can call this method again a few seconds\n     * later to retry.\n     */\n    startRecording() {\n        if (!this.call) {\n            throw new Error('Call object is not available.');\n        }\n        this.call.startRecording({\n            width: 1280,\n            height: 720,\n            backgroundColor: '#FF1F2D3D',\n            layout: {\n                preset: 'default',\n            },\n        });\n    }\n    /**\n     * Stops the in-progress recording. Completion is signaled by the\n     * 'recording-stopped' event.\n     */\n    stopRecording() {\n        this.call?.stopRecording();\n    }\n    /**\n     * Reconnects to an active call.\n     *\n     *\n     * @param webCall\n     */\n    async reconnect(webCall) {\n        const startTime = Date.now();\n        if (this.started) {\n            throw new Error('Cannot reconnect while a call is already in progress. Call stop() first.');\n        }\n        if (!webCall.webCallUrl) {\n            throw new Error('webCallUrl is required for reconnection.');\n        }\n        this.emit('call-start-progress', {\n            stage: 'reconnect-initialization',\n            status: 'started',\n            timestamp: new Date().toISOString(),\n            metadata: {\n                callId: webCall.id || 'unknown',\n                hasVideoRecording: !!webCall?.artifactPlan?.videoRecordingEnabled,\n                voiceProvider: webCall?.assistant?.voice?.provider || 'unknown'\n            }\n        });\n        this.started = true;\n        try {\n            // Clean up any existing call object\n            if (this.call) {\n                this.emit('call-start-progress', {\n                    stage: 'cleanup-existing-call',\n                    status: 'started',\n                    timestamp: new Date().toISOString()\n                });\n                await this.cleanup();\n                this.emit('call-start-progress', {\n                    stage: 'cleanup-existing-call',\n                    status: 'completed',\n                    timestamp: new Date().toISOString()\n                });\n            }\n            const isVideoRecordingEnabled = webCall?.artifactPlan?.videoRecordingEnabled ?? false;\n            const isVideoEnabled = webCall?.assistant?.voice?.provider === 'tavus';\n            // Same auto-start token as in start(). Rejoining with it while the\n            // recording is still running is safe; if the recording stopped when the\n            // user left, the token starts a new one.\n            const callToken = webCall?.transport?.callToken;\n            // Stage 1: Create Daily call object\n            this.emit('call-start-progress', {\n                stage: 'daily-call-object-creation',\n                status: 'started',\n                timestamp: new Date().toISOString(),\n                metadata: {\n                    audioSource: this.dailyCallObject.audioSource ?? true,\n                    videoSource: this.dailyCallObject.videoSource ?? isVideoRecordingEnabled,\n                    isVideoRecordingEnabled,\n                    isVideoEnabled\n                }\n            });\n            const dailyCallStartTime = Date.now();\n            this.call = daily_js_1.default.createCallObject({\n                audioSource: this.dailyCallObject.audioSource ?? true,\n                videoSource: this.dailyCallObject.videoSource ?? isVideoRecordingEnabled,\n                dailyConfig: this.dailyCallConfig,\n            });\n            const dailyCallDuration = Date.now() - dailyCallStartTime;\n            this.emit('call-start-progress', {\n                stage: 'daily-call-object-creation',\n                status: 'completed',\n                duration: dailyCallDuration,\n                timestamp: new Date().toISOString()\n            });\n            this.call.iframe()?.style.setProperty('display', 'none');\n            // Set up event listeners\n            this.call.on('left-meeting', () => {\n                this.emit('call-end');\n                if (!this.hasEmittedCallEndedStatus) {\n                    this.emit('message', {\n                        type: 'status-update',\n                        status: 'ended',\n                        'endedReason': 'customer-ended-call',\n                    });\n                    this.hasEmittedCallEndedStatus = true;\n                }\n                if (isVideoRecordingEnabled) {\n                    // When using a token, the recording doesn't stop automatically on\n                    // leave, so still stop it manually to preserve existing behavior.\n                    this.call?.stopRecording();\n                }\n                this.cleanup().catch(console.error);\n            });\n            this.call.on('error', (error) => {\n                this.emit('error', {\n                    type: 'daily-error',\n                    error: serializeError(error),\n                    timestamp: new Date().toISOString()\n                });\n                if (isVideoRecordingEnabled) {\n                    this.call?.stopRecording();\n                }\n            });\n            this.call.on('camera-error', (error) => {\n                this.emit('camera-error', {\n                    type: 'camera-error',\n                    error: serializeError(error),\n                    timestamp: new Date().toISOString()\n                });\n            });\n            this.call.on('network-quality-change', (event) => {\n                this.emit('network-quality-change', event);\n            });\n            this.call.on('network-connection', (event) => {\n                this.emit('network-connection', event);\n            });\n            this.call.on('recording-started', (event) => {\n                if (event)\n                    this.emit('recording-started', event);\n            });\n            this.call.on('recording-stopped', (event) => {\n                if (event)\n                    this.emit('recording-stopped', event);\n            });\n            this.call.on('recording-stats', (event) => {\n                if (event)\n                    this.emit('recording-stats', event);\n            });\n            this.call.on('recording-error', (event) => {\n                if (event)\n                    this.emit('recording-error', event);\n            });\n            this.call.on('recording-upload-completed', (event) => {\n                if (event)\n                    this.emit('recording-upload-completed', event);\n            });\n            this.call.on('track-started', (e) => this.handleTrackStarted(e));\n            this.call.on('participant-joined', (e) => {\n                if (!e || !this.call)\n                    return;\n                subscribeToTracks(e, this.call, isVideoRecordingEnabled, isVideoEnabled);\n            });\n            this.call.on('participant-updated', (e) => {\n                if (!e) {\n                    return;\n                }\n                this.emit('daily-participant-updated', e.participant);\n            });\n            this.call.on('participant-left', (e) => {\n                if (!e) {\n                    return;\n                }\n                this.detachAudioPlayer(e.participant.session_id);\n            });\n            this.call.on('remote-participants-audio-level', (e) => {\n                if (e)\n                    this.handleRemoteParticipantsAudioLevel(e);\n            });\n            this.call.on('local-audio-level', (e) => {\n                if (e)\n                    this.handleLocalAudioLevel(e);\n            });\n            this.call.on('app-message', (e) => this.onAppMessage(e));\n            this.call.on('nonfatal-error', (e) => {\n                // https://docs.daily.co/reference/daily-js/events/meeting-events#type-audio-processor-error\n                if (e?.type === 'local-audio-level-observer-error') {\n                    this.emit('local-audio-level-observer-error', serializeError(e));\n                }\n                if (e?.type === 'audio-processor-error') {\n                    this.call\n                        ?.updateInputSettings({\n                        audio: {\n                            processor: {\n                                type: 'none',\n                            },\n                        },\n                    })\n                        .then(() => {\n                        (0, daily_guards_1.safeSetLocalAudio)(this.call, true);\n                    })\n                        .catch((error) => {\n                        this.emitAudioProcessingError('audio-processor-recovery', error);\n                    });\n                }\n            });\n            // Registered before join(): a token-auto-started recording can begin\n            // while join() is still in flight, so a listener added after join\n            // could miss the event.\n            let recordingRequestedTime = 0;\n            if (isVideoRecordingEnabled) {\n                this.call.once('recording-started', () => {\n                    const totalRecordingDelay = (new Date().getTime() - recordingRequestedTime) / 1000;\n                    this.emit('call-start-progress', {\n                        stage: 'video-recording-started',\n                        status: 'completed',\n                        timestamp: new Date().toISOString(),\n                        metadata: { delaySeconds: totalRecordingDelay }\n                    });\n                    this.send({\n                        type: 'control',\n                        control: 'say-first-message',\n                        videoRecordingStartDelaySeconds: totalRecordingDelay,\n                    });\n                });\n            }\n            // Stage 2: Mobile device handling and permissions\n            const isMobile = this.isMobileDevice();\n            this.emit('call-start-progress', {\n                stage: 'mobile-permissions',\n                status: 'started',\n                timestamp: new Date().toISOString(),\n                metadata: { isMobile }\n            });\n            if (isMobile) {\n                const mobileWaitStartTime = Date.now();\n                await this.sleep(1000);\n                const mobileWaitDuration = Date.now() - mobileWaitStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'mobile-permissions',\n                    status: 'completed',\n                    duration: mobileWaitDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'permissions-wait' }\n                });\n            }\n            else {\n                this.emit('call-start-progress', {\n                    stage: 'mobile-permissions',\n                    status: 'completed',\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'skipped-not-mobile' }\n                });\n            }\n            // Stage 3: Join the call\n            this.emit('call-start-progress', {\n                stage: 'daily-call-join',\n                status: 'started',\n                timestamp: new Date().toISOString()\n            });\n            const joinStartTime = Date.now();\n            recordingRequestedTime = joinStartTime;\n            await this.call.join({\n                url: webCall.webCallUrl,\n                // daily-js rejects a `token` key that is present but undefined, so\n                // only include it when the server actually sent one.\n                ...(callToken ? { token: callToken } : {}),\n                subscribeToTracksAutomatically: false,\n            });\n            const joinDuration = Date.now() - joinStartTime;\n            this.emit('call-start-progress', {\n                stage: 'daily-call-join',\n                status: 'completed',\n                duration: joinDuration,\n                timestamp: new Date().toISOString()\n            });\n            // Stage 4: Video recording setup (if enabled)\n            if (isVideoRecordingEnabled && callToken) {\n                // The meeting token auto-started the recording at join, so there is\n                // nothing to request from the client.\n                this.emit('call-start-progress', {\n                    stage: 'video-recording-setup',\n                    status: 'completed',\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'auto-started-via-meeting-token' }\n                });\n            }\n            else if (isVideoRecordingEnabled) {\n                this.emit('call-start-progress', {\n                    stage: 'video-recording-setup',\n                    status: 'started',\n                    timestamp: new Date().toISOString()\n                });\n                const recordingStartTime = Date.now();\n                try {\n                    recordingRequestedTime = new Date().getTime();\n                    this.startRecording();\n                    const recordingSetupDuration = Date.now() - recordingStartTime;\n                    this.emit('call-start-progress', {\n                        stage: 'video-recording-setup',\n                        status: 'completed',\n                        duration: recordingSetupDuration,\n                        timestamp: new Date().toISOString()\n                    });\n                }\n                catch (error) {\n                    const recordingSetupDuration = Date.now() - recordingStartTime;\n                    const serializedError = serializeError(error);\n                    this.emit('call-start-progress', {\n                        stage: 'video-recording-setup',\n                        status: 'failed',\n                        duration: recordingSetupDuration,\n                        timestamp: new Date().toISOString(),\n                        metadata: { error: serializedError.message }\n                    });\n                    // Don't throw here, video recording is optional\n                }\n            }\n            else {\n                this.emit('call-start-progress', {\n                    stage: 'video-recording-setup',\n                    status: 'completed',\n                    timestamp: new Date().toISOString(),\n                    metadata: { action: 'skipped-not-enabled' }\n                });\n            }\n            // Stage 5: Audio level observer setup\n            this.emit('call-start-progress', {\n                stage: 'audio-observer-setup',\n                status: 'started',\n                timestamp: new Date().toISOString()\n            });\n            const audioObserverStartTime = Date.now();\n            try {\n                this.call.startRemoteParticipantsAudioLevelObserver(100);\n                this.call.startLocalAudioLevelObserver(100);\n                const audioObserverDuration = Date.now() - audioObserverStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'audio-observer-setup',\n                    status: 'completed',\n                    duration: audioObserverDuration,\n                    timestamp: new Date().toISOString()\n                });\n            }\n            catch (error) {\n                const audioObserverDuration = Date.now() - audioObserverStartTime;\n                const serializedError = serializeError(error);\n                this.emit('call-start-progress', {\n                    stage: 'audio-observer-setup',\n                    status: 'failed',\n                    duration: audioObserverDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { error: serializedError.message }\n                });\n                // Don't throw here, this is non-critical\n            }\n            // Stage 6: Audio processing setup\n            this.emit('call-start-progress', {\n                stage: 'audio-processing-setup',\n                status: 'started',\n                timestamp: new Date().toISOString()\n            });\n            const audioProcessingStartTime = Date.now();\n            try {\n                this.call\n                    .updateInputSettings({\n                    audio: {\n                        processor: {\n                            type: 'noise-cancellation',\n                        },\n                    },\n                })\n                    .catch((error) => {\n                    this.emitAudioProcessingError('audio-processing-setup', error);\n                });\n                const audioProcessingDuration = Date.now() - audioProcessingStartTime;\n                this.emit('call-start-progress', {\n                    stage: 'audio-processing-setup',\n                    status: 'completed',\n                    duration: audioProcessingDuration,\n                    timestamp: new Date().toISOString()\n                });\n            }\n            catch (error) {\n                const audioProcessingDuration = Date.now() - audioProcessingStartTime;\n                const serializedError = serializeError(error);\n                this.emit('call-start-progress', {\n                    stage: 'audio-processing-setup',\n                    status: 'failed',\n                    duration: audioProcessingDuration,\n                    timestamp: new Date().toISOString(),\n                    metadata: { error: serializedError.message }\n                });\n                // Don't throw here, this is non-critical\n            }\n            const totalDuration = Date.now() - startTime;\n            this.emit('call-start-success', {\n                totalDuration,\n                callId: webCall?.id || 'unknown',\n                timestamp: new Date().toISOString()\n            });\n            this.emit('call-start');\n        }\n        catch (e) {\n            const totalDuration = Date.now() - startTime;\n            const serializedError = serializeError(e);\n            this.emit('call-start-failed', {\n                stage: 'reconnect',\n                totalDuration,\n                error: serializedError.message,\n                errorStack: serializedError.stack || 'No stack trace available',\n                timestamp: new Date().toISOString(),\n                context: {\n                    isReconnect: true,\n                    callId: webCall?.id || 'unknown',\n                    hasVideoRecording: !!webCall?.artifactPlan?.videoRecordingEnabled,\n                    voiceProvider: webCall?.assistant?.voice?.provider || 'unknown',\n                    isMobile: this.isMobileDevice()\n                }\n            });\n            // Also emit the generic error event for backward compatibility\n            this.emit('error', {\n                type: 'reconnect-error',\n                error: serializedError,\n                totalDuration,\n                timestamp: new Date().toISOString(),\n                context: {\n                    isReconnect: true,\n                    callId: webCall?.id || 'unknown',\n                    hasVideoRecording: !!webCall?.artifactPlan?.videoRecordingEnabled,\n                    voiceProvider: webCall?.assistant?.voice?.provider || 'unknown',\n                    isMobile: this.isMobileDevice()\n                }\n            });\n            await this.cleanup();\n            throw e;\n        }\n    }\n    /**\n     * Runs all network connectivity tests for pre-call diagnostics.\n     * Creates a temporary Daily call object for testing purposes.\n     *\n     * Tests performed:\n     * 1. Network connectivity (TURN server) - Tests if traffic can be relayed through TURN servers\n     * 2. Websocket connectivity - Tests if websocket connections can be established\n     * 3. Call quality - Tests overall call quality metrics (if available in SDK version)\n     *\n     * @returns {Promise<Record<string, any>>} Test results object with status for each test\n     *\n     * @example\n     * // Run pre-call network diagnostics\n     * const results = await Vapi.runNetworkTestsStandalone();\n     * if (results.networkConnectivity?.result === 'failed') {\n     *   console.warn('Network issues detected - calls may not work properly');\n     * }\n     *\n     * @static\n     */\n    static async runNetworkTestsStandalone() {\n        console.log('Starting standalone network connectivity tests...');\n        const results = {};\n        let tempCall = null;\n        try {\n            // Create a temporary call object for testing\n            console.log('Creating temporary call object for testing...');\n            tempCall = daily_js_1.default.createCallObject({\n                audioSource: true,\n                videoSource: true,\n            });\n            // Test 1: Network Connectivity (TURN server test)\n            console.log('\\n1. Testing network connectivity (TURN server)...');\n            let videoTrack = null;\n            try {\n                // Create a dummy video track for the test\n                const stream = await navigator.mediaDevices.getUserMedia({ video: true });\n                videoTrack = stream.getVideoTracks()[0];\n                const networkTest = await tempCall.testNetworkConnectivity(videoTrack);\n                results.networkConnectivity = networkTest;\n                console.log('Network connectivity test result:', networkTest);\n            }\n            catch (error) {\n                results.networkConnectivity = { result: 'error', error: error?.toString() };\n                console.error('Network connectivity test error:', error);\n            }\n            finally {\n                // Clean up the video track\n                if (videoTrack) {\n                    videoTrack.stop();\n                }\n            }\n            // Test 2: Websocket Connectivity\n            console.log('\\n2. Testing websocket connectivity...');\n            try {\n                const websocketTest = await tempCall.testWebsocketConnectivity();\n                results.websocketConnectivity = websocketTest;\n                console.log('Websocket connectivity test result:', websocketTest);\n            }\n            catch (error) {\n                results.websocketConnectivity = { result: 'error', error: error?.toString() };\n                console.error('Websocket connectivity test error:', error);\n            }\n            // Test 3: Call Quality (if available)\n            console.log('\\n3. Testing call quality...');\n            try {\n                // Check if the method exists\n                if (typeof tempCall.testCallQuality === 'function') {\n                    // Call quality test requires startCamera to initialize call state\n                    try {\n                        // Use startCamera to initialize the call state without needing a room\n                        console.log('Initializing call state with startCamera...');\n                        await tempCall.startCamera();\n                        // Now run the call quality test\n                        const callQualityTest = await tempCall.testCallQuality();\n                        results.callQuality = callQualityTest;\n                        console.log('Call quality test result:', callQualityTest);\n                        // Camera will be cleaned up when we destroy the call object\n                    }\n                    catch (startCameraError) {\n                        // If startCamera fails, it might be due to permissions or other issues\n                        console.error('Failed to start camera for call quality test:', startCameraError);\n                        results.callQuality = {\n                            result: 'error',\n                            error: startCameraError?.toString(),\n                            message: 'Failed to initialize camera for call quality test. Check camera permissions.'\n                        };\n                    }\n                }\n                else {\n                    results.callQuality = { result: 'not-available', message: 'testCallQuality method not available' };\n                    console.log('Call quality test not available in current Daily.co version');\n                }\n            }\n            catch (error) {\n                results.callQuality = { result: 'error', error: error?.toString() };\n                console.error('Call quality test error:', error);\n            }\n        }\n        catch (error) {\n            console.error('Failed to create temporary call object:', error);\n            results.error = error?.toString();\n        }\n        finally {\n            // Clean up the temporary call object\n            if (tempCall) {\n                try {\n                    console.log('Cleaning up temporary call object...');\n                    await tempCall.destroy();\n                }\n                catch (error) {\n                    console.error('Error destroying temporary call object:', error);\n                }\n            }\n        }\n        // Summary\n        console.log('\\n=== Network Test Summary ===');\n        console.log('Results:', JSON.stringify(results, null, 2));\n        return results;\n    }\n}\nexports.default = Vapi;\n","import VoiceClient from \"@vapi-ai/web\";\nimport type { ChatMessage, ChatRole, VoiceConnectionStatus, VoiceEngineEqPhase } from \"./types\";\nimport {\n  applyTranscriptTurn,\n  asRole,\n  isTranscriptEvent,\n  normalizeText,\n  planTranscriptTurn,\n  type TranscriptEventPayload,\n} from \"./transcript\";\nimport { mergeChannelType } from \"./overrides\";\n\ntype VoiceEventName = \"call-start\" | \"call-end\" | \"message\" | \"volume-level\";\n// \"message\" carries a TranscriptEventPayload; \"volume-level\" carries a\n// plain number; \"call-start\"/\"call-end\" carry nothing. One handler type\n// covers all four so on()/off() share a single signature — each handler\n// narrows the payload itself.\ntype VoiceEventHandler = (payload: unknown) => void;\ninterface VoiceClientLike {\n  start?: (\n    assistantId: string,\n    assistantOverrides?: { variableValues?: Record<string, string> }\n  ) => Promise<unknown> | unknown;\n  stop?: () => Promise<unknown> | unknown;\n  end?: () => Promise<unknown> | unknown;\n  setMuted?: (m: boolean) => void;\n  // The real client extends Node's EventEmitter — off() needs the SAME\n  // handler reference passed to on(), not just the event name, or it's a\n  // no-op that silently leaks the listener. See initClient()/dispose().\n  on?: (event: VoiceEventName, handler: VoiceEventHandler) => void;\n  off?: (event: VoiceEventName, handler: VoiceEventHandler) => void;\n}\n\nexport interface VoiceEngineOptions {\n  assistantId: string;\n  publicKey: string;\n  assistantOverrides?: { variableValues?: Record<string, string> };\n}\n\ninterface WindowWithAudioContext {\n  AudioContext?: typeof AudioContext;\n  webkitAudioContext?: typeof AudioContext;\n}\n\n/**\n * Framework-agnostic voice engine: mic permission, call lifecycle, live\n * transcript grouping, and input/output audio-level analysis for\n * visualizers. Emits a \"change\" event on every state update so a UI layer\n * can re-render.\n */\nexport class VoiceEngine extends EventTarget {\n  private client: VoiceClient | null = null;\n  private attached = false;\n  private isToggling = false;\n\n  private _status: VoiceConnectionStatus = \"idle\";\n  private _eqPhase: VoiceEngineEqPhase = \"idle\";\n  private _micAllowed: boolean | null = null;\n  private _transcript: ChatMessage[] = [];\n  private _isMuted = false;\n  private _userLevel = 0;\n  private _assistantLevel = 0;\n\n  private currentTurnIdByRole = new Map<ChatRole, string>();\n  private lastChunkAtByRole = new Map<ChatRole, number>();\n  private lastRole: ChatRole | null = null;\n\n  private micStream: MediaStream | null = null;\n  private micAudioCtx: AudioContext | null = null;\n  private micAnalyser: AnalyserNode | null = null;\n  private micPcmBuf: Float32Array<ArrayBuffer> | null = null;\n  private micVadFrame: number | null = null;\n\n  private assistantAudioCtx: AudioContext | null = null;\n  private assistantAnalyser: AnalyserNode | null = null;\n  private assistantPcmBuf: Float32Array<ArrayBuffer> | null = null;\n  private assistantVadFrame: number | null = null;\n  private assistantAttachAbortAt = 0;\n  /** Audio elements already on the host page before this call started —\n   *  excluded from the remote-audio search below so a customer's own,\n   *  unrelated <audio> element (e.g. a music/video player already on their\n   *  page) can never be mistaken for the call SDK's own. */\n  private preCallAudioElements = new Set<Element>();\n\n  // Bound once so on()/off() always share the same reference — see\n  // VoiceClientLike's comment above.\n  private readonly handleCallStart: VoiceEventHandler = () => {\n    this._status = \"in-call\";\n    this._eqPhase = \"live\";\n    this._isMuted = false;\n    this.resetTurnState();\n    this._transcript = [];\n    this.emitChange();\n    this.startVad();\n  };\n  private readonly handleCallEnd: VoiceEventHandler = () => {\n    this.resetTurnState();\n    this._status = \"idle\";\n    this._eqPhase = \"idle\";\n    this.emitChange();\n    this.stopUserVad();\n    this.stopAssistantVad();\n  };\n  private readonly handleMessage: VoiceEventHandler = (payload) => {\n    const message = payload as TranscriptEventPayload;\n    if (!isTranscriptEvent(message)) return;\n    const role = asRole(message.role);\n    const text = message.transcript ?? message.text ?? \"\";\n    const isFinal =\n      message.transcriptType === \"final\" || message.status === \"final\" || Boolean(message.is_final ?? message.isFinal ?? message.final);\n    this.upsertTranscriptTurn(role, text, isFinal);\n  };\n  private readonly handleVolumeLevel: VoiceEventHandler = (payload) => {\n    if (typeof payload === \"number\" && !Number.isNaN(payload)) {\n      this._assistantLevel = payload > this._assistantLevel ? payload : this._assistantLevel * 0.9 + payload * 0.1;\n      this.emitChange();\n    }\n  };\n\n  constructor(private options: VoiceEngineOptions) {\n    super();\n  }\n\n  get status(): VoiceConnectionStatus {\n    return this._status;\n  }\n  get eqPhase(): VoiceEngineEqPhase {\n    return this._eqPhase;\n  }\n  get micAllowed(): boolean | null {\n    return this._micAllowed;\n  }\n  get transcript(): ChatMessage[] {\n    return this._transcript;\n  }\n  get isMuted(): boolean {\n    return this._isMuted;\n  }\n  get userLevel(): number {\n    return this._userLevel;\n  }\n  get assistantLevel(): number {\n    return this._assistantLevel;\n  }\n\n  private emitChange(): void {\n    this.dispatchEvent(new Event(\"change\"));\n  }\n\n  /** Call from connectedCallback (or once options are known). Idempotent. */\n  async attach(): Promise<void> {\n    if (this.attached) return;\n    this.attached = true;\n    await this.checkMicPermission();\n    this.initClient();\n  }\n\n  /** Call from disconnectedCallback, or whenever this engine should stop\n   *  owning a call (e.g. the consumer switched away from a voice-using\n   *  mode). Hangs up an active call before detaching. Safe to call more\n   *  than once. */\n  dispose(): void {\n    this.attached = false;\n    try {\n      const v = this.client as unknown as VoiceClientLike | null;\n      if (v && this._status !== \"idle\") {\n        if (typeof v.stop === \"function\") v.stop();\n        else if (typeof v.end === \"function\") v.end();\n      }\n      v?.off?.(\"call-start\", this.handleCallStart);\n      v?.off?.(\"call-end\", this.handleCallEnd);\n      v?.off?.(\"message\", this.handleMessage);\n      v?.off?.(\"volume-level\", this.handleVolumeLevel);\n    } catch (err) {\n      console.warn(\"Voice client cleanup error:\", err);\n    }\n    this.client = null;\n    this._status = \"idle\";\n    this._eqPhase = \"idle\";\n    this.stopUserVad();\n    this.stopAssistantVad();\n    this.emitChange();\n  }\n\n  updateOptions(options: VoiceEngineOptions): void {\n    const assistantChanged = options.assistantId !== this.options.assistantId;\n    const keyChanged = options.publicKey !== this.options.publicKey;\n    this.options = options;\n    if (keyChanged && this.attached) {\n      this.dispose();\n      this.attached = true;\n      this.initClient();\n    } else if (assistantChanged) {\n      // Nothing to re-init — assistantId is only read at call-start time.\n    }\n  }\n\n  private async checkMicPermission(): Promise<void> {\n    if (navigator.permissions?.query) {\n      try {\n        const status = await navigator.permissions.query({ name: \"microphone\" as PermissionName });\n        this._micAllowed = status.state !== \"denied\";\n        this.emitChange();\n        status.onchange = () => {\n          this._micAllowed = status.state !== \"denied\";\n          this.emitChange();\n        };\n        return;\n      } catch {\n        // Some browsers throw for an unrecognized permission name instead\n        // of rejecting gracefully — fall through to the getUserMedia-based\n        // check below rather than assuming the mic is blocked.\n      }\n    }\n    try {\n      await navigator.mediaDevices.getUserMedia({ audio: true });\n      this._micAllowed = true;\n    } catch {\n      this._micAllowed = false;\n    }\n    this.emitChange();\n  }\n\n  private upsertTranscriptTurn(role: ChatRole, chunk: string, isFinal: boolean): void {\n    const clean = normalizeText(chunk);\n    if (!clean) return;\n\n    const nowMonotonic = performance.now();\n    const nowWallClock = Date.now();\n\n    const plan = planTranscriptTurn(\n      role,\n      { currentTurnIdByRole: this.currentTurnIdByRole, lastChunkAtByRole: this.lastChunkAtByRole, lastRole: this.lastRole },\n      nowMonotonic\n    );\n\n    this.currentTurnIdByRole.set(role, plan.turnId);\n    this.lastChunkAtByRole.set(role, nowMonotonic);\n    this.lastRole = role;\n    if (isFinal) this.currentTurnIdByRole.delete(role);\n\n    this._transcript = applyTranscriptTurn(this._transcript, plan, role, clean, isFinal, nowWallClock);\n    this.emitChange();\n  }\n\n  private resetTurnState(): void {\n    this.currentTurnIdByRole.clear();\n    this.lastChunkAtByRole.clear();\n    this.lastRole = null;\n  }\n\n  private initClient(): void {\n    if (!this.options.publicKey) return;\n    this.client = new VoiceClient(this.options.publicKey);\n    const v = this.client as unknown as VoiceClientLike;\n    v.on?.(\"call-start\", this.handleCallStart);\n    v.on?.(\"call-end\", this.handleCallEnd);\n    v.on?.(\"message\", this.handleMessage);\n    v.on?.(\"volume-level\", this.handleVolumeLevel);\n  }\n\n  async toggleCall(): Promise<void> {\n    if (this.isToggling) return;\n    this.isToggling = true;\n    try {\n      const v = this.client as unknown as VoiceClientLike | null;\n      if (!v || !this.options.assistantId || !this.options.publicKey) return;\n      try {\n        if (this._status === \"idle\") {\n          this.resetTurnState();\n          this._transcript = [];\n          this._eqPhase = \"arming\";\n          this._status = \"connecting\";\n          this.emitChange();\n          await v.start?.(this.options.assistantId, {\n            variableValues: mergeChannelType(this.options.assistantOverrides?.variableValues, \"voice\"),\n          });\n        } else {\n          if (typeof v.stop === \"function\") await v.stop();\n          else if (typeof v.end === \"function\") await v.end();\n          setTimeout(() => {\n            this._status = \"idle\";\n            this._eqPhase = \"idle\";\n            this.emitChange();\n          }, 1000);\n        }\n      } catch (e) {\n        console.error(\"Voice call error:\", e);\n        this._status = \"idle\";\n        this._eqPhase = \"idle\";\n        this.emitChange();\n      }\n    } finally {\n      this.isToggling = false;\n    }\n  }\n\n  toggleMute(): void {\n    const next = !this._isMuted;\n    this._isMuted = next;\n    const v = this.client as unknown as { setMuted?: (m: boolean) => void } | null;\n    if (v?.setMuted) {\n      try {\n        v.setMuted(next);\n      } catch (e) {\n        console.warn(\"setMuted failed\", e);\n      }\n    } else {\n      try {\n        this.micStream?.getAudioTracks().forEach((t) => (t.enabled = !next));\n      } catch (e) {\n        console.warn(\"Mute toggle track fallback error\", e);\n      }\n    }\n    if (next) this._userLevel = 0;\n    this.emitChange();\n  }\n\n  clearTranscript(): void {\n    this._transcript = [];\n    this.resetTurnState();\n    this.emitChange();\n  }\n\n  private startVad(): void {\n    this.preCallAudioElements = new Set(document.querySelectorAll(\"audio\"));\n    this.startUserVad().catch((e) => console.warn(\"User VAD init error:\", e));\n    this.startAssistantVad();\n  }\n\n  private getAudioContextCtor(): typeof AudioContext {\n    const w = globalThis as unknown as WindowWithAudioContext;\n    const Ctor = w.AudioContext ?? w.webkitAudioContext;\n    if (!Ctor) throw new Error(\"AudioContext unavailable\");\n    return Ctor;\n  }\n\n  private async startUserVad(): Promise<void> {\n    if (!this._micAllowed) return;\n    this.stopUserVad();\n    const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n    const Ctor = this.getAudioContextCtor();\n    const ctx = new Ctor();\n    const source = ctx.createMediaStreamSource(stream);\n    const analyser = ctx.createAnalyser();\n    analyser.fftSize = 512;\n    analyser.smoothingTimeConstant = 0.6;\n    source.connect(analyser);\n    this.micStream = stream;\n    this.micAudioCtx = ctx;\n    this.micAnalyser = analyser;\n    this.micPcmBuf = new Float32Array(new ArrayBuffer(analyser.frequencyBinCount * 4)) as Float32Array<ArrayBuffer>;\n\n    const tick = (): void => {\n      if (!this.micAnalyser || !this.micPcmBuf) return;\n      if (this._isMuted) {\n        this._userLevel = 0;\n        this.emitChange();\n        if (this.micAudioCtx?.state !== \"closed\") this.micVadFrame = requestAnimationFrame(tick);\n        return;\n      }\n      this.micAnalyser.getFloatTimeDomainData(this.micPcmBuf);\n      let sum = 0;\n      const buf = this.micPcmBuf;\n      for (let i = 0; i < buf.length; i++) sum += buf[i] * buf[i];\n      this._userLevel = Math.sqrt(sum / buf.length);\n      this.emitChange();\n      if (this.micAudioCtx?.state !== \"closed\") this.micVadFrame = requestAnimationFrame(tick);\n    };\n    this.micVadFrame = requestAnimationFrame(tick);\n  }\n\n  private stopUserVad(): void {\n    this._userLevel = 0;\n    if (this.micVadFrame !== null) cancelAnimationFrame(this.micVadFrame);\n    this.micVadFrame = null;\n    try {\n      this.micStream?.getTracks().forEach((t) => t.stop());\n    } catch (err) {\n      console.warn(\"Error stopping mic tracks:\", err);\n    }\n    this.micStream = null;\n    try {\n      this.micAudioCtx?.close();\n    } catch (err) {\n      console.warn(\"Error closing audio context:\", err);\n    }\n    this.micAudioCtx = null;\n    this.micAnalyser = null;\n    this.micPcmBuf = null;\n  }\n\n  /** Finds the remote <audio> element the underlying call SDK creates and\n   *  taps it for an output-level visualizer, retrying for up to 3s since\n   *  it's created asynchronously after call-start. Only ever considers\n   *  elements that appeared AFTER this call started (see\n   *  preCallAudioElements) — a customer's own pre-existing <audio> element\n   *  can never match, regardless of its id/class. */\n  private startAssistantVad(): void {\n    this.stopAssistantVad();\n\n    type HTMLAudioWithSrcObject = HTMLAudioElement & { srcObject?: MediaStream | null; _vadAttached?: boolean };\n\n    const tryAttach = (): boolean => {\n      const audioEls = Array.from(document.querySelectorAll(\"audio\")).filter((el) => !this.preCallAudioElements.has(el));\n      const candidate = audioEls.find((el) => {\n        const a = el as HTMLAudioWithSrcObject;\n        const stream = a.srcObject ?? null;\n        const hasTracks = Boolean(stream?.getAudioTracks().length);\n        // A live inbound stream newly appearing during an active call is a\n        // strong signal on its own; without one, additionally require the\n        // id/class hint before treating it as the call's remote audio.\n        if (hasTracks) return true;\n        return /vapi|assistant|remote/i.test(`${el.id} ${el.className}`);\n      }) as HTMLAudioWithSrcObject | undefined;\n      if (!candidate) return false;\n\n      const stream = candidate.srcObject ?? null;\n      const Ctor = this.getAudioContextCtor();\n      const ctx = new Ctor();\n      let analyser: AnalyserNode | null = null;\n      try {\n        if (stream) {\n          const src = ctx.createMediaStreamSource(stream);\n          analyser = ctx.createAnalyser();\n          analyser.fftSize = 512;\n          analyser.smoothingTimeConstant = 0.6;\n          src.connect(analyser);\n        } else if (!candidate._vadAttached) {\n          const elemSrc = ctx.createMediaElementSource(candidate);\n          analyser = ctx.createAnalyser();\n          analyser.fftSize = 512;\n          analyser.smoothingTimeConstant = 0.6;\n          elemSrc.connect(analyser);\n          analyser.connect(ctx.destination);\n          candidate._vadAttached = true;\n        }\n      } catch (e) {\n        console.warn(\"Assistant audio attach failed\", e);\n        try {\n          ctx.close();\n        } catch {\n          /* ignore */\n        }\n        return false;\n      }\n      if (!analyser) return false;\n\n      this.assistantAudioCtx = ctx;\n      this.assistantAnalyser = analyser;\n      this.assistantPcmBuf = new Float32Array(new ArrayBuffer(analyser.frequencyBinCount * 4)) as Float32Array<ArrayBuffer>;\n\n      const tick = (): void => {\n        if (!this.assistantAnalyser || !this.assistantPcmBuf) return;\n        this.assistantAnalyser.getFloatTimeDomainData(this.assistantPcmBuf);\n        let sum = 0;\n        const buf = this.assistantPcmBuf;\n        for (let i = 0; i < buf.length; i++) sum += buf[i] * buf[i];\n        this._assistantLevel = Math.sqrt(sum / buf.length);\n        this.emitChange();\n        if (this.assistantAudioCtx?.state !== \"closed\") this.assistantVadFrame = requestAnimationFrame(tick);\n      };\n      this.assistantVadFrame = requestAnimationFrame(tick);\n      return true;\n    };\n\n    if (tryAttach()) return;\n    this.assistantAttachAbortAt = Date.now() + 3000;\n    const retry = (): void => {\n      if (Date.now() > this.assistantAttachAbortAt) return;\n      if (!tryAttach()) this.assistantVadFrame = requestAnimationFrame(retry);\n    };\n    this.assistantVadFrame = requestAnimationFrame(retry);\n  }\n\n  private stopAssistantVad(): void {\n    this._assistantLevel = 0;\n    if (this.assistantVadFrame !== null) cancelAnimationFrame(this.assistantVadFrame);\n    this.assistantVadFrame = null;\n    try {\n      this.assistantAudioCtx?.close();\n    } catch (err) {\n      console.warn(\"Error closing assistant audio context:\", err);\n    }\n    this.assistantAudioCtx = null;\n    this.assistantAnalyser = null;\n    this.assistantPcmBuf = null;\n  }\n}\n","/**\n * Picks whichever of black or white has higher contrast against a given\n * background, using the WCAG 1.4.3 relative-luminance formula.\n */\n\nfunction hexToRgb(hex: string): [number, number, number] | null {\n  const normalized = hex.replace(\"#\", \"\");\n  const full =\n    normalized.length === 3\n      ? normalized\n        .split(\"\")\n        .map((c) => c + c)\n        .join(\"\")\n      : normalized;\n  if (!/^[0-9a-fA-F]{6}$/.test(full)) return null;\n  const num = parseInt(full, 16);\n  return [(num >> 16) & 255, (num >> 8) & 255, num & 255];\n}\n\nfunction relativeLuminance([r, g, b]: [number, number, number]): number {\n  const channel = (c: number): number => {\n    const s = c / 255;\n    return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);\n  };\n  return 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b);\n}\n\nfunction contrastRatio(hexA: string, hexB: string): number {\n  const rgbA = hexToRgb(hexA);\n  const rgbB = hexToRgb(hexB);\n  if (!rgbA || !rgbB) return 0;\n  const lA = relativeLuminance(rgbA);\n  const lB = relativeLuminance(rgbB);\n  const lighter = Math.max(lA, lB);\n  const darker = Math.min(lA, lB);\n  return (lighter + 0.05) / (darker + 0.05);\n}\n\n/**\n * Returns \"#000000\" or \"#ffffff\", whichever clears (or comes closer to\n * clearing) WCAG AA's 4.5:1 contrast ratio against backgroundHex. Falls back\n * to \"#000000\" if backgroundHex isn't a parseable hex color.\n */\nexport function getAccessibleTextColor(backgroundHex: string): string {\n  const blackRatio = contrastRatio(backgroundHex, \"#000000\");\n  const whiteRatio = contrastRatio(backgroundHex, \"#ffffff\");\n  if (blackRatio === 0 && whiteRatio === 0) return \"#000000\";\n  return whiteRatio >= blackRatio ? \"#ffffff\" : \"#000000\";\n}\n\n/**\n * A de-emphasized companion to getAccessibleTextColor's primary color —\n * for secondary/muted text (placeholders, timestamps) that still needs to\n * read clearly against a caller-supplied background, not just the\n * built-in default. Verified computationally, not eyeballed: #5f6368\n * clears 6.05:1 against white, #b8b8c2 clears 10.67:1 against black — both\n * comfortably above WCAG AA's 4.5:1 for the worst case their side of the\n * black/white split can produce.\n */\nexport function getSecondaryTextColor(primaryTextColor: string): string {\n  return primaryTextColor === \"#ffffff\" ? \"#b8b8c2\" : \"#5f6368\";\n}\n","/**\n * Self-contained translation dictionary — no i18next/react-i18next\n * dependency, since a customer's arbitrary page can't be assumed to have\n * either configured.\n *\n * Consumers needing a language this package doesn't ship can override any\n * subset via the `translations` property/attribute — see CalliflyWidget.\n */\nexport interface WidgetTranslations {\n  micUnmute: string;\n  micMute: string;\n  endCall: string;\n  startVoiceCall: string;\n  chatPlaceholder: string;\n  startChatTitle: string;\n  startCallButton: string;\n  startHybridButton: string;\n  endChatTitle: string;\n  endCallButton: string;\n  endHybridButton: string;\n  chatEmptyMessage: string;\n  voiceCallTitle: string;\n  voiceEmptyMessage: string;\n  hybridTitle: string;\n  hybridEmptyMessage: string;\n  selectAssistantWarning: string;\n  listening: string;\n  connecting: string;\n  callActive: string;\n  resetConversation: string;\n  minimize: string;\n  dictationError: string;\n  stopDictation: string;\n  startDictation: string;\n  sendMessage: string;\n  conversationLog: string;\n  attachFile: string;\n  removeAttachment: string;\n  attachmentTooLarge: string;\n  attachmentUnsupportedType: string;\n  attachmentTooMany: string;\n  attachmentFailed: string;\n  attachmentProcessing: string;\n}\n\nexport const en: WidgetTranslations = {\n  micUnmute: \"Unmute microphone\",\n  micMute: \"Mute microphone\",\n  endCall: \"End call\",\n  startVoiceCall: \"Start voice call\",\n  chatPlaceholder: \"Type your message...\",\n  startChatTitle: \"Start Chat\",\n  startCallButton: \"Call\",\n  startHybridButton: \"Start\",\n  endChatTitle: \"End Chat\",\n  endCallButton: \"End Call\",\n  endHybridButton: \"End\",\n  chatEmptyMessage: \"Type a message to start chatting\",\n  voiceCallTitle: \"Voice Call\",\n  voiceEmptyMessage: \"Click the start button to begin a conversation\",\n  hybridTitle: \"Test Assistant\",\n  hybridEmptyMessage: \"Use voice or text to communicate\",\n  selectAssistantWarning: \"Please select an assistant from the filter above to start chatting\",\n  listening: \"Listening…\",\n  connecting: \"Connecting…\",\n  callActive: \"Call active\",\n  resetConversation: \"Reset conversation\",\n  minimize: \"Minimize\",\n  dictationError: \"Voice dictation failed — please try again\",\n  stopDictation: \"Stop voice dictation\",\n  startDictation: \"Start voice dictation\",\n  sendMessage: \"Send message\",\n  conversationLog: \"Conversation\",\n  attachFile: \"Attach a file\",\n  removeAttachment: \"Remove attachment\",\n  attachmentTooLarge: \"File is too large (max 10 MB)\",\n  attachmentUnsupportedType: \"Unsupported file type\",\n  attachmentTooMany: \"You can attach up to 3 files\",\n  attachmentFailed: \"Couldn't read this file — please try again\",\n  attachmentProcessing: \"Processing…\",\n};\n\nexport const fr: WidgetTranslations = {\n  micUnmute: \"Activer le microphone\",\n  micMute: \"Couper le microphone\",\n  endCall: \"Terminer l'appel\",\n  startVoiceCall: \"Démarrer un appel vocal\",\n  chatPlaceholder: \"Écrivez votre message...\",\n  startChatTitle: \"Démarrer le chat\",\n  startCallButton: \"Appeler\",\n  startHybridButton: \"Démarrer\",\n  endChatTitle: \"Terminer le chat\",\n  endCallButton: \"Terminer l'appel\",\n  endHybridButton: \"Terminer\",\n  chatEmptyMessage: \"Écrivez un message pour commencer à discuter\",\n  voiceCallTitle: \"Appel vocal\",\n  voiceEmptyMessage: \"Cliquez sur le bouton de démarrage pour commencer une conversation\",\n  hybridTitle: \"Tester l'assistant\",\n  hybridEmptyMessage: \"Utilisez la voix ou le texte pour communiquer\",\n  selectAssistantWarning: \"Veuillez sélectionner un assistant dans le filtre ci-dessus pour commencer à discuter\",\n  listening: \"Écoute…\",\n  connecting: \"Connexion…\",\n  callActive: \"Appel actif\",\n  resetConversation: \"Réinitialiser la conversation\",\n  minimize: \"Réduire\",\n  dictationError: \"La dictée vocale a échoué — veuillez réessayer\",\n  stopDictation: \"Arrêter la dictée vocale\",\n  startDictation: \"Démarrer la dictée vocale\",\n  sendMessage: \"Envoyer le message\",\n  conversationLog: \"Conversation\",\n  attachFile: \"Joindre un fichier\",\n  removeAttachment: \"Retirer la pièce jointe\",\n  attachmentTooLarge: \"Le fichier est trop volumineux (max 10 Mo)\",\n  attachmentUnsupportedType: \"Type de fichier non pris en charge\",\n  attachmentTooMany: \"Vous pouvez joindre jusqu'à 3 fichiers\",\n  attachmentFailed: \"Impossible de lire ce fichier — veuillez réessayer\",\n  attachmentProcessing: \"Traitement…\",\n};\n\nconst DICTIONARIES: Record<string, WidgetTranslations> = { en, fr };\n\n/**\n * Resolves a `lang` attribute (e.g. \"fr\", \"fr-FR\", \"en-US\") to the closest\n * bundled dictionary, layered under any consumer-supplied `overrides`\n * (partial — only overridden keys change).\n */\nexport function resolveTranslations(lang: string | undefined, overrides?: Partial<WidgetTranslations>): WidgetTranslations {\n  const prefix = (lang ?? \"en\").slice(0, 2).toLowerCase();\n  const base = DICTIONARIES[prefix] ?? en;\n  return overrides ? { ...base, ...overrides } : base;\n}\n","/**\n * Minimal, structurally-safe markdown parser for assistant replies.\n *\n * Parses into a typed AST (below) covering paragraphs, bold, italic,\n * inline code, and lists — no links or images, and no code path that ever\n * interprets raw HTML. The UI layer renders this AST through Lit's\n * auto-escaping templates, never via innerHTML, so a `<script>` tag or a\n * `javascript:` string can only ever render as literal text.\n */\n\nexport type InlineNode =\n  | { type: \"text\"; value: string }\n  | { type: \"bold\"; children: InlineNode[] }\n  | { type: \"italic\"; children: InlineNode[] }\n  | { type: \"code\"; value: string };\n\nexport type BlockNode =\n  | { type: \"paragraph\"; children: InlineNode[] }\n  | { type: \"list\"; ordered: boolean; items: InlineNode[][] };\n\nfunction parseInline(text: string): InlineNode[] {\n  const nodes: InlineNode[] = [];\n  // Order matters: code first (its contents are literal, never re-parsed),\n  // then bold (**/__), then italic (*/_) — a conservative, non-nested subset\n  // deliberately simpler than full CommonMark; nested emphasis inside bold\n  // is not supported, matching what this widget has ever actually needed.\n  const pattern = /`([^`]+)`|\\*\\*([^*]+)\\*\\*|__([^_]+)__|\\*([^*]+)\\*|_([^_]+)_/g;\n  let lastIndex = 0;\n  let match: RegExpExecArray | null;\n\n  while ((match = pattern.exec(text)) !== null) {\n    if (match.index > lastIndex) {\n      nodes.push({ type: \"text\", value: text.slice(lastIndex, match.index) });\n    }\n    if (match[1] !== undefined) {\n      nodes.push({ type: \"code\", value: match[1] });\n    } else if (match[2] !== undefined || match[3] !== undefined) {\n      nodes.push({ type: \"bold\", children: [{ type: \"text\", value: match[2] ?? match[3] }] });\n    } else {\n      nodes.push({ type: \"italic\", children: [{ type: \"text\", value: match[4] ?? match[5] }] });\n    }\n    lastIndex = pattern.lastIndex;\n  }\n  if (lastIndex < text.length) {\n    nodes.push({ type: \"text\", value: text.slice(lastIndex) });\n  }\n  return nodes;\n}\n\nconst LIST_ITEM_RE = /^\\s*(?:[-*]|\\d+[.)])\\s+(.*)$/;\nconst ORDERED_MARKER_RE = /^\\s*\\d+[.)]\\s+/;\n\nexport function parseSafeMarkdown(source: string): BlockNode[] {\n  const blocks: BlockNode[] = [];\n  const lines = source.split(\"\\n\");\n  let i = 0;\n\n  while (i < lines.length) {\n    const line = lines[i];\n\n    if (line.trim() === \"\") {\n      i++;\n      continue;\n    }\n\n    if (LIST_ITEM_RE.test(line)) {\n      const ordered = ORDERED_MARKER_RE.test(line);\n      const items: InlineNode[][] = [];\n      while (i < lines.length && LIST_ITEM_RE.test(lines[i])) {\n        const m = LIST_ITEM_RE.exec(lines[i]);\n        items.push(parseInline(m?.[1] ?? \"\"));\n        i++;\n      }\n      blocks.push({ type: \"list\", ordered, items });\n      continue;\n    }\n\n    const paragraphLines: string[] = [];\n    while (i < lines.length && lines[i].trim() !== \"\" && !LIST_ITEM_RE.test(lines[i])) {\n      paragraphLines.push(lines[i]);\n      i++;\n    }\n    blocks.push({ type: \"paragraph\", children: parseInline(paragraphLines.join(\" \")) });\n  }\n\n  return blocks;\n}\n","/**\n * Wraps the browser's native SpeechRecognition (Web Speech API) for live\n * dictation in the chat input. Mechanics (start/stop/interim-vs-final\n * assembly/silence timeout)\n *\n * Dictation is capability-gated only, via `isSpeechRecognitionSupported()`\n * (a raw API check — no vendor allow-list baked in). A consumer that wants\n * its own consent prompt or vendor policy before dictation starts can pass\n * `onBeforeStart` — see `DictationOptions` below.\n */\n\nexport interface DictationOptions {\n  /** BCP-47 language tag, e.g. \"fr-FR\" or \"en-GB\". */\n  lang: string;\n  onTranscript: (text: string, isFinal: boolean) => void;\n  onError?: (error: string) => void;\n  /**\n   * Called before the first `start()` in this controller's lifetime —\n   * the hook point for a consumer-supplied consent disclosure. If it\n   * returns `false` (or a Promise resolving `false`), `start()` is a no-op.\n   * Defaults to always-allow (no consent gate) if omitted.\n   */\n  onBeforeStart?: () => boolean | Promise<boolean>;\n}\n\n/** How long dictation can go without any recognized speech before it auto-stops. */\nconst SILENCE_TIMEOUT_MS = 5000;\n\ntype SpeechRecognitionCtor = new () => SpeechRecognition;\n\nconst getSpeechRecognitionConstructor = (): SpeechRecognitionCtor | undefined =>\n  (globalThis as unknown as { SpeechRecognition?: SpeechRecognitionCtor; webkitSpeechRecognition?: SpeechRecognitionCtor })\n    .SpeechRecognition ??\n  (globalThis as unknown as { webkitSpeechRecognition?: SpeechRecognitionCtor }).webkitSpeechRecognition;\n\n/** Raw capability check only — no vendor/DPA policy. See file header. */\nexport function isSpeechRecognitionSupported(): boolean {\n  return Boolean(getSpeechRecognitionConstructor());\n}\n\nexport class SpeechDictationController {\n  private recognition: SpeechRecognition | null = null;\n  private finalTranscript = \"\";\n  private silenceTimer: ReturnType<typeof setTimeout> | null = null;\n  private hasPromptedConsent = false;\n  private _isListening = false;\n\n  constructor(private readonly options: DictationOptions) {}\n\n  get isListening(): boolean {\n    return this._isListening;\n  }\n\n  private clearSilenceTimer(): void {\n    if (this.silenceTimer) {\n      clearTimeout(this.silenceTimer);\n      this.silenceTimer = null;\n    }\n  }\n\n  private scheduleSilenceStop(): void {\n    this.clearSilenceTimer();\n    this.silenceTimer = setTimeout(() => this.recognition?.stop(), SILENCE_TIMEOUT_MS);\n  }\n\n  async start(): Promise<void> {\n    const RecognitionCtor = getSpeechRecognitionConstructor();\n    if (!RecognitionCtor || this.recognition) return;\n\n    if (!this.hasPromptedConsent) {\n      this.hasPromptedConsent = true;\n      const allowed = await (this.options.onBeforeStart?.() ?? true);\n      if (!allowed) {\n        this.hasPromptedConsent = false;\n        return;\n      }\n    }\n\n    this.finalTranscript = \"\";\n    const recognition = new RecognitionCtor();\n    recognition.lang = this.options.lang;\n    recognition.continuous = true;\n    recognition.interimResults = true;\n\n    recognition.onresult = (event: SpeechRecognitionEvent): void => {\n      let interim = \"\";\n      for (let i = event.resultIndex; i < event.results.length; i++) {\n        const result = event.results[i];\n        const transcript = result[0].transcript;\n        if (result.isFinal) {\n          this.finalTranscript += transcript;\n        } else {\n          interim += transcript;\n        }\n      }\n      const combined = (this.finalTranscript + interim).trim();\n      this.options.onTranscript(combined, interim === \"\");\n      this.scheduleSilenceStop();\n    };\n\n    recognition.onerror = (event: SpeechRecognitionErrorEvent): void => {\n      this.options.onError?.(event.error);\n    };\n\n    recognition.onend = (): void => {\n      this.clearSilenceTimer();\n      this.recognition = null;\n      this._isListening = false;\n    };\n\n    this.recognition = recognition;\n    recognition.start();\n    this._isListening = true;\n    this.scheduleSilenceStop();\n  }\n\n  stop(): void {\n    this.recognition?.stop();\n  }\n\n  dispose(): void {\n    this.clearSilenceTimer();\n    this.recognition?.stop();\n  }\n}\n","/**\n * The `<callifly-widget>` prop surface, as reactive properties on a custom\n * element — see callifly-widget.ts.\n */\nexport type WidgetMode = \"hybrid\" | \"chat\" | \"voice\";\nexport type WidgetPosition = \"bottom-right\" | \"bottom-left\" | \"top-right\" | \"top-left\";\nexport type WidgetSize = \"compact\" | \"full\";\n\n/** Inline positioning for `.host-container`, keyed by the `position` attribute. */\nexport const POSITION_STYLES: Record<WidgetPosition, Record<string, string>> = {\n  \"bottom-right\": { bottom: \"24px\", right: \"24px\" },\n  \"bottom-left\": { bottom: \"24px\", left: \"24px\" },\n  \"top-right\": { top: \"24px\", right: \"24px\" },\n  \"top-left\": { top: \"24px\", left: \"24px\" },\n};\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.3\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n","/**\n * File attachments for chat: validation, size limits, and text extraction.\n * Everything runs client-side — files are never uploaded anywhere; they're\n * read, converted to Markdown, and sent as part of the next chat message's\n * text. PDF/DOCX parsing libraries are loaded on demand (dynamic import)\n * so visitors who never attach a file never pay for them.\n */\n\nconst ALLOWED_MIME_TYPES_BY_EXTENSION: Record<string, string[]> = {\n  \".txt\": [\"text/plain\"],\n  \".md\": [\"text/markdown\", \"text/x-markdown\", \"text/plain\"],\n  \".csv\": [\"text/csv\", \"application/vnd.ms-excel\", \"text/plain\"],\n  \".json\": [\"application/json\", \"text/plain\"],\n  \".docx\": [\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"],\n  \".pdf\": [\"application/pdf\"],\n};\n\nexport const MAX_FILES_PER_MESSAGE = 3;\nexport const MAX_FILE_SIZE_BYTES = 10 * 1024 * 1024; // 10MB — raw file, before extraction\nexport const MAX_EXTRACTED_TEXT_CHARS = 50_000; // roughly 12-15k tokens\n\nexport type FileValidationError = \"unsupported-type\" | \"too-large\" | \"too-many-files\";\n\nexport interface FileValidationResult {\n  ok: boolean;\n  error?: FileValidationError;\n}\n\nfunction getExtension(filename: string): string {\n  const dot = filename.lastIndexOf(\".\");\n  return dot === -1 ? \"\" : filename.slice(dot).toLowerCase();\n}\n\n/**\n * Extension is the primary gate — browsers report inconsistent or empty\n * MIME types for many of these extensions (.md and .csv especially), so\n * requiring a matching MIME type would reject legitimate files. A MIME\n * type is only used to reject a file when the browser DID report one and\n * it clearly doesn't match (e.g. a renamed executable). Nothing here ever\n * executes file content — only allow-listed text/document parsers ever\n * touch it — so a mismatched or spoofed MIME type is a UX safeguard, not\n * the security boundary.\n */\nexport function validateFile(file: File): FileValidationResult {\n  const allowedMimeTypes = ALLOWED_MIME_TYPES_BY_EXTENSION[getExtension(file.name)];\n  if (!allowedMimeTypes) return { ok: false, error: \"unsupported-type\" };\n  if (file.type && !allowedMimeTypes.includes(file.type)) return { ok: false, error: \"unsupported-type\" };\n  if (file.size > MAX_FILE_SIZE_BYTES) return { ok: false, error: \"too-large\" };\n  return { ok: true };\n}\n\nexport function validateFileCount(existingCount: number, addingCount: number): FileValidationResult {\n  if (existingCount + addingCount > MAX_FILES_PER_MESSAGE) return { ok: false, error: \"too-many-files\" };\n  return { ok: true };\n}\n\nexport function truncateExtractedText(text: string, maxChars: number = MAX_EXTRACTED_TEXT_CHARS): string {\n  if (text.length <= maxChars) return text;\n  return `${text.slice(0, maxChars)}\\n\\n[...truncated, file too large to include in full...]`;\n}\n\n/** Wraps one file's extracted Markdown for inclusion in the outgoing\n *  message text, clearly delimited so the model can tell where it starts\n *  and ends relative to what the user actually typed. */\nexport function formatAttachmentForMessage(fileName: string, extractedMarkdown: string): string {\n  return `--- Attached file: ${fileName} ---\\n${truncateExtractedText(extractedMarkdown)}\\n--- End of ${fileName} ---`;\n}\n\n// ---- CSV -> Markdown table --------------------------------------------\n\n/** Minimal RFC 4180 row parser (quoted fields, embedded commas/newlines,\n *  escaped \"\" quotes) — small enough not to need a CSV library. */\nexport function parseCsvRows(text: string): string[][] {\n  const rows: string[][] = [];\n  let row: string[] = [];\n  let field = \"\";\n  let inQuotes = false;\n\n  for (let i = 0; i < text.length; i++) {\n    const c = text[i];\n    if (inQuotes) {\n      if (c === '\"') {\n        if (text[i + 1] === '\"') {\n          field += '\"';\n          i++;\n        } else {\n          inQuotes = false;\n        }\n      } else {\n        field += c;\n      }\n      continue;\n    }\n    if (c === '\"') {\n      inQuotes = true;\n    } else if (c === \",\") {\n      row.push(field);\n      field = \"\";\n    } else if (c === \"\\n\" || c === \"\\r\") {\n      if (c === \"\\r\" && text[i + 1] === \"\\n\") i++;\n      row.push(field);\n      rows.push(row);\n      row = [];\n      field = \"\";\n    } else {\n      field += c;\n    }\n  }\n  if (field.length > 0 || row.length > 0) {\n    row.push(field);\n    rows.push(row);\n  }\n  return rows.filter((r) => !(r.length === 1 && r[0] === \"\"));\n}\n\nexport function csvToMarkdownTable(text: string): string {\n  const rows = parseCsvRows(text);\n  if (rows.length === 0) return \"\";\n  const escapeCell = (cell: string): string => cell.replace(/\\|/g, \"\\\\|\").replace(/\\n/g, \" \");\n  const [header, ...body] = rows;\n  const headerLine = `| ${header.map(escapeCell).join(\" | \")} |`;\n  const separatorLine = `| ${header.map(() => \"---\").join(\" | \")} |`;\n  const bodyLines = body.map((r) => `| ${r.map(escapeCell).join(\" | \")} |`);\n  return [headerLine, separatorLine, ...bodyLines].join(\"\\n\");\n}\n\n// ---- JSON ---------------------------------------------------------------\n\nexport function jsonToMarkdown(text: string): string {\n  try {\n    const parsed: unknown = JSON.parse(text);\n    return \"```json\\n\" + JSON.stringify(parsed, null, 2) + \"\\n```\";\n  } catch {\n    return \"```\\n\" + text + \"\\n```\";\n  }\n}\n\n// ---- PDF / DOCX (lazy-loaded parsers) ------------------------------------\n\nasync function extractPdfMarkdown(file: File): Promise<string> {\n  const pdfjsLib = await import(\"pdfjs-dist\");\n  pdfjsLib.GlobalWorkerOptions.workerSrc = new URL(\"pdfjs-dist/build/pdf.worker.min.mjs\", import.meta.url).href;\n\n  const buffer = await file.arrayBuffer();\n  const pdf = await pdfjsLib.getDocument({ data: buffer }).promise;\n  const pages: string[] = [];\n  for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {\n    const page = await pdf.getPage(pageNum);\n    const content = await page.getTextContent();\n    const text = content.items.map((item) => (\"str\" in item ? item.str : \"\")).join(\" \");\n    pages.push(`## Page ${pageNum}\\n\\n${text.trim()}`);\n  }\n  return pages.join(\"\\n\\n\");\n}\n\nasync function extractDocxMarkdown(file: File): Promise<string> {\n  // mammoth's own Markdown output is deprecated in favor of converting to\n  // HTML and running that through a dedicated HTML->Markdown converter —\n  // which is also what its current typed API actually exposes.\n  const [mammoth, { default: TurndownService }] = await Promise.all([import(\"mammoth\"), import(\"turndown\")]);\n  const buffer = await file.arrayBuffer();\n  const { value: htmlContent } = await mammoth.convertToHtml({ arrayBuffer: buffer });\n  return new TurndownService().turndown(htmlContent);\n}\n\n/** Reads a file and returns its content as Markdown, dispatching by\n *  extension. Throws for anything not covered by `validateFile`. */\nexport async function extractMarkdownFromFile(file: File): Promise<string> {\n  switch (getExtension(file.name)) {\n    case \".txt\":\n    case \".md\":\n      return await file.text();\n    case \".csv\":\n      return csvToMarkdownTable(await file.text());\n    case \".json\":\n      return jsonToMarkdown(await file.text());\n    case \".docx\":\n      return await extractDocxMarkdown(file);\n    case \".pdf\":\n      return await extractPdfMarkdown(file);\n    default:\n      throw new Error(`Unsupported file type: ${file.name}`);\n  }\n}\n","import { css } from \"lit\";\n\n/**\n * Shared styles for <callifly-widget>. Everything themeable is exposed as a\n * CSS custom property (default here, overridable by the `accent-color`/\n * `base-bg-color` attributes — see callifly-widget.ts's `updated()`, which\n * writes the resolved values onto the host's inline style — or directly by a\n * host page's own stylesheet targeting `callifly-widget { --callifly-*: … }`\n * for anything not covered by an attribute). Defaults intentionally use a\n * system-font stack rather than a distinctive webfont: this element renders\n * on arbitrary third-party pages that can't be assumed to have any font\n * loaded, and pulling one in here would mean a network request other sites\n * didn't ask for.\n */\nexport const widgetStyles = css`\n  :host {\n    --callifly-accent-color: #742eff;\n    --callifly-bg-color: #ffffff;\n    --callifly-text-color: #1a1a1a;\n    --callifly-text-secondary-color: #6b7280;\n    --callifly-border-color: rgba(0, 0, 0, 0.12);\n    --callifly-error-color: #d32f2f;\n    --callifly-font: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n\n    all: initial;\n    font-family: var(--callifly-font);\n    color: var(--callifly-text-color);\n  }\n\n  *,\n  *::before,\n  *::after {\n    box-sizing: border-box;\n  }\n\n  button {\n    font-family: inherit;\n    cursor: pointer;\n  }\n\n  .visually-hidden {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n    border: 0;\n  }\n\n  /* ---------- Positioning wrapper ---------- */\n  .host-container {\n    position: fixed;\n    z-index: 9999;\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n  }\n\n  /* ---------- Floating launcher ---------- */\n  .launcher {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 14px 24px;\n    border: none;\n    border-radius: 999px;\n    background: var(--callifly-accent-color);\n    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);\n    transition: transform 0.15s ease, box-shadow 0.2s ease;\n    font-size: 0.875rem;\n    font-weight: 600;\n    white-space: nowrap;\n  }\n  .launcher:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.3);\n  }\n  .launcher:active {\n    transform: scale(0.98);\n  }\n  .launcher:focus-visible {\n    outline: 2px solid currentColor;\n    outline-offset: 2px;\n  }\n  .launcher svg {\n    width: 20px;\n    height: 20px;\n    flex-shrink: 0;\n  }\n  /* Custom logo image (logo-url attribute) — sized to match the default\n     mode icon's 20x20 footprint so the launcher's overall shape and\n     spacing don't shift between the two states. object-fit: contain so\n     non-square logos don't distort. */\n  .launcher .launcher-logo {\n    width: 20px;\n    height: 20px;\n    flex-shrink: 0;\n    object-fit: contain;\n  }\n\n  /* ---------- Panel ---------- */\n  .panel {\n    display: flex;\n    flex-direction: column;\n    border-radius: 24px;\n    overflow: hidden;\n    background: var(--callifly-bg-color);\n    border: 1px solid var(--callifly-border-color);\n    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n    outline: none;\n  }\n  .panel.size-compact {\n    width: 340px;\n    height: 460px;\n  }\n  .panel.size-full {\n    width: 400px;\n    height: 560px;\n  }\n\n  .panel-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    padding: 10px 16px;\n    border-bottom: 1px solid var(--callifly-border-color);\n    flex-shrink: 0;\n  }\n  .panel-header-titles {\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n  }\n  /* Brand wraps the optional logo image and the title/status stack, so\n     the logo sits beside the title (not stacked above it). */\n  .panel-header-brand {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    min-width: 0;\n    flex: 1;\n  }\n  /* Custom logo image (logo-url attribute) — sized to the header's\n     line height so it lines up with the title without pushing the\n     status text out of place. object-fit: contain so non-square logos\n     don't distort. */\n  .panel-header-logo {\n    width: 24px;\n    height: 24px;\n    flex-shrink: 0;\n    object-fit: contain;\n    border-radius: 4px;\n  }\n  .panel-header-title {\n    font-size: 0.875rem;\n    font-weight: 600;\n    color: var(--callifly-text-color);\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n  .panel-header-status {\n    font-size: 0.75rem;\n    color: var(--callifly-text-secondary-color);\n  }\n  .panel-header-actions {\n    display: flex;\n    align-items: center;\n    gap: 4px;\n    flex-shrink: 0;\n  }\n  .icon-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 32px;\n    height: 32px;\n    border: none;\n    border-radius: 999px;\n    background: transparent;\n    color: var(--callifly-text-secondary-color);\n  }\n  .icon-button svg {\n    width: 18px;\n    height: 18px;\n  }\n  .icon-button:hover {\n    background: rgba(0, 0, 0, 0.06);\n  }\n  .icon-button:focus-visible {\n    outline: 2px solid var(--callifly-accent-color);\n    outline-offset: 1px;\n  }\n\n  /* ---------- Conversation area ---------- */\n  .panel-body {\n    flex: 1;\n    min-height: 0;\n    position: relative;\n  }\n  .panel-body.no-pad {\n    padding: 0;\n  }\n  .panel-body.padded {\n    padding: 16px;\n  }\n\n  .conversation-list {\n    height: 100%;\n    width: 100%;\n    overflow-y: auto;\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n  }\n\n  .empty-state {\n    height: 100%;\n    width: 100%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 16px;\n    text-align: center;\n  }\n  .empty-state p {\n    font-size: 0.875rem;\n    color: var(--callifly-text-secondary-color);\n    margin: 0;\n  }\n\n  /* ---------- Message bubble ---------- */\n  .message {\n    display: flex;\n    align-items: flex-start;\n    gap: 8px;\n  }\n  .message-icon {\n    margin-top: 2px;\n    flex-shrink: 0;\n    width: 18px;\n    height: 18px;\n  }\n  .message-icon.assistant {\n    color: var(--callifly-accent-color);\n  }\n  .message-icon.user {\n    color: var(--callifly-text-secondary-color);\n  }\n  .message-icon svg {\n    width: 18px;\n    height: 18px;\n  }\n  .message-bubble {\n    flex: 1;\n    min-width: 0;\n    padding: 8px 12px;\n    border-radius: 12px;\n    font-size: 0.875rem;\n    line-height: 1.6;\n    word-break: break-word;\n    border-left: 3px solid transparent;\n  }\n  .message-bubble.assistant {\n    /* Fallback for browsers without color-mix() (e.g. Safari <16.2) — an approximation of the\n       default accent at 14% that won't track a custom --callifly-accent-color, but keeps the\n       bubble visibly tinted instead of falling through to no background at all. */\n    background: rgba(116, 46, 255, 0.14);\n    background: color-mix(in srgb, var(--callifly-accent-color) 14%, transparent);\n    border-left-color: var(--callifly-accent-color);\n    color: var(--callifly-text-color);\n  }\n  .message-bubble.user {\n    background: rgba(0, 0, 0, 0.06);\n    color: var(--callifly-text-secondary-color);\n  }\n  .message-bubble p {\n    margin: 0 0 6px 0;\n  }\n  .message-bubble p:last-child {\n    margin-bottom: 0;\n  }\n  .message-bubble ul,\n  .message-bubble ol {\n    margin: 0 0 6px 0;\n    padding-left: 20px;\n  }\n  .message-bubble li {\n    margin-bottom: 2px;\n  }\n  .message-bubble strong {\n    font-weight: 600;\n  }\n  .message-bubble em {\n    font-style: italic;\n  }\n  .message-bubble code {\n    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n    font-size: 0.8em;\n    padding: 1px 4px;\n    border-radius: 4px;\n    background: rgba(0, 0, 0, 0.06);\n  }\n  .message-bubble .user-text {\n    white-space: pre-wrap;\n  }\n  .message-attachments {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 4px;\n    margin-top: 6px;\n  }\n  .message-attachment-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 4px;\n    padding: 2px 8px;\n    border-radius: 999px;\n    font-size: 0.75rem;\n    background: rgba(0, 0, 0, 0.08);\n  }\n  .message-attachment-chip svg {\n    width: 12px;\n    height: 12px;\n    flex-shrink: 0;\n  }\n\n  .typing-dots {\n    display: flex;\n    align-items: center;\n    gap: 5px;\n    padding: 4px 0;\n  }\n  .typing-dots span {\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    background: var(--callifly-accent-color);\n    animation: callifly-dot-pulse 1.2s infinite ease-in-out;\n  }\n  .typing-dots span:nth-child(2) {\n    animation-delay: 0.15s;\n  }\n  .typing-dots span:nth-child(3) {\n    animation-delay: 0.3s;\n  }\n  @keyframes callifly-dot-pulse {\n    0%,\n    60%,\n    100% {\n      transform: scale(0.6);\n      opacity: 0.5;\n    }\n    30% {\n      transform: scale(1);\n      opacity: 1;\n    }\n  }\n\n  /* ---------- Voice status orb ---------- */\n  .orb-wrapper {\n    height: 100%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .orb {\n    position: relative;\n    width: 96px;\n    height: 96px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .orb-ring {\n    position: absolute;\n    inset: 0;\n    border-radius: 50%;\n    /* Fallback for browsers without color-mix() — see .message-bubble.assistant above. */\n    background: rgba(116, 46, 255, 0.22);\n    background: color-mix(in srgb, var(--callifly-accent-color) 22%, transparent);\n    transition: transform 0.1s ease, background-color 0.3s ease;\n  }\n  .orb-ring.pulsing {\n    animation: callifly-orb-pulse 1.8s ease-out infinite;\n  }\n  @keyframes callifly-orb-pulse {\n    0% {\n      box-shadow: 0 0 0 0 rgba(116, 46, 255, 0.4);\n      box-shadow: 0 0 0 0 color-mix(in srgb, var(--callifly-accent-color) 40%, transparent);\n    }\n    100% {\n      box-shadow: 0 0 0 24px rgba(116, 46, 255, 0);\n      box-shadow: 0 0 0 24px color-mix(in srgb, var(--callifly-accent-color) 0%, transparent);\n    }\n  }\n  .orb-core {\n    width: 53px;\n    height: 53px;\n    border-radius: 50%;\n    background: var(--callifly-accent-color);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .orb-core svg {\n    width: 24px;\n    height: 24px;\n  }\n  .orb-spinner {\n    width: 21px;\n    height: 21px;\n    border-radius: 50%;\n    border: 2px solid transparent;\n    border-top-color: currentColor;\n    animation: callifly-spin 0.8s linear infinite;\n  }\n  @keyframes callifly-spin {\n    to {\n      transform: rotate(360deg);\n    }\n  }\n\n  /* ---------- Controls ---------- */\n  .controls {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    padding: 12px;\n    border-top: 1px solid var(--callifly-border-color);\n    flex-shrink: 0;\n  }\n  .controls.centered {\n    justify-content: center;\n  }\n\n  .btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    border: none;\n    border-radius: 999px;\n    padding: 10px 24px;\n    font-size: 0.875rem;\n    font-weight: 600;\n    background: var(--callifly-accent-color);\n  }\n  .btn svg {\n    width: 18px;\n    height: 18px;\n  }\n  .btn.danger {\n    background: var(--callifly-error-color);\n    color: #ffffff;\n  }\n  .btn:focus-visible,\n  .icon-button:focus-visible,\n  .round-btn:focus-visible {\n    outline: 2px solid var(--callifly-accent-color);\n    outline-offset: 2px;\n  }\n\n  .round-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 40px;\n    height: 40px;\n    border: none;\n    border-radius: 999px;\n    flex-shrink: 0;\n    background: rgba(0, 0, 0, 0.06);\n    color: var(--callifly-text-color);\n  }\n  .round-btn svg {\n    width: 20px;\n    height: 20px;\n  }\n  .round-btn.danger {\n    /* Fallback for browsers without color-mix() — see .message-bubble.assistant above. */\n    background: rgba(211, 47, 47, 0.14);\n    background: color-mix(in srgb, var(--callifly-error-color) 14%, transparent);\n    color: var(--callifly-error-color);\n  }\n  .round-btn.accent {\n    background: var(--callifly-accent-color);\n  }\n  .round-btn.accent.danger {\n    background: var(--callifly-error-color);\n    color: #ffffff;\n  }\n\n  /* ---------- Chat input bar ---------- */\n  .chat-input-bar {\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n    flex: 1;\n    min-width: 0;\n  }\n  .attachment-chips {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n  }\n  .attachment-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n    max-width: 160px;\n    padding: 3px 6px 3px 9px;\n    border-radius: 999px;\n    font-size: 0.75rem;\n    background: var(--callifly-bg-color);\n    border: 1px solid var(--callifly-border-color);\n    color: var(--callifly-text-color);\n  }\n  .attachment-chip.error {\n    border-color: var(--callifly-error-color);\n    color: var(--callifly-error-color);\n  }\n  .attachment-chip svg {\n    width: 13px;\n    height: 13px;\n    flex-shrink: 0;\n  }\n  .attachment-chip-name {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .attachment-chip-remove {\n    all: unset;\n    display: flex;\n    cursor: pointer;\n    flex-shrink: 0;\n    color: inherit;\n    opacity: 0.7;\n  }\n  .attachment-chip-remove:hover {\n    opacity: 1;\n  }\n  .attachment-chip-remove svg {\n    width: 12px;\n    height: 12px;\n  }\n  .attachment-spinner {\n    width: 10px;\n    height: 10px;\n    flex-shrink: 0;\n    border-radius: 50%;\n    border: 2px solid var(--callifly-border-color);\n    border-top-color: var(--callifly-accent-color);\n    animation: callifly-spin 0.7s linear infinite;\n  }\n  @keyframes callifly-spin {\n    to {\n      transform: rotate(360deg);\n    }\n  }\n  .chat-input-row {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    flex: 1;\n    min-width: 0;\n    border: 1px solid var(--callifly-border-color);\n    border-radius: 999px;\n    padding: 4px 4px 4px 14px;\n    background: var(--callifly-bg-color);\n  }\n  /* [type=\"text\"] specifically — .chat-input-row's other child is the\n     hidden file <input> (chat-input-bar.ts); without this, \"all: unset\"\n     here (specificity 0,1,1) overrode .visually-hidden's own rules\n     (0,1,0) on that same element, and the browser's native file-picker\n     control rendered fully visible instead of staying hidden behind the\n     paperclip icon button that's meant to trigger it programmatically. */\n  .chat-input-row input[type=\"text\"] {\n    all: unset;\n    flex: 1;\n    min-width: 0;\n    font-family: inherit;\n    font-size: 0.875rem;\n    color: var(--callifly-text-color);\n  }\n  .chat-input-row input[type=\"text\"]::placeholder {\n    color: var(--callifly-text-secondary-color);\n  }\n  .chat-input-row .icon-button {\n    width: 32px;\n    height: 32px;\n  }\n  .chat-input-row .icon-button.listening {\n    color: var(--callifly-error-color);\n    animation: callifly-mic-pulse 1.4s ease-in-out infinite;\n  }\n  @keyframes callifly-mic-pulse {\n    0%,\n    100% {\n      opacity: 1;\n    }\n    50% {\n      opacity: 0.4;\n    }\n  }\n  .icon-button:disabled,\n  .round-btn:disabled,\n  .btn:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n\n  /* ---------- Transient alerts ---------- */\n  .alert-banner {\n    position: fixed;\n    top: 16px;\n    left: 50%;\n    transform: translateX(-50%);\n    max-width: min(85vw, 400px);\n    padding: 12px 16px;\n    border-radius: 8px;\n    background: var(--callifly-bg-color);\n    border: 1px solid #ffb300;\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n    z-index: 10000;\n    font-size: 0.8125rem;\n    color: var(--callifly-text-color);\n  }\n  .alert-banner strong {\n    display: block;\n    margin-bottom: 4px;\n    color: #b26a00;\n  }\n`;\n","/**\n * Minimal inline SVG icon set replacing the original React version's\n * @mui/icons-material imports (ChatBubbleOutlineIcon, MicIcon, MicOffIcon,\n * SmartToyIcon, CloseIcon, RestartAltIcon, CallEndIcon, SendIcon,\n * PersonOutlineIcon). MUI is an explicitly disallowed dependency for this\n * package (see package README/plan), so these are hand-authored,\n * visually-equivalent replacements — same 24x24 viewBox convention, filled\n * with `currentColor` so they inherit whatever text/accent color the\n * surrounding CSS sets, sized entirely via CSS (no inline width/height) so\n * every call site controls size through its own class.\n */\nimport { svg, type SVGTemplateResult } from \"lit\";\n\nfunction icon(pathD: string): SVGTemplateResult {\n  return svg`<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\"><path d=\"${pathD}\"></path></svg>`;\n}\n\nexport const chatBubbleIcon = (): SVGTemplateResult =>\n  icon(\n    \"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12z\"\n  );\n\nexport const micIcon = (): SVGTemplateResult =>\n  icon(\n    \"M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5-3c0 2.76-2.24 5-5 5s-5-2.24-5-5H5c0 3.53 2.61 6.43 6 6.92V21h2v-3.08c3.39-.49 6-3.39 6-6.92h-2z\"\n  );\n\nexport const micOffIcon = (): SVGTemplateResult =>\n  icon(\n    \"M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3 3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.61-4.9H5c.34 3.02 2.7 5.44 5.7 5.86V21h2v-3.06c.51-.07 1.01-.19 1.47-.36l1.34 1.34L19 17.73 4.27 3z\"\n  );\n\nexport const smartToyIcon = (): SVGTemplateResult =>\n  icon(\n    \"M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3zm-2 9H6V9c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v9zM9 12c-.83 0-1.5.67-1.5 1.5S8.17 15 9 15s1.5-.67 1.5-1.5S9.83 12 9 12zm6 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"\n  );\n\nexport const closeIcon = (): SVGTemplateResult =>\n  icon(\n    \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n  );\n\nexport const restartAltIcon = (): SVGTemplateResult =>\n  icon(\n    \"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 13c0-4.42-3.58-8-8-8zm-6 8c0-1.01.25-1.97.7-2.8L5.24 8.74A7.93 7.93 0 0 0 4 13c0 4.42 3.58 8 8 8v3l4-4-4-4v3c-3.31 0-6-2.69-6-6z\"\n  );\n\nexport const callEndIcon = (): SVGTemplateResult =>\n  icon(\n    \"M12 9c-1.6 0-3.15.25-4.6.72v3.1c0 .39-.23.74-.56.9-.98.49-1.87 1.12-2.66 1.85-.18.18-.43.28-.7.28-.28 0-.53-.11-.71-.29L.29 13.08a.996.996 0 0 1 0-1.41C3.34 8.78 7.46 7 12 7s8.66 1.78 11.71 4.67c.18.18.29.43.29.71 0 .27-.11.52-.29.7l-2.48 2.48c-.18.18-.43.29-.71.29-.27 0-.52-.1-.7-.28-.79-.73-1.68-1.36-2.66-1.85a.996.996 0 0 1-.56-.9v-3.1A15.5 15.5 0 0 0 12 9z\"\n  );\n\nexport const sendIcon = (): SVGTemplateResult => icon(\"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z\");\n\nexport const personIcon = (): SVGTemplateResult =>\n  icon(\n    \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n  );\n\nexport const attachIcon = (): SVGTemplateResult =>\n  icon(\n    \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5S13.5 3.62 13.5 5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n  );\n\nexport const documentIcon = (): SVGTemplateResult =>\n  icon(\n    \"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z\"\n  );\n","import { html, type TemplateResult, type SVGTemplateResult } from \"lit\";\n\nexport interface FloatingLauncherOptions {\n  label: string;\n  icon: SVGTemplateResult;\n  textColor: string;\n  /** Resolved logo image URL — when present, replaces the default mode icon\n   *  inside the launcher pill. The caller is responsible for only passing a\n   *  non-empty string when a logo should actually be shown (i.e. after\n   *  trimming + error-state checks — see resolveLogoDisplay in ./logo.ts). */\n  logoSrc?: string;\n  /** Alt text for the logo image. Required when `logoSrc` is set for\n   *  accessibility; ignored when no logo is shown. */\n  logoAlt?: string;\n  /** Called when the logo image fails to load — the owning element uses\n   *  this to flip a flag that makes future renders fall back to the\n   *  default mode icon instead of showing the browser's broken-image glyph. */\n  onLogoError?: () => void;\n  onClick: () => void;\n}\n\n/**\n * Collapsed pill button. A real `<button>` (correct keyboard semantics for\n * free) rather than a styled `<div>`. `textColor` is the accent's\n * WCAG-contrast-checked text color (core/contrast.ts), computed by the\n * caller since it needs the *resolved* accent value, not just the CSS\n * variable name.\n *\n * When `logoSrc` is set, the default mode `icon` is replaced by an `<img>`\n * sized to match the icon's 20x20 footprint, so the launcher's overall\n * shape and spacing don't shift between the two states.\n */\nexport function renderFloatingLauncher(options: FloatingLauncherOptions): TemplateResult {\n  const { label, icon, textColor, logoSrc, logoAlt, onLogoError, onClick } = options;\n  return html`\n    <button\n      type=\"button\"\n      class=\"launcher\"\n      style=\"color:${textColor}\"\n      aria-label=\"${label}\"\n      aria-haspopup=\"dialog\"\n      @click=\"${onClick}\"\n    >\n      ${logoSrc\n        ? html`<img class=\"launcher-logo\" src=\"${logoSrc}\" alt=\"${logoAlt ?? label}\" @error=\"${onLogoError}\" />`\n        : icon}\n      <span>${label}</span>\n    </button>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport { closeIcon, restartAltIcon } from \"./icons\";\n\nexport interface PanelHeaderOptions {\n  title: string;\n  statusText?: string;\n  showResetButton: boolean;\n  resetLabel: string;\n  minimizeLabel: string;\n  /** Resolved logo image URL — when present, renders a small logo image\n   *  beside the title text. The caller is responsible for only passing a\n   *  non-empty string when a logo should actually be shown (i.e. after\n   *  trimming + error-state checks — see resolveLogoDisplay in ./logo.ts). */\n  logoSrc?: string;\n  /** Alt text for the logo image. Required when `logoSrc` is set for\n   *  accessibility; ignored when no logo is shown. */\n  logoAlt?: string;\n  /** Called when the logo image fails to load — the owning element uses\n   *  this to flip a flag that makes future renders fall back to the\n   *  default mode icon instead of showing the browser's broken-image glyph. */\n  onLogoError?: () => void;\n  onReset: () => void;\n  onClose: () => void;\n}\n\n/** Expanded panel's header — title/status, reset, and collapse-to-launcher. Ported from WidgetPanelHeader.tsx. */\nexport function renderPanelHeader(options: PanelHeaderOptions): TemplateResult {\n  const { title, statusText, showResetButton, resetLabel, minimizeLabel, logoSrc, logoAlt, onLogoError, onReset, onClose } = options;\n  return html`\n    <div class=\"panel-header\">\n      <div class=\"panel-header-brand\">\n        ${logoSrc\n          ? html`<img class=\"panel-header-logo\" src=\"${logoSrc}\" alt=\"${logoAlt ?? title}\" @error=\"${onLogoError}\" />`\n          : \"\"}\n        <div class=\"panel-header-titles\">\n          <span class=\"panel-header-title\">${title}</span>\n          ${statusText ? html`<span class=\"panel-header-status\" role=\"status\" aria-live=\"polite\">${statusText}</span>` : \"\"}\n        </div>\n      </div>\n      <div class=\"panel-header-actions\">\n        ${showResetButton\n          ? html`\n              <button type=\"button\" class=\"icon-button\" aria-label=\"${resetLabel}\" title=\"${resetLabel}\" @click=\"${onReset}\">\n                ${restartAltIcon()}\n              </button>\n            `\n          : \"\"}\n        <button type=\"button\" class=\"icon-button\" aria-label=\"${minimizeLabel}\" title=\"${minimizeLabel}\" @click=\"${onClose}\">\n          ${closeIcon()}\n        </button>\n      </div>\n    </div>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport type { VoiceConnectionStatus } from \"../core/types\";\nimport { micIcon } from \"./icons\";\n\nexport interface VoiceStatusOrbOptions {\n  status: VoiceConnectionStatus;\n  /** Combined mic/assistant audio level, roughly 0..1 — drives pulse intensity. */\n  level: number;\n  /** Accent's WCAG-contrast-checked text color, for the mic icon on the accent-colored core. */\n  iconColor: string;\n}\n\n/**\n * Animated status indicator shown while a voice call is active (in place of\n * the transcript, when `voiceShowTranscript` is off). Ported from\n * VoiceStatusOrb.tsx — purely decorative (`aria-hidden`); call status is\n * announced via the panel header's live status text instead, so this\n * graphic carries no unique information a screen reader needs.\n */\nexport function renderVoiceStatusOrb(options: VoiceStatusOrbOptions): TemplateResult {\n  const { status, level, iconColor } = options;\n  const scale = status === \"in-call\" ? 1 + Math.min(level * 1.5, 0.35) : 1;\n\n  return html`\n    <div class=\"orb-wrapper\">\n      <div class=\"orb\" aria-hidden=\"true\">\n        <div class=\"orb-ring ${status !== \"idle\" ? \"pulsing\" : \"\"}\" style=\"transform:scale(${scale})\"></div>\n        <div class=\"orb-core\" style=\"color:${iconColor}\">\n          ${status === \"connecting\" ? html`<span class=\"orb-spinner\"></span>` : micIcon()}\n        </div>\n      </div>\n    </div>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport type { VoiceConnectionStatus } from \"../core/types\";\nimport { isCallActive } from \"../core/transcript\";\nimport { micIcon, micOffIcon, callEndIcon } from \"./icons\";\n\nexport interface VoiceControlsOptions {\n  status: VoiceConnectionStatus;\n  isMuted: boolean;\n  startButtonText: string;\n  endButtonText: string;\n  muteLabel: string;\n  /** Accent's WCAG-contrast-checked text color, for the accent-colored start button. */\n  accentTextColor: string;\n  onToggleCall: () => void;\n  onToggleMute: () => void;\n}\n\n/** Voice mode's controls-area frame: start/end-call button, plus a mute toggle while active. Ported from VoiceControls.tsx. */\nexport function renderVoiceControls(options: VoiceControlsOptions): TemplateResult {\n  const { status, isMuted, startButtonText, endButtonText, muteLabel, accentTextColor, onToggleCall, onToggleMute } = options;\n  const isActive = isCallActive(status);\n\n  return html`\n    <div class=\"controls centered\">\n      ${isActive\n        ? html`\n            <button\n              type=\"button\"\n              class=\"round-btn ${isMuted ? \"danger\" : \"\"}\"\n              aria-label=\"${muteLabel}\"\n              title=\"${muteLabel}\"\n              @click=\"${onToggleMute}\"\n            >\n              ${isMuted ? micOffIcon() : micIcon()}\n            </button>\n          `\n        : \"\"}\n      <button\n        type=\"button\"\n        class=\"btn ${isActive ? \"danger\" : \"\"}\"\n        style=\"${isActive ? \"\" : `color:${accentTextColor}`}\"\n        @click=\"${onToggleCall}\"\n      >\n        ${isActive ? callEndIcon() : micIcon()}\n        <span>${isActive ? endButtonText : startButtonText}</span>\n      </button>\n    </div>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport { attachIcon, closeIcon, documentIcon, micIcon, sendIcon } from \"./icons\";\n\nexport interface StagedAttachmentView {\n  id: string;\n  name: string;\n  status: \"extracting\" | \"ready\" | \"error\";\n  errorMessage?: string;\n}\n\nexport interface ChatInputBarOptions {\n  id: string;\n  value: string;\n  placeholder: string;\n  disabled: boolean;\n  micSupported: boolean;\n  isListening: boolean;\n  micLabel: string;\n  sendLabel: string;\n  attachments: StagedAttachmentView[];\n  attachLabel: string;\n  removeAttachmentLabel: string;\n  processingLabel: string;\n  accept: string;\n  onInput: (event: InputEvent) => void;\n  onKeydown: (event: KeyboardEvent) => void;\n  onMicClick: () => void;\n  onSend: () => void;\n  onAttachClick: () => void;\n  onFilesSelected: (event: Event) => void;\n  onRemoveAttachment: (id: string) => void;\n}\n\n/**\n * Text input + send button + optional mic/dictation button + file\n * attachments. Attachment state (which files are staged, their\n * extraction progress) lives on the owning `<callifly-widget>` instance —\n * this is a plain render function, not a stateful component.\n */\nexport function renderChatInputBar(options: ChatInputBarOptions): TemplateResult {\n  const {\n    id,\n    value,\n    placeholder,\n    disabled,\n    micSupported,\n    isListening,\n    micLabel,\n    sendLabel,\n    attachments,\n    attachLabel,\n    removeAttachmentLabel,\n    processingLabel,\n    accept,\n    onInput,\n    onKeydown,\n    onMicClick,\n    onSend,\n    onAttachClick,\n    onFilesSelected,\n    onRemoveAttachment,\n  } = options;\n\n  const hasReadyAttachment = attachments.some((a) => a.status === \"ready\");\n  const hasExtractingAttachment = attachments.some((a) => a.status === \"extracting\");\n  const canSend = (value.trim().length > 0 || hasReadyAttachment) && !disabled && !hasExtractingAttachment;\n\n  return html`\n    <div class=\"chat-input-bar\">\n      ${attachments.length > 0\n        ? html`\n            <div class=\"attachment-chips\">\n              ${attachments.map(\n                (a) => html`\n                  <span class=\"attachment-chip ${a.status}\" role=\"status\">\n                    ${documentIcon()}\n                    <span class=\"attachment-chip-name\">${a.name}</span>\n                    ${a.status === \"extracting\"\n                      ? html`<span class=\"attachment-spinner\" aria-hidden=\"true\"></span><span class=\"visually-hidden\">${processingLabel}</span>`\n                      : \"\"}\n                    ${a.status === \"error\" ? html`<span class=\"visually-hidden\">${a.errorMessage}</span>` : \"\"}\n                    <button\n                      type=\"button\"\n                      class=\"attachment-chip-remove\"\n                      aria-label=\"${removeAttachmentLabel}: ${a.name}\"\n                      @click=\"${() => onRemoveAttachment(a.id)}\"\n                    >\n                      ${closeIcon()}\n                    </button>\n                  </span>\n                `\n              )}\n            </div>\n          `\n        : \"\"}\n      <div class=\"chat-input-row\">\n        <input\n          id=\"${id}\"\n          type=\"text\"\n          .value=\"${value}\"\n          placeholder=\"${placeholder}\"\n          ?disabled=\"${disabled}\"\n          @input=\"${onInput}\"\n          @keydown=\"${onKeydown}\"\n        />\n        <input\n          type=\"file\"\n          class=\"visually-hidden\"\n          id=\"${id}-file-input\"\n          tabindex=\"-1\"\n          aria-hidden=\"true\"\n          accept=\"${accept}\"\n          multiple\n          @change=\"${onFilesSelected}\"\n        />\n        <button\n          type=\"button\"\n          class=\"icon-button\"\n          ?disabled=\"${disabled}\"\n          aria-label=\"${attachLabel}\"\n          title=\"${attachLabel}\"\n          @click=\"${onAttachClick}\"\n        >\n          ${attachIcon()}\n        </button>\n        ${micSupported\n          ? html`\n              <button\n                type=\"button\"\n                class=\"icon-button ${isListening ? \"listening\" : \"\"}\"\n                ?disabled=\"${disabled}\"\n                aria-label=\"${micLabel}\"\n                aria-pressed=\"${isListening}\"\n                title=\"${micLabel}\"\n                @click=\"${onMicClick}\"\n              >\n                ${micIcon()}\n              </button>\n            `\n          : \"\"}\n        <button type=\"button\" class=\"icon-button\" ?disabled=\"${!canSend}\" aria-label=\"${sendLabel}\" title=\"${sendLabel}\" @click=\"${onSend}\">\n          ${sendIcon()}\n        </button>\n      </div>\n    </div>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport { renderChatInputBar, type ChatInputBarOptions } from \"./chat-input-bar\";\n\n/** Chat mode's controls-area frame around the shared input bar. */\nexport function renderChatControls(inputOptions: ChatInputBarOptions): TemplateResult {\n  return html`<div class=\"controls\">${renderChatInputBar(inputOptions)}</div>`;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport type { VoiceConnectionStatus } from \"../core/types\";\nimport { isCallActive } from \"../core/transcript\";\nimport { micIcon, callEndIcon } from \"./icons\";\nimport { renderChatInputBar, type ChatInputBarOptions } from \"./chat-input-bar\";\n\nexport interface HybridControlsOptions {\n  chatInput: ChatInputBarOptions;\n  callStatus: VoiceConnectionStatus;\n  toggleCallLabel: string;\n  /** Accent's WCAG-contrast-checked text color, for the accent-colored call button when idle. */\n  accentTextColor: string;\n  onToggleCall: () => void;\n}\n\n/** Chat input alongside a compact voice-call toggle. */\nexport function renderHybridControls(options: HybridControlsOptions): TemplateResult {\n  const { chatInput, callStatus, toggleCallLabel, accentTextColor, onToggleCall } = options;\n  const isActive = isCallActive(callStatus);\n\n  return html`\n    <div class=\"controls\">\n      <div style=\"flex:1; min-width:0;\">${renderChatInputBar(chatInput)}</div>\n      <button\n        type=\"button\"\n        class=\"round-btn accent ${isActive ? \"danger\" : \"\"}\"\n        style=\"${isActive ? \"\" : `color:${accentTextColor}`}\"\n        aria-label=\"${toggleCallLabel}\"\n        title=\"${toggleCallLabel}\"\n        @click=\"${onToggleCall}\"\n      >\n        ${isActive ? callEndIcon() : micIcon()}\n      </button>\n    </div>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport type { ChatMessage } from \"../core/types\";\nimport { parseSafeMarkdown, type BlockNode, type InlineNode } from \"../core/markdown\";\nimport { documentIcon, smartToyIcon, personIcon } from \"./icons\";\n\n/**\n * Renders the markdown AST from core/markdown.ts through Lit's own\n * auto-escaping `html` text interpolation only — never `unsafeHTML` or\n * `innerHTML`. This is the entire safety guarantee the parser's design\n * relies on (see core/markdown.ts's header comment): every text value below\n * goes through a `${...}` text-binding, so Lit escapes it as plain text no\n * matter what characters it contains.\n */\nfunction renderInline(nodes: InlineNode[]): TemplateResult[] {\n  return nodes.map((node) => {\n    switch (node.type) {\n      case \"text\":\n        return html`${node.value}`;\n      case \"bold\":\n        return html`<strong>${renderInline(node.children)}</strong>`;\n      case \"italic\":\n        return html`<em>${renderInline(node.children)}</em>`;\n      case \"code\":\n        return html`<code>${node.value}</code>`;\n    }\n  });\n}\n\nfunction renderBlocks(blocks: BlockNode[]): TemplateResult[] {\n  return blocks.map((block) => {\n    if (block.type === \"paragraph\") {\n      return html`<p>${renderInline(block.children)}</p>`;\n    }\n    const items = block.items.map((item) => html`<li>${renderInline(item)}</li>`);\n    // Lit template tags must be static — the tag name can't be interpolated —\n    // so the ordered/unordered cases are two literal templates rather than\n    // one templated by `block.ordered`.\n    return block.ordered ? html`<ol>${items}</ol>` : html`<ul>${items}</ul>`;\n  });\n}\n\nfunction renderMarkdown(content: string): TemplateResult[] {\n  return renderBlocks(parseSafeMarkdown(content));\n}\n\nconst typingDots = (): TemplateResult => html`\n  <span class=\"typing-dots\" aria-hidden=\"true\"><span></span><span></span><span></span></span>\n`;\n\n/**\n * One conversation message — chat reply or voice transcript line alike.\n * Assistant content renders through the structurally-safe markdown AST\n * above; user content renders as plain escaped text so literal characters\n * the user typed are never reinterpreted as markup. Attached files show as\n * a name-only chip — the extracted content that was actually sent to the\n * assistant is never displayed here (see ChatEngine.sendMessage's\n * `wireExtra`/`content` split).\n */\nexport function renderMessageBubble(message: ChatMessage): TemplateResult {\n  const isAssistant = message.role === \"assistant\";\n  const isStreaming = isAssistant && !message.final && message.content === \"\";\n  const attachments = message.attachments ?? [];\n\n  return html`\n    <div class=\"message\">\n      <span class=\"message-icon ${isAssistant ? \"assistant\" : \"user\"}\">\n        ${isAssistant ? smartToyIcon() : personIcon()}\n      </span>\n      <div class=\"message-bubble ${isAssistant ? \"assistant\" : \"user\"}\">\n        ${isStreaming ? typingDots() : isAssistant ? renderMarkdown(message.content) : html`<span class=\"user-text\">${message.content}</span>`}\n        ${attachments.length > 0\n          ? html`\n              <div class=\"message-attachments\">\n                ${attachments.map(\n                  (a) => html`<span class=\"message-attachment-chip\">${documentIcon()}<span>${a.name}</span></span>`\n                )}\n              </div>\n            `\n          : \"\"}\n      </div>\n    </div>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\n\n/** Centered placeholder shown before a conversation has any messages. Ported from EmptyState.tsx. */\nexport function renderEmptyState(message: string): TemplateResult {\n  return html`<div class=\"empty-state\"><p>${message}</p></div>`;\n}\n","import { html, type TemplateResult } from \"lit\";\nimport type { ChatMessage } from \"../core/types\";\nimport { renderMessageBubble } from \"./message-bubble\";\nimport { renderEmptyState } from \"./empty-state\";\n\nexport interface ConversationListOptions {\n  messages: ChatMessage[];\n  emptyMessage: string;\n  logLabel: string;\n}\n\n/**\n * Scrollable message list. Screen-reader design: the visible `role=\"log\"`\n * region isn't itself the live-announced thing (streaming character-by-\n * character into a live region would be very chatty) — a separate\n * visually-hidden `aria-live=\"polite\"` region only updates once an\n * assistant message settles (`final`), so screen readers get one clean\n * announcement per completed reply instead of one per delta.\n *\n * Two details that matter for that to actually work:\n * `role=\"log\"` carries an IMPLICIT `aria-live=\"polite\"` of its own (per the\n * ARIA spec) — without an explicit override, the visible log would end up\n * double-announcing every streamed delta anyway, which is exactly the\n * chattiness the hidden region exists to avoid. And the hidden region stays\n * mounted even with zero messages (rendered empty rather than omitted), so\n * screen readers are observing an already-existing node when the first\n * message ever arrives — a node born already containing text is a mutation\n * screen readers can miss entirely, since they detect changes to existing\n * content, not the content of a freshly-inserted node.\n *\n * Auto-scroll-to-bottom is handled by the owning element (callifly-widget.ts\n * queries `.conversation-list` in `updated()`), since that needs a DOM\n * lifecycle hook this plain render function doesn't have.\n */\nexport function renderConversationList(options: ConversationListOptions): TemplateResult {\n  const { messages, emptyMessage, logLabel } = options;\n  const lastFinalAssistantMessage = [...messages].reverse().find((m) => m.role === \"assistant\" && m.final);\n\n  return html`\n    ${messages.length === 0\n      ? renderEmptyState(emptyMessage)\n      : html`\n          <div class=\"conversation-list\" role=\"log\" aria-live=\"off\" tabindex=\"0\" aria-label=\"${logLabel}\">\n            ${messages.map((message) => renderMessageBubble(message))}\n          </div>\n        `}\n    <div class=\"visually-hidden\" aria-live=\"polite\">${lastFinalAssistantMessage?.content ?? \"\"}</div>\n  `;\n}\n","import { html, type TemplateResult } from \"lit\";\n\nexport interface MicPermissionAlertOptions {\n  title: string;\n  body: string;\n}\n\n/**\n * Fixed, top-centered banner shown when the browser has blocked microphone\n * access. Simplified from the original MicPermissionBlockedAlert.tsx, which\n * bundles a screenshot of Chrome's permission UI (`mic-permission-blocked-\n * chrome.png`) via a Vite asset import — not portable here: that image\n * isn't part of this package, and this element can't assume a browser at\n * all, let alone Chrome's specific permission UI. This keeps the same\n * guidance as plain text instead.\n */\nexport function renderMicPermissionAlert(options: MicPermissionAlertOptions): TemplateResult {\n  return html`\n    <div class=\"alert-banner\" role=\"alert\">\n      <strong>${options.title}</strong>\n      <span>${options.body}</span>\n    </div>\n  `;\n}\n","/**\n * Copy for the mic-permission-blocked banner, resolved by language prefix\n * the same way `resolveTranslations` (core/i18n.ts) is.\n */\nexport interface MicPermissionCopy {\n  title: string;\n  body: string;\n}\n\nconst MIC_PERMISSION_COPY: Record<string, MicPermissionCopy> = {\n  en: {\n    title: \"Microphone access blocked\",\n    body: \"Click the lock icon near the address bar → Permissions → Allow microphone. Then try again.\",\n  },\n  fr: {\n    title: \"Accès au microphone bloqué\",\n    body: \"Cliquez sur l'icône de cadenas à côté de la barre d'adresse → Autorisations → Autoriser le microphone. Puis réessayez.\",\n  },\n};\n\nexport function resolveMicPermissionCopy(lang: string | undefined): MicPermissionCopy {\n  const prefix = (lang ?? \"en\").slice(0, 2).toLowerCase();\n  return MIC_PERMISSION_COPY[prefix] ?? MIC_PERMISSION_COPY.en;\n}\n","/**\n * Resolves this element's `lang` attribute (e.g. \"fr\", \"en-US\") to the\n * BCP-47 tag the Web Speech API's `SpeechRecognition.lang` expects.\n */\nconst SPEECH_LANG_BY_PREFIX: Record<string, string> = {\n  fr: \"fr-FR\",\n  en: \"en-GB\",\n};\n\nconst DEFAULT_SPEECH_LANG = SPEECH_LANG_BY_PREFIX.en;\n\nexport function resolveSpeechLang(lang: string | undefined): string {\n  const prefix = (lang ?? \"en\").slice(0, 2).toLowerCase();\n  return SPEECH_LANG_BY_PREFIX[prefix] ?? DEFAULT_SPEECH_LANG;\n}\n","/**\n * Pure helpers for the `logo-url` feature on `<callifly-widget>` — kept\n * out of the Lit element itself so they can be unit-tested in the node\n * vitest environment (no DOM needed), the same way core/* helpers are.\n *\n * The element owns two pieces of state that feed into `resolveLogoDisplay`:\n * the `logoUrl` attribute (string | undefined) and a `_logoLoadFailed`\n * reactive flag it flips on the `<img>`'s `error` event. Everything\n * decided here is a pure function of those two inputs plus the title.\n */\n\nexport type LogoDisplay =\n  | { readonly kind: \"logo\"; readonly src: string; readonly alt: string }\n  | { readonly kind: \"icon\" };\n\n/**\n * Decides what the launcher / panel header should render: a custom logo\n * image, or the default mode icon. Returns `icon` when there's no\n * `logoUrl`, when it's empty/whitespace-only, or when a previous attempt\n * to load it failed (so a broken URL falls back to the icon instead of\n * showing the browser's broken-image glyph).\n */\nexport function resolveLogoDisplay(logoUrl: string | undefined, logoLoadFailed: boolean, title: string): LogoDisplay {\n  const trimmed = logoUrl?.trim();\n  if (!trimmed || logoLoadFailed) return { kind: \"icon\" };\n  return { kind: \"logo\", src: trimmed, alt: title || \"Widget logo\" };\n}\n\n/** Whether the logo should be shown — convenience for callers that only\n *  need the boolean and not the resolved src/alt. */\nexport function shouldShowLogo(logoUrl: string | undefined, logoLoadFailed: boolean): boolean {\n  return resolveLogoDisplay(logoUrl, logoLoadFailed, \"\").kind === \"logo\";\n}\n","import { html, LitElement, nothing, type PropertyValues, type SVGTemplateResult, type TemplateResult } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { VoiceEngine } from \"../core/voice-engine\";\nimport { ChatEngine } from \"../core/chat-engine\";\nimport { getAccessibleTextColor, getSecondaryTextColor } from \"../core/contrast\";\nimport { resolveTranslations, type WidgetTranslations } from \"../core/i18n\";\nimport { isCallActive } from \"../core/transcript\";\nimport { SpeechDictationController, isSpeechRecognitionSupported } from \"../core/speech-to-text\";\nimport {\n  extractMarkdownFromFile,\n  formatAttachmentForMessage,\n  validateFile,\n  validateFileCount,\n} from \"../core/file-attachments\";\nimport type { AttachmentSummary, ChatMessage } from \"../core/types\";\nimport { widgetStyles } from \"./styles\";\nimport { chatBubbleIcon, micIcon, smartToyIcon } from \"./icons\";\nimport { renderFloatingLauncher } from \"./floating-launcher\";\nimport { renderPanelHeader } from \"./panel-header\";\nimport { renderVoiceStatusOrb } from \"./voice-status-orb\";\nimport { renderVoiceControls } from \"./voice-controls\";\nimport { renderChatControls } from \"./chat-controls\";\nimport { renderHybridControls } from \"./hybrid-controls\";\nimport { renderConversationList } from \"./conversation-list\";\nimport { renderMicPermissionAlert } from \"./mic-permission-alert\";\nimport { resolveMicPermissionCopy } from \"./mic-permission-copy\";\nimport { resolveSpeechLang } from \"./speech-lang\";\nimport { resolveLogoDisplay } from \"./logo\";\nimport type { ChatInputBarOptions } from \"./chat-input-bar\";\nimport { POSITION_STYLES, type WidgetMode, type WidgetPosition, type WidgetSize } from \"./widget-types\";\n\nconst DEFAULT_ACCENT = \"#742eff\";\nconst DEFAULT_BASE_BG = \"#ffffff\";\nconst ATTACHMENT_ACCEPT = \".txt,.md,.csv,.json,.docx,.pdf\";\n\nconst genId = (): string => globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;\n\ninterface StagedAttachment {\n  id: string;\n  file: File;\n  status: \"extracting\" | \"ready\" | \"error\";\n  extractedMarkdown?: string;\n  errorMessage?: string;\n}\n\n/**\n * A boolean attribute converter for the rare case of a flag that defaults\n * to `true`: Lit's built-in Boolean converter treats *any* attribute\n * presence as `true` (even `voice-show-transcript=\"false\"`, since it never\n * inspects the string value) — the standard behavior for flags that default\n * to `false` (`disabled`, `autofocus`, …), but wrong for one that needs to\n * be turned *off* via a plain HTML attribute. This one reads the string\n * value instead: absent → untouched (keeps the class field's `true`\n * default); present as `\"false\"` → `false`; present as anything else → `true`.\n */\nconst trueByDefaultBooleanConverter = {\n  fromAttribute: (value: string | null): boolean => value !== null && value !== \"false\",\n  toAttribute: (value: boolean): string => String(value),\n};\n\ninterface ModeConfig {\n  title: string;\n  icon: SVGTemplateResult;\n  /** Whether this mode drives a voice call at all — gates the status orb/text/mic-permission alert. */\n  usesVoice: boolean;\n  emptyMessage: string;\n  messages: ChatMessage[];\n  renderControls: () => TemplateResult;\n}\n\n/**\n * `<callifly-widget>` — a floating chat/voice assistant launcher and panel.\n * Owns a VoiceEngine and a ChatEngine (core/voice-engine.ts,\n * core/chat-engine.ts), re-rendering on their \"change\" events, and\n * dispatches between chat/voice/hybrid modes.\n *\n * Shadow DOM is attached with `delegatesFocus: true` (see\n * `createRenderRoot`) so `document.activeElement` correctly reflects focus\n * moved into the panel from outside the shadow boundary.\n */\n@customElement(\"callifly-widget\")\nexport class CalliflyWidget extends LitElement {\n  static styles = widgetStyles;\n\n  // LitElement's DEFAULT createRenderRoot() does two things: attachShadow()\n  // using shadowRootOptions below, AND adopts `static styles` into that\n  // shadow root (via adoptedStyleSheets, or a <style> tag as a fallback).\n  // An earlier version of this file overrode createRenderRoot() itself\n  // just to add delegatesFocus — which replaced the whole method, silently\n  // dropping the style-adoption step it never re-implemented. Every style\n  // in this file was defined correctly but never actually reached the\n  // shadow root. shadowRootOptions is the actual, documented extension\n  // point for exactly this — it customizes attachShadow()'s options\n  // without touching anything else the default implementation does.\n  static override shadowRootOptions: ShadowRootInit = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n  // ---- Reactive properties, exposed as HTML attributes ----\n  @property({ attribute: \"assistant-id\" }) assistantId = \"\";\n  @property({ attribute: \"public-key\" }) publicKey = \"\";\n  @property({ type: Boolean, attribute: \"show-warning\" }) showWarning = false;\n  @property({ attribute: \"widget-mode\" }) widgetMode: WidgetMode = \"hybrid\";\n  @property({ type: Boolean, attribute: \"auto-open\" }) autoOpen = false;\n  @property({ attribute: \"voice-show-transcript\", converter: trueByDefaultBooleanConverter })\n  voiceShowTranscript = true;\n  @property() position: WidgetPosition = \"bottom-right\";\n  @property() size: WidgetSize = \"full\";\n  @property({ attribute: \"accent-color\" }) accentColor?: string;\n  @property({ attribute: \"base-bg-color\" }) baseBgColor?: string;\n  /** URL of a custom logo image — when set, replaces the default mode icon\n   *  in the floating launcher and renders beside the title in the panel\n   *  header. Falls back to the default icon if the image fails to load. */\n  @property({ attribute: \"logo-url\" }) logoUrl?: string;\n  /** Alt text for the logo image — defaults to the panel title when unset.\n   *  Only meaningful when `logo-url` is set. */\n  @property({ attribute: \"logo-alt\" }) logoAlt?: string;\n  /** Shadows HTMLElement's native `title` (tooltip) accessor — a hovering\n   *  native tooltip showing the panel's title is an acceptable side effect. */\n  @property() title = \"\";\n  @property({ attribute: \"start-button-text\" }) startButtonText?: string;\n  @property({ attribute: \"end-button-text\" }) endButtonText?: string;\n  @property({ attribute: \"chat-placeholder\" }) chatPlaceholder?: string;\n  @property({ attribute: \"voice-empty-message\" }) voiceEmptyMessage?: string;\n  @property({ attribute: \"chat-empty-message\" }) chatEmptyMessage?: string;\n  @property({ attribute: \"hybrid-empty-message\" }) hybridEmptyMessage?: string;\n  /** Drives i18n via core/i18n.ts's `resolveTranslations`. Shadows HTMLElement's native `lang`. */\n  @property({ reflect: true }) lang = \"en\";\n  /** JS-only (not an HTML attribute — see core/i18n.ts's header comment): partial dictionary\n   *  overrides layered onto the bundled en/fr translations for `lang`. */\n  @property({ attribute: false }) translations?: Partial<WidgetTranslations>;\n\n  // ---- Private UI state ----\n  @state() private _isExpanded = false;\n  @state() private _chatInputValue = \"\";\n  @state() private _dictationListening = false;\n  @state() private _micPermissionBlocked = false;\n  @state() private _dictationErrorVisible = false;\n  @state() private _warningVisible = false;\n  @state() private _attachedFiles: StagedAttachment[] = [];\n  @state() private _attachmentErrorMessage = \"\";\n  /** Flipped on the logo `<img>`'s `error` event — makes future renders\n   *  fall back to the default mode icon instead of showing the browser's\n   *  broken-image glyph. Reset whenever `logoUrl` changes (see updated()). */\n  @state() private _logoLoadFailed = false;\n\n  private voiceEngine?: VoiceEngine;\n  private chatEngine?: ChatEngine;\n  private dictationController?: SpeechDictationController;\n  private dictationBaseText = \"\";\n  private dictationPollId?: ReturnType<typeof setInterval>;\n  private warningTimeoutId?: ReturnType<typeof setTimeout>;\n  private dictationErrorTimeoutId?: ReturnType<typeof setTimeout>;\n  private attachmentErrorTimeoutId?: ReturnType<typeof setTimeout>;\n  private hasOpenedOnce = false;\n  private themeVarsInitialized = false;\n  /** Snapshot of the currently-displayed message list, set during render() and read back in\n   *  updated() to decide whether to auto-scroll — see renderExpanded()/updated(). */\n  private renderedMessages: ChatMessage[] = [];\n\n  private readonly handleEngineChange = (): void => {\n    this.requestUpdate();\n  };\n\n  connectedCallback(): void {\n    super.connectedCallback();\n    this.ensureChatEngine();\n    this.ensureVoiceEngine();\n    if (this.autoOpen) this._isExpanded = true;\n  }\n\n  disconnectedCallback(): void {\n    super.disconnectedCallback();\n    this.disposeVoiceEngine();\n    this.chatEngine?.removeEventListener(\"change\", this.handleEngineChange);\n    this.chatEngine?.dispose();\n    this.chatEngine = undefined;\n    this.dictationController?.dispose();\n    this.dictationController = undefined;\n    clearInterval(this.dictationPollId);\n    clearTimeout(this.warningTimeoutId);\n    clearTimeout(this.dictationErrorTimeoutId);\n    clearTimeout(this.attachmentErrorTimeoutId);\n  }\n\n  protected updated(changed: PropertyValues): void {\n    if (changed.has(\"assistantId\") || changed.has(\"publicKey\")) {\n      this.voiceEngine?.updateOptions({ assistantId: this.assistantId, publicKey: this.publicKey });\n      this.chatEngine?.updateOptions({ assistantId: this.assistantId, publicKey: this.publicKey });\n    }\n    if (changed.has(\"widgetMode\")) {\n      // ensureVoiceEngine() now also handles the reverse direction: if the\n      // mode switched TO \"chat\" while a call was live (e.g. AssistantsPage\n      // re-pointing this widget at a different, chat-only assistant),\n      // there'd otherwise be nothing left in the UI to end that call —\n      // it and its mic/VAD loops would keep running invisibly.\n      this.ensureVoiceEngine();\n    }\n    if (changed.has(\"autoOpen\") && this.autoOpen) {\n      this._isExpanded = true;\n    }\n    if (!this.themeVarsInitialized || changed.has(\"accentColor\") || changed.has(\"baseBgColor\")) {\n      this.themeVarsInitialized = true;\n      this.style.setProperty(\"--callifly-accent-color\", this.effectiveAccent);\n      this.style.setProperty(\"--callifly-bg-color\", this.effectiveBaseBg);\n      // baseBgColor is just as customer-supplied as accentColor, but only\n      // accentColor had a matching contrast computation until now — a dark\n      // custom background left every other text color at its hardcoded\n      // light-mode default (styles.ts), which can mean unreadable\n      // dark-on-dark text across the whole panel body/bubbles/input/alerts.\n      const bgTextColor = getAccessibleTextColor(this.effectiveBaseBg);\n      this.style.setProperty(\"--callifly-text-color\", bgTextColor);\n      this.style.setProperty(\"--callifly-text-secondary-color\", getSecondaryTextColor(bgTextColor));\n    }\n    if (changed.has(\"logoUrl\")) {\n      // A new URL deserves a fresh load attempt — a previous failure on a\n      // different URL shouldn't poison the new one. (Lit only calls\n      // updated() when the value actually changed, so this won't loop.)\n      this._logoLoadFailed = false;\n    }\n    if (changed.has(\"_isExpanded\")) {\n      if (this._isExpanded) {\n        this.hasOpenedOnce = true;\n        this.focusPanel();\n      } else if (this.hasOpenedOnce) {\n        this.focusLauncher();\n      }\n    }\n    if (this.renderedMessages !== this.lastScrolledMessages) {\n      this.lastScrolledMessages = this.renderedMessages;\n      this.scrollConversationToBottom();\n    }\n  }\n\n  private lastScrolledMessages: ChatMessage[] | null = null;\n\n  private focusPanel(): void {\n    this.renderRoot.querySelector<HTMLElement>(\".panel\")?.focus();\n  }\n\n  private focusLauncher(): void {\n    this.renderRoot.querySelector<HTMLElement>(\".launcher\")?.focus();\n  }\n\n  private scrollConversationToBottom(): void {\n    const list = this.renderRoot.querySelector<HTMLElement>(\".conversation-list\");\n    if (list) list.scrollTop = list.scrollHeight;\n  }\n\n  private get effectiveAccent(): string {\n    return this.accentColor?.trim() || DEFAULT_ACCENT;\n  }\n\n  private get effectiveBaseBg(): string {\n    return this.baseBgColor?.trim() || DEFAULT_BASE_BG;\n  }\n\n  private get effectiveAccentText(): string {\n    return getAccessibleTextColor(this.effectiveAccent);\n  }\n\n  private get resolvedTranslations(): WidgetTranslations {\n    return resolveTranslations(this.lang, this.translations);\n  }\n\n  /** Logo image failed to load — flip the flag so the next render falls\n   *  back to the default mode icon. Called from the `<img>`'s `error`\n   *  event in both the launcher and the panel header. */\n  private handleLogoError = (): void => {\n    this._logoLoadFailed = true;\n  };\n\n  /** Resolved logo display for the launcher / panel header — returns the\n   *  trimmed URL when set and not failed, otherwise undefined so the\n   *  default mode icon shows. */\n  private get resolvedLogo(): { src: string; alt: string } | undefined {\n    const display = resolveLogoDisplay(this.logoUrl, this._logoLoadFailed, this.logoAlt ?? this.title);\n    return display.kind === \"logo\" ? { src: display.src, alt: display.alt } : undefined;\n  }\n\n  private ensureChatEngine(): void {\n    if (this.chatEngine) return;\n    this.chatEngine = new ChatEngine({ assistantId: this.assistantId, publicKey: this.publicKey });\n    this.chatEngine.addEventListener(\"change\", this.handleEngineChange);\n  }\n\n  private ensureVoiceEngine(): void {\n    if (this.widgetMode === \"chat\") {\n      this.disposeVoiceEngine();\n      return;\n    }\n    if (this.voiceEngine) return;\n    this.voiceEngine = new VoiceEngine({ assistantId: this.assistantId, publicKey: this.publicKey });\n    this.voiceEngine.addEventListener(\"change\", this.handleEngineChange);\n    void this.voiceEngine.attach();\n  }\n\n  /** Hangs up any active call and tears down the voice engine — safe to\n   *  call whether or not one currently exists. */\n  private disposeVoiceEngine(): void {\n    if (!this.voiceEngine) return;\n    this.voiceEngine.removeEventListener(\"change\", this.handleEngineChange);\n    this.voiceEngine.dispose();\n    this.voiceEngine = undefined;\n  }\n\n  // ---- Interaction handlers ----\n\n  private handleLauncherClick(): void {\n    if (this.showWarning) {\n      this._warningVisible = true;\n      clearTimeout(this.warningTimeoutId);\n      this.warningTimeoutId = setTimeout(() => {\n        this._warningVisible = false;\n      }, 4000);\n      return;\n    }\n    this._isExpanded = true;\n  }\n\n  private handleReset(): void {\n    this.chatEngine?.clearMessages();\n    this.voiceEngine?.clearTranscript();\n  }\n\n  private handleClose(): void {\n    this._isExpanded = false;\n  }\n\n  private handlePanelKeydown(event: KeyboardEvent): void {\n    if (event.key === \"Escape\") {\n      event.preventDefault();\n      this._isExpanded = false;\n    }\n  }\n\n  private handleChatInput(event: InputEvent): void {\n    this._chatInputValue = (event.target as HTMLInputElement).value;\n  }\n\n  private handleChatKeydown(event: KeyboardEvent): void {\n    if (event.key === \"Enter\") {\n      event.preventDefault();\n      this.handleChatSend();\n    }\n  }\n\n  private handleChatSend(): void {\n    if (this._dictationListening) this.stopDictation();\n    // The send button is disabled while an attachment is still extracting\n    // (chat-input-bar.ts's canSend), but Enter (handleChatKeydown) calls\n    // this directly and would otherwise bypass that — without this guard,\n    // Enter sends the typed text without the file and silently drops the\n    // extraction result once it resolves.\n    if (this._attachedFiles.some((a) => a.status === \"extracting\")) return;\n    const trimmed = this._chatInputValue.trim();\n    const readyAttachments = this._attachedFiles.filter((a) => a.status === \"ready\");\n    if (!trimmed && readyAttachments.length === 0) return;\n\n    const wireExtra = readyAttachments\n      .map((a) => formatAttachmentForMessage(a.file.name, a.extractedMarkdown ?? \"\"))\n      .join(\"\\n\\n\");\n    const attachments: AttachmentSummary[] = readyAttachments.map((a) => ({ name: a.file.name, sizeBytes: a.file.size }));\n\n    this._chatInputValue = \"\";\n    this._attachedFiles = [];\n    void this.chatEngine?.sendMessage(trimmed, {\n      wireExtra: wireExtra || undefined,\n      attachments: attachments.length > 0 ? attachments : undefined,\n    });\n  }\n\n  private handleAttachClick(): void {\n    this.renderRoot.querySelector<HTMLInputElement>(\"#callifly-chat-input-file-input\")?.click();\n  }\n\n  private handleFilesSelected(event: Event): void {\n    const input = event.target as HTMLInputElement;\n    const files = Array.from(input.files ?? []);\n    input.value = \"\"; // allow selecting the same file again later\n    if (files.length === 0) return;\n\n    const t = this.resolvedTranslations;\n    if (!validateFileCount(this._attachedFiles.length, files.length).ok) {\n      this.showAttachmentError(t.attachmentTooMany);\n      return;\n    }\n\n    for (const file of files) {\n      const validation = validateFile(file);\n      if (!validation.ok) {\n        this.showAttachmentError(validation.error === \"too-large\" ? t.attachmentTooLarge : t.attachmentUnsupportedType);\n        continue;\n      }\n      const staged: StagedAttachment = { id: genId(), file, status: \"extracting\" };\n      this._attachedFiles = [...this._attachedFiles, staged];\n      void this.extractAttachment(staged.id, file);\n    }\n  }\n\n  private async extractAttachment(id: string, file: File): Promise<void> {\n    try {\n      const extractedMarkdown = await extractMarkdownFromFile(file);\n      this._attachedFiles = this._attachedFiles.map((a) => (a.id === id ? { ...a, status: \"ready\", extractedMarkdown } : a));\n    } catch (e) {\n      console.warn(\"Attachment extraction failed:\", e);\n      const errorMessage = this.resolvedTranslations.attachmentFailed;\n      this._attachedFiles = this._attachedFiles.map((a) => (a.id === id ? { ...a, status: \"error\", errorMessage } : a));\n    }\n  }\n\n  private handleRemoveAttachment(id: string): void {\n    this._attachedFiles = this._attachedFiles.filter((a) => a.id !== id);\n  }\n\n  private showAttachmentError(message: string): void {\n    this._attachmentErrorMessage = message;\n    clearTimeout(this.attachmentErrorTimeoutId);\n    this.attachmentErrorTimeoutId = setTimeout(() => {\n      this._attachmentErrorMessage = \"\";\n    }, 4000);\n  }\n\n  private handleMicClick(): void {\n    if (this._dictationListening) {\n      this.stopDictation();\n      return;\n    }\n    this._micPermissionBlocked = false;\n    this.dictationBaseText = this._chatInputValue.trim();\n    void this.startDictation();\n  }\n\n  private ensureDictationController(): SpeechDictationController {\n    if (!this.dictationController) {\n      this.dictationController = new SpeechDictationController({\n        lang: resolveSpeechLang(this.lang),\n        onTranscript: (text) => {\n          this._chatInputValue = this.dictationBaseText ? `${this.dictationBaseText} ${text}` : text;\n        },\n        onError: (error) => {\n          if (error === \"not-allowed\") {\n            this._micPermissionBlocked = true;\n          } else {\n            this._dictationErrorVisible = true;\n            clearTimeout(this.dictationErrorTimeoutId);\n            this.dictationErrorTimeoutId = setTimeout(() => {\n              this._dictationErrorVisible = false;\n            }, 4000);\n          }\n        },\n      });\n    }\n    return this.dictationController;\n  }\n\n  private async startDictation(): Promise<void> {\n    const controller = this.ensureDictationController();\n    await controller.start();\n    this._dictationListening = controller.isListening;\n    if (this._dictationListening) this.startDictationPolling();\n  }\n\n  private stopDictation(): void {\n    this.dictationController?.stop();\n    this._dictationListening = false;\n    clearInterval(this.dictationPollId);\n  }\n\n  /**\n   * SpeechDictationController (core/speech-to-text.ts) has no \"listening\n   * changed\" callback — only `onTranscript`/`onError` — so a spontaneous\n   * stop (e.g. its internal silence timeout) never tells this element to\n   * update the mic button's pressed/pulsing state on its own. A short poll\n   * while listening is this UI layer's own fix, without touching core.\n   */\n  private startDictationPolling(): void {\n    clearInterval(this.dictationPollId);\n    this.dictationPollId = setInterval(() => {\n      const listening = this.dictationController?.isListening ?? false;\n      if (listening !== this._dictationListening) this._dictationListening = listening;\n      if (!listening) clearInterval(this.dictationPollId);\n    }, 300);\n  }\n\n  // ---- Mode dispatch ----\n\n  private buildChatInputOptions(placeholder: string): ChatInputBarOptions {\n    const t = this.resolvedTranslations;\n    return {\n      id: \"callifly-chat-input\",\n      value: this._chatInputValue,\n      placeholder: this._dictationListening ? t.listening : placeholder,\n      disabled: this.chatEngine?.isTyping ?? false,\n      micSupported: isSpeechRecognitionSupported(),\n      isListening: this._dictationListening,\n      micLabel: this._dictationListening ? t.stopDictation : t.startDictation,\n      sendLabel: t.sendMessage,\n      attachments: this._attachedFiles.map((a) => ({\n        id: a.id,\n        name: a.file.name,\n        status: a.status,\n        errorMessage: a.errorMessage,\n      })),\n      attachLabel: t.attachFile,\n      removeAttachmentLabel: t.removeAttachment,\n      processingLabel: t.attachmentProcessing,\n      accept: ATTACHMENT_ACCEPT,\n      onInput: (event) => this.handleChatInput(event),\n      onKeydown: (event) => this.handleChatKeydown(event),\n      onMicClick: () => this.handleMicClick(),\n      onSend: () => this.handleChatSend(),\n      onAttachClick: () => this.handleAttachClick(),\n      onFilesSelected: (event) => this.handleFilesSelected(event),\n      onRemoveAttachment: (id) => this.handleRemoveAttachment(id),\n    };\n  }\n\n  private getActiveModeConfig(): ModeConfig {\n    const t = this.resolvedTranslations;\n    const chatMessages = this.chatEngine?.messages ?? [];\n    const voiceStatus = this.voiceEngine?.status ?? \"idle\";\n    const voiceTranscript = this.voiceEngine?.transcript ?? [];\n    const isMuted = this.voiceEngine?.isMuted ?? false;\n    const chatPlaceholder = this.chatPlaceholder ?? t.chatPlaceholder;\n\n    const startTextByMode: Record<WidgetMode, string> = {\n      chat: t.startChatTitle,\n      voice: t.startCallButton,\n      hybrid: t.startHybridButton,\n    };\n    const endTextByMode: Record<WidgetMode, string> = {\n      chat: t.endChatTitle,\n      voice: t.endCallButton,\n      hybrid: t.endHybridButton,\n    };\n    const startButtonText = this.startButtonText ?? startTextByMode[this.widgetMode];\n    const endButtonText = this.endButtonText ?? endTextByMode[this.widgetMode];\n\n    const configs: Record<WidgetMode, ModeConfig> = {\n      chat: {\n        title: this.title || t.startChatTitle,\n        icon: chatBubbleIcon(),\n        usesVoice: false,\n        emptyMessage: this.chatEmptyMessage ?? t.chatEmptyMessage,\n        messages: chatMessages,\n        renderControls: () => renderChatControls(this.buildChatInputOptions(chatPlaceholder)),\n      },\n      voice: {\n        title: this.title || t.voiceCallTitle,\n        icon: micIcon(),\n        usesVoice: true,\n        emptyMessage: this.voiceEmptyMessage ?? t.voiceEmptyMessage,\n        messages: voiceTranscript,\n        renderControls: () =>\n          renderVoiceControls({\n            status: voiceStatus,\n            isMuted,\n            startButtonText,\n            endButtonText,\n            muteLabel: isMuted ? t.micUnmute : t.micMute,\n            accentTextColor: this.effectiveAccentText,\n            onToggleCall: () => void this.voiceEngine?.toggleCall(),\n            onToggleMute: () => this.voiceEngine?.toggleMute(),\n          }),\n      },\n      hybrid: {\n        title: this.title || t.hybridTitle,\n        icon: smartToyIcon(),\n        usesVoice: true,\n        emptyMessage: this.hybridEmptyMessage ?? t.hybridEmptyMessage,\n        messages: isCallActive(voiceStatus) ? voiceTranscript : chatMessages,\n        renderControls: () =>\n          renderHybridControls({\n            chatInput: this.buildChatInputOptions(chatPlaceholder),\n            callStatus: voiceStatus,\n            toggleCallLabel: isCallActive(voiceStatus) ? t.endCall : t.startVoiceCall,\n            accentTextColor: this.effectiveAccentText,\n            onToggleCall: () => void this.voiceEngine?.toggleCall(),\n          }),\n      },\n    };\n    return configs[this.widgetMode];\n  }\n\n  private renderMicPermissionAlertIfNeeded(config: ModeConfig): TemplateResult | typeof nothing {\n    if (config.usesVoice && this.voiceEngine?.micAllowed === false) {\n      const copy = resolveMicPermissionCopy(this.lang);\n      return renderMicPermissionAlert(copy);\n    }\n    return nothing;\n  }\n\n  private renderDictationAlerts(): TemplateResult | typeof nothing {\n    const t = this.resolvedTranslations;\n    if (this._micPermissionBlocked) {\n      const copy = resolveMicPermissionCopy(this.lang);\n      return renderMicPermissionAlert(copy);\n    }\n    if (this._dictationErrorVisible) {\n      return html`<div class=\"alert-banner\" role=\"alert\">${t.dictationError}</div>`;\n    }\n    if (this._attachmentErrorMessage) {\n      return html`<div class=\"alert-banner\" role=\"alert\">${this._attachmentErrorMessage}</div>`;\n    }\n    return nothing;\n  }\n\n  // ---- Render ----\n\n  render(): TemplateResult {\n    const config = this.getActiveModeConfig();\n    this.renderedMessages = config.messages;\n    return this._isExpanded ? this.renderExpanded(config) : this.renderCollapsed(config);\n  }\n\n  private renderCollapsed(config: ModeConfig): TemplateResult {\n    const t = this.resolvedTranslations;\n    const logo = this.resolvedLogo;\n    return html`\n      <div class=\"host-container\" style=\"${styleMap(POSITION_STYLES[this.position])}\">\n        ${renderFloatingLauncher({\n          label: config.title,\n          icon: config.icon,\n          textColor: this.effectiveAccentText,\n          logoSrc: logo?.src,\n          logoAlt: logo?.alt,\n          onLogoError: this.handleLogoError,\n          onClick: () => this.handleLauncherClick(),\n        })}\n      </div>\n      ${this._warningVisible ? html`<div class=\"alert-banner\" role=\"alert\">${t.selectAssistantWarning}</div>` : nothing}\n      ${this.renderMicPermissionAlertIfNeeded(config)}\n    `;\n  }\n\n  private renderExpanded(config: ModeConfig): TemplateResult {\n    const t = this.resolvedTranslations;\n    const voiceStatus = this.voiceEngine?.status ?? \"idle\";\n    const callActive = config.usesVoice && isCallActive(voiceStatus);\n    const showOrb = callActive && !this.voiceShowTranscript;\n    const hasConversation = config.messages.length > 0;\n    const emptyMessage = callActive ? t.listening : config.emptyMessage;\n    const statusText = callActive ? (voiceStatus === \"connecting\" ? t.connecting : t.callActive) : undefined;\n    const level = Math.max(this.voiceEngine?.userLevel ?? 0, this.voiceEngine?.assistantLevel ?? 0);\n    const logo = this.resolvedLogo;\n\n    return html`\n      <div class=\"host-container\" style=\"${styleMap(POSITION_STYLES[this.position])}\">\n        <div\n          class=\"panel size-${this.size}\"\n          role=\"region\"\n          aria-label=\"${config.title}\"\n          tabindex=\"-1\"\n          @keydown=\"${(event: KeyboardEvent) => this.handlePanelKeydown(event)}\"\n        >\n          ${renderPanelHeader({\n            title: config.title,\n            statusText,\n            showResetButton: hasConversation,\n            resetLabel: t.resetConversation,\n            minimizeLabel: t.minimize,\n            logoSrc: logo?.src,\n            logoAlt: logo?.alt,\n            onLogoError: this.handleLogoError,\n            onReset: () => this.handleReset(),\n            onClose: () => this.handleClose(),\n          })}\n          <div class=\"panel-body ${showOrb ? \"no-pad\" : \"padded\"}\">\n            ${showOrb\n              ? renderVoiceStatusOrb({ status: voiceStatus, level, iconColor: this.effectiveAccentText })\n              : renderConversationList({ messages: config.messages, emptyMessage, logLabel: t.conversationLog })}\n          </div>\n          ${config.renderControls()}\n        </div>\n      </div>\n      ${this.renderMicPermissionAlertIfNeeded(config)} ${this.renderDictationAlerts()}\n    `;\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    \"callifly-widget\": CalliflyWidget;\n  }\n}\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n/**\n * pdfjsVersion = 6.2.108\n * pdfjsBuild = 0365cbde0\n */\n\n;// ./src/shared/util.js\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nconst BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];\nconst F32_BBOX_INIT = new Float32Array(BBOX_INIT);\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = (/* unused pure expression or super */ null && (LINE_DESCENT_FACTOR / LINE_FACTOR));\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  SAVE: 0x08,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  IS_EDITING: 0x80,\n  OPLIST: 0x100\n};\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3\n};\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  HIGHLIGHT: 9,\n  STAMP: 13,\n  INK: 15,\n  POPUP: 16,\n  SIGNATURE: 101,\n  COMMENT: 102\n};\nconst AnnotationEditorParamsType = {\n  RESIZE: 1,\n  CREATE: 2,\n  FREETEXT_SIZE: 11,\n  FREETEXT_COLOR: 12,\n  FREETEXT_OPACITY: 13,\n  INK_COLOR: 21,\n  INK_THICKNESS: 22,\n  INK_OPACITY: 23,\n  INK_COLOR_AND_OPACITY: 24,\n  HIGHLIGHT_COLOR: 31,\n  HIGHLIGHT_THICKNESS: 32,\n  HIGHLIGHT_FREE: 33,\n  HIGHLIGHT_SHOW_ALL: 34,\n  DRAW_STEP: 41\n};\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800\n};\nconst MeshFigureType = (/* unused pure expression or super */ null && ({\n  TRIANGLES: 1,\n  LATTICE: 2,\n  PATCH: 3\n}));\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4\n};\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3\n};\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n  RICHMEDIA: 27\n};\nconst AnnotationReplyType = (/* unused pure expression or super */ null && ({\n  GROUP: \"Group\",\n  REPLY: \"R\"\n}));\nconst AnnotationRenditionOperation = (/* unused pure expression or super */ null && ({\n  PLAY_OR_RESUME: 0,\n  STOP: 1,\n  PAUSE: 2,\n  RESUME: 3,\n  PLAY: 4\n}));\nconst AnnotationFlag = (/* unused pure expression or super */ null && ({\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200\n}));\nconst AnnotationFieldFlag = (/* unused pure expression or super */ null && ({\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000\n}));\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5\n};\nconst AnnotationActionEventType = (/* unused pure expression or super */ null && ({\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\"\n}));\nconst DocumentActionEventType = (/* unused pure expression or super */ null && ({\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\"\n}));\nconst PageActionEventType = (/* unused pure expression or super */ null && ({\n  O: \"PageOpen\",\n  C: \"PageClose\"\n}));\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5\n};\nconst OPS = {\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n  setStrokeTransparent: 92,\n  setFillTransparent: 93,\n  rawFillPath: 94\n};\nconst DrawOPS = {\n  moveTo: 0,\n  lineTo: 1,\n  curveTo: 2,\n  quadraticCurveTo: 3,\n  closePath: 4\n};\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2\n};\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\nfunction getVerbosityLevel() {\n  return verbosity;\n}\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.info(`Info: ${msg}`);\n  }\n}\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.warn(`Warning: ${msg}`);\n  }\n}\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\nfunction _isValidProtocol(url) {\n  switch (url?.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n    default:\n      return false;\n  }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n  if (!url) {\n    return null;\n  }\n  if (options && typeof url === \"string\") {\n    if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n      const dots = url.match(/\\./g);\n      if (dots?.length >= 2) {\n        url = `http://${url}`;\n      }\n    }\n    if (options.tryConvertEncoding) {\n      try {\n        url = stringToUTF8String(url);\n      } catch {}\n    }\n  }\n  const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);\n  return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;\n}\nfunction updateUrlHash(url, hash, allowRel = false) {\n  const res = URL.parse(url);\n  if (res) {\n    res.hash = hash;\n    return res.href;\n  }\n  if (allowRel && createValidAbsoluteUrl(url, \"http://example.com\")) {\n    return url.split(\"#\", 1)[0] + `${hash ? `#${hash}` : \"\"}`;\n  }\n  return \"\";\n}\nfunction stripPath(str) {\n  return str.substring(str.lastIndexOf(\"/\") + 1);\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: !nonSerializable,\n    configurable: true,\n    writable: false\n  });\n  return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n  function BaseException(message, name) {\n    this.message = message;\n    this.name = name;\n  }\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n  return BaseException;\n}();\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n}\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n}\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n}\nclass ResponseException extends BaseException {\n  constructor(msg, status, missing) {\n    super(msg, \"ResponseException\");\n    this.status = status;\n    this.missing = missing;\n  }\n}\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n}\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n}\nfunction bytesToString(bytes) {\n  if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n    unreachable(\"Invalid argument for bytesToString\");\n  }\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  const strBuf = [];\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n  return bytes;\n}\nclass FeatureTest {\n  static get isLittleEndian() {\n    const buffer8 = new Uint8Array(4);\n    buffer8[0] = 1;\n    const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n    return shadow(this, \"isLittleEndian\", view32[0] === 1);\n  }\n  static get isOffscreenCanvasSupported() {\n    return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n  }\n  static get isImageDecoderSupported() {\n    return shadow(this, \"isImageDecoderSupported\", typeof ImageDecoder !== \"undefined\");\n  }\n  static get isFloat16ArraySupported() {\n    return shadow(this, \"isFloat16ArraySupported\", typeof Float16Array !== \"undefined\");\n  }\n  static get isSanitizerSupported() {\n    return shadow(this, \"isSanitizerSupported\", typeof Sanitizer !== \"undefined\");\n  }\n  static get platform() {\n    const {\n      platform,\n      userAgent\n    } = navigator;\n    return shadow(this, \"platform\", {\n      isAndroid: userAgent.includes(\"Android\"),\n      isLinux: platform.includes(\"Linux\"),\n      isMac: platform.includes(\"Mac\"),\n      isWindows: platform.includes(\"Win\"),\n      isFirefox: userAgent.includes(\"Firefox\")\n    });\n  }\n  static get isCanvasFilterSupported() {\n    let ctx;\n    if (this.isOffscreenCanvasSupported) {\n      ctx = new OffscreenCanvas(1, 1).getContext(\"2d\");\n    } else if (typeof document !== \"undefined\") {\n      ctx = document.createElement(\"canvas\").getContext(\"2d\");\n    }\n    return shadow(this, \"isCanvasFilterSupported\", ctx?.filter !== undefined);\n  }\n  static get isAlphaColorInputSupported() {\n    if (typeof document === \"undefined\") {\n      return shadow(this, \"isAlphaColorInputSupported\", false);\n    }\n    const input = document.createElement(\"input\");\n    input.type = \"color\";\n    input.setAttribute(\"alpha\", \"\");\n    input.value = \"#ff000080\";\n    return shadow(this, \"isAlphaColorInputSupported\", input.value !== \"#ff0000\");\n  }\n  static get isBackdropFilterSupported() {\n    return shadow(this, \"isBackdropFilterSupported\", typeof CSS !== \"undefined\" && CSS.supports(\"backdrop-filter\", \"blur(1px)\"));\n  }\n}\nclass Util {\n  static get hexNums() {\n    return shadow(this, \"hexNums\", Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\")));\n  }\n  static makeHexColor(r, g, b) {\n    return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;\n  }\n  static transform(m1, m2) {\n    return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n  }\n  static multiplyByDOMMatrix(m, md) {\n    return [m[0] * md.a + m[2] * md.b, m[1] * md.a + m[3] * md.b, m[0] * md.c + m[2] * md.d, m[1] * md.c + m[3] * md.d, m[0] * md.e + m[2] * md.f + m[4], m[1] * md.e + m[3] * md.f + m[5]];\n  }\n  static applyTransform(p, m, pos = 0) {\n    const p0 = p[pos];\n    const p1 = p[pos + 1];\n    p[pos] = p0 * m[0] + p1 * m[2] + m[4];\n    p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];\n  }\n  static applyTransformToBezier(p, transform, pos = 0) {\n    const m0 = transform[0];\n    const m1 = transform[1];\n    const m2 = transform[2];\n    const m3 = transform[3];\n    const m4 = transform[4];\n    const m5 = transform[5];\n    for (let i = 0; i < 6; i += 2) {\n      const pI = p[pos + i];\n      const pI1 = p[pos + i + 1];\n      p[pos + i] = pI * m0 + pI1 * m2 + m4;\n      p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;\n    }\n  }\n  static applyInverseTransform(p, m) {\n    const p0 = p[0];\n    const p1 = p[1];\n    const d = m[0] * m[3] - m[1] * m[2];\n    p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n  }\n  static axialAlignedBoundingBox(rect, transform, output) {\n    const m0 = transform[0];\n    const m1 = transform[1];\n    const m2 = transform[2];\n    const m3 = transform[3];\n    const m4 = transform[4];\n    const m5 = transform[5];\n    const r0 = rect[0];\n    const r1 = rect[1];\n    const r2 = rect[2];\n    const r3 = rect[3];\n    let a0 = m0 * r0 + m4;\n    let a2 = a0;\n    let a1 = m0 * r2 + m4;\n    let a3 = a1;\n    let b0 = m3 * r1 + m5;\n    let b2 = b0;\n    let b1 = m3 * r3 + m5;\n    let b3 = b1;\n    if (m1 !== 0 || m2 !== 0) {\n      const m1r0 = m1 * r0;\n      const m1r2 = m1 * r2;\n      const m2r1 = m2 * r1;\n      const m2r3 = m2 * r3;\n      a0 += m2r1;\n      a3 += m2r1;\n      a1 += m2r3;\n      a2 += m2r3;\n      b0 += m1r0;\n      b3 += m1r0;\n      b1 += m1r2;\n      b2 += m1r2;\n    }\n    output[0] = Math.min(output[0], a0, a1, a2, a3);\n    output[1] = Math.min(output[1], b0, b1, b2, b3);\n    output[2] = Math.max(output[2], a0, a1, a2, a3);\n    output[3] = Math.max(output[3], b0, b1, b2, b3);\n  }\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n  }\n  static singularValueDecompose2dScale(matrix, output) {\n    const m0 = matrix[0];\n    const m1 = matrix[1];\n    const m2 = matrix[2];\n    const m3 = matrix[3];\n    const a = m0 ** 2 + m1 ** 2;\n    const b = m0 * m2 + m1 * m3;\n    const c = m2 ** 2 + m3 ** 2;\n    const first = (a + c) / 2;\n    const second = Math.sqrt(first ** 2 - (a * c - b ** 2));\n    output[0] = Math.sqrt(first + second || 1);\n    output[1] = Math.sqrt(first - second || 1);\n  }\n  static normalizeRect(rect) {\n    const r = rect.slice(0);\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n    return r;\n  }\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n    const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n    if (xLow > xHigh) {\n      return null;\n    }\n    const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n    const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n    if (yLow > yHigh) {\n      return null;\n    }\n    return [xLow, yLow, xHigh, yHigh];\n  }\n  static pointBoundingBox(x, y, minMax) {\n    minMax[0] = Math.min(minMax[0], x);\n    minMax[1] = Math.min(minMax[1], y);\n    minMax[2] = Math.max(minMax[2], x);\n    minMax[3] = Math.max(minMax[3], y);\n  }\n  static rectBoundingBox(x0, y0, x1, y1, minMax) {\n    minMax[0] = Math.min(minMax[0], x0, x1);\n    minMax[1] = Math.min(minMax[1], y0, y1);\n    minMax[2] = Math.max(minMax[2], x0, x1);\n    minMax[3] = Math.max(minMax[3], y0, y1);\n  }\n  static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n    if (t <= 0 || t >= 1) {\n      return;\n    }\n    const mt = 1 - t;\n    const tt = t * t;\n    const ttt = tt * t;\n    const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n    const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n    minMax[0] = Math.min(minMax[0], x);\n    minMax[1] = Math.min(minMax[1], y);\n    minMax[2] = Math.max(minMax[2], x);\n    minMax[3] = Math.max(minMax[3], y);\n  }\n  static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n    if (Math.abs(a) < 1e-12) {\n      if (Math.abs(b) >= 1e-12) {\n        this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax);\n      }\n      return;\n    }\n    const delta = b ** 2 - 4 * c * a;\n    if (delta < 0) {\n      return;\n    }\n    const sqrtDelta = Math.sqrt(delta);\n    const a2 = 2 * a;\n    this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax);\n    this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax);\n  }\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n    minMax[0] = Math.min(minMax[0], x0, x3);\n    minMax[1] = Math.min(minMax[1], y0, y3);\n    minMax[2] = Math.max(minMax[2], x0, x3);\n    minMax[3] = Math.max(minMax[3], y0, y3);\n    this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);\n    this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);\n  }\n}\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n  return true;\n}\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n  if (!NormalizeRegex) {\n    NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n    NormalizationMap = new Map([[\"ﬅ\", \"ſt\"]]);\n  }\n  return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2));\n}\nfunction getUuid() {\n  if (typeof crypto.randomUUID === \"function\") {\n    return crypto.randomUUID();\n  }\n  const buf = new Uint8Array(32);\n  crypto.getRandomValues(buf);\n  return bytesToString(buf);\n}\nfunction _isValidExplicitDest(validRef, validName, dest) {\n  if (!Array.isArray(dest) || dest.length < 2) {\n    return false;\n  }\n  const [page, zoom, ...args] = dest;\n  if (!validRef(page) && !Number.isInteger(page)) {\n    return false;\n  }\n  if (!validName(zoom)) {\n    return false;\n  }\n  const argsLen = args.length;\n  let allowNull = true;\n  switch (zoom.name) {\n    case \"XYZ\":\n      if (argsLen < 2 || argsLen > 3) {\n        return false;\n      }\n      break;\n    case \"Fit\":\n    case \"FitB\":\n      return argsLen === 0;\n    case \"FitH\":\n    case \"FitBH\":\n    case \"FitV\":\n    case \"FitBV\":\n      if (argsLen > 1) {\n        return false;\n      }\n      break;\n    case \"FitR\":\n      if (argsLen !== 4) {\n        return false;\n      }\n      allowNull = false;\n      break;\n    default:\n      return false;\n  }\n  for (const arg of args) {\n    if (typeof arg === \"number\" || allowNull && arg === null) {\n      continue;\n    }\n    return false;\n  }\n  return true;\n}\nconst makeArr = () => [];\nconst makeMap = () => new Map();\nconst makeObj = () => Object.create(null);\nconst makeSet = () => new Set();\nif (typeof Iterator.prototype.join !== \"function\") {\n  Iterator.prototype.join = function (separator) {\n    return [...this].join(separator);\n  };\n}\n\n;// ./src/shared/math_clamp.js\nfunction MathClamp(v, min, max) {\n  return Math.min(Math.max(v, min), max);\n}\n\n;// ./src/display/page_viewport.js\n\nclass PageViewport {\n  constructor({\n    viewBox,\n    userUnit,\n    scale,\n    rotation,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false\n  }) {\n    this.viewBox = viewBox;\n    this.userUnit = userUnit;\n    this.scale = scale;\n    this.rotation = rotation;\n    this.offsetX = offsetX;\n    this.offsetY = offsetY;\n    scale *= userUnit;\n    const centerX = (viewBox[2] + viewBox[0]) / 2;\n    const centerY = (viewBox[3] + viewBox[1]) / 2;\n    let rotateA, rotateB, rotateC, rotateD;\n    rotation %= 360;\n    if (rotation < 0) {\n      rotation += 360;\n    }\n    switch (rotation) {\n      case 180:\n        rotateA = -1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = 1;\n        break;\n      case 90:\n        rotateA = 0;\n        rotateB = 1;\n        rotateC = 1;\n        rotateD = 0;\n        break;\n      case 270:\n        rotateA = 0;\n        rotateB = -1;\n        rotateC = -1;\n        rotateD = 0;\n        break;\n      case 0:\n        rotateA = 1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = -1;\n        break;\n      default:\n        throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n    }\n    if (dontFlip) {\n      rotateC = -rotateC;\n      rotateD = -rotateD;\n    }\n    let offsetCanvasX, offsetCanvasY;\n    let width, height;\n    if (rotateA === 0) {\n      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n      width = (viewBox[3] - viewBox[1]) * scale;\n      height = (viewBox[2] - viewBox[0]) * scale;\n    } else {\n      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n      width = (viewBox[2] - viewBox[0]) * scale;\n      height = (viewBox[3] - viewBox[1]) * scale;\n    }\n    this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n    this.width = width;\n    this.height = height;\n  }\n  get rawDims() {\n    const dims = this.viewBox;\n    return shadow(this, \"rawDims\", {\n      pageWidth: dims[2] - dims[0],\n      pageHeight: dims[3] - dims[1],\n      pageX: dims[0],\n      pageY: dims[1]\n    });\n  }\n  clone({\n    scale = this.scale,\n    rotation = this.rotation,\n    offsetX = this.offsetX,\n    offsetY = this.offsetY,\n    dontFlip = false\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.viewBox.slice(),\n      userUnit: this.userUnit,\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip\n    });\n  }\n  convertToViewportPoint(x, y) {\n    const p = [x, y];\n    Util.applyTransform(p, this.transform);\n    return p;\n  }\n  convertToPdfPoint(x, y) {\n    const p = [x, y];\n    Util.applyInverseTransform(p, this.transform);\n    return p;\n  }\n}\n\n;// ./src/display/xfa_text.js\nclass XfaText {\n  static textContent(xfa) {\n    const items = [];\n    const output = {\n      items,\n      styles: Object.create(null)\n    };\n    function walk(node) {\n      if (!node) {\n        return;\n      }\n      let str = null;\n      const name = node.name;\n      if (name === \"#text\") {\n        str = node.value;\n      } else if (!XfaText.shouldBuildText(name)) {\n        return;\n      } else if (node?.attributes?.textContent) {\n        str = node.attributes.textContent;\n      } else if (node.value) {\n        str = node.value;\n      }\n      if (str !== null) {\n        items.push({\n          str\n        });\n      }\n      if (!node.children) {\n        return;\n      }\n      for (const child of node.children) {\n        walk(child);\n      }\n    }\n    walk(xfa);\n    return output;\n  }\n  static shouldBuildText(name) {\n    return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n  }\n}\n\n;// ./src/display/xfa_layer.js\n\n\n\nconst disallowedRichTextStyleRegExp = /url\\(|image-set\\(/i;\nconst disallowedEventHandlerAttrRegExp = /^on/i;\nclass XfaLayer {\n  static get _allowedHtmlElements() {\n    return shadow(this, \"_allowedHtmlElements\", new Set([\"a\", \"b\", \"br\", \"button\", \"div\", \"i\", \"img\", \"input\", \"label\", \"li\", \"ol\", \"option\", \"p\", \"select\", \"span\", \"sub\", \"sup\", \"textarea\", \"ul\"]));\n  }\n  static get _allowedSvgElements() {\n    return shadow(this, \"_allowedSvgElements\", new Set([\"ellipse\", \"line\", \"path\", \"rect\", \"svg\"]));\n  }\n  static get _allowedRichTextElements() {\n    return shadow(this, \"_allowedRichTextElements\", new Set([\"a\", \"b\", \"br\", \"div\", \"i\", \"li\", \"ol\", \"p\", \"span\", \"sub\", \"sup\", \"ul\"]));\n  }\n  static get _allowedRichTextAttributes() {\n    return shadow(this, \"_allowedRichTextAttributes\", new Set([\"class\", \"dir\", \"style\"]));\n  }\n  static get _allowedRichTextStyles() {\n    return shadow(this, \"_allowedRichTextStyles\", new Set([\"color\", \"font\", \"fontFamily\", \"fontSize\", \"fontStretch\", \"fontStyle\", \"fontWeight\", \"kerningMode\", \"letterSpacing\", \"lineHeight\", \"margin\", \"marginBottom\", \"marginLeft\", \"marginRight\", \"marginTop\", \"orphans\", \"paddingLeft\", \"paddingRight\", \"breakAfter\", \"breakBefore\", \"breakInside\", \"tabInterval\", \"tabStop\", \"textAlign\", \"textDecoration\", \"textIndent\", \"transform\", \"verticalAlign\", \"widows\"]));\n  }\n  static setupStorage(html, id, element, storage, intent) {\n    const storedData = storage.getValue(id, {\n      value: null\n    });\n    switch (element.name) {\n      case \"textarea\":\n        if (storedData.value !== null) {\n          html.textContent = storedData.value;\n        }\n        if (intent === \"print\") {\n          break;\n        }\n        html.addEventListener(\"input\", event => {\n          storage.setValue(id, {\n            value: event.target.value\n          });\n        });\n        break;\n      case \"input\":\n        if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n          if (storedData.value === element.attributes.xfaOn) {\n            html.setAttribute(\"checked\", true);\n          } else if (storedData.value === element.attributes.xfaOff) {\n            html.removeAttribute(\"checked\");\n          }\n          if (intent === \"print\") {\n            break;\n          }\n          html.addEventListener(\"change\", event => {\n            storage.setValue(id, {\n              value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n            });\n          });\n        } else {\n          if (storedData.value !== null) {\n            html.setAttribute(\"value\", storedData.value);\n          }\n          if (intent === \"print\") {\n            break;\n          }\n          html.addEventListener(\"input\", event => {\n            storage.setValue(id, {\n              value: event.target.value\n            });\n          });\n        }\n        break;\n      case \"select\":\n        if (storedData.value !== null) {\n          html.setAttribute(\"value\", storedData.value);\n          for (const option of element.children) {\n            if (option.attributes.value === storedData.value) {\n              option.attributes.selected = true;\n            } else if (Object.hasOwn(option.attributes, \"selected\")) {\n              delete option.attributes.selected;\n            }\n          }\n        }\n        html.addEventListener(\"input\", event => {\n          const options = event.target.options;\n          const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n          storage.setValue(id, {\n            value\n          });\n        });\n        break;\n    }\n  }\n  static setAttributes({\n    html,\n    element,\n    storage = null,\n    intent,\n    linkService\n  }) {\n    const {\n      attributes\n    } = element;\n    const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n    if (attributes.type === \"radio\") {\n      attributes.name = `${attributes.name}-${intent}`;\n    }\n    for (const [key, value] of Object.entries(attributes)) {\n      if (value === null || value === undefined) {\n        continue;\n      }\n      if (disallowedEventHandlerAttrRegExp.test(key)) {\n        continue;\n      }\n      if (intent === \"richText\" && !this._allowedRichTextAttributes.has(key)) {\n        continue;\n      }\n      switch (key) {\n        case \"class\":\n          if (value.length) {\n            html.setAttribute(key, value.join(\" \"));\n          }\n          break;\n        case \"dataId\":\n          break;\n        case \"id\":\n          html.setAttribute(\"data-element-id\", value);\n          break;\n        case \"style\":\n          if (intent === \"richText\") {\n            const allowedStyles = this._allowedRichTextStyles;\n            for (const [styleName, styleValue] of Object.entries(value)) {\n              if (allowedStyles.has(styleName) && !disallowedRichTextStyleRegExp.test(styleValue)) {\n                html.style[styleName] = styleValue;\n              }\n            }\n          } else {\n            Object.assign(html.style, value);\n          }\n          break;\n        case \"textContent\":\n          html.textContent = value;\n          break;\n        default:\n          if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n            html.setAttribute(key, value);\n          }\n      }\n    }\n    if (isHTMLAnchorElement) {\n      linkService?.addLinkAttributes(html, attributes.href, attributes.newWindow);\n    }\n    if (storage && attributes.dataId) {\n      this.setupStorage(html, attributes.dataId, element, storage);\n    }\n  }\n  static #createElement(name, xmlns, intent) {\n    if (intent === \"richText\") {\n      return !xmlns && this._allowedRichTextElements.has(name) ? document.createElement(name) : null;\n    }\n    if (xmlns) {\n      return xmlns === SVG_NS && this._allowedSvgElements.has(name) ? document.createElementNS(SVG_NS, name) : null;\n    }\n    return this._allowedHtmlElements.has(name) ? document.createElement(name) : null;\n  }\n  static render(parameters) {\n    const storage = parameters.annotationStorage;\n    const linkService = parameters.linkService;\n    const root = parameters.xfaHtml;\n    const intent = parameters.intent || \"display\";\n    const rootHtml = this.#createElement(root.name, root.attributes?.xmlns, intent) ?? document.createElement(\"div\");\n    if (root.attributes) {\n      this.setAttributes({\n        html: rootHtml,\n        element: root,\n        intent,\n        linkService\n      });\n    }\n    const isNotForRichText = intent !== \"richText\";\n    const rootDiv = parameters.div;\n    rootDiv.append(rootHtml);\n    if (parameters.viewport) {\n      const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n      rootDiv.style.transform = transform;\n    }\n    if (isNotForRichText) {\n      rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n    }\n    const textDivs = [];\n    if (root.children.length === 0) {\n      if (root.value) {\n        const node = document.createTextNode(root.value);\n        rootHtml.append(node);\n        if (isNotForRichText && XfaText.shouldBuildText(root.name)) {\n          textDivs.push(node);\n        }\n      }\n      return {\n        textDivs\n      };\n    }\n    const stack = [[root, -1, rootHtml]];\n    while (stack.length > 0) {\n      const [parent, i, html] = stack.at(-1);\n      if (i + 1 === parent.children.length) {\n        stack.pop();\n        continue;\n      }\n      const child = parent.children[++stack.at(-1)[1]];\n      if (child === null) {\n        continue;\n      }\n      const {\n        name\n      } = child;\n      if (name === \"#text\") {\n        const node = document.createTextNode(child.value);\n        textDivs.push(node);\n        html.append(node);\n        continue;\n      }\n      const childHtml = this.#createElement(name, child.attributes?.xmlns, intent);\n      if (!childHtml) {\n        continue;\n      }\n      html.append(childHtml);\n      if (child.attributes) {\n        this.setAttributes({\n          html: childHtml,\n          element: child,\n          storage,\n          intent,\n          linkService\n        });\n      }\n      if (child.children?.length > 0) {\n        stack.push([child, -1, childHtml]);\n      } else if (child.value) {\n        const node = document.createTextNode(child.value);\n        if (isNotForRichText && XfaText.shouldBuildText(name)) {\n          textDivs.push(node);\n        }\n        childHtml.append(node);\n      }\n    }\n    for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n      el.setAttribute(\"readOnly\", true);\n    }\n    return {\n      textDivs\n    };\n  }\n  static update(parameters) {\n    const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n    parameters.div.style.transform = transform;\n    parameters.div.hidden = false;\n  }\n  static getPageViewport(xfaPage, {\n    scale = 1,\n    rotation = 0\n  }) {\n    const {\n      width,\n      height\n    } = xfaPage.attributes.style;\n    return new PageViewport({\n      viewBox: [0, 0, parseInt(width, 10), parseInt(height, 10)],\n      userUnit: 1,\n      scale,\n      rotation\n    });\n  }\n}\n\n;// ./src/display/display_utils.js\n\n\n\n\nclass PixelsPerInch {\n  static CSS = 96.0;\n  static PDF = 72.0;\n  static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nasync function fetchData(url, type = \"text\") {\n  if (isValidFetchUrl(url, document.baseURI)) {\n    const response = await fetch(url);\n    if (!response.ok) {\n      throw new Error(response.statusText);\n    }\n    switch (type) {\n      case \"blob\":\n        return response.blob();\n      case \"bytes\":\n        return response.bytes();\n      case \"json\":\n        return response.json();\n    }\n    return response.text();\n  }\n  return new Promise((resolve, reject) => {\n    const request = new XMLHttpRequest();\n    request.open(\"GET\", url, true);\n    request.responseType = type === \"bytes\" ? \"arraybuffer\" : type;\n    request.onreadystatechange = () => {\n      if (request.readyState !== XMLHttpRequest.DONE) {\n        return;\n      }\n      if (request.status === 200 || request.status === 0) {\n        switch (type) {\n          case \"bytes\":\n            resolve(new Uint8Array(request.response));\n            return;\n          case \"blob\":\n          case \"json\":\n            resolve(request.response);\n            return;\n        }\n        resolve(request.responseText);\n        return;\n      }\n      reject(new Error(request.statusText));\n    };\n    request.send(null);\n  });\n}\nclass RenderingCancelledException extends BaseException {\n  constructor(msg, extraDelay = 0) {\n    super(msg, \"RenderingCancelledException\");\n    this.extraDelay = extraDelay;\n  }\n}\nfunction isDataScheme(url) {\n  const ii = url.length;\n  let i = 0;\n  while (i < ii && url[i].trim() === \"\") {\n    i++;\n  }\n  return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n  return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url) {\n  [url] = url.split(/[#?]/, 1);\n  return stripPath(url);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n  if (typeof url !== \"string\") {\n    return defaultFilename;\n  }\n  if (isDataScheme(url)) {\n    warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n    return defaultFilename;\n  }\n  const getURL = urlString => {\n    try {\n      return new URL(urlString);\n    } catch {}\n    try {\n      return new URL(decodeURIComponent(urlString));\n    } catch {}\n    try {\n      return new URL(urlString, \"https://foo.bar\");\n    } catch {}\n    try {\n      return new URL(decodeURIComponent(urlString), \"https://foo.bar\");\n    } catch {}\n    return null;\n  };\n  const newURL = getURL(url);\n  if (!newURL) {\n    return defaultFilename;\n  }\n  const decode = name => {\n    try {\n      let decoded = decodeURIComponent(name);\n      if (decoded.includes(\"/\")) {\n        decoded = stripPath(decoded);\n        if (decoded.length === 4 && pdfRegex.test(decoded)) {\n          return name;\n        }\n      }\n      return decoded;\n    } catch {\n      return name;\n    }\n  };\n  const pdfRegex = /\\.pdf$/i;\n  const filename = stripPath(newURL.pathname);\n  if (pdfRegex.test(filename)) {\n    return decode(filename);\n  }\n  if (newURL.searchParams.size > 0) {\n    const getLast = iterator => [...iterator].findLast(v => pdfRegex.test(v));\n    const name = getLast(newURL.searchParams.values()) ?? getLast(newURL.searchParams.keys());\n    if (name) {\n      return decode(name);\n    }\n  }\n  if (newURL.hash) {\n    const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n    const hashFilename = reFilename.exec(newURL.hash);\n    if (hashFilename) {\n      return decode(hashFilename[0]);\n    }\n  }\n  return defaultFilename;\n}\nclass StatTimer {\n  #started = new Map();\n  times = [];\n  time(name) {\n    if (this.#started.has(name)) {\n      warn(`Timer is already running for ${name}`);\n    }\n    this.#started.set(name, Date.now());\n  }\n  timeEnd(name) {\n    if (!this.#started.has(name)) {\n      warn(`Timer has not been started for ${name}`);\n    }\n    this.times.push({\n      name,\n      start: this.#started.get(name),\n      end: Date.now()\n    });\n    this.#started.delete(name);\n  }\n  toString() {\n    const longest = Math.max(...this.times.map(t => t.name.length));\n    return this.times.map(t => `${t.name.padEnd(longest)} ${t.end - t.start}ms\\n`).join(\"\");\n  }\n}\nfunction isValidFetchUrl(url, baseUrl) {\n  const res = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);\n  return /https?:/.test(res?.protocol ?? \"\");\n}\nfunction noContextMenu(e) {\n  e.preventDefault();\n}\nfunction stopEvent(e) {\n  e.preventDefault();\n  e.stopPropagation();\n}\nfunction deprecated(details) {\n  console.log(\"Deprecated API usage: \" + details);\n}\nclass PDFDateString {\n  static #regex;\n  static toDateObject(input) {\n    if (input instanceof Date) {\n      return input;\n    }\n    if (!input || typeof input !== \"string\") {\n      return null;\n    }\n    this.#regex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+\\\\-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n    const matches = this.#regex.exec(input);\n    if (!matches) {\n      return null;\n    }\n    const year = parseInt(matches[1], 10);\n    let month = parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || \"Z\";\n    let offsetHour = parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = parseInt(matches[9], 10) || 0;\n    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n    if (universalTimeRelation === \"-\") {\n      hour += offsetHour;\n      minute += offsetMinute;\n    } else if (universalTimeRelation === \"+\") {\n      hour -= offsetHour;\n      minute -= offsetMinute;\n    }\n    return new Date(Date.UTC(year, month, day, hour, minute, second));\n  }\n}\nfunction getRGBA(color) {\n  if (color.startsWith(\"#\")) {\n    const hex = color.slice(1);\n    return [parseInt(hex.slice(0, 2), 16), parseInt(hex.slice(2, 4), 16), parseInt(hex.slice(4, 6), 16), hex.length >= 8 ? parseInt(hex.slice(6, 8), 16) / 255 : 1];\n  }\n  if (color.startsWith(\"rgb(\")) {\n    const [r, g, b] = color.slice(4, -1).split(\",\").map(x => parseInt(x, 10));\n    return [r, g, b, 1];\n  }\n  if (color.startsWith(\"rgba(\")) {\n    const parts = color.slice(5, -1).split(\",\");\n    return [parseInt(parts[0], 10), parseInt(parts[1], 10), parseInt(parts[2], 10), parseFloat(parts[3])];\n  }\n  const m = color.match(/^color\\(srgb\\s+([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+|none))?\\)$/);\n  if (m) {\n    return [Math.round(parseFloat(m[1]) * 255), Math.round(parseFloat(m[2]) * 255), Math.round(parseFloat(m[3]) * 255), m[4] !== undefined && m[4] !== \"none\" ? parseFloat(m[4]) : 1];\n  }\n  return null;\n}\nfunction getRGB(color) {\n  const rgba = getRGBA(color);\n  if (!rgba) {\n    warn(`Not a valid color format: \"${color}\"`);\n    return [0, 0, 0];\n  }\n  return rgba.slice(0, 3);\n}\nfunction getColorValues(colors) {\n  const span = document.createElement(\"span\");\n  span.style.visibility = \"hidden\";\n  span.style.colorScheme = \"only light\";\n  document.body.append(span);\n  for (const name of colors.keys()) {\n    span.style.color = name;\n    const computedColor = window.getComputedStyle(span).color;\n    colors.set(name, getRGB(computedColor));\n  }\n  span.remove();\n}\nfunction getCurrentTransform(ctx) {\n  const {\n    a,\n    b,\n    c,\n    d,\n    e,\n    f\n  } = ctx.getTransform();\n  return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n  const {\n    a,\n    b,\n    c,\n    d,\n    e,\n    f\n  } = ctx.getTransform().invertSelf();\n  return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n  if (viewport instanceof PageViewport) {\n    const {\n      pageWidth,\n      pageHeight\n    } = viewport.rawDims;\n    const {\n      style\n    } = div;\n    const widthStr = `round(down, var(--total-scale-factor) * ${pageWidth}px, var(--scale-round-x))`,\n      heightStr = `round(down, var(--total-scale-factor) * ${pageHeight}px, var(--scale-round-y))`;\n    if (!mustFlip || viewport.rotation % 180 === 0) {\n      style.width = widthStr;\n      style.height = heightStr;\n    } else {\n      style.width = heightStr;\n      style.height = widthStr;\n    }\n  }\n  if (mustRotate) {\n    div.setAttribute(\"data-main-rotation\", viewport.rotation);\n  }\n}\nclass OutputScale {\n  constructor() {\n    const {\n      pixelRatio\n    } = OutputScale;\n    this.sx = pixelRatio;\n    this.sy = pixelRatio;\n  }\n  get scaled() {\n    return this.sx !== 1 || this.sy !== 1;\n  }\n  get symmetric() {\n    return this.sx === this.sy;\n  }\n  limitCanvas(width, height, maxPixels, maxDim, capAreaFactor = -1) {\n    let maxAreaScale = Infinity,\n      maxWidthScale = Infinity,\n      maxHeightScale = Infinity;\n    maxPixels = OutputScale.capPixels(maxPixels, capAreaFactor);\n    if (maxPixels > 0) {\n      maxAreaScale = Math.sqrt(maxPixels / (width * height));\n    }\n    if (maxDim !== -1) {\n      maxWidthScale = maxDim / width;\n      maxHeightScale = maxDim / height;\n    }\n    const maxScale = Math.min(maxAreaScale, maxWidthScale, maxHeightScale);\n    if (this.sx > maxScale || this.sy > maxScale) {\n      this.sx = maxScale;\n      this.sy = maxScale;\n      return true;\n    }\n    return false;\n  }\n  static get pixelRatio() {\n    return globalThis.devicePixelRatio || 1;\n  }\n  static capPixels(maxPixels, capAreaFactor) {\n    if (capAreaFactor >= 0) {\n      const winPixels = Math.ceil(window.screen.availWidth * window.screen.availHeight * this.pixelRatio ** 2 * (1 + capAreaFactor / 100));\n      return maxPixels > 0 ? Math.min(maxPixels, winPixels) : winPixels;\n    }\n    return maxPixels;\n  }\n}\nconst SupportedImageMimeTypes = [\"image/apng\", \"image/avif\", \"image/bmp\", \"image/gif\", \"image/jpeg\", \"image/png\", \"image/svg+xml\", \"image/webp\", \"image/x-icon\"];\nclass ColorScheme {\n  static get isDarkMode() {\n    return shadow(this, \"isDarkMode\", !!window?.matchMedia?.(\"(prefers-color-scheme: dark)\").matches);\n  }\n}\nclass CSSConstants {\n  static get commentForegroundColor() {\n    const element = document.createElement(\"span\");\n    element.classList.add(\"comment\", \"sidebar\");\n    const {\n      style\n    } = element;\n    style.width = style.height = \"0\";\n    style.display = \"none\";\n    style.color = \"var(--comment-fg-color)\";\n    document.body.append(element);\n    const {\n      color\n    } = window.getComputedStyle(element);\n    element.remove();\n    return shadow(this, \"commentForegroundColor\", getRGB(color));\n  }\n}\nfunction applyOpacity(color, opacity) {\n  opacity = MathClamp(opacity ?? 1, 0, 1);\n  const white = 255 * (1 - opacity);\n  return color.map(c => Math.round(c * opacity + white));\n}\nfunction RGBToHSL(rgb, output) {\n  const r = rgb[0] / 255;\n  const g = rgb[1] / 255;\n  const b = rgb[2] / 255;\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  const l = (max + min) / 2;\n  if (max === min) {\n    output[0] = output[1] = 0;\n  } else {\n    const d = max - min;\n    output[1] = l < 0.5 ? d / (max + min) : d / (2 - max - min);\n    switch (max) {\n      case r:\n        output[0] = ((g - b) / d + (g < b ? 6 : 0)) * 60;\n        break;\n      case g:\n        output[0] = ((b - r) / d + 2) * 60;\n        break;\n      case b:\n        output[0] = ((r - g) / d + 4) * 60;\n        break;\n    }\n  }\n  output[2] = l;\n}\nfunction HSLToRGB(hsl, output) {\n  const h = hsl[0];\n  const s = hsl[1];\n  const l = hsl[2];\n  const c = (1 - Math.abs(2 * l - 1)) * s;\n  const x = c * (1 - Math.abs(h / 60 % 2 - 1));\n  const m = l - c / 2;\n  switch (Math.floor(h / 60)) {\n    case 0:\n      output[0] = c + m;\n      output[1] = x + m;\n      output[2] = m;\n      break;\n    case 1:\n      output[0] = x + m;\n      output[1] = c + m;\n      output[2] = m;\n      break;\n    case 2:\n      output[0] = m;\n      output[1] = c + m;\n      output[2] = x + m;\n      break;\n    case 3:\n      output[0] = m;\n      output[1] = x + m;\n      output[2] = c + m;\n      break;\n    case 4:\n      output[0] = x + m;\n      output[1] = m;\n      output[2] = c + m;\n      break;\n    case 5:\n    case 6:\n      output[0] = c + m;\n      output[1] = m;\n      output[2] = x + m;\n      break;\n  }\n}\nfunction computeLuminance(x) {\n  return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n}\nfunction contrastRatio(hsl1, hsl2, output) {\n  HSLToRGB(hsl1, output);\n  output.map(computeLuminance);\n  const lum1 = 0.2126 * output[0] + 0.7152 * output[1] + 0.0722 * output[2];\n  HSLToRGB(hsl2, output);\n  output.map(computeLuminance);\n  const lum2 = 0.2126 * output[0] + 0.7152 * output[1] + 0.0722 * output[2];\n  return lum1 > lum2 ? (lum1 + 0.05) / (lum2 + 0.05) : (lum2 + 0.05) / (lum1 + 0.05);\n}\nconst contrastCache = new Map();\nfunction findContrastColor(baseColor, fixedColor) {\n  const key = baseColor[0] + baseColor[1] * 0x100 + baseColor[2] * 0x10000 + fixedColor[0] * 0x1000000 + fixedColor[1] * 0x100000000 + fixedColor[2] * 0x10000000000;\n  let cachedValue = contrastCache.get(key);\n  if (cachedValue) {\n    return cachedValue;\n  }\n  const array = new Float32Array(9);\n  const output = array.subarray(0, 3);\n  const baseHSL = array.subarray(3, 6);\n  RGBToHSL(baseColor, baseHSL);\n  const fixedHSL = array.subarray(6, 9);\n  RGBToHSL(fixedColor, fixedHSL);\n  const isFixedColorDark = fixedHSL[2] < 0.5;\n  const minContrast = isFixedColorDark ? 12 : 4.5;\n  baseHSL[2] = isFixedColorDark ? Math.sqrt(baseHSL[2]) : 1 - Math.sqrt(1 - baseHSL[2]);\n  if (contrastRatio(baseHSL, fixedHSL, output) < minContrast) {\n    let start, end;\n    if (isFixedColorDark) {\n      start = baseHSL[2];\n      end = 1;\n    } else {\n      start = 0;\n      end = baseHSL[2];\n    }\n    const PRECISION = 0.005;\n    while (end - start > PRECISION) {\n      const mid = baseHSL[2] = (start + end) / 2;\n      if (isFixedColorDark === contrastRatio(baseHSL, fixedHSL, output) < minContrast) {\n        start = mid;\n      } else {\n        end = mid;\n      }\n    }\n    baseHSL[2] = isFixedColorDark ? end : start;\n  }\n  HSLToRGB(baseHSL, output);\n  cachedValue = Util.makeHexColor(Math.round(output[0] * 255), Math.round(output[1] * 255), Math.round(output[2] * 255));\n  contrastCache.set(key, cachedValue);\n  return cachedValue;\n}\nfunction renderRichText({\n  html,\n  dir,\n  className\n}, container) {\n  const fragment = document.createDocumentFragment();\n  if (typeof html === \"string\") {\n    const p = document.createElement(\"p\");\n    p.dir = dir || \"auto\";\n    const lines = html.split(/\\r\\n?|\\n/);\n    for (let i = 0, ii = lines.length; i < ii; ++i) {\n      const line = lines[i];\n      p.append(document.createTextNode(line));\n      if (i < ii - 1) {\n        p.append(document.createElement(\"br\"));\n      }\n    }\n    fragment.append(p);\n  } else {\n    XfaLayer.render({\n      xfaHtml: html,\n      div: fragment,\n      intent: \"richText\"\n    });\n  }\n  fragment.firstElementChild.classList.add(\"richText\", className);\n  container.append(fragment);\n}\nfunction makePathFromDrawOPS(data) {\n  const path = new Path2D();\n  if (!data) {\n    return path;\n  }\n  for (let i = 0, ii = data.length; i < ii;) {\n    switch (data[i++]) {\n      case DrawOPS.moveTo:\n        path.moveTo(data[i++], data[i++]);\n        break;\n      case DrawOPS.lineTo:\n        path.lineTo(data[i++], data[i++]);\n        break;\n      case DrawOPS.curveTo:\n        path.bezierCurveTo(data[i++], data[i++], data[i++], data[i++], data[i++], data[i++]);\n        break;\n      case DrawOPS.quadraticCurveTo:\n        path.quadraticCurveTo(data[i++], data[i++], data[i++], data[i++]);\n        break;\n      case DrawOPS.closePath:\n        path.closePath();\n        break;\n      default:\n        warn(`Unrecognized drawing path operator: ${data[i - 1]}`);\n        break;\n    }\n  }\n  return path;\n}\n\n;// ./src/display/editor/toolbar.js\n\nclass EditorToolbar {\n  #toolbar = null;\n  #colorPicker = null;\n  #editor;\n  #buttons = null;\n  #altText = null;\n  #comment = null;\n  #commentButtonDivider = null;\n  #signatureDescriptionButton = null;\n  static #l10nRemove = null;\n  constructor(editor) {\n    this.#editor = editor;\n    EditorToolbar.#l10nRemove ||= Object.freeze({\n      freetext: \"pdfjs-editor-remove-freetext-button\",\n      highlight: \"pdfjs-editor-remove-highlight-button\",\n      ink: \"pdfjs-editor-remove-ink-button\",\n      stamp: \"pdfjs-editor-remove-stamp-button\",\n      signature: \"pdfjs-editor-remove-signature-button\"\n    });\n  }\n  render() {\n    const editToolbar = this.#toolbar = document.createElement(\"div\");\n    editToolbar.classList.add(\"editToolbar\", \"hidden\");\n    editToolbar.setAttribute(\"role\", \"toolbar\");\n    const signal = this.#editor._uiManager._signal;\n    if (signal instanceof AbortSignal && !signal.aborted) {\n      editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n        signal\n      });\n      editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown, {\n        signal\n      });\n    }\n    const buttons = this.#buttons = document.createElement(\"div\");\n    buttons.className = \"buttons\";\n    editToolbar.append(buttons);\n    const position = this.#editor.toolbarPosition;\n    if (position) {\n      const {\n        style\n      } = editToolbar;\n      const x = this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0];\n      style.insetInlineEnd = `${100 * x}%`;\n      style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`;\n    }\n    return editToolbar;\n  }\n  get div() {\n    return this.#toolbar;\n  }\n  static #pointerDown(e) {\n    e.stopPropagation();\n  }\n  #focusIn(e) {\n    this.#editor._focusEventsAllowed = false;\n    stopEvent(e);\n  }\n  #focusOut(e) {\n    this.#editor._focusEventsAllowed = true;\n    stopEvent(e);\n  }\n  #addListenersToElement(element) {\n    const signal = this.#editor._uiManager._signal;\n    if (!(signal instanceof AbortSignal) || signal.aborted) {\n      return false;\n    }\n    element.addEventListener(\"focusin\", this.#focusIn.bind(this), {\n      capture: true,\n      signal\n    });\n    element.addEventListener(\"focusout\", this.#focusOut.bind(this), {\n      capture: true,\n      signal\n    });\n    element.addEventListener(\"contextmenu\", noContextMenu, {\n      signal\n    });\n    return true;\n  }\n  hide() {\n    this.#toolbar.classList.add(\"hidden\");\n    this.#colorPicker?.hideDropdown();\n  }\n  show() {\n    this.#toolbar.classList.remove(\"hidden\");\n    this.#altText?.shown();\n    this.#comment?.shown();\n  }\n  addDeleteButton() {\n    const {\n      editorType,\n      _uiManager\n    } = this.#editor;\n    const button = document.createElement(\"button\");\n    button.classList.add(\"basic\", \"deleteButton\");\n    button.tabIndex = 0;\n    button.setAttribute(\"data-l10n-id\", EditorToolbar.#l10nRemove[editorType]);\n    if (this.#addListenersToElement(button)) {\n      button.addEventListener(\"click\", e => {\n        _uiManager.delete();\n      }, {\n        signal: _uiManager._signal\n      });\n    }\n    this.#buttons.append(button);\n  }\n  get #divider() {\n    const divider = document.createElement(\"div\");\n    divider.className = \"divider\";\n    return divider;\n  }\n  async addAltText(altText) {\n    const button = await altText.render();\n    this.#addListenersToElement(button);\n    this.#buttons.append(button, this.#divider);\n    this.#altText = altText;\n  }\n  addComment(comment, beforeElement = null) {\n    if (this.#comment) {\n      return;\n    }\n    const button = comment.renderForToolbar();\n    if (!button) {\n      return;\n    }\n    this.#addListenersToElement(button);\n    const divider = this.#commentButtonDivider = this.#divider;\n    if (!beforeElement) {\n      this.#buttons.append(button, divider);\n    } else {\n      this.#buttons.insertBefore(button, beforeElement);\n      this.#buttons.insertBefore(divider, beforeElement);\n    }\n    this.#comment = comment;\n    comment.toolbar = this;\n  }\n  addColorPicker(colorPicker) {\n    if (this.#colorPicker) {\n      return;\n    }\n    this.#colorPicker = colorPicker;\n    const button = colorPicker.renderButton();\n    this.#addListenersToElement(button);\n    this.#buttons.append(button, this.#divider);\n  }\n  async addEditSignatureButton(signatureManager) {\n    const button = this.#signatureDescriptionButton = await signatureManager.renderEditButton(this.#editor);\n    this.#addListenersToElement(button);\n    this.#buttons.append(button, this.#divider);\n  }\n  removeButton(name) {\n    switch (name) {\n      case \"comment\":\n        this.#comment?.removeToolbarCommentButton();\n        this.#comment = null;\n        this.#commentButtonDivider?.remove();\n        this.#commentButtonDivider = null;\n        break;\n    }\n  }\n  async addButton(name, tool) {\n    switch (name) {\n      case \"colorPicker\":\n        if (tool) {\n          this.addColorPicker(tool);\n        }\n        break;\n      case \"altText\":\n        if (tool) {\n          await this.addAltText(tool);\n        }\n        break;\n      case \"editSignature\":\n        if (tool) {\n          await this.addEditSignatureButton(tool);\n        }\n        break;\n      case \"delete\":\n        this.addDeleteButton();\n        break;\n      case \"comment\":\n        if (tool) {\n          this.addComment(tool);\n        }\n        break;\n    }\n  }\n  async addButtonBefore(name, tool, beforeSelector) {\n    if (!tool && name === \"comment\") {\n      return;\n    }\n    const beforeElement = this.#buttons.querySelector(beforeSelector);\n    if (!beforeElement) {\n      return;\n    }\n    if (name === \"comment\") {\n      this.addComment(tool, beforeElement);\n    }\n  }\n  updateEditSignatureButton(description) {\n    if (this.#signatureDescriptionButton) {\n      this.#signatureDescriptionButton.title = description;\n    }\n  }\n  remove() {\n    this.#toolbar.remove();\n    this.#colorPicker?.destroy();\n    this.#colorPicker = null;\n  }\n}\nclass FloatingToolbar {\n  #buttons = null;\n  #toolbar = null;\n  #uiManager;\n  constructor(uiManager) {\n    this.#uiManager = uiManager;\n  }\n  #render() {\n    const editToolbar = this.#toolbar = document.createElement(\"div\");\n    editToolbar.className = \"editToolbar\";\n    editToolbar.setAttribute(\"role\", \"toolbar\");\n    const signal = this.#uiManager._signal;\n    if (signal instanceof AbortSignal && !signal.aborted) {\n      editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n        signal\n      });\n    }\n    const buttons = this.#buttons = document.createElement(\"div\");\n    buttons.className = \"buttons\";\n    editToolbar.append(buttons);\n    if (this.#uiManager.hasCommentManager()) {\n      this.#makeButton(\"commentButton\", `pdfjs-comment-floating-button`, \"pdfjs-comment-floating-button-label\", () => {\n        this.#uiManager.commentSelection(\"floating_button\");\n      });\n    }\n    this.#makeButton(\"highlightButton\", `pdfjs-highlight-floating-button1`, \"pdfjs-highlight-floating-button-label\", () => {\n      this.#uiManager.highlightSelection(\"floating_button\");\n    });\n    return editToolbar;\n  }\n  #getLastPoint(boxes, isLTR) {\n    let lastY = 0;\n    let lastX = 0;\n    for (const box of boxes) {\n      const y = box.y + box.height;\n      if (y < lastY) {\n        continue;\n      }\n      const x = box.x + (isLTR ? box.width : 0);\n      if (y > lastY) {\n        lastX = x;\n        lastY = y;\n        continue;\n      }\n      if (isLTR) {\n        if (x > lastX) {\n          lastX = x;\n        }\n      } else if (x < lastX) {\n        lastX = x;\n      }\n    }\n    return [isLTR ? 1 - lastX : lastX, lastY];\n  }\n  show(parent, boxes, isLTR) {\n    const [x, y] = this.#getLastPoint(boxes, isLTR);\n    const {\n      style\n    } = this.#toolbar ||= this.#render();\n    parent.append(this.#toolbar);\n    style.insetInlineEnd = `${100 * x}%`;\n    style.top = `calc(${100 * y}% + var(--editor-toolbar-vert-offset))`;\n  }\n  hide() {\n    this.#toolbar.remove();\n  }\n  #makeButton(buttonClass, l10nId, labelL10nId, clickHandler) {\n    const button = document.createElement(\"button\");\n    button.classList.add(\"basic\", buttonClass);\n    button.tabIndex = 0;\n    button.setAttribute(\"data-l10n-id\", l10nId);\n    const span = document.createElement(\"span\");\n    button.append(span);\n    span.className = \"visuallyHidden\";\n    span.setAttribute(\"data-l10n-id\", labelL10nId);\n    const signal = this.#uiManager._signal;\n    if (signal instanceof AbortSignal && !signal.aborted) {\n      button.addEventListener(\"contextmenu\", noContextMenu, {\n        signal\n      });\n      button.addEventListener(\"click\", clickHandler, {\n        signal\n      });\n    }\n    this.#buttons.append(button);\n  }\n}\n\n;// ./src/shared/internal_evt.js\nconst INTERNAL_EVT = \"f63eb798-ea37-4556-98de-f8303ee5a694\";\nconst internalOpt = Object.freeze({\n  internal: INTERNAL_EVT\n});\n\n;// ./src/display/editor/tools.js\n\n\n\n\nfunction bindEvents(obj, element, names) {\n  for (const name of names) {\n    element.addEventListener(name, obj[name].bind(obj));\n  }\n}\nclass CurrentPointers {\n  static #pointerId = NaN;\n  static #pointerIds = null;\n  static #moveTimestamp = NaN;\n  static #pointerType = null;\n  static initializeAndAddPointerId(pointerId) {\n    (CurrentPointers.#pointerIds ||= new Set()).add(pointerId);\n  }\n  static setPointer(pointerType, pointerId) {\n    CurrentPointers.#pointerId ||= pointerId;\n    CurrentPointers.#pointerType ??= pointerType;\n  }\n  static setTimeStamp(timeStamp) {\n    CurrentPointers.#moveTimestamp = timeStamp;\n  }\n  static isSamePointerId(pointerId) {\n    return CurrentPointers.#pointerId === pointerId;\n  }\n  static isSamePointerIdOrRemove(pointerId) {\n    if (CurrentPointers.#pointerId === pointerId) {\n      return true;\n    }\n    CurrentPointers.#pointerIds?.delete(pointerId);\n    return false;\n  }\n  static isSamePointerType(pointerType) {\n    return CurrentPointers.#pointerType === pointerType;\n  }\n  static isInitializedAndDifferentPointerType(pointerType) {\n    return CurrentPointers.#pointerType !== null && !CurrentPointers.isSamePointerType(pointerType);\n  }\n  static isSameTimeStamp(timeStamp) {\n    return CurrentPointers.#moveTimestamp === timeStamp;\n  }\n  static isUsingMultiplePointers() {\n    return CurrentPointers.#pointerIds?.size >= 1;\n  }\n  static clearPointerType() {\n    CurrentPointers.#pointerType = null;\n  }\n  static clearPointerIds() {\n    CurrentPointers.#pointerId = NaN;\n    CurrentPointers.#pointerIds = null;\n  }\n  static clearTimeStamp() {\n    CurrentPointers.#moveTimestamp = NaN;\n  }\n}\nclass IdManager {\n  #id = 0;\n  get id() {\n    return `${AnnotationEditorPrefix}${this.#id++}`;\n  }\n}\nclass ImageManager {\n  #baseId = getUuid();\n  #id = 0;\n  #cache = null;\n  static get _isSVGFittingCanvas() {\n    const svg = `data:image/svg+xml;charset=UTF-8,<svg viewBox=\"0 0 1 1\" width=\"1\" height=\"1\" xmlns=\"${SVG_NS}\"><rect width=\"1\" height=\"1\" style=\"fill:red;\"/></svg>`;\n    const canvas = new OffscreenCanvas(1, 3);\n    const ctx = canvas.getContext(\"2d\", {\n      willReadFrequently: true\n    });\n    const image = new Image();\n    image.src = svg;\n    const promise = image.decode().then(() => {\n      ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n      return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n    });\n    return shadow(this, \"_isSVGFittingCanvas\", promise);\n  }\n  async #get(key, rawData) {\n    this.#cache ||= new Map();\n    let data = this.#cache.get(key);\n    if (data === null) {\n      return null;\n    }\n    if (data?.bitmap) {\n      data.refCounter += 1;\n      return data;\n    }\n    try {\n      data ||= {\n        bitmap: null,\n        id: `image_${this.#baseId}_${this.#id++}`,\n        refCounter: 0,\n        isSvg: false\n      };\n      let image;\n      if (typeof rawData === \"string\") {\n        data.url = rawData;\n        image = await fetchData(rawData, \"blob\");\n      } else if (rawData instanceof File) {\n        image = data.file = rawData;\n      } else if (rawData instanceof Blob) {\n        image = rawData;\n      }\n      if (image.type === \"image/svg+xml\") {\n        const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n        const fileReader = new FileReader();\n        const imageElement = new Image();\n        const imagePromise = new Promise((resolve, reject) => {\n          imageElement.onload = () => {\n            data.bitmap = imageElement;\n            data.isSvg = true;\n            resolve();\n          };\n          fileReader.onload = async () => {\n            const url = data.svgUrl = fileReader.result;\n            imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n          };\n          imageElement.onerror = fileReader.onerror = reject;\n        });\n        fileReader.readAsDataURL(image);\n        await imagePromise;\n      } else {\n        data.bitmap = await createImageBitmap(image);\n      }\n      data.refCounter = 1;\n    } catch (e) {\n      warn(e);\n      data = null;\n    }\n    this.#cache.set(key, data);\n    if (data) {\n      this.#cache.set(data.id, data);\n    }\n    return data;\n  }\n  async getFromFile(file) {\n    const {\n      lastModified,\n      name,\n      size,\n      type\n    } = file;\n    return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n  }\n  async getFromUrl(url) {\n    return this.#get(url, url);\n  }\n  async getFromBlob(id, blobPromise) {\n    const blob = await blobPromise;\n    return this.#get(id, blob);\n  }\n  async getFromId(id) {\n    this.#cache ||= new Map();\n    const data = this.#cache.get(id);\n    if (!data) {\n      return null;\n    }\n    if (data.bitmap) {\n      data.refCounter += 1;\n      return data;\n    }\n    if (data.file) {\n      return this.getFromFile(data.file);\n    }\n    if (data.blobPromise) {\n      const {\n        blobPromise\n      } = data;\n      delete data.blobPromise;\n      return this.getFromBlob(data.id, blobPromise);\n    }\n    return this.getFromUrl(data.url);\n  }\n  getFromCanvas(id, canvas) {\n    this.#cache ||= new Map();\n    let data = this.#cache.get(id);\n    if (data?.bitmap) {\n      data.refCounter += 1;\n      return data;\n    }\n    const offscreen = new OffscreenCanvas(canvas.width, canvas.height);\n    const ctx = offscreen.getContext(\"2d\");\n    ctx.drawImage(canvas, 0, 0);\n    data = {\n      bitmap: offscreen.transferToImageBitmap(),\n      id: `image_${this.#baseId}_${this.#id++}`,\n      refCounter: 1,\n      isSvg: false\n    };\n    this.#cache.set(id, data);\n    this.#cache.set(data.id, data);\n    return data;\n  }\n  getSvgUrl(id) {\n    const data = this.#cache.get(id);\n    if (!data?.isSvg) {\n      return null;\n    }\n    return data.svgUrl;\n  }\n  deleteId(id) {\n    this.#cache ||= new Map();\n    const data = this.#cache.get(id);\n    if (!data) {\n      return;\n    }\n    data.refCounter -= 1;\n    if (data.refCounter !== 0) {\n      return;\n    }\n    const {\n      bitmap\n    } = data;\n    if (!data.url && !data.file) {\n      const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n      const ctx = canvas.getContext(\"bitmaprenderer\");\n      ctx.transferFromImageBitmap(bitmap);\n      data.blobPromise = canvas.convertToBlob();\n    }\n    bitmap.close?.();\n    data.bitmap = null;\n  }\n  isValidId(id) {\n    return id.startsWith(`image_${this.#baseId}_`);\n  }\n}\nclass CommandManager {\n  #commands = [];\n  #locked = false;\n  #maxSize;\n  #position = -1;\n  constructor(maxSize = 128) {\n    this.#maxSize = maxSize;\n  }\n  add({\n    cmd,\n    undo,\n    post,\n    mustExec,\n    type = NaN,\n    overwriteIfSameType = false,\n    keepUndo = false\n  }) {\n    if (mustExec) {\n      cmd();\n    }\n    if (this.#locked) {\n      return;\n    }\n    const save = {\n      cmd,\n      undo,\n      post,\n      type\n    };\n    if (this.#position === -1) {\n      if (this.#commands.length > 0) {\n        this.#commands.length = 0;\n      }\n      this.#position = 0;\n      this.#commands.push(save);\n      return;\n    }\n    if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n      if (keepUndo) {\n        save.undo = this.#commands[this.#position].undo;\n      }\n      this.#commands[this.#position] = save;\n      return;\n    }\n    const next = this.#position + 1;\n    if (next === this.#maxSize) {\n      this.#commands.splice(0, 1);\n    } else {\n      this.#position = next;\n      if (next < this.#commands.length) {\n        this.#commands.splice(next);\n      }\n    }\n    this.#commands.push(save);\n  }\n  undo() {\n    if (this.#position === -1) {\n      return;\n    }\n    this.#locked = true;\n    const {\n      undo,\n      post\n    } = this.#commands[this.#position];\n    undo();\n    post?.();\n    this.#locked = false;\n    this.#position -= 1;\n  }\n  redo() {\n    if (this.#position < this.#commands.length - 1) {\n      this.#position += 1;\n      this.#locked = true;\n      const {\n        cmd,\n        post\n      } = this.#commands[this.#position];\n      cmd();\n      post?.();\n      this.#locked = false;\n    }\n  }\n  hasSomethingToUndo() {\n    return this.#position !== -1;\n  }\n  hasSomethingToRedo() {\n    return this.#position < this.#commands.length - 1;\n  }\n  cleanType(type) {\n    if (this.#position === -1) {\n      return;\n    }\n    for (let i = this.#position; i >= 0; i--) {\n      if (this.#commands[i].type !== type) {\n        this.#commands.splice(i + 1, this.#position - i);\n        this.#position = i;\n        return;\n      }\n    }\n    this.#commands.length = 0;\n    this.#position = -1;\n  }\n  destroy() {\n    this.#commands = null;\n  }\n}\nclass KeyboardManager {\n  static ALT = 0x1;\n  static CTRL = 0x2;\n  static META = 0x4;\n  static SHIFT = 0x8;\n  constructor(callbacks) {\n    this.callbacks = new Map();\n    const {\n      isMac\n    } = FeatureTest.platform;\n    for (const [keys, callback, options = {}] of callbacks) {\n      const hasMacOverride = keys.some(k => k.startsWith(\"mac+\"));\n      for (const key of keys) {\n        let shortcut = key;\n        if (hasMacOverride) {\n          const isMacKey = key.startsWith(\"mac+\");\n          if (isMac !== isMacKey) {\n            continue;\n          }\n          if (isMacKey) {\n            shortcut = key.slice(4);\n          }\n        }\n        const [keyName, modifiers] = KeyboardManager.#parseShortcut(shortcut);\n        if (keyName === null) {\n          continue;\n        }\n        this.callbacks.getOrInsertComputed(keyName, makeArr).push({\n          callback,\n          options,\n          modifiers\n        });\n      }\n    }\n  }\n  static #parseShortcut(value) {\n    let keyPart = null;\n    let modifiers = 0;\n    for (let part of value.split(\"+\")) {\n      part = part.trim();\n      if (!part) {\n        continue;\n      }\n      const upper = part.toUpperCase();\n      const modifier = KeyboardManager[upper];\n      if (modifier) {\n        modifiers |= modifier;\n        continue;\n      }\n      if (keyPart !== null) {\n        warn(`KeyboardManager: multiple keys in shortcut \"${value}\"`);\n        break;\n      }\n      keyPart = upper === \"SPACE\" ? \" \" : part;\n    }\n    if (keyPart === null) {\n      warn(`KeyboardManager: no key found in shortcut \"${value}\"`);\n    }\n    return [keyPart, modifiers];\n  }\n  static #codeToKey(code) {\n    const match = /^(?:Key([A-Z])|(?:Digit|Numpad)(\\d))$/.exec(code);\n    if (!match) {\n      return null;\n    }\n    return match[1]?.toLowerCase() ?? match[2];\n  }\n  exec(self, event) {\n    let shortcuts = this.callbacks.get(event.key);\n    if (!shortcuts) {\n      if (/^[a-z]$/i.test(event.key)) {\n        return;\n      }\n      const fallback = KeyboardManager.#codeToKey(event.code);\n      if (fallback === null || fallback === event.key) {\n        return;\n      }\n      shortcuts = this.callbacks.get(fallback);\n      if (!shortcuts) {\n        return;\n      }\n    }\n    const eventModifiers = (event.altKey ? KeyboardManager.ALT : 0) | (event.ctrlKey ? KeyboardManager.CTRL : 0) | (event.metaKey ? KeyboardManager.META : 0) | (event.shiftKey ? KeyboardManager.SHIFT : 0);\n    const info = shortcuts.find(shortcut => shortcut.modifiers === eventModifiers);\n    if (!info) {\n      return;\n    }\n    const {\n      callback,\n      options: {\n        bubbles = false,\n        args = [],\n        checker = null\n      }\n    } = info;\n    if (checker && !checker(self, event)) {\n      return;\n    }\n    callback.bind(self, ...args, event)();\n    if (!bubbles) {\n      stopEvent(event);\n    }\n  }\n}\nclass ColorManager {\n  static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n  get _colors() {\n    const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n    getColorValues(colors);\n    return shadow(this, \"_colors\", colors);\n  }\n  convert(color) {\n    const rgb = getRGB(color);\n    if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n      return rgb;\n    }\n    for (const [name, RGB] of this._colors) {\n      if (RGB.every((x, i) => x === rgb[i])) {\n        return ColorManager._colorsMapping.get(name);\n      }\n    }\n    return rgb;\n  }\n  getHexCode(name) {\n    const rgb = this._colors.get(name);\n    if (!rgb) {\n      return name;\n    }\n    return Util.makeHexColor(...rgb);\n  }\n}\nclass AnnotationEditorUIManager {\n  #abortController = new AbortController();\n  #activeEditor = null;\n  #allEditableAnnotations = null;\n  #allEditors = new Map();\n  #allLayers = new Map();\n  #savedAllLayers = null;\n  #altTextManager = null;\n  #annotationStorage = null;\n  #changedExistingAnnotations = null;\n  #commandManager = new CommandManager();\n  #commentManager = null;\n  #copyPasteAC = null;\n  #currentDrawingSession = null;\n  #currentPageIndex = 0;\n  #deletedAnnotationsElementIds = new Set();\n  #draggingEditors = null;\n  #editorTypes = null;\n  #editorsToRescale = new Set();\n  _editorUndoBar = null;\n  #enableHighlightFloatingButton = false;\n  #enableUpdatedAddImage = false;\n  #enableNewAltTextWhenAddingImage = false;\n  #filterFactory = null;\n  #focusMainContainerTimeoutId = null;\n  #focusManagerAC = null;\n  #highlightColors = null;\n  #highlightWhenShiftUp = false;\n  #floatingToolbar = null;\n  #idManager = new IdManager();\n  #isEnabled = false;\n  #isPointerDown = false;\n  #isWaiting = false;\n  #keyboardManagerAC = null;\n  #lastActiveElement = null;\n  #mainHighlightColorPicker = null;\n  #missingCanvases = null;\n  #mlManager = null;\n  #mode = AnnotationEditorType.NONE;\n  #selectedEditors = new Set();\n  #selectedTextNode = null;\n  #signatureManager = null;\n  #pageColors = null;\n  #showAllStates = null;\n  #pdfDocument = null;\n  #previousStates = {\n    isEditing: false,\n    isEmpty: true,\n    hasSomethingToUndo: false,\n    hasSomethingToRedo: false,\n    hasSelectedEditor: false,\n    hasSelectedText: false\n  };\n  #translation = [0, 0];\n  #translationTimeoutId = null;\n  #container = null;\n  #viewer = null;\n  #viewerAlert = null;\n  #updateModeCapability = null;\n  static TRANSLATE_SMALL = 1;\n  static TRANSLATE_BIG = 10;\n  static get _keyboardManager() {\n    const proto = AnnotationEditorUIManager.prototype;\n    const arrowChecker = self => self.#container.contains(document.activeElement) && document.activeElement.tagName !== \"BUTTON\" && self.hasSomethingToControl();\n    const textInputChecker = (_self, {\n      target: el\n    }) => {\n      if (el instanceof HTMLInputElement) {\n        const {\n          type\n        } = el;\n        return type !== \"text\" && type !== \"number\";\n      }\n      return true;\n    };\n    const small = this.TRANSLATE_SMALL;\n    const big = this.TRANSLATE_BIG;\n    return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll, {\n      checker: textInputChecker\n    }], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo, {\n      checker: textInputChecker\n    }], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo, {\n      checker: textInputChecker\n    }], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete, {\n      checker: textInputChecker\n    }], [[\"Enter\"], proto.addNewEditorFromKeyboard, {\n      checker: (self, {\n        target: el\n      }) => !(el instanceof HTMLButtonElement) && self.#container.contains(el) && !self.isEnterHandled\n    }], [[\"Space\"], proto.addNewEditorFromKeyboard, {\n      checker: (self, {\n        target: el\n      }) => !(el instanceof HTMLButtonElement) && self.#container.contains(document.activeElement)\n    }], [[\"Escape\"], proto.unselectAll], [[\"ArrowLeft\"], proto.translateSelectedEditors, {\n      args: [-small, 0],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n      args: [-big, 0],\n      checker: arrowChecker\n    }], [[\"ArrowRight\"], proto.translateSelectedEditors, {\n      args: [small, 0],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n      args: [big, 0],\n      checker: arrowChecker\n    }], [[\"ArrowUp\"], proto.translateSelectedEditors, {\n      args: [0, -small],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n      args: [0, -big],\n      checker: arrowChecker\n    }], [[\"ArrowDown\"], proto.translateSelectedEditors, {\n      args: [0, small],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n      args: [0, big],\n      checker: arrowChecker\n    }]]));\n  }\n  constructor(container, viewer, viewerAlert, altTextManager, commentManager, signatureManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, enableUpdatedAddImage, enableNewAltTextWhenAddingImage, mlManager, editorUndoBar, supportsPinchToZoom) {\n    const signal = this._signal = this.#abortController.signal;\n    this.#container = container;\n    this.#viewer = viewer;\n    this.#viewerAlert = viewerAlert;\n    this.#altTextManager = altTextManager;\n    this.#commentManager = commentManager;\n    this.#signatureManager = signatureManager;\n    this.#pdfDocument = pdfDocument;\n    this._eventBus = eventBus;\n    const evtOpts = {\n      signal,\n      ...internalOpt\n    };\n    eventBus.on(\"editingaction\", this.onEditingAction.bind(this), evtOpts);\n    eventBus.on(\"pagechanging\", this.onPageChanging.bind(this), evtOpts);\n    eventBus.on(\"scalechanging\", this.onScaleChanging.bind(this), evtOpts);\n    eventBus.on(\"rotationchanging\", this.onRotationChanging.bind(this), evtOpts);\n    eventBus.on(\"setpreference\", this.onSetPreference.bind(this), evtOpts);\n    eventBus.on(\"switchannotationeditorparams\", evt => this.updateParams(evt.type, evt.value), evtOpts);\n    window.addEventListener(\"pointerdown\", () => {\n      this.#isPointerDown = true;\n    }, {\n      capture: true,\n      signal\n    });\n    window.addEventListener(\"pointerup\", () => {\n      this.#isPointerDown = false;\n    }, {\n      capture: true,\n      signal\n    });\n    window.addEventListener(\"beforeunload\", this.endCurrentEditing.bind(this), {\n      capture: true,\n      signal\n    });\n    this.#addSelectionListener();\n    this.#addDragAndDropListeners();\n    this.#addKeyboardManager();\n    this.#annotationStorage = pdfDocument.annotationStorage;\n    this.#filterFactory = pdfDocument.filterFactory;\n    this.#pageColors = pageColors;\n    this.#highlightColors = highlightColors || null;\n    this.#enableHighlightFloatingButton = enableHighlightFloatingButton;\n    this.#enableUpdatedAddImage = enableUpdatedAddImage;\n    this.#enableNewAltTextWhenAddingImage = enableNewAltTextWhenAddingImage;\n    this.#mlManager = mlManager || null;\n    this.viewParameters = {\n      realScale: PixelsPerInch.PDF_TO_CSS_UNITS,\n      rotation: 0\n    };\n    this.isShiftKeyDown = false;\n    this._editorUndoBar = editorUndoBar || null;\n    this._supportsPinchToZoom = supportsPinchToZoom !== false;\n    commentManager?.setSidebarUiManager(this);\n  }\n  destroy() {\n    this.#updateModeCapability?.resolve();\n    this.#updateModeCapability = null;\n    this.#abortController?.abort();\n    this.#abortController = null;\n    this._signal = null;\n    for (const layer of this.#allLayers.values()) {\n      layer.destroy();\n    }\n    this.#allLayers.clear();\n    this.#allEditors.clear();\n    this.#editorsToRescale.clear();\n    this.#missingCanvases?.clear();\n    this.#activeEditor = null;\n    this.#selectedEditors.clear();\n    this.#commandManager.destroy();\n    this.#altTextManager?.destroy();\n    this.#commentManager?.destroy();\n    this.#signatureManager?.destroy();\n    this.#floatingToolbar?.hide();\n    this.#floatingToolbar = null;\n    this.#mainHighlightColorPicker?.destroy();\n    this.#mainHighlightColorPicker = null;\n    this.#allEditableAnnotations = null;\n    if (this.#focusMainContainerTimeoutId) {\n      clearTimeout(this.#focusMainContainerTimeoutId);\n      this.#focusMainContainerTimeoutId = null;\n    }\n    if (this.#translationTimeoutId) {\n      clearTimeout(this.#translationTimeoutId);\n      this.#translationTimeoutId = null;\n    }\n    this._editorUndoBar?.destroy();\n    this.#pdfDocument = null;\n  }\n  combinedSignal(ac) {\n    return AbortSignal.any([this._signal, ac.signal]);\n  }\n  get mlManager() {\n    return this.#mlManager;\n  }\n  get useNewAltTextFlow() {\n    return this.#enableUpdatedAddImage;\n  }\n  get useNewAltTextWhenAddingImage() {\n    return this.#enableNewAltTextWhenAddingImage;\n  }\n  get hcmFilter() {\n    return shadow(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n  }\n  get direction() {\n    return shadow(this, \"direction\", getComputedStyle(this.#container).direction);\n  }\n  get _highlightColors() {\n    return shadow(this, \"_highlightColors\", this.#highlightColors ? new Map(this.#highlightColors.split(\",\").map(pair => {\n      pair = pair.split(\"=\").map(x => x.trim());\n      pair[1] = pair[1].toUpperCase();\n      return pair;\n    })) : null);\n  }\n  get highlightColors() {\n    const {\n      _highlightColors\n    } = this;\n    if (!_highlightColors) {\n      return shadow(this, \"highlightColors\", null);\n    }\n    const map = new Map();\n    const hasHCM = !!this.#pageColors;\n    for (const [name, color] of _highlightColors) {\n      const isNameForHCM = name.endsWith(\"_HCM\");\n      if (hasHCM && isNameForHCM) {\n        map.set(name.replace(\"_HCM\", \"\"), color);\n        continue;\n      }\n      if (!hasHCM && !isNameForHCM) {\n        map.set(name, color);\n      }\n    }\n    return shadow(this, \"highlightColors\", map);\n  }\n  get highlightColorNames() {\n    return shadow(this, \"highlightColorNames\", this.highlightColors ? new Map(Array.from(this.highlightColors, e => e.reverse())) : null);\n  }\n  getNonHCMColor(color) {\n    if (!this._highlightColors) {\n      return color;\n    }\n    const colorName = this.highlightColorNames.get(color);\n    return this._highlightColors.get(colorName) || color;\n  }\n  getNonHCMColorName(color) {\n    return this.highlightColorNames.get(color) || color;\n  }\n  setCurrentDrawingSession(layer) {\n    if (layer) {\n      this.unselectAll();\n      this.disableUserSelect(true);\n    } else {\n      this.disableUserSelect(false);\n    }\n    this.#currentDrawingSession = layer;\n  }\n  setMainHighlightColorPicker(colorPicker) {\n    this.#mainHighlightColorPicker = colorPicker;\n  }\n  editAltText(editor, firstTime = false) {\n    this.#altTextManager?.editAltText(this, editor, firstTime);\n  }\n  hasCommentManager() {\n    return !!this.#commentManager;\n  }\n  editComment(editor, posX, posY, options) {\n    this.#commentManager?.showDialog(this, editor, posX, posY, options);\n  }\n  selectComment(pageIndex, uid) {\n    const layer = this.#allLayers.get(pageIndex);\n    const editor = layer?.getEditorByUID(uid);\n    editor?.toggleComment(true, true);\n  }\n  updateComment(editor) {\n    this.#commentManager?.updateComment(editor.getData());\n  }\n  updatePopupColor(editor) {\n    this.#commentManager?.updatePopupColor(editor);\n  }\n  removeComment(editor) {\n    this.#commentManager?.removeComments([editor.uid]);\n  }\n  deleteComment(editor, savedData) {\n    const undo = () => {\n      editor.comment = savedData;\n    };\n    const cmd = () => {\n      this._editorUndoBar?.show(undo, \"comment\");\n      this.toggleComment(null);\n      editor.comment = null;\n    };\n    this.addCommands({\n      cmd,\n      undo,\n      mustExec: true\n    });\n  }\n  toggleComment(editor, isSelected, visibility = undefined) {\n    this.#commentManager?.toggleCommentPopup(editor, isSelected, visibility);\n  }\n  makeCommentColor(color, opacity) {\n    return color && this.#commentManager?.makeCommentColor(color, opacity) || null;\n  }\n  getCommentDialogElement() {\n    return this.#commentManager?.dialogElement || null;\n  }\n  async waitForEditorsRendered(pageNumber) {\n    if (this.#allLayers.has(pageNumber - 1)) {\n      return;\n    }\n    const {\n      resolve,\n      promise\n    } = Promise.withResolvers();\n    const onEditorsRendered = evt => {\n      if (evt.pageNumber === pageNumber) {\n        this._eventBus.off(\"editorsrendered\", onEditorsRendered);\n        resolve();\n      }\n    };\n    this._eventBus.on(\"editorsrendered\", onEditorsRendered, internalOpt);\n    await promise;\n  }\n  getSignature(editor) {\n    this.#signatureManager?.getSignature({\n      uiManager: this,\n      editor\n    });\n  }\n  get signatureManager() {\n    return this.#signatureManager;\n  }\n  switchToMode(mode, callback) {\n    this._eventBus.on(\"annotationeditormodechanged\", callback, {\n      once: true,\n      signal: this._signal,\n      ...internalOpt\n    });\n    this._eventBus.dispatch(\"showannotationeditorui\", {\n      source: this,\n      mode\n    });\n  }\n  setPreference(name, value) {\n    this._eventBus.dispatch(\"setpreference\", {\n      source: this,\n      name,\n      value\n    });\n  }\n  onSetPreference({\n    name,\n    value\n  }) {\n    switch (name) {\n      case \"enableNewAltTextWhenAddingImage\":\n        this.#enableNewAltTextWhenAddingImage = value;\n        break;\n    }\n  }\n  onPageChanging({\n    pageNumber\n  }) {\n    this.#currentPageIndex = pageNumber - 1;\n  }\n  deletePage(id) {\n    for (const editor of this.getEditors(id)) {\n      editor.remove();\n    }\n    this.#allLayers.delete(id);\n    if (this.#currentPageIndex === id) {\n      this.#currentPageIndex = 0;\n    }\n  }\n  focusMainContainer() {\n    this.#container.focus();\n  }\n  findParent(x, y) {\n    for (const layer of this.#allLayers.values()) {\n      const {\n        x: layerX,\n        y: layerY,\n        width,\n        height\n      } = layer.div.getBoundingClientRect();\n      if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n        return layer;\n      }\n    }\n    return null;\n  }\n  disableUserSelect(value = false) {\n    this.#viewer.classList.toggle(\"noUserSelect\", value);\n  }\n  addShouldRescale(editor) {\n    this.#editorsToRescale.add(editor);\n  }\n  removeShouldRescale(editor) {\n    this.#editorsToRescale.delete(editor);\n  }\n  onScaleChanging({\n    scale\n  }) {\n    this.commitOrRemove();\n    this.viewParameters.realScale = scale * PixelsPerInch.PDF_TO_CSS_UNITS;\n    for (const editor of this.#editorsToRescale) {\n      editor.onScaleChanging();\n    }\n    this.#currentDrawingSession?.onScaleChanging();\n  }\n  onRotationChanging({\n    pagesRotation\n  }) {\n    this.commitOrRemove();\n    this.viewParameters.rotation = pagesRotation;\n  }\n  #getAnchorElementForSelection({\n    anchorNode\n  }) {\n    return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode;\n  }\n  #getLayerForTextLayer(textLayer) {\n    const {\n      currentLayer\n    } = this;\n    if (currentLayer.hasTextLayer(textLayer)) {\n      return currentLayer;\n    }\n    for (const layer of this.#allLayers.values()) {\n      if (layer.hasTextLayer(textLayer)) {\n        return layer;\n      }\n    }\n    return null;\n  }\n  highlightSelection(methodOfCreation = \"\", comment = false) {\n    const selection = document.getSelection();\n    if (!selection || selection.isCollapsed) {\n      return;\n    }\n    const {\n      anchorNode,\n      anchorOffset,\n      focusNode,\n      focusOffset\n    } = selection;\n    const text = selection.toString();\n    const anchorElement = this.#getAnchorElementForSelection(selection);\n    const textLayer = anchorElement.closest(\".textLayer\");\n    const boxes = this.getSelectionBoxes(textLayer);\n    if (!boxes) {\n      return;\n    }\n    selection.empty();\n    const layer = this.#getLayerForTextLayer(textLayer);\n    const isNoneMode = this.#mode === AnnotationEditorType.NONE;\n    const callback = () => {\n      const editor = layer?.createAndAddNewEditor({\n        x: 0,\n        y: 0\n      }, false, {\n        methodOfCreation,\n        boxes,\n        anchorNode,\n        anchorOffset,\n        focusNode,\n        focusOffset,\n        text\n      });\n      if (isNoneMode) {\n        this.showAllEditors(\"highlight\", true, true);\n      }\n      if (comment) {\n        editor?.editComment();\n      }\n    };\n    if (isNoneMode) {\n      this.switchToMode(AnnotationEditorType.HIGHLIGHT, callback);\n      return;\n    }\n    callback();\n  }\n  commentSelection(methodOfCreation = \"\") {\n    this.highlightSelection(methodOfCreation, true);\n  }\n  endCurrentEditing() {\n    this.commitOrRemove();\n    this.currentLayer?.endDrawingSession(false);\n  }\n  #displayFloatingToolbar() {\n    const selection = document.getSelection();\n    if (!selection || selection.isCollapsed) {\n      return;\n    }\n    const anchorElement = this.#getAnchorElementForSelection(selection);\n    const textLayer = anchorElement.closest(\".textLayer\");\n    const boxes = this.getSelectionBoxes(textLayer);\n    if (!boxes) {\n      return;\n    }\n    this.#floatingToolbar ||= new FloatingToolbar(this);\n    this.#floatingToolbar.show(textLayer, boxes, this.direction === \"ltr\");\n  }\n  getAndRemoveDataFromAnnotationStorage(annotationId) {\n    if (!this.#annotationStorage) {\n      return null;\n    }\n    const key = `${AnnotationEditorPrefix}${annotationId}`;\n    const storedValue = this.#annotationStorage.getRawValue(key);\n    if (storedValue) {\n      this.#annotationStorage.remove(key);\n    }\n    return storedValue;\n  }\n  addToAnnotationStorage(editor) {\n    if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n      this.#annotationStorage.setValue(editor.id, editor);\n    }\n  }\n  a11yAlert(messageId, args = null) {\n    const viewerAlert = this.#viewerAlert;\n    if (!viewerAlert) {\n      return;\n    }\n    viewerAlert.setAttribute(\"data-l10n-id\", messageId);\n    if (args) {\n      viewerAlert.setAttribute(\"data-l10n-args\", JSON.stringify(args));\n    } else {\n      viewerAlert.removeAttribute(\"data-l10n-args\");\n    }\n  }\n  #selectionChange() {\n    const selection = document.getSelection();\n    if (!selection || selection.isCollapsed) {\n      if (this.#selectedTextNode) {\n        this.#floatingToolbar?.hide();\n        this.#selectedTextNode = null;\n        this.#dispatchUpdateStates({\n          hasSelectedText: false\n        });\n      }\n      return;\n    }\n    const {\n      anchorNode\n    } = selection;\n    if (anchorNode === this.#selectedTextNode) {\n      return;\n    }\n    const anchorElement = this.#getAnchorElementForSelection(selection);\n    const textLayer = anchorElement.closest(\".textLayer\");\n    if (!textLayer) {\n      if (this.#selectedTextNode) {\n        this.#floatingToolbar?.hide();\n        this.#selectedTextNode = null;\n        this.#dispatchUpdateStates({\n          hasSelectedText: false\n        });\n      }\n      return;\n    }\n    this.#floatingToolbar?.hide();\n    this.#selectedTextNode = anchorNode;\n    this.#dispatchUpdateStates({\n      hasSelectedText: true\n    });\n    if (this.#mode !== AnnotationEditorType.HIGHLIGHT && this.#mode !== AnnotationEditorType.NONE) {\n      return;\n    }\n    if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n      this.showAllEditors(\"highlight\", true, true);\n    }\n    this.#highlightWhenShiftUp = this.isShiftKeyDown;\n    if (!this.isShiftKeyDown) {\n      const activeLayer = this.#mode === AnnotationEditorType.HIGHLIGHT ? this.#getLayerForTextLayer(textLayer) : null;\n      activeLayer?.toggleDrawing();\n      if (this.#isPointerDown) {\n        const ac = new AbortController();\n        const signal = this.combinedSignal(ac);\n        const pointerup = e => {\n          if (e.type === \"pointerup\" && e.button !== 0) {\n            return;\n          }\n          ac.abort();\n          activeLayer?.toggleDrawing(true);\n          if (e.type === \"pointerup\") {\n            this.#onSelectEnd(\"main_toolbar\");\n          }\n        };\n        window.addEventListener(\"pointerup\", pointerup, {\n          signal\n        });\n        window.addEventListener(\"blur\", pointerup, {\n          signal\n        });\n      } else {\n        activeLayer?.toggleDrawing(true);\n        this.#onSelectEnd(\"main_toolbar\");\n      }\n    }\n  }\n  #onSelectEnd(methodOfCreation = \"\") {\n    if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n      this.highlightSelection(methodOfCreation);\n    } else if (this.#enableHighlightFloatingButton) {\n      this.#displayFloatingToolbar();\n    }\n  }\n  #addSelectionListener() {\n    document.addEventListener(\"selectionchange\", this.#selectionChange.bind(this), {\n      signal: this._signal\n    });\n  }\n  #addFocusManager() {\n    if (this.#focusManagerAC) {\n      return;\n    }\n    this.#focusManagerAC = new AbortController();\n    const signal = this.combinedSignal(this.#focusManagerAC);\n    window.addEventListener(\"focus\", this.focus.bind(this), {\n      signal\n    });\n    window.addEventListener(\"blur\", this.blur.bind(this), {\n      signal\n    });\n  }\n  #removeFocusManager() {\n    this.#focusManagerAC?.abort();\n    this.#focusManagerAC = null;\n  }\n  blur() {\n    this.isShiftKeyDown = false;\n    if (this.#highlightWhenShiftUp) {\n      this.#highlightWhenShiftUp = false;\n      this.#onSelectEnd(\"main_toolbar\");\n    }\n    if (!this.hasSelection) {\n      return;\n    }\n    const {\n      activeElement\n    } = document;\n    for (const editor of this.#selectedEditors) {\n      if (editor.div.contains(activeElement)) {\n        this.#lastActiveElement = [editor, activeElement];\n        editor._focusEventsAllowed = false;\n        break;\n      }\n    }\n  }\n  focus() {\n    if (!this.#lastActiveElement) {\n      return;\n    }\n    const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n    this.#lastActiveElement = null;\n    lastActiveElement.addEventListener(\"focusin\", () => {\n      lastEditor._focusEventsAllowed = true;\n    }, {\n      once: true,\n      signal: this._signal\n    });\n    lastActiveElement.focus();\n  }\n  #addKeyboardManager() {\n    if (this.#keyboardManagerAC) {\n      return;\n    }\n    this.#keyboardManagerAC = new AbortController();\n    const signal = this.combinedSignal(this.#keyboardManagerAC);\n    window.addEventListener(\"keydown\", this.keydown.bind(this), {\n      signal\n    });\n    window.addEventListener(\"keyup\", this.keyup.bind(this), {\n      signal\n    });\n  }\n  #removeKeyboardManager() {\n    this.#keyboardManagerAC?.abort();\n    this.#keyboardManagerAC = null;\n  }\n  #addCopyPasteListeners() {\n    if (this.#copyPasteAC) {\n      return;\n    }\n    this.#copyPasteAC = new AbortController();\n    const signal = this.combinedSignal(this.#copyPasteAC);\n    document.addEventListener(\"copy\", this.copy.bind(this), {\n      signal\n    });\n    document.addEventListener(\"cut\", this.cut.bind(this), {\n      signal\n    });\n    document.addEventListener(\"paste\", this.paste.bind(this), {\n      signal\n    });\n  }\n  #removeCopyPasteListeners() {\n    this.#copyPasteAC?.abort();\n    this.#copyPasteAC = null;\n  }\n  #addDragAndDropListeners() {\n    const signal = this._signal;\n    document.addEventListener(\"dragover\", this.dragOver.bind(this), {\n      signal\n    });\n    document.addEventListener(\"drop\", this.drop.bind(this), {\n      signal\n    });\n  }\n  addEditListeners() {\n    this.#addKeyboardManager();\n    this.setEditingState(true);\n  }\n  removeEditListeners() {\n    this.#removeKeyboardManager();\n    this.setEditingState(false);\n  }\n  dragOver(event) {\n    for (const {\n      type\n    } of event.dataTransfer.items) {\n      for (const editorType of this.#editorTypes) {\n        if (editorType.isHandlingMimeForPasting(type)) {\n          event.dataTransfer.dropEffect = \"copy\";\n          event.preventDefault();\n          return;\n        }\n      }\n    }\n  }\n  drop(event) {\n    for (const item of event.dataTransfer.items) {\n      for (const editorType of this.#editorTypes) {\n        if (editorType.isHandlingMimeForPasting(item.type)) {\n          editorType.paste(item, this.currentLayer);\n          event.preventDefault();\n          return;\n        }\n      }\n    }\n  }\n  copy(event) {\n    event.preventDefault();\n    this.#activeEditor?.commitOrRemove();\n    if (!this.hasSelection) {\n      return;\n    }\n    const editors = [];\n    for (const editor of this.#selectedEditors) {\n      const serialized = editor.serialize(true);\n      if (serialized) {\n        editors.push(serialized);\n      }\n    }\n    if (editors.length === 0) {\n      return;\n    }\n    event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n  }\n  cut(event) {\n    this.copy(event);\n    this.delete();\n  }\n  async paste(event) {\n    event.preventDefault();\n    const {\n      clipboardData\n    } = event;\n    for (const item of clipboardData.items) {\n      for (const editorType of this.#editorTypes) {\n        if (editorType.isHandlingMimeForPasting(item.type)) {\n          editorType.paste(item, this.currentLayer);\n          return;\n        }\n      }\n    }\n    let data = clipboardData.getData(\"application/pdfjs\");\n    if (!data) {\n      return;\n    }\n    try {\n      data = JSON.parse(data);\n    } catch (ex) {\n      warn(`paste: \"${ex.message}\".`);\n      return;\n    }\n    if (!Array.isArray(data)) {\n      return;\n    }\n    this.unselectAll();\n    const layer = this.currentLayer;\n    try {\n      const newEditors = [];\n      for (const editor of data) {\n        const deserializedEditor = await layer.deserialize(editor);\n        if (!deserializedEditor) {\n          return;\n        }\n        newEditors.push(deserializedEditor);\n      }\n      const cmd = () => {\n        for (const editor of newEditors) {\n          this.#addEditorToLayer(editor);\n        }\n        this.#selectEditors(newEditors);\n      };\n      const undo = () => {\n        for (const editor of newEditors) {\n          editor.remove();\n        }\n      };\n      this.addCommands({\n        cmd,\n        undo,\n        mustExec: true\n      });\n    } catch (ex) {\n      warn(`paste: \"${ex.message}\".`);\n    }\n  }\n  keydown(event) {\n    if (!this.isShiftKeyDown && event.key === \"Shift\") {\n      this.isShiftKeyDown = true;\n    }\n    if (this.#mode !== AnnotationEditorType.NONE && !this.isEditorHandlingKeyboard) {\n      AnnotationEditorUIManager._keyboardManager.exec(this, event);\n    }\n  }\n  keyup(event) {\n    if (this.isShiftKeyDown && event.key === \"Shift\") {\n      this.isShiftKeyDown = false;\n      if (this.#highlightWhenShiftUp) {\n        this.#highlightWhenShiftUp = false;\n        this.#onSelectEnd(\"main_toolbar\");\n      }\n    }\n  }\n  onEditingAction({\n    name\n  }) {\n    switch (name) {\n      case \"undo\":\n      case \"redo\":\n      case \"delete\":\n      case \"selectAll\":\n        this[name]();\n        break;\n      case \"highlightSelection\":\n        this.highlightSelection(\"context_menu\");\n        break;\n      case \"commentSelection\":\n        this.commentSelection(\"context_menu\");\n        break;\n    }\n  }\n  updatePageIndex(oldPageIndex, newPageIndex) {\n    for (const editor of this.getEditors(oldPageIndex)) {\n      editor.pageIndex = newPageIndex;\n    }\n    const layer = this.#savedAllLayers.get(oldPageIndex);\n    if (layer) {\n      layer.pageIndex = newPageIndex;\n      this.#allLayers.set(newPageIndex, layer);\n      if (this.#isEnabled) {\n        layer.enable();\n      } else {\n        layer.disable();\n      }\n    }\n  }\n  startUpdatePages() {\n    this.#savedAllLayers = new Map(this.#allLayers);\n    this.#allLayers.clear();\n  }\n  endUpdatePages() {\n    this.#savedAllLayers = null;\n  }\n  clonePage(pageIndex, newPageIndex) {\n    for (const editor of this.getEditors(pageIndex)) {\n      const serialized = editor.serialize(editor.mode !== AnnotationEditorType.HIGHLIGHT);\n      if (!serialized) {\n        continue;\n      }\n      serialized.pageIndex = newPageIndex;\n      serialized.id = this.getId();\n      serialized.isClone = true;\n      delete serialized.popupRef;\n      this.#annotationStorage.setValue(serialized.id, serialized);\n    }\n  }\n  findClonesForPage(layer) {\n    const promises = [];\n    const {\n      pageIndex\n    } = layer;\n    for (const [id, editor] of this.#annotationStorage) {\n      if (editor.pageIndex === pageIndex && editor.isClone) {\n        this.#annotationStorage.remove(id);\n        promises.push(layer.deserialize(editor).then(deserializedEditor => {\n          if (deserializedEditor) {\n            deserializedEditor.isClone = true;\n            layer.addOrRebuild(deserializedEditor);\n          }\n        }));\n      }\n    }\n    return Promise.all(promises);\n  }\n  #dispatchUpdateStates(details) {\n    const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n    if (hasChanged) {\n      this._eventBus.dispatch(\"editingstateschanged\", {\n        source: this,\n        details: Object.assign(this.#previousStates, details)\n      });\n      if (this.#mode === AnnotationEditorType.HIGHLIGHT && details.hasSelectedEditor === false) {\n        this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_FREE, true]]);\n      }\n    }\n  }\n  #dispatchUpdateUI(details) {\n    this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n      source: this,\n      details\n    });\n  }\n  setEditingState(isEditing) {\n    if (isEditing) {\n      this.#addFocusManager();\n      this.#addCopyPasteListeners();\n      this.#dispatchUpdateStates({\n        isEditing: this.#mode !== AnnotationEditorType.NONE,\n        isEmpty: this.#isEmpty(),\n        hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n        hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n        hasSelectedEditor: false\n      });\n    } else {\n      this.#removeFocusManager();\n      this.#removeCopyPasteListeners();\n      this.#dispatchUpdateStates({\n        isEditing: false\n      });\n      this.disableUserSelect(false);\n    }\n  }\n  registerEditorTypes(types) {\n    if (this.#editorTypes) {\n      return;\n    }\n    this.#editorTypes = types;\n    for (const editorType of this.#editorTypes) {\n      this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n    }\n  }\n  getId() {\n    return this.#idManager.id;\n  }\n  get currentLayer() {\n    return this.#allLayers.get(this.#currentPageIndex);\n  }\n  getLayer(pageIndex) {\n    return this.#allLayers.get(pageIndex);\n  }\n  get currentPageIndex() {\n    return this.#currentPageIndex;\n  }\n  addLayer(layer) {\n    this.#allLayers.set(layer.pageIndex, layer);\n    if (this.#isEnabled) {\n      layer.enable();\n    } else {\n      layer.disable();\n    }\n  }\n  removeLayer(layer) {\n    this.#allLayers.delete(layer.pageIndex);\n  }\n  async updateMode(mode, editId = null, isFromUser = false, isFromKeyboard = false, mustEnterInEditMode = false, editComment = false) {\n    if (this.#mode === mode) {\n      return;\n    }\n    if (this.#updateModeCapability) {\n      await this.#updateModeCapability.promise;\n      if (!this.#updateModeCapability) {\n        return;\n      }\n    }\n    this.#updateModeCapability = Promise.withResolvers();\n    this.#currentDrawingSession?.commitOrRemove();\n    if (this.#mode === AnnotationEditorType.POPUP) {\n      this.#commentManager?.hideSidebar();\n    }\n    this.#commentManager?.destroyPopup();\n    this.#mode = mode;\n    if (mode === AnnotationEditorType.NONE) {\n      this.setEditingState(false);\n      this.#disableAll();\n      for (const editor of this.#allEditors.values()) {\n        editor.hideStandaloneCommentButton();\n      }\n      this._editorUndoBar?.hide();\n      this.toggleComment(null);\n      this.#updateModeCapability.resolve();\n      return;\n    }\n    for (const editor of this.#allEditors.values()) {\n      editor.addStandaloneCommentButton();\n    }\n    if (mode === AnnotationEditorType.SIGNATURE) {\n      await this.#signatureManager?.loadSignatures();\n    }\n    if (isFromUser) {\n      CurrentPointers.clearPointerType();\n    }\n    this.setEditingState(true);\n    await this.#enableAll();\n    this.unselectAll();\n    for (const layer of this.#allLayers.values()) {\n      layer.updateMode(mode);\n    }\n    if (mode === AnnotationEditorType.POPUP) {\n      this.#allEditableAnnotations ||= await this.#pdfDocument.getAnnotationsByType(new Set(this.#editorTypes.map(editorClass => editorClass._editorType)));\n      const elementIds = new Set();\n      const allComments = [];\n      for (const editor of this.#allEditors.values()) {\n        const {\n          annotationElementId,\n          hasComment,\n          deleted\n        } = editor;\n        if (annotationElementId) {\n          elementIds.add(annotationElementId);\n        }\n        if (hasComment && !deleted) {\n          allComments.push(editor.getData());\n        }\n      }\n      for (const annotation of this.#allEditableAnnotations) {\n        const {\n          id,\n          popupRef,\n          contentsObj\n        } = annotation;\n        if (popupRef && contentsObj?.str && !elementIds.has(id) && !this.#deletedAnnotationsElementIds.has(id)) {\n          allComments.push(annotation);\n        }\n      }\n      this.#commentManager?.showSidebar(allComments);\n    }\n    if (!editId) {\n      if (isFromKeyboard) {\n        this.addNewEditorFromKeyboard();\n      }\n      this.#updateModeCapability.resolve();\n      return;\n    }\n    for (const editor of this.#allEditors.values()) {\n      if (editor.uid === editId) {\n        this.setSelected(editor);\n        if (editComment) {\n          editor.editComment();\n        } else if (mustEnterInEditMode) {\n          editor.enterInEditMode();\n        } else {\n          editor.focus();\n        }\n      } else {\n        editor.unselect();\n      }\n    }\n    this.#updateModeCapability.resolve();\n  }\n  addNewEditorFromKeyboard() {\n    if (this.currentLayer.canCreateNewEmptyEditor()) {\n      this.currentLayer.addNewEditor();\n    }\n  }\n  updateToolbar(options) {\n    if (options.mode === this.#mode) {\n      return;\n    }\n    this._eventBus.dispatch(\"switchannotationeditormode\", {\n      source: this,\n      ...options\n    });\n  }\n  updateParams(type, value) {\n    if (!this.#editorTypes) {\n      return;\n    }\n    switch (type) {\n      case AnnotationEditorParamsType.CREATE:\n        this.currentLayer.addNewEditor(value);\n        return;\n      case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:\n        this._eventBus.dispatch(\"reporttelemetry\", {\n          source: this,\n          details: {\n            type: \"editing\",\n            data: {\n              type: \"highlight\",\n              action: \"toggle_visibility\"\n            }\n          }\n        });\n        (this.#showAllStates ||= new Map()).set(type, value);\n        this.showAllEditors(\"highlight\", value);\n        break;\n    }\n    if (this.hasSelection) {\n      for (const editor of this.#selectedEditors) {\n        editor.updateParams(type, value);\n      }\n    } else {\n      for (const editorType of this.#editorTypes) {\n        editorType.updateDefaultParams(type, value);\n      }\n    }\n  }\n  showAllEditors(type, visible, updateButton = false) {\n    for (const editor of this.#allEditors.values()) {\n      if (editor.editorType === type) {\n        editor.show(visible);\n      }\n    }\n    const state = this.#showAllStates?.get(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL) ?? true;\n    if (state !== visible) {\n      this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, visible]]);\n    }\n  }\n  enableWaiting(mustWait = false) {\n    if (this.#isWaiting === mustWait) {\n      return;\n    }\n    this.#isWaiting = mustWait;\n    for (const layer of this.#allLayers.values()) {\n      if (mustWait) {\n        layer.disableClick();\n      } else {\n        layer.enableClick();\n      }\n      layer.div.classList.toggle(\"waiting\", mustWait);\n    }\n  }\n  async #enableAll() {\n    if (!this.#isEnabled) {\n      this.#isEnabled = true;\n      const promises = [];\n      for (const layer of this.#allLayers.values()) {\n        promises.push(layer.enable());\n      }\n      await Promise.all(promises);\n      for (const editor of this.#allEditors.values()) {\n        editor.enable();\n      }\n    }\n  }\n  #disableAll() {\n    this.unselectAll();\n    if (this.#isEnabled) {\n      this.#isEnabled = false;\n      for (const layer of this.#allLayers.values()) {\n        layer.disable();\n      }\n      for (const editor of this.#allEditors.values()) {\n        editor.disable();\n      }\n    }\n  }\n  *getEditors(pageIndex) {\n    for (const editor of this.#allEditors.values()) {\n      if (editor.pageIndex === pageIndex) {\n        yield editor;\n      }\n    }\n  }\n  getEditor(id) {\n    return this.#allEditors.get(id);\n  }\n  addEditor(editor) {\n    this.#allEditors.set(editor.id, editor);\n  }\n  removeEditor(editor) {\n    if (editor.div.contains(document.activeElement)) {\n      if (this.#focusMainContainerTimeoutId) {\n        clearTimeout(this.#focusMainContainerTimeoutId);\n      }\n      this.#focusMainContainerTimeoutId = setTimeout(() => {\n        this.focusMainContainer();\n        this.#focusMainContainerTimeoutId = null;\n      }, 0);\n    }\n    this.#allEditors.delete(editor.id);\n    if (editor.annotationElementId) {\n      this.#missingCanvases?.delete(editor.annotationElementId);\n    }\n    this.unselect(editor);\n    if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n      this.#annotationStorage?.remove(editor.id);\n    }\n  }\n  addDeletedAnnotationElement(editor) {\n    this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n    this.addChangedExistingAnnotation(editor);\n    editor.deleted = true;\n  }\n  isDeletedAnnotationElement(annotationElementId) {\n    return this.#deletedAnnotationsElementIds.has(annotationElementId);\n  }\n  removeDeletedAnnotationElement(editor) {\n    this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n    this.removeChangedExistingAnnotation(editor);\n    editor.deleted = false;\n  }\n  #addEditorToLayer(editor) {\n    const layer = this.#allLayers.get(editor.pageIndex);\n    if (layer) {\n      layer.addOrRebuild(editor);\n    } else {\n      this.addEditor(editor);\n      this.addToAnnotationStorage(editor);\n    }\n  }\n  setActiveEditor(editor) {\n    if (this.#activeEditor === editor) {\n      return;\n    }\n    this.#activeEditor = editor;\n    if (editor) {\n      this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    }\n  }\n  get #lastSelectedEditor() {\n    let ed = null;\n    for (ed of this.#selectedEditors) {}\n    return ed;\n  }\n  updateUI(editor) {\n    if (this.#lastSelectedEditor === editor) {\n      this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    }\n  }\n  updateUIForDefaultProperties(editorType) {\n    this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n  }\n  toggleSelected(editor) {\n    if (this.#selectedEditors.has(editor)) {\n      this.#selectedEditors.delete(editor);\n      editor.unselect();\n      this.#dispatchUpdateStates({\n        hasSelectedEditor: this.hasSelection\n      });\n      return;\n    }\n    this.#selectedEditors.add(editor);\n    editor.select();\n    this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: true\n    });\n  }\n  setSelected(editor) {\n    this.updateToolbar({\n      mode: editor.mode,\n      editId: editor.uid\n    });\n    this.#currentDrawingSession?.commitOrRemove();\n    for (const ed of this.#selectedEditors) {\n      if (ed !== editor) {\n        ed.unselect();\n      }\n    }\n    this.#commentManager?.destroyPopup();\n    this.#selectedEditors.clear();\n    this.#selectedEditors.add(editor);\n    editor.select();\n    this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: true\n    });\n  }\n  get firstSelectedEditor() {\n    return this.#selectedEditors.values().next().value;\n  }\n  unselect(editor) {\n    editor.unselect();\n    this.#selectedEditors.delete(editor);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: this.hasSelection\n    });\n  }\n  get hasSelection() {\n    return this.#selectedEditors.size !== 0;\n  }\n  get isEnterHandled() {\n    return this.#selectedEditors.size === 1 && this.firstSelectedEditor.isEnterHandled;\n  }\n  undo() {\n    this.#commandManager.undo();\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n      hasSomethingToRedo: true,\n      isEmpty: this.#isEmpty()\n    });\n    this._editorUndoBar?.hide();\n  }\n  redo() {\n    this.#commandManager.redo();\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n      isEmpty: this.#isEmpty()\n    });\n  }\n  addCommands(params) {\n    this.#commandManager.add(params);\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: false,\n      isEmpty: this.#isEmpty()\n    });\n  }\n  cleanUndoStack(type) {\n    this.#commandManager.cleanType(type);\n  }\n  #isEmpty() {\n    if (this.#allEditors.size === 0) {\n      return true;\n    }\n    if (this.#allEditors.size === 1) {\n      for (const editor of this.#allEditors.values()) {\n        return editor.isEmpty();\n      }\n    }\n    return false;\n  }\n  delete() {\n    this.commitOrRemove();\n    const drawingEditor = this.currentLayer?.endDrawingSession(true);\n    if (!this.hasSelection && !drawingEditor) {\n      return;\n    }\n    const editors = drawingEditor ? [drawingEditor] : [...this.#selectedEditors];\n    const cmd = () => {\n      this._editorUndoBar?.show(undo, editors.length === 1 ? editors[0].editorType : editors.length);\n      for (const editor of editors) {\n        editor.remove();\n      }\n    };\n    const undo = () => {\n      for (const editor of editors) {\n        this.#addEditorToLayer(editor);\n      }\n    };\n    this.addCommands({\n      cmd,\n      undo,\n      mustExec: true\n    });\n  }\n  commitOrRemove() {\n    this.#activeEditor?.commitOrRemove();\n  }\n  hasSomethingToControl() {\n    return this.#activeEditor || this.hasSelection;\n  }\n  #selectEditors(editors) {\n    for (const editor of this.#selectedEditors) {\n      editor.unselect();\n    }\n    this.#selectedEditors.clear();\n    for (const editor of editors) {\n      if (editor.isEmpty()) {\n        continue;\n      }\n      this.#selectedEditors.add(editor);\n      editor.select();\n    }\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: this.hasSelection\n    });\n  }\n  selectAll() {\n    for (const editor of this.#selectedEditors) {\n      editor.commit();\n    }\n    this.#selectEditors(this.#allEditors.values());\n  }\n  unselectAll() {\n    if (this.#activeEditor) {\n      this.#activeEditor.commitOrRemove();\n      if (this.#mode !== AnnotationEditorType.NONE) {\n        return;\n      }\n    }\n    if (this.#currentDrawingSession?.commitOrRemove()) {\n      return;\n    }\n    this.#commentManager?.destroyPopup();\n    if (!this.hasSelection) {\n      return;\n    }\n    for (const editor of this.#selectedEditors) {\n      editor.unselect();\n    }\n    this.#selectedEditors.clear();\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: false\n    });\n  }\n  translateSelectedEditors(x, y, noCommit = false) {\n    if (!noCommit) {\n      this.commitOrRemove();\n    }\n    if (!this.hasSelection) {\n      return;\n    }\n    this.#translation[0] += x;\n    this.#translation[1] += y;\n    const [totalX, totalY] = this.#translation;\n    const editors = [...this.#selectedEditors];\n    const TIME_TO_WAIT = 1000;\n    if (this.#translationTimeoutId) {\n      clearTimeout(this.#translationTimeoutId);\n    }\n    this.#translationTimeoutId = setTimeout(() => {\n      this.#translationTimeoutId = null;\n      this.#translation[0] = this.#translation[1] = 0;\n      this.addCommands({\n        cmd: () => {\n          for (const editor of editors) {\n            if (this.#allEditors.has(editor.id)) {\n              editor.translateInPage(totalX, totalY);\n              editor.translationDone();\n            }\n          }\n        },\n        undo: () => {\n          for (const editor of editors) {\n            if (this.#allEditors.has(editor.id)) {\n              editor.translateInPage(-totalX, -totalY);\n              editor.translationDone();\n            }\n          }\n        },\n        mustExec: false\n      });\n    }, TIME_TO_WAIT);\n    for (const editor of editors) {\n      editor.translateInPage(x, y);\n      editor.translationDone();\n    }\n  }\n  setUpDragSession() {\n    if (!this.hasSelection) {\n      return;\n    }\n    this.disableUserSelect(true);\n    this.#draggingEditors = new Map();\n    for (const editor of this.#selectedEditors) {\n      this.#draggingEditors.set(editor, {\n        savedX: editor.x,\n        savedY: editor.y,\n        savedPageIndex: editor.pageIndex,\n        newX: 0,\n        newY: 0,\n        newPageIndex: -1\n      });\n    }\n  }\n  endDragSession() {\n    if (!this.#draggingEditors) {\n      return false;\n    }\n    this.disableUserSelect(false);\n    const map = this.#draggingEditors;\n    this.#draggingEditors = null;\n    let mustBeAddedInUndoStack = false;\n    for (const [{\n      x,\n      y,\n      pageIndex\n    }, value] of map) {\n      value.newX = x;\n      value.newY = y;\n      value.newPageIndex = pageIndex;\n      mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n    }\n    if (!mustBeAddedInUndoStack) {\n      return false;\n    }\n    const move = (editor, x, y, pageIndex) => {\n      if (this.#allEditors.has(editor.id)) {\n        const parent = this.#allLayers.get(pageIndex);\n        if (parent) {\n          editor._setParentAndPosition(parent, x, y);\n        } else {\n          editor.pageIndex = pageIndex;\n          editor.x = x;\n          editor.y = y;\n        }\n      }\n    };\n    this.addCommands({\n      cmd: () => {\n        for (const [editor, {\n          newX,\n          newY,\n          newPageIndex\n        }] of map) {\n          move(editor, newX, newY, newPageIndex);\n        }\n      },\n      undo: () => {\n        for (const [editor, {\n          savedX,\n          savedY,\n          savedPageIndex\n        }] of map) {\n          move(editor, savedX, savedY, savedPageIndex);\n        }\n      },\n      mustExec: true\n    });\n    return true;\n  }\n  dragSelectedEditors(tx, ty) {\n    if (!this.#draggingEditors) {\n      return;\n    }\n    for (const editor of this.#draggingEditors.keys()) {\n      editor.drag(tx, ty);\n    }\n  }\n  rebuild(editor) {\n    if (editor.parent === null) {\n      const parent = this.getLayer(editor.pageIndex);\n      if (parent) {\n        parent.changeParent(editor);\n        parent.addOrRebuild(editor);\n      } else {\n        this.addEditor(editor);\n        this.addToAnnotationStorage(editor);\n        editor.rebuild();\n      }\n    } else {\n      editor.parent.addOrRebuild(editor);\n    }\n  }\n  get isEditorHandlingKeyboard() {\n    return this.getActive()?.shouldGetKeyboardEvents() || this.#selectedEditors.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents();\n  }\n  isActive(editor) {\n    return this.#activeEditor === editor;\n  }\n  getActive() {\n    return this.#activeEditor;\n  }\n  getMode() {\n    return this.#mode;\n  }\n  isEditingMode() {\n    return this.#mode !== AnnotationEditorType.NONE;\n  }\n  get imageManager() {\n    return shadow(this, \"imageManager\", new ImageManager());\n  }\n  getSelectionBoxes(textLayer) {\n    if (!textLayer) {\n      return null;\n    }\n    const selection = document.getSelection();\n    for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n      if (!textLayer.contains(selection.getRangeAt(i).commonAncestorContainer)) {\n        return null;\n      }\n    }\n    const {\n      x: layerX,\n      y: layerY,\n      width: parentWidth,\n      height: parentHeight\n    } = textLayer.getBoundingClientRect();\n    let rotator;\n    switch (textLayer.getAttribute(\"data-main-rotation\")) {\n      case \"90\":\n        rotator = (x, y, w, h) => ({\n          x: (y - layerY) / parentHeight,\n          y: 1 - (x + w - layerX) / parentWidth,\n          width: h / parentHeight,\n          height: w / parentWidth\n        });\n        break;\n      case \"180\":\n        rotator = (x, y, w, h) => ({\n          x: 1 - (x + w - layerX) / parentWidth,\n          y: 1 - (y + h - layerY) / parentHeight,\n          width: w / parentWidth,\n          height: h / parentHeight\n        });\n        break;\n      case \"270\":\n        rotator = (x, y, w, h) => ({\n          x: 1 - (y + h - layerY) / parentHeight,\n          y: (x - layerX) / parentWidth,\n          width: h / parentHeight,\n          height: w / parentWidth\n        });\n        break;\n      default:\n        rotator = (x, y, w, h) => ({\n          x: (x - layerX) / parentWidth,\n          y: (y - layerY) / parentHeight,\n          width: w / parentWidth,\n          height: h / parentHeight\n        });\n        break;\n    }\n    const boxes = [];\n    for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n      const range = selection.getRangeAt(i);\n      if (range.collapsed) {\n        continue;\n      }\n      for (const {\n        x,\n        y,\n        width,\n        height\n      } of range.getClientRects()) {\n        if (width === 0 || height === 0) {\n          continue;\n        }\n        boxes.push(rotator(x, y, width, height));\n      }\n    }\n    return boxes.length === 0 ? null : boxes;\n  }\n  addChangedExistingAnnotation({\n    annotationElementId,\n    id\n  }) {\n    (this.#changedExistingAnnotations ||= new Map()).set(annotationElementId, id);\n  }\n  removeChangedExistingAnnotation({\n    annotationElementId\n  }) {\n    this.#changedExistingAnnotations?.delete(annotationElementId);\n  }\n  renderAnnotationElement(annotation) {\n    const editorId = this.#changedExistingAnnotations?.get(annotation.data.id);\n    if (!editorId) {\n      return;\n    }\n    const editor = this.#annotationStorage.getRawValue(editorId);\n    if (!editor) {\n      return;\n    }\n    if (this.#mode === AnnotationEditorType.NONE && !editor.hasBeenModified) {\n      return;\n    }\n    editor.renderAnnotationElement(annotation);\n  }\n  setMissingCanvas(annotationId, annotationElementId, canvas) {\n    const editor = this.#missingCanvases?.get(annotationId);\n    if (!editor) {\n      return;\n    }\n    editor.setCanvas(annotationElementId, canvas);\n    this.#missingCanvases.delete(annotationId);\n  }\n  addMissingCanvas(annotationId, editor) {\n    (this.#missingCanvases ||= new Map()).set(annotationId, editor);\n  }\n}\n\n;// ./src/display/editor/alt_text.js\n\nclass AltText {\n  #altText = null;\n  #altTextDecorative = false;\n  #altTextButton = null;\n  #altTextButtonLabel = null;\n  #altTextTooltip = null;\n  #altTextTooltipTimeout = null;\n  #altTextWasFromKeyBoard = false;\n  #badge = null;\n  #editor = null;\n  #guessedText = null;\n  #textWithDisclaimer = null;\n  #useNewAltTextFlow = false;\n  static #l10nNewButton = null;\n  static _l10n = null;\n  constructor(editor) {\n    this.#editor = editor;\n    this.#useNewAltTextFlow = editor._uiManager.useNewAltTextFlow;\n    AltText.#l10nNewButton ||= Object.freeze({\n      added: \"pdfjs-editor-new-alt-text-added-button\",\n      \"added-label\": \"pdfjs-editor-new-alt-text-added-button-label\",\n      missing: \"pdfjs-editor-new-alt-text-missing-button\",\n      \"missing-label\": \"pdfjs-editor-new-alt-text-missing-button-label\",\n      review: \"pdfjs-editor-new-alt-text-to-review-button\",\n      \"review-label\": \"pdfjs-editor-new-alt-text-to-review-button-label\"\n    });\n  }\n  static initialize(l10n) {\n    AltText._l10n ??= l10n;\n  }\n  async render() {\n    const altText = this.#altTextButton = document.createElement(\"button\");\n    altText.className = \"altText\";\n    altText.tabIndex = \"0\";\n    const label = this.#altTextButtonLabel = document.createElement(\"span\");\n    altText.append(label);\n    if (this.#useNewAltTextFlow) {\n      altText.classList.add(\"new\");\n      altText.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton.missing);\n      label.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[\"missing-label\"]);\n    } else {\n      altText.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button\");\n      label.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button-label\");\n    }\n    const signal = this.#editor._uiManager._signal;\n    altText.addEventListener(\"contextmenu\", noContextMenu, {\n      signal\n    });\n    altText.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n      signal\n    });\n    const onClick = event => {\n      event.preventDefault();\n      this.#editor._uiManager.editAltText(this.#editor);\n      if (this.#useNewAltTextFlow) {\n        this.#editor._reportTelemetry({\n          action: \"pdfjs.image.alt_text.image_status_label_clicked\",\n          data: {\n            label: this.#label\n          }\n        });\n      }\n    };\n    altText.addEventListener(\"click\", onClick, {\n      capture: true,\n      signal\n    });\n    altText.addEventListener(\"keydown\", event => {\n      if (event.target === altText && event.key === \"Enter\") {\n        this.#altTextWasFromKeyBoard = true;\n        onClick(event);\n      }\n    }, {\n      signal\n    });\n    await this.#setState();\n    return altText;\n  }\n  get #label() {\n    return this.#altText && \"added\" || this.#altText === null && this.guessedText && \"review\" || \"missing\";\n  }\n  finish() {\n    if (!this.#altTextButton) {\n      return;\n    }\n    this.#altTextButton.focus({\n      focusVisible: this.#altTextWasFromKeyBoard\n    });\n    this.#altTextWasFromKeyBoard = false;\n  }\n  isEmpty() {\n    if (this.#useNewAltTextFlow) {\n      return this.#altText === null;\n    }\n    return !this.#altText && !this.#altTextDecorative;\n  }\n  hasData() {\n    if (this.#useNewAltTextFlow) {\n      return this.#altText !== null || !!this.#guessedText;\n    }\n    return this.isEmpty();\n  }\n  get guessedText() {\n    return this.#guessedText;\n  }\n  async setGuessedText(guessedText) {\n    if (this.#altText !== null) {\n      return;\n    }\n    this.#guessedText = guessedText;\n    this.#textWithDisclaimer = await AltText._l10n.get(\"pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer\", {\n      generatedAltText: guessedText\n    });\n    this.#setState();\n  }\n  toggleAltTextBadge(visibility = false) {\n    if (!this.#useNewAltTextFlow || this.#altText) {\n      this.#badge?.remove();\n      this.#badge = null;\n      return;\n    }\n    if (!this.#badge) {\n      const badge = this.#badge = document.createElement(\"div\");\n      badge.className = \"noAltTextBadge\";\n      this.#editor.div.append(badge);\n    }\n    this.#badge.classList.toggle(\"hidden\", !visibility);\n  }\n  serialize(isForCopying) {\n    let altText = this.#altText;\n    if (!isForCopying && this.#guessedText === altText) {\n      altText = this.#textWithDisclaimer;\n    }\n    return {\n      altText,\n      decorative: this.#altTextDecorative,\n      guessedText: this.#guessedText,\n      textWithDisclaimer: this.#textWithDisclaimer\n    };\n  }\n  get data() {\n    return {\n      altText: this.#altText,\n      decorative: this.#altTextDecorative\n    };\n  }\n  set data({\n    altText,\n    decorative,\n    guessedText,\n    textWithDisclaimer,\n    cancel = false\n  }) {\n    if (guessedText) {\n      this.#guessedText = guessedText;\n      this.#textWithDisclaimer = textWithDisclaimer;\n    }\n    if (this.#altText === altText && this.#altTextDecorative === decorative) {\n      return;\n    }\n    if (!cancel) {\n      this.#altText = altText;\n      this.#altTextDecorative = decorative;\n    }\n    this.#setState();\n  }\n  toggle(enabled = false) {\n    if (!this.#altTextButton) {\n      return;\n    }\n    if (!enabled && this.#altTextTooltipTimeout) {\n      clearTimeout(this.#altTextTooltipTimeout);\n      this.#altTextTooltipTimeout = null;\n    }\n    this.#altTextButton.disabled = !enabled;\n  }\n  shown() {\n    this.#editor._reportTelemetry({\n      action: \"pdfjs.image.alt_text.image_status_label_displayed\",\n      data: {\n        label: this.#label\n      }\n    });\n  }\n  destroy() {\n    this.#altTextButton?.remove();\n    this.#altTextButton = null;\n    this.#altTextButtonLabel = null;\n    this.#altTextTooltip = null;\n    this.#badge?.remove();\n    this.#badge = null;\n  }\n  async #setState() {\n    const button = this.#altTextButton;\n    if (!button) {\n      return;\n    }\n    if (this.#useNewAltTextFlow) {\n      button.classList.toggle(\"done\", !!this.#altText);\n      button.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[this.#label]);\n      this.#altTextButtonLabel?.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[`${this.#label}-label`]);\n      if (!this.#altText) {\n        this.#altTextTooltip?.remove();\n        return;\n      }\n    } else {\n      if (!this.#altText && !this.#altTextDecorative) {\n        button.classList.remove(\"done\");\n        this.#altTextTooltip?.remove();\n        return;\n      }\n      button.classList.add(\"done\");\n      button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-edit-button\");\n    }\n    let tooltip = this.#altTextTooltip;\n    if (!tooltip) {\n      this.#altTextTooltip = tooltip = document.createElement(\"span\");\n      tooltip.className = \"tooltip\";\n      tooltip.setAttribute(\"role\", \"tooltip\");\n      tooltip.id = `alt-text-tooltip-${this.#editor.id}`;\n      const DELAY_TO_SHOW_TOOLTIP = 100;\n      const signal = this.#editor._uiManager._signal;\n      signal.addEventListener(\"abort\", () => {\n        clearTimeout(this.#altTextTooltipTimeout);\n        this.#altTextTooltipTimeout = null;\n      }, {\n        once: true\n      });\n      button.addEventListener(\"mouseenter\", () => {\n        this.#altTextTooltipTimeout = setTimeout(() => {\n          this.#altTextTooltipTimeout = null;\n          this.#altTextTooltip.classList.add(\"show\");\n          this.#editor._reportTelemetry({\n            action: \"alt_text_tooltip\"\n          });\n        }, DELAY_TO_SHOW_TOOLTIP);\n      }, {\n        signal\n      });\n      button.addEventListener(\"mouseleave\", () => {\n        if (this.#altTextTooltipTimeout) {\n          clearTimeout(this.#altTextTooltipTimeout);\n          this.#altTextTooltipTimeout = null;\n        }\n        this.#altTextTooltip?.classList.remove(\"show\");\n      }, {\n        signal\n      });\n    }\n    if (this.#altTextDecorative) {\n      tooltip.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-decorative-tooltip\");\n    } else {\n      tooltip.removeAttribute(\"data-l10n-id\");\n      tooltip.textContent = this.#altText;\n    }\n    if (!tooltip.parentNode) {\n      button.append(tooltip);\n    }\n    const element = this.#editor.getElementForAltText();\n    element?.setAttribute(\"aria-describedby\", tooltip.id);\n  }\n}\n\n;// ./src/display/editor/comment.js\n\nclass Comment {\n  #commentStandaloneButton = null;\n  #commentToolbarButton = null;\n  #commentWasFromKeyBoard = false;\n  #editor = null;\n  #initialText = null;\n  #richText = null;\n  #text = null;\n  #date = null;\n  #deleted = false;\n  #popupPosition = null;\n  constructor(editor) {\n    this.#editor = editor;\n  }\n  renderForToolbar() {\n    const button = this.#commentToolbarButton = document.createElement(\"button\");\n    button.className = \"comment\";\n    return this.#render(button, false);\n  }\n  renderForStandalone() {\n    const button = this.#commentStandaloneButton = document.createElement(\"button\");\n    button.className = \"annotationCommentButton\";\n    const position = this.#editor.commentButtonPosition;\n    if (position) {\n      const {\n        style\n      } = button;\n      style.insetInlineEnd = `calc(${100 * (this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0])}% - var(--comment-button-dim))`;\n      style.top = `calc(${100 * position[1]}% - var(--comment-button-dim))`;\n      const color = this.#editor.commentButtonColor;\n      if (color) {\n        style.backgroundColor = color;\n      }\n    }\n    return this.#render(button, true);\n  }\n  focusButton() {\n    setTimeout(() => {\n      (this.#commentStandaloneButton ?? this.#commentToolbarButton)?.focus();\n    }, 0);\n  }\n  onUpdatedColor() {\n    if (!this.#commentStandaloneButton) {\n      return;\n    }\n    const color = this.#editor.commentButtonColor;\n    if (color) {\n      this.#commentStandaloneButton.style.backgroundColor = color;\n    }\n    this.#editor._uiManager.updatePopupColor(this.#editor);\n  }\n  get commentButtonWidth() {\n    return (this.#commentStandaloneButton?.getBoundingClientRect().width ?? 0) / this.#editor.parent.boundingClientRect.width;\n  }\n  get commentPopupPositionInLayer() {\n    if (this.#popupPosition) {\n      return this.#popupPosition;\n    }\n    if (!this.#commentStandaloneButton) {\n      return null;\n    }\n    const {\n      x,\n      y,\n      height\n    } = this.#commentStandaloneButton.getBoundingClientRect();\n    const {\n      x: parentX,\n      y: parentY,\n      width: parentWidth,\n      height: parentHeight\n    } = this.#editor.parent.boundingClientRect;\n    return [(x - parentX) / parentWidth, (y + height - parentY) / parentHeight];\n  }\n  set commentPopupPositionInLayer(pos) {\n    this.#popupPosition = pos;\n  }\n  hasDefaultPopupPosition() {\n    return this.#popupPosition === null;\n  }\n  removeStandaloneCommentButton() {\n    this.#commentStandaloneButton?.remove();\n    this.#commentStandaloneButton = null;\n  }\n  removeToolbarCommentButton() {\n    this.#commentToolbarButton?.remove();\n    this.#commentToolbarButton = null;\n  }\n  setCommentButtonStates({\n    selected,\n    hasPopup\n  }) {\n    if (!this.#commentStandaloneButton) {\n      return;\n    }\n    this.#commentStandaloneButton.classList.toggle(\"selected\", selected);\n    this.#commentStandaloneButton.ariaExpanded = hasPopup;\n  }\n  #render(comment, isStandalone) {\n    if (!this.#editor._uiManager.hasCommentManager()) {\n      return null;\n    }\n    comment.tabIndex = \"0\";\n    comment.ariaHasPopup = \"dialog\";\n    if (isStandalone) {\n      comment.ariaControls = \"commentPopup\";\n      comment.setAttribute(\"data-l10n-id\", \"pdfjs-show-comment-button\");\n    } else {\n      comment.ariaControlsElements = [this.#editor._uiManager.getCommentDialogElement()];\n      comment.setAttribute(\"data-l10n-id\", \"pdfjs-editor-add-comment-button\");\n    }\n    const signal = this.#editor._uiManager._signal;\n    if (!(signal instanceof AbortSignal) || signal.aborted) {\n      return comment;\n    }\n    comment.addEventListener(\"contextmenu\", noContextMenu, {\n      signal\n    });\n    if (isStandalone) {\n      comment.addEventListener(\"focusin\", e => {\n        this.#editor._focusEventsAllowed = false;\n        stopEvent(e);\n      }, {\n        capture: true,\n        signal\n      });\n      comment.addEventListener(\"focusout\", e => {\n        this.#editor._focusEventsAllowed = true;\n        stopEvent(e);\n      }, {\n        capture: true,\n        signal\n      });\n    }\n    comment.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n      signal\n    });\n    const onClick = event => {\n      event.preventDefault();\n      if (comment === this.#commentToolbarButton) {\n        this.edit();\n      } else {\n        this.#editor.toggleComment(true);\n      }\n    };\n    comment.addEventListener(\"click\", onClick, {\n      capture: true,\n      signal\n    });\n    comment.addEventListener(\"keydown\", event => {\n      if (event.target === comment && event.key === \"Enter\") {\n        this.#commentWasFromKeyBoard = true;\n        onClick(event);\n      }\n    }, {\n      signal\n    });\n    comment.addEventListener(\"pointerenter\", () => {\n      this.#editor.toggleComment(false, true);\n    }, {\n      signal\n    });\n    comment.addEventListener(\"pointerleave\", () => {\n      this.#editor.toggleComment(false, false);\n    }, {\n      signal\n    });\n    return comment;\n  }\n  edit(options) {\n    const position = this.commentPopupPositionInLayer;\n    let posX, posY;\n    if (position) {\n      [posX, posY] = position;\n    } else {\n      [posX, posY] = this.#editor.commentButtonPosition;\n      const {\n        width,\n        height,\n        x,\n        y\n      } = this.#editor;\n      posX = x + posX * width;\n      posY = y + posY * height;\n    }\n    const parentDimensions = this.#editor.parent.boundingClientRect;\n    const {\n      x: parentX,\n      y: parentY,\n      width: parentWidth,\n      height: parentHeight\n    } = parentDimensions;\n    this.#editor._uiManager.editComment(this.#editor, parentX + posX * parentWidth, parentY + posY * parentHeight, {\n      ...options,\n      parentDimensions\n    });\n  }\n  finish() {\n    if (!this.#commentToolbarButton) {\n      return;\n    }\n    this.#commentToolbarButton.focus({\n      focusVisible: this.#commentWasFromKeyBoard\n    });\n    this.#commentWasFromKeyBoard = false;\n  }\n  isDeleted() {\n    return this.#deleted || this.#text === \"\";\n  }\n  isEmpty() {\n    return this.#text === null;\n  }\n  hasBeenEdited() {\n    return this.isDeleted() || this.#text !== this.#initialText;\n  }\n  serialize() {\n    return this.data;\n  }\n  get data() {\n    return {\n      text: this.#text,\n      richText: this.#richText,\n      date: this.#date,\n      deleted: this.isDeleted()\n    };\n  }\n  set data(text) {\n    if (text !== this.#text) {\n      this.#richText = null;\n    }\n    if (text === null) {\n      this.#text = \"\";\n      this.#deleted = true;\n      return;\n    }\n    this.#text = text;\n    this.#date = new Date();\n    this.#deleted = false;\n  }\n  restoreData({\n    text,\n    richText,\n    date\n  }) {\n    this.#text = text;\n    this.#richText = richText;\n    this.#date = date;\n    this.#deleted = false;\n  }\n  setInitialText(text, richText = null) {\n    this.#initialText = text;\n    this.data = text;\n    this.#date = null;\n    this.#richText = richText;\n  }\n  shown() {}\n  destroy() {\n    this.#commentToolbarButton?.remove();\n    this.#commentToolbarButton = null;\n    this.#commentStandaloneButton?.remove();\n    this.#commentStandaloneButton = null;\n    this.#text = \"\";\n    this.#richText = null;\n    this.#date = null;\n    this.#editor = null;\n    this.#commentWasFromKeyBoard = false;\n    this.#deleted = false;\n  }\n}\n\n;// ./src/display/touch_manager.js\n\nclass TouchManager {\n  #container;\n  #isPinching = false;\n  #isPinchingStopped = null;\n  #isPinchingDisabled;\n  #onPinchStart;\n  #onPinching;\n  #onPinchEnd;\n  #pointerDownAC = null;\n  #signal;\n  #touchInfo = null;\n  #touchManagerAC;\n  #touchMoveAC = null;\n  constructor({\n    container,\n    isPinchingDisabled = null,\n    isPinchingStopped = null,\n    onPinchStart = null,\n    onPinching = null,\n    onPinchEnd = null,\n    signal\n  }) {\n    this.#container = container;\n    this.#isPinchingStopped = isPinchingStopped;\n    this.#isPinchingDisabled = isPinchingDisabled;\n    this.#onPinchStart = onPinchStart;\n    this.#onPinching = onPinching;\n    this.#onPinchEnd = onPinchEnd;\n    this.#touchManagerAC = new AbortController();\n    this.#signal = AbortSignal.any([signal, this.#touchManagerAC.signal]);\n    container.addEventListener(\"touchstart\", this.#onTouchStart.bind(this), {\n      passive: false,\n      signal: this.#signal\n    });\n  }\n  get MIN_TOUCH_DISTANCE_TO_PINCH() {\n    return 35 / OutputScale.pixelRatio;\n  }\n  #onTouchStart(evt) {\n    if (this.#isPinchingDisabled?.()) {\n      return;\n    }\n    if (evt.touches.length === 1) {\n      if (this.#pointerDownAC) {\n        return;\n      }\n      const pointerDownAC = this.#pointerDownAC = new AbortController();\n      const signal = AbortSignal.any([this.#signal, pointerDownAC.signal]);\n      const container = this.#container;\n      const opts = {\n        capture: true,\n        signal,\n        passive: false\n      };\n      const cancelPointerDown = e => {\n        if (e.pointerType === \"touch\") {\n          this.#pointerDownAC?.abort();\n          this.#pointerDownAC = null;\n        }\n      };\n      container.addEventListener(\"pointerdown\", e => {\n        if (e.pointerType === \"touch\") {\n          stopEvent(e);\n          cancelPointerDown(e);\n        }\n      }, opts);\n      container.addEventListener(\"pointerup\", cancelPointerDown, opts);\n      container.addEventListener(\"pointercancel\", cancelPointerDown, opts);\n      return;\n    }\n    if (!this.#touchMoveAC) {\n      this.#touchMoveAC = new AbortController();\n      const signal = AbortSignal.any([this.#signal, this.#touchMoveAC.signal]);\n      const container = this.#container;\n      const opt = {\n        signal,\n        capture: false,\n        passive: false\n      };\n      container.addEventListener(\"touchmove\", this.#onTouchMove.bind(this), opt);\n      const onTouchEnd = this.#onTouchEnd.bind(this);\n      container.addEventListener(\"touchend\", onTouchEnd, opt);\n      container.addEventListener(\"touchcancel\", onTouchEnd, opt);\n      opt.capture = true;\n      container.addEventListener(\"pointerdown\", stopEvent, opt);\n      container.addEventListener(\"pointermove\", stopEvent, opt);\n      container.addEventListener(\"pointercancel\", stopEvent, opt);\n      container.addEventListener(\"pointerup\", stopEvent, opt);\n      this.#onPinchStart?.();\n    }\n    stopEvent(evt);\n    if (evt.touches.length !== 2 || this.#isPinchingStopped?.()) {\n      this.#touchInfo = null;\n      return;\n    }\n    let [touch0, touch1] = evt.touches;\n    if (touch0.identifier > touch1.identifier) {\n      [touch0, touch1] = [touch1, touch0];\n    }\n    this.#touchInfo = {\n      touch0X: touch0.screenX,\n      touch0Y: touch0.screenY,\n      touch1X: touch1.screenX,\n      touch1Y: touch1.screenY\n    };\n  }\n  #onTouchMove(evt) {\n    if (!this.#touchInfo || evt.touches.length !== 2) {\n      return;\n    }\n    stopEvent(evt);\n    let [touch0, touch1] = evt.touches;\n    if (touch0.identifier > touch1.identifier) {\n      [touch0, touch1] = [touch1, touch0];\n    }\n    const {\n      screenX: screen0X,\n      screenY: screen0Y\n    } = touch0;\n    const {\n      screenX: screen1X,\n      screenY: screen1Y\n    } = touch1;\n    const touchInfo = this.#touchInfo;\n    const {\n      touch0X: pTouch0X,\n      touch0Y: pTouch0Y,\n      touch1X: pTouch1X,\n      touch1Y: pTouch1Y\n    } = touchInfo;\n    const prevGapX = pTouch1X - pTouch0X;\n    const prevGapY = pTouch1Y - pTouch0Y;\n    const currGapX = screen1X - screen0X;\n    const currGapY = screen1Y - screen0Y;\n    const distance = Math.hypot(currGapX, currGapY) || 1;\n    const pDistance = Math.hypot(prevGapX, prevGapY) || 1;\n    if (!this.#isPinching && Math.abs(pDistance - distance) <= TouchManager.MIN_TOUCH_DISTANCE_TO_PINCH) {\n      return;\n    }\n    touchInfo.touch0X = screen0X;\n    touchInfo.touch0Y = screen0Y;\n    touchInfo.touch1X = screen1X;\n    touchInfo.touch1Y = screen1Y;\n    if (!this.#isPinching) {\n      this.#isPinching = true;\n      return;\n    }\n    const origin = [(screen0X + screen1X) / 2, (screen0Y + screen1Y) / 2];\n    this.#onPinching?.(origin, pDistance, distance);\n  }\n  #onTouchEnd(evt) {\n    if (evt.touches.length >= 2) {\n      return;\n    }\n    if (this.#touchMoveAC) {\n      this.#touchMoveAC.abort();\n      this.#touchMoveAC = null;\n      this.#onPinchEnd?.();\n    }\n    if (!this.#touchInfo) {\n      return;\n    }\n    stopEvent(evt);\n    this.#touchInfo = null;\n    this.#isPinching = false;\n  }\n  destroy() {\n    this.#touchManagerAC?.abort();\n    this.#touchManagerAC = null;\n    this.#pointerDownAC?.abort();\n    this.#pointerDownAC = null;\n  }\n}\n\n;// ./src/display/editor/editor.js\n\n\n\n\n\n\n\n\nclass AnnotationEditor {\n  #accessibilityData = null;\n  #allResizerDivs = null;\n  #altText = null;\n  #comment = null;\n  #commentStandaloneButton = null;\n  #disabled = false;\n  #dragPointerId = null;\n  #dragPointerType = \"\";\n  #resizersDiv = null;\n  #lastPointerCoords = null;\n  #savedDimensions = null;\n  #fakeAnnotation = null;\n  #focusAC = null;\n  #focusedResizerName = \"\";\n  #hasBeenClicked = false;\n  #initialRect = null;\n  #isEditing = false;\n  #isInEditMode = false;\n  #isResizerEnabledForKeyboard = false;\n  #moveInDOMTimeout = null;\n  #prevDragX = 0;\n  #prevDragY = 0;\n  #telemetryTimeouts = null;\n  #touchManager = null;\n  isSelected = false;\n  _isCopy = false;\n  _editToolbar = null;\n  _initialOptions = Object.create(null);\n  _initialData = null;\n  _isVisible = true;\n  _uiManager = null;\n  _focusEventsAllowed = true;\n  static _l10n = null;\n  static _l10nAlert = null;\n  static _l10nResizer = null;\n  #isDraggable = false;\n  #zIndex = AnnotationEditor._zIndex++;\n  static _borderLineWidth = -1;\n  static _colorManager = new ColorManager();\n  static _zIndex = 1;\n  static _telemetryTimeout = 1000;\n  static get _resizerKeyboardManager() {\n    const resize = AnnotationEditor.prototype._resizeWithKeyboard;\n    const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n    const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n    return shadow(this, \"_resizerKeyboardManager\", new KeyboardManager([[[\"ArrowLeft\"], resize, {\n      args: [-small, 0]\n    }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], resize, {\n      args: [-big, 0]\n    }], [[\"ArrowRight\"], resize, {\n      args: [small, 0]\n    }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], resize, {\n      args: [big, 0]\n    }], [[\"ArrowUp\"], resize, {\n      args: [0, -small]\n    }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], resize, {\n      args: [0, -big]\n    }], [[\"ArrowDown\"], resize, {\n      args: [0, small]\n    }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], resize, {\n      args: [0, big]\n    }], [[\"Escape\"], AnnotationEditor.prototype._stopResizingWithKeyboard]]));\n  }\n  constructor(parameters) {\n    this.parent = parameters.parent;\n    this.id = parameters.id;\n    this.width = this.height = null;\n    this.pageIndex = parameters.parent.pageIndex;\n    this.name = parameters.name;\n    this.div = null;\n    this._uiManager = parameters.uiManager;\n    this.annotationElementId = null;\n    this._willKeepAspectRatio = false;\n    this._initialOptions.isCentered = parameters.isCentered;\n    this._structTreeParentId = null;\n    this.annotationElementId = parameters.annotationElementId || null;\n    this.creationDate = parameters.creationDate || new Date();\n    this.modificationDate = parameters.modificationDate || null;\n    this.canAddComment = true;\n    const {\n      rotation,\n      rawDims: {\n        pageWidth,\n        pageHeight,\n        pageX,\n        pageY\n      }\n    } = this.parent.viewport;\n    this.rotation = rotation;\n    this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n    this.pageDimensions = [pageWidth, pageHeight];\n    this.pageTranslation = [pageX, pageY];\n    const [width, height] = this.parentDimensions;\n    this.x = parameters.x / width;\n    this.y = parameters.y / height;\n    this.isAttachedToDOM = false;\n    this.deleted = false;\n  }\n  updatePageIndex(newPageIndex) {\n    this.pageIndex = newPageIndex;\n  }\n  get editorType() {\n    return Object.getPrototypeOf(this).constructor._type;\n  }\n  get mode() {\n    return Object.getPrototypeOf(this).constructor._editorType;\n  }\n  static get isDrawer() {\n    return false;\n  }\n  static get _defaultLineColor() {\n    return shadow(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n  }\n  static deleteAnnotationElement(editor) {\n    const fakeEditor = new FakeEditor({\n      id: editor._uiManager.getId(),\n      parent: editor.parent,\n      uiManager: editor._uiManager\n    });\n    fakeEditor.annotationElementId = editor.annotationElementId;\n    fakeEditor.deleted = true;\n    fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n  }\n  static initialize(l10n, _uiManager) {\n    AnnotationEditor._l10n ??= l10n;\n    AnnotationEditor._l10nAlert ??= Object.freeze({\n      highlight: \"pdfjs-editor-highlight-added-alert\",\n      freetext: \"pdfjs-editor-freetext-added-alert\",\n      ink: \"pdfjs-editor-ink-added-alert\",\n      stamp: \"pdfjs-editor-stamp-added-alert\",\n      signature: \"pdfjs-editor-signature-added-alert\"\n    });\n    AnnotationEditor._l10nResizer ??= Object.freeze({\n      topLeft: \"pdfjs-editor-resizer-top-left\",\n      topMiddle: \"pdfjs-editor-resizer-top-middle\",\n      topRight: \"pdfjs-editor-resizer-top-right\",\n      middleRight: \"pdfjs-editor-resizer-middle-right\",\n      bottomRight: \"pdfjs-editor-resizer-bottom-right\",\n      bottomMiddle: \"pdfjs-editor-resizer-bottom-middle\",\n      bottomLeft: \"pdfjs-editor-resizer-bottom-left\",\n      middleLeft: \"pdfjs-editor-resizer-middle-left\"\n    });\n    if (AnnotationEditor._borderLineWidth !== -1) {\n      return;\n    }\n    const style = getComputedStyle(document.documentElement);\n    AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n  }\n  static updateDefaultParams(_type, _value) {}\n  static get defaultPropertiesToUpdate() {\n    return [];\n  }\n  static isHandlingMimeForPasting(mime) {\n    return false;\n  }\n  static paste(item, parent) {\n    unreachable(\"Not implemented\");\n  }\n  get propertiesToUpdate() {\n    return [];\n  }\n  get _isDraggable() {\n    return this.#isDraggable;\n  }\n  set _isDraggable(value) {\n    this.#isDraggable = value;\n    this.div?.classList.toggle(\"draggable\", value);\n  }\n  get uid() {\n    return this.annotationElementId || this.id;\n  }\n  get isEnterHandled() {\n    return true;\n  }\n  center() {\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    switch (this.parentRotation) {\n      case 90:\n        this.x -= this.height * pageHeight / (pageWidth * 2);\n        this.y += this.width * pageWidth / (pageHeight * 2);\n        break;\n      case 180:\n        this.x += this.width / 2;\n        this.y += this.height / 2;\n        break;\n      case 270:\n        this.x += this.height * pageHeight / (pageWidth * 2);\n        this.y -= this.width * pageWidth / (pageHeight * 2);\n        break;\n      default:\n        this.x -= this.width / 2;\n        this.y -= this.height / 2;\n        break;\n    }\n    this.fixAndSetPosition();\n  }\n  addCommands(params) {\n    this._uiManager.addCommands(params);\n  }\n  get currentLayer() {\n    return this._uiManager.currentLayer;\n  }\n  setInBackground() {\n    this.div.style.zIndex = 0;\n  }\n  setInForeground() {\n    this.div.style.zIndex = this.#zIndex;\n  }\n  setParent(parent) {\n    if (parent !== null) {\n      this.pageIndex = parent.pageIndex;\n      this.pageDimensions = parent.pageDimensions;\n    } else {\n      this.#stopResizing();\n      this.#fakeAnnotation?.remove();\n      this.#fakeAnnotation = null;\n    }\n    this.parent = parent;\n  }\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    if (!this.#hasBeenClicked) {\n      this.parent.setSelected(this);\n    } else {\n      this.#hasBeenClicked = false;\n    }\n  }\n  focusout(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    if (!this.isAttachedToDOM) {\n      return;\n    }\n    const target = event.relatedTarget;\n    if (target?.closest(`#${this.id}`)) {\n      return;\n    }\n    event.preventDefault();\n    if (!this.parent?.isMultipleSelection) {\n      this.commitOrRemove();\n    }\n  }\n  commitOrRemove() {\n    if (this.isEmpty()) {\n      this.remove();\n    } else {\n      this.commit();\n    }\n  }\n  commit() {\n    if (!this.isInEditMode()) {\n      return;\n    }\n    this.addToAnnotationStorage();\n  }\n  addToAnnotationStorage() {\n    this._uiManager.addToAnnotationStorage(this);\n  }\n  setAt(x, y, tx, ty) {\n    const [width, height] = this.parentDimensions;\n    [tx, ty] = this.screenToPageTranslation(tx, ty);\n    this.x = (x + tx) / width;\n    this.y = (y + ty) / height;\n    this.fixAndSetPosition();\n  }\n  _moveAfterPaste(baseX, baseY) {\n    if (this.isClone) {\n      delete this.isClone;\n      return;\n    }\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n    this._onTranslated();\n  }\n  #translate([width, height], x, y) {\n    [x, y] = this.screenToPageTranslation(x, y);\n    this.x += x / width;\n    this.y += y / height;\n    this._onTranslating(this.x, this.y);\n    this.fixAndSetPosition();\n  }\n  translate(x, y) {\n    this.#translate(this.parentDimensions, x, y);\n  }\n  translateInPage(x, y) {\n    this.#initialRect ||= [this.x, this.y, this.width, this.height];\n    this.#translate(this.pageDimensions, x, y);\n    this.div.scrollIntoView({\n      block: \"nearest\"\n    });\n  }\n  translationDone() {\n    this._onTranslated(this.x, this.y);\n  }\n  drag(tx, ty) {\n    this.#initialRect ||= [this.x, this.y, this.width, this.height];\n    const {\n      div,\n      parentDimensions: [parentWidth, parentHeight]\n    } = this;\n    this.x += tx / parentWidth;\n    this.y += ty / parentHeight;\n    if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n      const {\n        x,\n        y\n      } = this.div.getBoundingClientRect();\n      if (this.parent.findNewParent(this, x, y)) {\n        this.x -= Math.floor(this.x);\n        this.y -= Math.floor(this.y);\n      }\n    }\n    let {\n      x,\n      y\n    } = this;\n    const [bx, by] = this.getBaseTranslation();\n    x += bx;\n    y += by;\n    const {\n      style\n    } = div;\n    style.left = `${(100 * x).toFixed(2)}%`;\n    style.top = `${(100 * y).toFixed(2)}%`;\n    this._onTranslating(x, y);\n    div.scrollIntoView({\n      block: \"nearest\"\n    });\n  }\n  _onTranslating(x, y) {}\n  _onTranslated(x, y) {}\n  get _hasBeenMoved() {\n    return !!this.#initialRect && (this.#initialRect[0] !== this.x || this.#initialRect[1] !== this.y);\n  }\n  get _hasBeenResized() {\n    return !!this.#initialRect && (this.#initialRect[2] !== this.width || this.#initialRect[3] !== this.height);\n  }\n  getBaseTranslation() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const {\n      _borderLineWidth\n    } = AnnotationEditor;\n    const x = _borderLineWidth / parentWidth;\n    const y = _borderLineWidth / parentHeight;\n    switch (this.rotation) {\n      case 90:\n        return [-x, y];\n      case 180:\n        return [x, y];\n      case 270:\n        return [x, -y];\n      default:\n        return [-x, -y];\n    }\n  }\n  get _mustFixPosition() {\n    return true;\n  }\n  fixAndSetPosition(rotation = this.rotation) {\n    const {\n      div: {\n        style\n      },\n      pageDimensions: [pageWidth, pageHeight]\n    } = this;\n    let {\n      x,\n      y,\n      width,\n      height\n    } = this;\n    width *= pageWidth;\n    height *= pageHeight;\n    x *= pageWidth;\n    y *= pageHeight;\n    if (this._mustFixPosition) {\n      switch (rotation) {\n        case 0:\n          x = MathClamp(x, 0, pageWidth - width);\n          y = MathClamp(y, 0, pageHeight - height);\n          break;\n        case 90:\n          x = MathClamp(x, 0, pageWidth - height);\n          y = MathClamp(y, width, pageHeight);\n          break;\n        case 180:\n          x = MathClamp(x, width, pageWidth);\n          y = MathClamp(y, height, pageHeight);\n          break;\n        case 270:\n          x = MathClamp(x, height, pageWidth);\n          y = MathClamp(y, 0, pageHeight - width);\n          break;\n      }\n    }\n    this.x = x /= pageWidth;\n    this.y = y /= pageHeight;\n    const [bx, by] = this.getBaseTranslation();\n    x += bx;\n    y += by;\n    style.left = `${(100 * x).toFixed(2)}%`;\n    style.top = `${(100 * y).toFixed(2)}%`;\n    this.moveInDOM();\n  }\n  static #rotatePoint(x, y, angle) {\n    switch (angle) {\n      case 90:\n        return [y, -x];\n      case 180:\n        return [-x, -y];\n      case 270:\n        return [-y, x];\n      default:\n        return [x, y];\n    }\n  }\n  screenToPageTranslation(x, y) {\n    return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n  }\n  pageTranslationToScreen(x, y) {\n    return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n  }\n  #getRotationMatrix(rotation) {\n    switch (rotation) {\n      case 90:\n        {\n          const [pageWidth, pageHeight] = this.pageDimensions;\n          return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n        }\n      case 180:\n        return [-1, 0, 0, -1];\n      case 270:\n        {\n          const [pageWidth, pageHeight] = this.pageDimensions;\n          return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n        }\n      default:\n        return [1, 0, 0, 1];\n    }\n  }\n  get parentScale() {\n    return this._uiManager.viewParameters.realScale;\n  }\n  get parentRotation() {\n    return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n  }\n  get parentDimensions() {\n    const {\n      parentScale,\n      pageDimensions: [pageWidth, pageHeight]\n    } = this;\n    return [pageWidth * parentScale, pageHeight * parentScale];\n  }\n  setDims() {\n    const {\n      div: {\n        style\n      },\n      width,\n      height\n    } = this;\n    style.width = `${(100 * width).toFixed(2)}%`;\n    style.height = `${(100 * height).toFixed(2)}%`;\n  }\n  getInitialTranslation() {\n    return [0, 0];\n  }\n  #createResizers() {\n    if (this.#resizersDiv) {\n      return;\n    }\n    this.#resizersDiv = document.createElement(\"div\");\n    this.#resizersDiv.classList.add(\"resizers\");\n    const classes = this._willKeepAspectRatio ? [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"] : [\"topLeft\", \"topMiddle\", \"topRight\", \"middleRight\", \"bottomRight\", \"bottomMiddle\", \"bottomLeft\", \"middleLeft\"];\n    const signal = this._uiManager._signal;\n    for (const name of classes) {\n      const div = document.createElement(\"div\");\n      this.#resizersDiv.append(div);\n      div.classList.add(\"resizer\", name);\n      div.setAttribute(\"data-resizer-name\", name);\n      div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name), {\n        signal\n      });\n      div.addEventListener(\"contextmenu\", noContextMenu, {\n        signal\n      });\n      div.tabIndex = -1;\n    }\n    this.div.prepend(this.#resizersDiv);\n  }\n  #resizerPointerdown(name, event) {\n    event.preventDefault();\n    const {\n      isMac\n    } = FeatureTest.platform;\n    if (event.button !== 0 || event.ctrlKey && isMac) {\n      return;\n    }\n    this.#altText?.toggle(false);\n    const savedDraggable = this._isDraggable;\n    this._isDraggable = false;\n    this.#lastPointerCoords = [event.screenX, event.screenY];\n    const ac = new AbortController();\n    const signal = this._uiManager.combinedSignal(ac);\n    this.parent.togglePointerEvents(false);\n    window.addEventListener(\"pointermove\", this.#resizerPointermove.bind(this, name), {\n      passive: true,\n      capture: true,\n      signal\n    });\n    window.addEventListener(\"touchmove\", stopEvent, {\n      passive: false,\n      signal\n    });\n    window.addEventListener(\"contextmenu\", noContextMenu, {\n      signal\n    });\n    this.#savedDimensions = {\n      savedX: this.x,\n      savedY: this.y,\n      savedWidth: this.width,\n      savedHeight: this.height\n    };\n    const savedParentCursor = this.parent.div.style.cursor;\n    const savedCursor = this.div.style.cursor;\n    this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n    const pointerUpCallback = () => {\n      ac.abort();\n      this.parent.togglePointerEvents(true);\n      this.#altText?.toggle(true);\n      this._isDraggable = savedDraggable;\n      this.parent.div.style.cursor = savedParentCursor;\n      this.div.style.cursor = savedCursor;\n      this.#addResizeToUndoStack();\n    };\n    window.addEventListener(\"pointerup\", pointerUpCallback, {\n      signal\n    });\n    window.addEventListener(\"blur\", pointerUpCallback, {\n      signal\n    });\n  }\n  #resize(x, y, width, height) {\n    this.width = width;\n    this.height = height;\n    this.x = x;\n    this.y = y;\n    this.setDims();\n    this.fixAndSetPosition();\n    this._onResized();\n  }\n  _onResized() {}\n  #addResizeToUndoStack() {\n    if (!this.#savedDimensions) {\n      return;\n    }\n    const {\n      savedX,\n      savedY,\n      savedWidth,\n      savedHeight\n    } = this.#savedDimensions;\n    this.#savedDimensions = null;\n    const newX = this.x;\n    const newY = this.y;\n    const newWidth = this.width;\n    const newHeight = this.height;\n    if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n      return;\n    }\n    this.addCommands({\n      cmd: this.#resize.bind(this, newX, newY, newWidth, newHeight),\n      undo: this.#resize.bind(this, savedX, savedY, savedWidth, savedHeight),\n      mustExec: true\n    });\n  }\n  static _round(x) {\n    return Math.round(x * 10000) / 10000;\n  }\n  #resizerPointermove(name, event) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const savedX = this.x;\n    const savedY = this.y;\n    const savedWidth = this.width;\n    const savedHeight = this.height;\n    const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n    const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n    const rotationMatrix = this.#getRotationMatrix(this.rotation);\n    const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n    const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n    const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n    let getPoint;\n    let getOpposite;\n    let isDiagonal = false;\n    let isHorizontal = false;\n    switch (name) {\n      case \"topLeft\":\n        isDiagonal = true;\n        getPoint = (w, h) => [0, 0];\n        getOpposite = (w, h) => [w, h];\n        break;\n      case \"topMiddle\":\n        getPoint = (w, h) => [w / 2, 0];\n        getOpposite = (w, h) => [w / 2, h];\n        break;\n      case \"topRight\":\n        isDiagonal = true;\n        getPoint = (w, h) => [w, 0];\n        getOpposite = (w, h) => [0, h];\n        break;\n      case \"middleRight\":\n        isHorizontal = true;\n        getPoint = (w, h) => [w, h / 2];\n        getOpposite = (w, h) => [0, h / 2];\n        break;\n      case \"bottomRight\":\n        isDiagonal = true;\n        getPoint = (w, h) => [w, h];\n        getOpposite = (w, h) => [0, 0];\n        break;\n      case \"bottomMiddle\":\n        getPoint = (w, h) => [w / 2, h];\n        getOpposite = (w, h) => [w / 2, 0];\n        break;\n      case \"bottomLeft\":\n        isDiagonal = true;\n        getPoint = (w, h) => [0, h];\n        getOpposite = (w, h) => [w, 0];\n        break;\n      case \"middleLeft\":\n        isHorizontal = true;\n        getPoint = (w, h) => [0, h / 2];\n        getOpposite = (w, h) => [w, h / 2];\n        break;\n    }\n    const point = getPoint(savedWidth, savedHeight);\n    const oppositePoint = getOpposite(savedWidth, savedHeight);\n    let transfOppositePoint = transf(...oppositePoint);\n    const oppositeX = AnnotationEditor._round(savedX + transfOppositePoint[0]);\n    const oppositeY = AnnotationEditor._round(savedY + transfOppositePoint[1]);\n    let ratioX = 1;\n    let ratioY = 1;\n    let deltaX, deltaY;\n    if (!event.fromKeyboard) {\n      const {\n        screenX,\n        screenY\n      } = event;\n      const [lastScreenX, lastScreenY] = this.#lastPointerCoords;\n      [deltaX, deltaY] = this.screenToPageTranslation(screenX - lastScreenX, screenY - lastScreenY);\n      this.#lastPointerCoords[0] = screenX;\n      this.#lastPointerCoords[1] = screenY;\n    } else {\n      ({\n        deltaX,\n        deltaY\n      } = event);\n    }\n    [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n    if (isDiagonal) {\n      const oldDiag = Math.hypot(savedWidth, savedHeight);\n      ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n    } else if (isHorizontal) {\n      ratioX = MathClamp(Math.abs(oppositePoint[0] - point[0] - deltaX), minWidth, 1) / savedWidth;\n    } else {\n      ratioY = MathClamp(Math.abs(oppositePoint[1] - point[1] - deltaY), minHeight, 1) / savedHeight;\n    }\n    const newWidth = AnnotationEditor._round(savedWidth * ratioX);\n    const newHeight = AnnotationEditor._round(savedHeight * ratioY);\n    transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n    const newX = oppositeX - transfOppositePoint[0];\n    const newY = oppositeY - transfOppositePoint[1];\n    this.#initialRect ||= [this.x, this.y, this.width, this.height];\n    this.width = newWidth;\n    this.height = newHeight;\n    this.x = newX;\n    this.y = newY;\n    this.setDims();\n    this.fixAndSetPosition();\n    this._onResizing();\n  }\n  _onResizing() {}\n  altTextFinish() {\n    this.#altText?.finish();\n  }\n  get toolbarButtons() {\n    return null;\n  }\n  async addEditToolbar() {\n    if (this._editToolbar || this.#isInEditMode) {\n      return this._editToolbar;\n    }\n    this._editToolbar = new EditorToolbar(this);\n    this.div.append(this._editToolbar.render());\n    const {\n      toolbarButtons\n    } = this;\n    if (toolbarButtons) {\n      for (const [name, tool] of toolbarButtons) {\n        await this._editToolbar.addButton(name, tool);\n      }\n    }\n    if (!this.hasComment) {\n      this._editToolbar.addButton(\"comment\", this.addCommentButton());\n    }\n    this._editToolbar.addButton(\"delete\");\n    return this._editToolbar;\n  }\n  addCommentButtonInToolbar() {\n    this._editToolbar?.addButtonBefore(\"comment\", this.addCommentButton(), \".deleteButton\");\n  }\n  removeCommentButtonFromToolbar() {\n    this._editToolbar?.removeButton(\"comment\");\n  }\n  removeEditToolbar() {\n    this._editToolbar?.remove();\n    this._editToolbar = null;\n    this.#altText?.destroy();\n  }\n  addContainer(container) {\n    const editToolbarDiv = this._editToolbar?.div;\n    if (editToolbarDiv) {\n      editToolbarDiv.before(container);\n    } else {\n      this.div.append(container);\n    }\n  }\n  getClientDimensions() {\n    return this.div.getBoundingClientRect();\n  }\n  createAltText() {\n    if (!this.#altText) {\n      AltText.initialize(AnnotationEditor._l10n);\n      this.#altText = new AltText(this);\n      if (this.#accessibilityData) {\n        this.#altText.data = this.#accessibilityData;\n        this.#accessibilityData = null;\n      }\n    }\n    return this.#altText;\n  }\n  get altTextData() {\n    return this.#altText?.data;\n  }\n  set altTextData(data) {\n    if (!this.#altText) {\n      return;\n    }\n    this.#altText.data = data;\n  }\n  get guessedAltText() {\n    return this.#altText?.guessedText;\n  }\n  async setGuessedAltText(text) {\n    await this.#altText?.setGuessedText(text);\n  }\n  serializeAltText(isForCopying) {\n    return this.#altText?.serialize(isForCopying);\n  }\n  hasAltText() {\n    return !!this.#altText && !this.#altText.isEmpty();\n  }\n  hasAltTextData() {\n    return this.#altText?.hasData() ?? false;\n  }\n  focusCommentButton() {\n    this.#comment?.focusButton();\n  }\n  addCommentButton() {\n    return this.canAddComment ? this.#comment ||= new Comment(this) : null;\n  }\n  addStandaloneCommentButton() {\n    if (!this._uiManager.hasCommentManager()) {\n      return;\n    }\n    if (this.#commentStandaloneButton) {\n      if (this._uiManager.isEditingMode()) {\n        this.#commentStandaloneButton.classList.remove(\"hidden\");\n      }\n      return;\n    }\n    if (!this.hasComment) {\n      return;\n    }\n    this.#commentStandaloneButton = this.#comment.renderForStandalone();\n    this.div.append(this.#commentStandaloneButton);\n  }\n  removeStandaloneCommentButton() {\n    this.#comment.removeStandaloneCommentButton();\n    this.#commentStandaloneButton = null;\n  }\n  hideStandaloneCommentButton() {\n    this.#commentStandaloneButton?.classList.add(\"hidden\");\n  }\n  get comment() {\n    if (!this.#comment) {\n      return null;\n    }\n    const {\n      data: {\n        richText,\n        text,\n        date,\n        deleted\n      }\n    } = this.#comment;\n    return {\n      text,\n      richText,\n      date,\n      deleted,\n      color: this.getNonHCMColor(),\n      opacity: this.opacity ?? 1\n    };\n  }\n  set comment(value) {\n    this.#comment ||= new Comment(this);\n    if (typeof value === \"object\" && value !== null) {\n      this.#comment.restoreData(value);\n    } else {\n      this.#comment.data = value;\n    }\n    if (this.hasComment) {\n      this.removeCommentButtonFromToolbar();\n      this.addStandaloneCommentButton();\n      this._uiManager.updateComment(this);\n    } else {\n      this.addCommentButtonInToolbar();\n      this.removeStandaloneCommentButton();\n      this._uiManager.removeComment(this);\n    }\n  }\n  setCommentData({\n    comment,\n    popupRef,\n    richText\n  }) {\n    if (!popupRef) {\n      return;\n    }\n    this.#comment ||= new Comment(this);\n    this.#comment.setInitialText(comment, richText);\n    if (!this.annotationElementId) {\n      return;\n    }\n    const storedData = this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);\n    if (storedData) {\n      this.updateFromAnnotationLayer(storedData);\n    }\n  }\n  get hasEditedComment() {\n    return this.#comment?.hasBeenEdited();\n  }\n  get hasDeletedComment() {\n    return this.#comment?.isDeleted();\n  }\n  get hasComment() {\n    return !!this.#comment && !this.#comment.isEmpty() && !this.#comment.isDeleted();\n  }\n  async editComment(options) {\n    this.#comment ||= new Comment(this);\n    this.#comment.edit(options);\n  }\n  toggleComment(isSelected, visibility = undefined) {\n    if (this.hasComment) {\n      this._uiManager.toggleComment(this, isSelected, visibility);\n    }\n  }\n  setSelectedCommentButton(selected) {\n    this.#comment.setSelectedButton(selected);\n  }\n  addComment(serialized) {\n    if (this.hasEditedComment) {\n      const DEFAULT_POPUP_WIDTH = 180;\n      const DEFAULT_POPUP_HEIGHT = 100;\n      const [,,, trY] = serialized.rect;\n      const [pageWidth] = this.pageDimensions;\n      const [pageX] = this.pageTranslation;\n      const blX = pageX + pageWidth + 1;\n      const blY = trY - DEFAULT_POPUP_HEIGHT;\n      const trX = blX + DEFAULT_POPUP_WIDTH;\n      serialized.popup = {\n        contents: this.comment.text,\n        deleted: this.comment.deleted,\n        rect: [blX, blY, trX, trY]\n      };\n    }\n  }\n  updateFromAnnotationLayer({\n    popup: {\n      contents,\n      deleted\n    }\n  }) {\n    this.#comment.data = deleted ? null : contents;\n  }\n  get parentBoundingClientRect() {\n    return this.parent.boundingClientRect;\n  }\n  render() {\n    const div = this.div = document.createElement(\"div\");\n    div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n    div.className = this.name;\n    div.setAttribute(\"id\", this.id);\n    div.tabIndex = this.#disabled ? -1 : 0;\n    div.setAttribute(\"role\", \"application\");\n    if (this.defaultL10nId) {\n      div.setAttribute(\"data-l10n-id\", this.defaultL10nId);\n    }\n    if (!this._isVisible) {\n      div.classList.add(\"hidden\");\n    }\n    this.setInForeground();\n    this.#addFocusListeners();\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    if (this.parentRotation % 180 !== 0) {\n      div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n      div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n    }\n    const [tx, ty] = this.getInitialTranslation();\n    this.translate(tx, ty);\n    bindEvents(this, div, [\"keydown\", \"pointerdown\", \"dblclick\"]);\n    if (this.isResizable && this._uiManager._supportsPinchToZoom) {\n      this.#touchManager ||= new TouchManager({\n        container: div,\n        isPinchingDisabled: () => !this.isSelected,\n        onPinchStart: this.#touchPinchStartCallback.bind(this),\n        onPinching: this.#touchPinchCallback.bind(this),\n        onPinchEnd: this.#touchPinchEndCallback.bind(this),\n        signal: this._uiManager._signal\n      });\n    }\n    this.addStandaloneCommentButton();\n    this._uiManager._editorUndoBar?.hide();\n    return div;\n  }\n  #touchPinchStartCallback() {\n    this.#savedDimensions = {\n      savedX: this.x,\n      savedY: this.y,\n      savedWidth: this.width,\n      savedHeight: this.height\n    };\n    this.#altText?.toggle(false);\n    this.parent.togglePointerEvents(false);\n  }\n  #touchPinchCallback(_origin, prevDistance, distance) {\n    const slowDownFactor = 0.7;\n    let factor = slowDownFactor * (distance / prevDistance) + 1 - slowDownFactor;\n    if (factor === 1) {\n      return;\n    }\n    const rotationMatrix = this.#getRotationMatrix(this.rotation);\n    const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const savedX = this.x;\n    const savedY = this.y;\n    const savedWidth = this.width;\n    const savedHeight = this.height;\n    const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n    const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n    factor = Math.max(Math.min(factor, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n    const newWidth = AnnotationEditor._round(savedWidth * factor);\n    const newHeight = AnnotationEditor._round(savedHeight * factor);\n    if (newWidth === savedWidth && newHeight === savedHeight) {\n      return;\n    }\n    this.#initialRect ||= [savedX, savedY, savedWidth, savedHeight];\n    const transfCenterPoint = transf(savedWidth / 2, savedHeight / 2);\n    const centerX = AnnotationEditor._round(savedX + transfCenterPoint[0]);\n    const centerY = AnnotationEditor._round(savedY + transfCenterPoint[1]);\n    const newTransfCenterPoint = transf(newWidth / 2, newHeight / 2);\n    this.x = centerX - newTransfCenterPoint[0];\n    this.y = centerY - newTransfCenterPoint[1];\n    this.width = newWidth;\n    this.height = newHeight;\n    this.setDims();\n    this.fixAndSetPosition();\n    this._onResizing();\n  }\n  #touchPinchEndCallback() {\n    this.#altText?.toggle(true);\n    this.parent.togglePointerEvents(true);\n    this.#addResizeToUndoStack();\n  }\n  pointerdown(event) {\n    const {\n      isMac\n    } = FeatureTest.platform;\n    if (event.button !== 0 || event.ctrlKey && isMac) {\n      event.preventDefault();\n      return;\n    }\n    this.#hasBeenClicked = true;\n    if (this._isDraggable) {\n      this.#setUpDragSession(event);\n      return;\n    }\n    this.#selectOnPointerEvent(event);\n  }\n  #selectOnPointerEvent(event) {\n    const {\n      isMac\n    } = FeatureTest.platform;\n    if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n      this.parent.toggleSelected(this);\n    } else {\n      this.parent.setSelected(this);\n    }\n  }\n  #setUpDragSession(event) {\n    const {\n      isSelected\n    } = this;\n    this._uiManager.setUpDragSession();\n    let hasDraggingStarted = false;\n    const ac = new AbortController();\n    const signal = this._uiManager.combinedSignal(ac);\n    const opts = {\n      capture: true,\n      passive: false,\n      signal\n    };\n    const cancelDrag = e => {\n      ac.abort();\n      this.#dragPointerId = null;\n      this.#hasBeenClicked = false;\n      if (!this._uiManager.endDragSession()) {\n        this.#selectOnPointerEvent(e);\n      }\n      if (hasDraggingStarted) {\n        this._onStopDragging();\n      }\n    };\n    if (isSelected) {\n      this.#prevDragX = event.clientX;\n      this.#prevDragY = event.clientY;\n      this.#dragPointerId = event.pointerId;\n      this.#dragPointerType = event.pointerType;\n      window.addEventListener(\"pointermove\", e => {\n        if (!hasDraggingStarted) {\n          hasDraggingStarted = true;\n          this._uiManager.toggleComment(this, true, false);\n          this._onStartDragging();\n        }\n        const {\n          clientX: x,\n          clientY: y,\n          pointerId\n        } = e;\n        if (pointerId !== this.#dragPointerId) {\n          stopEvent(e);\n          return;\n        }\n        const [tx, ty] = this.screenToPageTranslation(x - this.#prevDragX, y - this.#prevDragY);\n        this.#prevDragX = x;\n        this.#prevDragY = y;\n        this._uiManager.dragSelectedEditors(tx, ty);\n      }, opts);\n      window.addEventListener(\"touchmove\", stopEvent, opts);\n      window.addEventListener(\"pointerdown\", e => {\n        if (e.pointerType === this.#dragPointerType) {\n          if (this.#touchManager || e.isPrimary) {\n            cancelDrag(e);\n          }\n        }\n        stopEvent(e);\n      }, opts);\n    }\n    const pointerUpCallback = e => {\n      if (!this.#dragPointerId || this.#dragPointerId === e.pointerId) {\n        cancelDrag(e);\n        return;\n      }\n      stopEvent(e);\n    };\n    window.addEventListener(\"pointerup\", pointerUpCallback, {\n      signal\n    });\n    window.addEventListener(\"blur\", pointerUpCallback, {\n      signal\n    });\n  }\n  _onStartDragging() {}\n  _onStopDragging() {}\n  moveInDOM() {\n    if (this.#moveInDOMTimeout) {\n      clearTimeout(this.#moveInDOMTimeout);\n    }\n    this.#moveInDOMTimeout = setTimeout(() => {\n      this.#moveInDOMTimeout = null;\n      this.parent?.moveEditorInDOM(this);\n    }, 0);\n  }\n  _setParentAndPosition(parent, x, y) {\n    parent.changeParent(this);\n    this.x = x;\n    this.y = y;\n    this.fixAndSetPosition();\n    this._onTranslated();\n  }\n  getRect(tx, ty, rotation = this.rotation) {\n    const scale = this.parentScale;\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    const [pageX, pageY] = this.pageTranslation;\n    const shiftX = tx / scale;\n    const shiftY = ty / scale;\n    const x = this.x * pageWidth;\n    const y = this.y * pageHeight;\n    const width = this.width * pageWidth;\n    const height = this.height * pageHeight;\n    switch (rotation) {\n      case 0:\n        return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n      case 90:\n        return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n      case 180:\n        return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n      case 270:\n        return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n  getRectInCurrentCoords(rect, pageHeight) {\n    const [x1, y1, x2, y2] = rect;\n    const width = x2 - x1;\n    const height = y2 - y1;\n    switch (this.rotation) {\n      case 0:\n        return [x1, pageHeight - y2, width, height];\n      case 90:\n        return [x1, pageHeight - y1, height, width];\n      case 180:\n        return [x2, pageHeight - y1, width, height];\n      case 270:\n        return [x2, pageHeight - y2, height, width];\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n  getPDFRect() {\n    return this.getRect(0, 0);\n  }\n  getNonHCMColor() {\n    return this.color && AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));\n  }\n  onUpdatedColor() {\n    this.#comment?.onUpdatedColor();\n  }\n  getData() {\n    const {\n      comment: {\n        text: str,\n        color,\n        date,\n        opacity,\n        deleted,\n        richText\n      },\n      uid: id,\n      pageIndex,\n      creationDate,\n      modificationDate\n    } = this;\n    return {\n      id,\n      pageIndex,\n      rect: this.getPDFRect(),\n      richText,\n      contentsObj: {\n        str\n      },\n      creationDate,\n      modificationDate: date || modificationDate,\n      popupRef: !deleted,\n      color,\n      opacity\n    };\n  }\n  onceAdded(focus) {}\n  isEmpty() {\n    return false;\n  }\n  enableEditMode() {\n    if (this.isInEditMode()) {\n      return false;\n    }\n    this.parent.setEditingState(false);\n    this.#isInEditMode = true;\n    return true;\n  }\n  disableEditMode() {\n    if (!this.isInEditMode()) {\n      return false;\n    }\n    this.parent.setEditingState(true);\n    this.#isInEditMode = false;\n    return true;\n  }\n  isInEditMode() {\n    return this.#isInEditMode;\n  }\n  shouldGetKeyboardEvents() {\n    return this.#isResizerEnabledForKeyboard;\n  }\n  needsToBeRebuilt() {\n    return this.div && !this.isAttachedToDOM;\n  }\n  get isOnScreen() {\n    const {\n      top,\n      left,\n      bottom,\n      right\n    } = this.getClientDimensions();\n    const {\n      innerHeight,\n      innerWidth\n    } = window;\n    return left < innerWidth && right > 0 && top < innerHeight && bottom > 0;\n  }\n  #addFocusListeners() {\n    if (this.#focusAC || !this.div) {\n      return;\n    }\n    this.#focusAC = new AbortController();\n    const signal = this._uiManager.combinedSignal(this.#focusAC);\n    this.div.addEventListener(\"focusin\", this.focusin.bind(this), {\n      signal\n    });\n    this.div.addEventListener(\"focusout\", this.focusout.bind(this), {\n      signal\n    });\n  }\n  rebuild() {\n    this.#addFocusListeners();\n  }\n  rotate(_angle) {}\n  resize() {}\n  serializeDeleted() {\n    return {\n      id: this.annotationElementId,\n      deleted: true,\n      pageIndex: this.pageIndex,\n      popupRef: this._initialData?.popupRef || \"\"\n    };\n  }\n  serialize(isForCopying = false, context = null) {\n    return {\n      annotationType: this.mode,\n      pageIndex: this.pageIndex,\n      rect: this.getPDFRect(),\n      rotation: this.rotation,\n      structTreeParentId: this._structTreeParentId,\n      popupRef: this._initialData?.popupRef || \"\"\n    };\n  }\n  static async deserialize(data, parent, uiManager) {\n    const editor = new this.prototype.constructor({\n      parent,\n      id: uiManager.getId(),\n      uiManager,\n      annotationElementId: data.annotationElementId,\n      creationDate: data.creationDate,\n      modificationDate: data.modificationDate\n    });\n    editor.rotation = data.rotation;\n    editor.#accessibilityData = data.accessibilityData;\n    editor._isCopy = data.isCopy || false;\n    const [pageWidth, pageHeight] = editor.pageDimensions;\n    const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n    editor.x = x / pageWidth;\n    editor.y = y / pageHeight;\n    editor.width = width / pageWidth;\n    editor.height = height / pageHeight;\n    return editor;\n  }\n  get hasBeenModified() {\n    return !!this.annotationElementId && (this.deleted || this.serialize() !== null);\n  }\n  remove() {\n    this.#focusAC?.abort();\n    this.#focusAC = null;\n    if (!this.isEmpty()) {\n      this.commit();\n    }\n    if (this.parent) {\n      this.parent.remove(this);\n    } else {\n      this._uiManager.removeEditor(this);\n    }\n    this.hideCommentPopup();\n    if (this.#moveInDOMTimeout) {\n      clearTimeout(this.#moveInDOMTimeout);\n      this.#moveInDOMTimeout = null;\n    }\n    this.#stopResizing();\n    this.removeEditToolbar();\n    if (this.#telemetryTimeouts) {\n      for (const timeout of this.#telemetryTimeouts.values()) {\n        clearTimeout(timeout);\n      }\n      this.#telemetryTimeouts = null;\n    }\n    this.parent = null;\n    this.#touchManager?.destroy();\n    this.#touchManager = null;\n    this.#fakeAnnotation?.remove();\n    this.#fakeAnnotation = null;\n  }\n  get isResizable() {\n    return false;\n  }\n  makeResizable() {\n    if (this.isResizable) {\n      this.#createResizers();\n      this.#resizersDiv.classList.remove(\"hidden\");\n    }\n  }\n  get toolbarPosition() {\n    return null;\n  }\n  get commentButtonPosition() {\n    return this._uiManager.direction === \"ltr\" ? [1, 0] : [0, 0];\n  }\n  get commentButtonPositionInPage() {\n    const {\n      commentButtonPosition: [posX, posY]\n    } = this;\n    const [blX, blY, trX, trY] = this.getPDFRect();\n    return [AnnotationEditor._round(blX + (trX - blX) * posX), AnnotationEditor._round(blY + (trY - blY) * (1 - posY))];\n  }\n  get commentButtonColor() {\n    return this._uiManager.makeCommentColor(this.getNonHCMColor(), this.opacity);\n  }\n  get commentPopupPosition() {\n    return this.#comment.commentPopupPositionInLayer;\n  }\n  set commentPopupPosition(pos) {\n    this.#comment.commentPopupPositionInLayer = pos;\n  }\n  hasDefaultPopupPosition() {\n    return this.#comment.hasDefaultPopupPosition();\n  }\n  get commentButtonWidth() {\n    return this.#comment.commentButtonWidth;\n  }\n  get elementBeforePopup() {\n    return this.div;\n  }\n  setCommentButtonStates(options) {\n    this.#comment?.setCommentButtonStates(options);\n  }\n  keydown(event) {\n    if (!this.isResizable || event.target !== this.div || event.key !== \"Enter\") {\n      return;\n    }\n    this._uiManager.setSelected(this);\n    this.#savedDimensions = {\n      savedX: this.x,\n      savedY: this.y,\n      savedWidth: this.width,\n      savedHeight: this.height\n    };\n    const children = this.#resizersDiv.children;\n    if (!this.#allResizerDivs) {\n      this.#allResizerDivs = Array.from(children);\n      const boundResizerKeydown = this.#resizerKeydown.bind(this);\n      const boundResizerBlur = this.#resizerBlur.bind(this);\n      const signal = this._uiManager._signal;\n      for (const div of this.#allResizerDivs) {\n        const name = div.getAttribute(\"data-resizer-name\");\n        div.setAttribute(\"role\", \"spinbutton\");\n        div.addEventListener(\"keydown\", boundResizerKeydown, {\n          signal\n        });\n        div.addEventListener(\"blur\", boundResizerBlur, {\n          signal\n        });\n        div.addEventListener(\"focus\", this.#resizerFocus.bind(this, name), {\n          signal\n        });\n        div.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n      }\n    }\n    const first = this.#allResizerDivs[0];\n    let firstPosition = 0;\n    for (const div of children) {\n      if (div === first) {\n        break;\n      }\n      firstPosition++;\n    }\n    const nextFirstPosition = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#allResizerDivs.length / 4);\n    if (nextFirstPosition !== firstPosition) {\n      if (nextFirstPosition < firstPosition) {\n        for (let i = 0; i < firstPosition - nextFirstPosition; i++) {\n          this.#resizersDiv.append(this.#resizersDiv.firstElementChild);\n        }\n      } else if (nextFirstPosition > firstPosition) {\n        for (let i = 0; i < nextFirstPosition - firstPosition; i++) {\n          this.#resizersDiv.firstElementChild.before(this.#resizersDiv.lastElementChild);\n        }\n      }\n      let i = 0;\n      for (const child of children) {\n        const div = this.#allResizerDivs[i++];\n        const name = div.getAttribute(\"data-resizer-name\");\n        child.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n      }\n    }\n    this.#setResizerTabIndex(0);\n    this.#isResizerEnabledForKeyboard = true;\n    this.#resizersDiv.firstElementChild.focus({\n      focusVisible: true\n    });\n    event.preventDefault();\n    event.stopImmediatePropagation();\n  }\n  #resizerKeydown(event) {\n    AnnotationEditor._resizerKeyboardManager.exec(this, event);\n  }\n  #resizerBlur(event) {\n    if (this.#isResizerEnabledForKeyboard && event.relatedTarget?.parentNode !== this.#resizersDiv) {\n      this.#stopResizing();\n    }\n  }\n  #resizerFocus(name) {\n    this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : \"\";\n  }\n  #setResizerTabIndex(value) {\n    if (!this.#allResizerDivs) {\n      return;\n    }\n    for (const div of this.#allResizerDivs) {\n      div.tabIndex = value;\n    }\n  }\n  _resizeWithKeyboard(x, y) {\n    if (!this.#isResizerEnabledForKeyboard) {\n      return;\n    }\n    this.#resizerPointermove(this.#focusedResizerName, {\n      deltaX: x,\n      deltaY: y,\n      fromKeyboard: true\n    });\n  }\n  #stopResizing() {\n    this.#isResizerEnabledForKeyboard = false;\n    this.#setResizerTabIndex(-1);\n    this.#addResizeToUndoStack();\n  }\n  _stopResizingWithKeyboard() {\n    this.#stopResizing();\n    this.div.focus();\n  }\n  select() {\n    if (this.isSelected && this._editToolbar) {\n      this._editToolbar.show();\n      return;\n    }\n    this.isSelected = true;\n    this.makeResizable();\n    this.div?.classList.add(\"selectedEditor\");\n    if (!this._editToolbar) {\n      this.addEditToolbar().then(() => {\n        if (this.div?.classList.contains(\"selectedEditor\")) {\n          this._editToolbar?.show();\n        }\n      });\n      return;\n    }\n    this._editToolbar?.show();\n    this.#altText?.toggleAltTextBadge(false);\n  }\n  focus() {\n    if (this.div && !this.div.contains(document.activeElement)) {\n      setTimeout(() => this.div?.focus({\n        preventScroll: true\n      }), 0);\n    }\n  }\n  unselect() {\n    if (!this.isSelected) {\n      return;\n    }\n    this.isSelected = false;\n    this.#resizersDiv?.classList.add(\"hidden\");\n    this.div?.classList.remove(\"selectedEditor\");\n    if (this.div?.contains(document.activeElement)) {\n      this._uiManager.currentLayer.div.focus({\n        preventScroll: true\n      });\n    }\n    this._editToolbar?.hide();\n    this.#altText?.toggleAltTextBadge(true);\n    this.hideCommentPopup();\n  }\n  hideCommentPopup() {\n    if (this.hasComment) {\n      this._uiManager.toggleComment(null);\n    }\n  }\n  updateParams(type, value) {}\n  disableEditing() {}\n  enableEditing() {}\n  get canChangeContent() {\n    return false;\n  }\n  enterInEditMode() {\n    if (!this.canChangeContent) {\n      return;\n    }\n    this.enableEditMode();\n    this.div.focus();\n  }\n  dblclick(event) {\n    if (event.target.nodeName === \"BUTTON\") {\n      return;\n    }\n    this.enterInEditMode();\n    this.parent.updateToolbar({\n      mode: this.constructor._editorType,\n      editId: this.uid\n    });\n  }\n  getElementForAltText() {\n    return this.div;\n  }\n  get contentDiv() {\n    return this.div;\n  }\n  get isEditing() {\n    return this.#isEditing;\n  }\n  set isEditing(value) {\n    this.#isEditing = value;\n    if (!this.parent) {\n      return;\n    }\n    if (value) {\n      this.parent.setSelected(this);\n      this.parent.setActiveEditor(this);\n    } else {\n      this.parent.setActiveEditor(null);\n    }\n  }\n  static get MIN_SIZE() {\n    return 16;\n  }\n  static canCreateNewEmptyEditor() {\n    return true;\n  }\n  get telemetryInitialData() {\n    return {\n      action: \"added\"\n    };\n  }\n  get telemetryFinalData() {\n    return null;\n  }\n  _reportTelemetry(data, mustWait = false) {\n    if (mustWait) {\n      this.#telemetryTimeouts ||= new Map();\n      const {\n        action\n      } = data;\n      let timeout = this.#telemetryTimeouts.get(action);\n      if (timeout) {\n        clearTimeout(timeout);\n      }\n      timeout = setTimeout(() => {\n        this._reportTelemetry(data);\n        this.#telemetryTimeouts.delete(action);\n        if (this.#telemetryTimeouts.size === 0) {\n          this.#telemetryTimeouts = null;\n        }\n      }, AnnotationEditor._telemetryTimeout);\n      this.#telemetryTimeouts.set(action, timeout);\n      return;\n    }\n    data.type ||= this.editorType;\n    this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n      source: this,\n      details: {\n        type: \"editing\",\n        data\n      }\n    });\n  }\n  show(visible = this._isVisible) {\n    this.div.classList.toggle(\"hidden\", !visible);\n    this._isVisible = visible;\n  }\n  enable() {\n    if (this.div) {\n      this.div.tabIndex = 0;\n    }\n    this.#disabled = false;\n  }\n  disable() {\n    if (this.div) {\n      this.div.tabIndex = -1;\n    }\n    this.#disabled = true;\n  }\n  updateFakeAnnotationElement(annotationLayer) {\n    if (!this.#fakeAnnotation && !this.deleted) {\n      this.#fakeAnnotation = annotationLayer.addFakeAnnotation(this);\n      return;\n    }\n    if (this.deleted) {\n      this.#fakeAnnotation.remove();\n      this.#fakeAnnotation = null;\n      return;\n    }\n    if (this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized) {\n      this.#fakeAnnotation.updateEdited({\n        rect: this.getPDFRect(),\n        popup: this.comment\n      });\n    }\n  }\n  renderAnnotationElement(annotation) {\n    if (this.deleted) {\n      annotation.hide();\n      return null;\n    }\n    let content = annotation.container.querySelector(\".annotationContent\");\n    if (!content) {\n      content = document.createElement(\"div\");\n      content.classList.add(\"annotationContent\", this.editorType);\n      annotation.container.prepend(content);\n    } else if (content.nodeName === \"CANVAS\") {\n      const canvas = content;\n      content = document.createElement(\"div\");\n      content.classList.add(\"annotationContent\", this.editorType);\n      canvas.before(content);\n    }\n    return content;\n  }\n  resetAnnotationElement(annotation) {\n    const {\n      firstElementChild\n    } = annotation.container;\n    if (firstElementChild?.nodeName === \"DIV\" && firstElementChild.classList.contains(\"annotationContent\")) {\n      firstElementChild.remove();\n    }\n  }\n}\nclass FakeEditor extends AnnotationEditor {\n  constructor(params) {\n    super(params);\n    this.annotationElementId = params.annotationElementId;\n    this.deleted = true;\n  }\n  serialize() {\n    return this.serializeDeleted();\n  }\n}\n\n;// ./src/shared/murmurhash3.js\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n  update(input) {\n    let data, length;\n    if (typeof input === \"string\") {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if (ArrayBuffer.isView(input)) {\n      data = input.slice();\n      length = data.byteLength;\n    } else {\n      throw new Error(\"Invalid data format, must be a string or TypedArray.\");\n    }\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n      k2 = 0;\n    let h1 = this.h1,\n      h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n      C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n      C2_LOW = C2 & MASK_LOW;\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n        h1 ^= k1;\n        h1 = h1 << 13 | h1 >>> 19;\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n        k2 = k2 << 15 | k2 >>> 17;\n        k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n        h2 ^= k2;\n        h2 = h2 << 13 | h2 >>> 19;\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n    k1 = 0;\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n    }\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n  hexdigest() {\n    let h1 = this.h1,\n      h2 = this.h2;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n    h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n    h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n  }\n}\n\n;// ./src/display/annotation_storage.js\n\n\n\nconst SerializableEmpty = Object.freeze({\n  map: null,\n  hash: \"\",\n  transfer: undefined\n});\nclass AnnotationStorage {\n  #modified = false;\n  #modifiedIds = null;\n  #editorsMap = null;\n  #storage = new Map();\n  onSetModified = null;\n  onResetModified = null;\n  onAnnotationEditor = null;\n  getValue(key, defaultValue) {\n    const value = this.#storage.get(key);\n    if (value === undefined) {\n      return defaultValue;\n    }\n    return Object.assign(defaultValue, value);\n  }\n  getRawValue(key) {\n    return this.#storage.get(key);\n  }\n  remove(key) {\n    const storedValue = this.#storage.get(key);\n    if (storedValue === undefined) {\n      return;\n    }\n    if (storedValue instanceof AnnotationEditor) {\n      this.#editorsMap.delete(storedValue.annotationElementId);\n    }\n    this.#storage.delete(key);\n    if (this.#storage.size === 0) {\n      this.resetModified();\n    }\n    if (this.#storage.values().some(v => v instanceof AnnotationEditor)) {\n      return;\n    }\n    this.onAnnotationEditor?.(null);\n  }\n  setValue(key, value) {\n    const obj = this.#storage.get(key);\n    let modified = false;\n    if (obj !== undefined) {\n      for (const [entry, val] of Object.entries(value)) {\n        if (obj[entry] !== val) {\n          modified = true;\n          obj[entry] = val;\n        }\n      }\n    } else {\n      modified = true;\n      this.#storage.set(key, value);\n    }\n    if (modified) {\n      this.#setModified();\n    }\n    if (value instanceof AnnotationEditor) {\n      (this.#editorsMap ||= new Map()).set(value.annotationElementId, value);\n      this.onAnnotationEditor?.(value.constructor._type);\n    }\n  }\n  has(key) {\n    return this.#storage.has(key);\n  }\n  get size() {\n    return this.#storage.size;\n  }\n  #setModified() {\n    if (!this.#modified) {\n      this.#modified = true;\n      this.onSetModified?.();\n    }\n  }\n  resetModified() {\n    if (this.#modified) {\n      this.#modified = false;\n      this.onResetModified?.();\n    }\n  }\n  get print() {\n    return new PrintAnnotationStorage(this);\n  }\n  get serializable() {\n    if (this.#storage.size === 0) {\n      return SerializableEmpty;\n    }\n    const map = new Map(),\n      hash = new MurmurHash3_64(),\n      transfer = [];\n    const context = Object.create(null);\n    let hasBitmap = false;\n    for (const [key, val] of this.#storage) {\n      const serialized = val instanceof AnnotationEditor ? val.serialize(false, context) : val;\n      if (val.page) {\n        val.pageIndex = val.page._pageIndex;\n        delete val.page;\n      }\n      if (serialized) {\n        map.set(key, serialized);\n        hash.update(`${key}:${JSON.stringify(serialized)}`);\n        hasBitmap ||= !!serialized.bitmap;\n      }\n    }\n    if (hasBitmap) {\n      for (const value of map.values()) {\n        if (value.bitmap) {\n          transfer.push(value.bitmap);\n        }\n      }\n    }\n    return map.size > 0 ? {\n      map,\n      hash: hash.hexdigest(),\n      transfer\n    } : SerializableEmpty;\n  }\n  get editorStats() {\n    let stats = null;\n    const typeToEditor = new Map();\n    let numberOfEditedComments = 0;\n    let numberOfDeletedComments = 0;\n    for (const value of this.#storage.values()) {\n      if (!(value instanceof AnnotationEditor)) {\n        if (value.popup) {\n          if (value.popup.deleted) {\n            numberOfDeletedComments += 1;\n          } else {\n            numberOfEditedComments += 1;\n          }\n        }\n        continue;\n      }\n      if (value.isCommentDeleted) {\n        numberOfDeletedComments += 1;\n      } else if (value.hasEditedComment) {\n        numberOfEditedComments += 1;\n      }\n      const editorStats = value.telemetryFinalData;\n      if (!editorStats) {\n        continue;\n      }\n      const {\n        type\n      } = editorStats;\n      typeToEditor.getOrInsertComputed(type, () => Object.getPrototypeOf(value).constructor);\n      stats ||= Object.create(null);\n      const map = stats[type] ||= new Map();\n      for (const [key, val] of Object.entries(editorStats)) {\n        if (key === \"type\") {\n          continue;\n        }\n        const counters = map.getOrInsertComputed(key, makeMap);\n        counters.set(val, (counters.get(val) ?? 0) + 1);\n      }\n    }\n    if (numberOfDeletedComments > 0 || numberOfEditedComments > 0) {\n      stats ||= Object.create(null);\n      stats.comments = {\n        deleted: numberOfDeletedComments,\n        edited: numberOfEditedComments\n      };\n    }\n    if (!stats) {\n      return null;\n    }\n    for (const [type, editor] of typeToEditor) {\n      stats[type] = editor.computeTelemetryFinalData(stats[type]);\n    }\n    return stats;\n  }\n  resetModifiedIds() {\n    this.#modifiedIds = null;\n  }\n  updateEditor(annotationId, data) {\n    const value = this.#editorsMap?.get(annotationId);\n    if (value) {\n      value.updateFromAnnotationLayer(data);\n      return true;\n    }\n    return false;\n  }\n  getEditor(annotationId) {\n    return this.#editorsMap?.get(annotationId) || null;\n  }\n  get modifiedIds() {\n    if (this.#modifiedIds) {\n      return this.#modifiedIds;\n    }\n    const ids = [];\n    if (this.#editorsMap) {\n      for (const value of this.#editorsMap.values()) {\n        if (!value.serialize()) {\n          continue;\n        }\n        ids.push(value.annotationElementId);\n      }\n    }\n    let hash = \"\";\n    if (ids.length) {\n      const h = new MurmurHash3_64();\n      h.update(ids.join(\",\"));\n      hash = h.hexdigest();\n    }\n    return this.#modifiedIds = {\n      ids: new Set(ids),\n      hash\n    };\n  }\n  [Symbol.iterator]() {\n    return this.#storage.entries();\n  }\n}\nclass PrintAnnotationStorage extends AnnotationStorage {\n  #serializable = SerializableEmpty;\n  constructor(parent) {\n    super();\n    const {\n      serializable\n    } = parent;\n    if (serializable === SerializableEmpty) {\n      return;\n    }\n    const {\n      map,\n      hash,\n      transfer\n    } = serializable;\n    const clone = structuredClone(map, transfer ? {\n      transfer\n    } : null);\n    this.#serializable = {\n      map: clone,\n      hash,\n      transfer: []\n    };\n  }\n  get print() {\n    unreachable(\"Should not call PrintAnnotationStorage.print\");\n  }\n  get serializable() {\n    return this.#serializable;\n  }\n  get modifiedIds() {\n    return shadow(this, \"modifiedIds\", {\n      ids: new Set(),\n      hash: \"\"\n    });\n  }\n}\n\n;// ./src/display/canvas_dependency_tracker.js\n\n\n\nconst FORCED_DEPENDENCY_LABEL = \"__forcedDependency\";\nconst {\n  floor,\n  ceil\n} = Math;\nfunction expandBBox(array, index, minX, minY, maxX, maxY) {\n  array[index * 4 + 0] = Math.min(array[index * 4 + 0], minX);\n  array[index * 4 + 1] = Math.min(array[index * 4 + 1], minY);\n  array[index * 4 + 2] = Math.max(array[index * 4 + 2], maxX);\n  array[index * 4 + 3] = Math.max(array[index * 4 + 3], maxY);\n}\nfunction scaleCharBBox(scaleX, scaleY, x, y, bbox) {\n  let temp;\n  if (scaleX) {\n    if (scaleX < 0) {\n      temp = bbox[0];\n      bbox[0] = bbox[2];\n      bbox[2] = temp;\n    }\n    bbox[0] *= scaleX;\n    bbox[2] *= scaleX;\n    if (scaleY < 0) {\n      temp = bbox[1];\n      bbox[1] = bbox[3];\n      bbox[3] = temp;\n    }\n    bbox[1] *= scaleY;\n    bbox[3] *= scaleY;\n  } else {\n    bbox.fill(0);\n  }\n  bbox[0] += x;\n  bbox[1] += y;\n  bbox[2] += x;\n  bbox[3] += y;\n}\nconst EMPTY_BBOX = new Uint32Array(new Uint8Array([255, 255, 0, 0]).buffer)[0];\nclass BBoxReader {\n  #bboxes;\n  #coords;\n  constructor(bboxes, coords) {\n    this.#bboxes = bboxes;\n    this.#coords = coords;\n  }\n  get length() {\n    return this.#bboxes.length;\n  }\n  isEmpty(i) {\n    return this.#bboxes[i] === EMPTY_BBOX;\n  }\n  minX(i) {\n    return this.#coords[i * 4 + 0] / 256;\n  }\n  minY(i) {\n    return this.#coords[i * 4 + 1] / 256;\n  }\n  maxX(i) {\n    return (this.#coords[i * 4 + 2] + 1) / 256;\n  }\n  maxY(i) {\n    return (this.#coords[i * 4 + 3] + 1) / 256;\n  }\n}\nconst ensureDebugMetadata = (map, key) => map?.getOrInsertComputed(key, () => ({\n  dependencies: new Set(),\n  isRenderingOperation: false\n}));\nclass CanvasBBoxTracker {\n  #baseTransformStack = [[1, 0, 0, 1, 0, 0]];\n  #clipBox = [-Infinity, -Infinity, Infinity, Infinity];\n  #pendingBBox = new Float64Array(BBOX_INIT);\n  _pendingBBoxIdx = -1;\n  #canvasWidth;\n  #canvasHeight;\n  #bboxesCoords;\n  #bboxes;\n  _savesStack = [];\n  _markedContentStack = [];\n  constructor(canvas, operationsCount) {\n    this.#canvasWidth = canvas.width;\n    this.#canvasHeight = canvas.height;\n    this.#initializeBBoxes(operationsCount);\n  }\n  growOperationsCount(operationsCount) {\n    if (operationsCount >= this.#bboxes.length) {\n      this.#initializeBBoxes(operationsCount, this.#bboxes);\n    }\n  }\n  #initializeBBoxes(operationsCount, oldBBoxes) {\n    const buffer = new ArrayBuffer(operationsCount * 4);\n    this.#bboxesCoords = new Uint8ClampedArray(buffer);\n    this.#bboxes = new Uint32Array(buffer);\n    if (oldBBoxes && oldBBoxes.length > 0) {\n      this.#bboxes.set(oldBBoxes);\n      this.#bboxes.fill(EMPTY_BBOX, oldBBoxes.length);\n    } else {\n      this.#bboxes.fill(EMPTY_BBOX);\n    }\n  }\n  get clipBox() {\n    return this.#clipBox;\n  }\n  save(opIdx) {\n    this.#clipBox = {\n      __proto__: this.#clipBox\n    };\n    this._savesStack.push(opIdx);\n    return this;\n  }\n  restore(opIdx, onSavePopped) {\n    const previous = Object.getPrototypeOf(this.#clipBox);\n    if (previous === null) {\n      return this;\n    }\n    this.#clipBox = previous;\n    const lastSave = this._savesStack.pop();\n    if (lastSave !== undefined) {\n      onSavePopped?.(lastSave, opIdx);\n      this.#bboxes[opIdx] = this.#bboxes[lastSave];\n    }\n    return this;\n  }\n  recordOpenMarker(idx) {\n    this._savesStack.push(idx);\n    return this;\n  }\n  getOpenMarker() {\n    if (this._savesStack.length === 0) {\n      return null;\n    }\n    return this._savesStack.at(-1);\n  }\n  recordCloseMarker(opIdx, onSavePopped) {\n    const lastSave = this._savesStack.pop();\n    if (lastSave !== undefined) {\n      onSavePopped?.(lastSave, opIdx);\n      this.#bboxes[opIdx] = this.#bboxes[lastSave];\n    }\n    return this;\n  }\n  beginMarkedContent(opIdx) {\n    this._markedContentStack.push(opIdx);\n    return this;\n  }\n  endMarkedContent(opIdx, onSavePopped) {\n    const lastSave = this._markedContentStack.pop();\n    if (lastSave !== undefined) {\n      onSavePopped?.(lastSave, opIdx);\n      this.#bboxes[opIdx] = this.#bboxes[lastSave];\n    }\n    return this;\n  }\n  pushBaseTransform(ctx) {\n    this.#baseTransformStack.push(Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform()));\n    return this;\n  }\n  popBaseTransform() {\n    if (this.#baseTransformStack.length > 1) {\n      this.#baseTransformStack.pop();\n    }\n    return this;\n  }\n  resetBBox(idx) {\n    if (this._pendingBBoxIdx !== idx) {\n      this._pendingBBoxIdx = idx;\n      this.#pendingBBox.set(BBOX_INIT, 0);\n    }\n    return this;\n  }\n  recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n    const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());\n    const clipBox = BBOX_INIT.slice();\n    Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, clipBox);\n    const intersection = Util.intersect(this.#clipBox, clipBox);\n    if (intersection) {\n      this.#clipBox[0] = intersection[0];\n      this.#clipBox[1] = intersection[1];\n      this.#clipBox[2] = intersection[2];\n      this.#clipBox[3] = intersection[3];\n    } else {\n      this.#clipBox[0] = this.#clipBox[1] = Infinity;\n      this.#clipBox[2] = this.#clipBox[3] = -Infinity;\n    }\n    return this;\n  }\n  recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n    const clipBox = this.#clipBox;\n    if (clipBox[0] === Infinity) {\n      return this;\n    }\n    const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());\n    if (clipBox[0] === -Infinity) {\n      Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, this.#pendingBBox);\n      return this;\n    }\n    const bbox = BBOX_INIT.slice();\n    Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, bbox);\n    this.#pendingBBox[0] = MathClamp(bbox[0], clipBox[0], this.#pendingBBox[0]);\n    this.#pendingBBox[1] = MathClamp(bbox[1], clipBox[1], this.#pendingBBox[1]);\n    this.#pendingBBox[2] = MathClamp(bbox[2], this.#pendingBBox[2], clipBox[2]);\n    this.#pendingBBox[3] = MathClamp(bbox[3], this.#pendingBBox[3], clipBox[3]);\n    return this;\n  }\n  recordFullPageBBox(idx) {\n    this.#pendingBBox[0] = Math.max(0, this.#clipBox[0]);\n    this.#pendingBBox[1] = Math.max(0, this.#clipBox[1]);\n    this.#pendingBBox[2] = Math.min(this.#canvasWidth, this.#clipBox[2]);\n    this.#pendingBBox[3] = Math.min(this.#canvasHeight, this.#clipBox[3]);\n    return this;\n  }\n  recordOperation(idx, preserve = false, dependencyLists) {\n    if (this._pendingBBoxIdx !== idx) {\n      return this;\n    }\n    const minX = floor(this.#pendingBBox[0] * 256 / this.#canvasWidth);\n    const minY = floor(this.#pendingBBox[1] * 256 / this.#canvasHeight);\n    const maxX = ceil(this.#pendingBBox[2] * 256 / this.#canvasWidth);\n    const maxY = ceil(this.#pendingBBox[3] * 256 / this.#canvasHeight);\n    expandBBox(this.#bboxesCoords, idx, minX, minY, maxX, maxY);\n    if (dependencyLists) {\n      for (const dependencies of dependencyLists) {\n        for (const depIdx of dependencies) {\n          if (depIdx !== idx) {\n            expandBBox(this.#bboxesCoords, depIdx, minX, minY, maxX, maxY);\n          }\n        }\n      }\n    }\n    if (!preserve) {\n      this._pendingBBoxIdx = -1;\n    }\n    return this;\n  }\n  bboxToClipBoxDropOperation(idx) {\n    if (this._pendingBBoxIdx === idx) {\n      this._pendingBBoxIdx = -1;\n      this.#clipBox[0] = Math.max(this.#clipBox[0], this.#pendingBBox[0]);\n      this.#clipBox[1] = Math.max(this.#clipBox[1], this.#pendingBBox[1]);\n      this.#clipBox[2] = Math.min(this.#clipBox[2], this.#pendingBBox[2]);\n      this.#clipBox[3] = Math.min(this.#clipBox[3], this.#pendingBBox[3]);\n    }\n    return this;\n  }\n  take() {\n    return new BBoxReader(this.#bboxes, this.#bboxesCoords);\n  }\n  takeDebugMetadata() {\n    throw new Error(\"Unreachable\");\n  }\n  recordSimpleData(name, idx) {\n    return this;\n  }\n  recordIncrementalData(name, idx) {\n    return this;\n  }\n  resetIncrementalData(name, idx) {\n    return this;\n  }\n  recordNamedData(name, idx) {\n    return this;\n  }\n  recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n    return this;\n  }\n  recordFutureForcedDependency(name, idx) {\n    return this;\n  }\n  inheritSimpleDataAsFutureForcedDependencies(names) {\n    return this;\n  }\n  inheritPendingDependenciesAsFutureForcedDependencies() {\n    return this;\n  }\n  recordCharacterBBox(idx, ctx, font, scale = 1, x = 0, y = 0, getMeasure) {\n    return this;\n  }\n  getSimpleIndex(dependencyName) {\n    return undefined;\n  }\n  recordDependencies(idx, dependencyNames) {\n    return this;\n  }\n  recordNamedDependency(idx, name) {\n    return this;\n  }\n  recordShowTextOperation(idx, preserve = false) {\n    return this;\n  }\n}\nclass CanvasDependencyTracker {\n  #simple = {\n    __proto__: null\n  };\n  #incremental = {\n    __proto__: null,\n    transform: [],\n    moveText: [],\n    sameLineText: [],\n    [FORCED_DEPENDENCY_LABEL]: []\n  };\n  #namedDependencies = new Map();\n  #pendingDependencies = new Set();\n  #fontBBoxTrustworthy = new Map();\n  #debugMetadata;\n  #recordDebugMetadataDepenencyAfterRestore;\n  #bboxTracker;\n  constructor(bboxTracker, recordDebugMetadata = false) {\n    this.#bboxTracker = bboxTracker;\n    if (recordDebugMetadata) {\n      this.#debugMetadata = new Map();\n      this.#recordDebugMetadataDepenencyAfterRestore = (lastSave, opIdx) => {\n        ensureDebugMetadata(this.#debugMetadata, opIdx).dependencies.add(lastSave);\n      };\n    }\n  }\n  get clipBox() {\n    return this.#bboxTracker.clipBox;\n  }\n  growOperationsCount(operationsCount) {\n    this.#bboxTracker.growOperationsCount(operationsCount);\n  }\n  save(opIdx) {\n    this.#simple = {\n      __proto__: this.#simple\n    };\n    this.#incremental = {\n      __proto__: this.#incremental,\n      transform: {\n        __proto__: this.#incremental.transform\n      },\n      moveText: {\n        __proto__: this.#incremental.moveText\n      },\n      sameLineText: {\n        __proto__: this.#incremental.sameLineText\n      },\n      [FORCED_DEPENDENCY_LABEL]: {\n        __proto__: this.#incremental[FORCED_DEPENDENCY_LABEL]\n      }\n    };\n    this.#bboxTracker.save(opIdx);\n    return this;\n  }\n  restore(opIdx) {\n    this.#bboxTracker.restore(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n    const previous = Object.getPrototypeOf(this.#simple);\n    if (previous === null) {\n      return this;\n    }\n    this.#simple = previous;\n    this.#incremental = Object.getPrototypeOf(this.#incremental);\n    return this;\n  }\n  recordOpenMarker(opIdx) {\n    this.#bboxTracker.recordOpenMarker(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n    return this;\n  }\n  getOpenMarker() {\n    return this.#bboxTracker.getOpenMarker();\n  }\n  recordCloseMarker(opIdx) {\n    this.#bboxTracker.recordCloseMarker(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n    return this;\n  }\n  beginMarkedContent(opIdx) {\n    this.#bboxTracker.beginMarkedContent(opIdx);\n    return this;\n  }\n  endMarkedContent(opIdx) {\n    this.#bboxTracker.endMarkedContent(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n    return this;\n  }\n  pushBaseTransform(ctx) {\n    this.#bboxTracker.pushBaseTransform(ctx);\n    return this;\n  }\n  popBaseTransform() {\n    this.#bboxTracker.popBaseTransform();\n    return this;\n  }\n  recordSimpleData(name, idx) {\n    this.#simple[name] = idx;\n    return this;\n  }\n  recordIncrementalData(name, idx) {\n    this.#incremental[name].push(idx);\n    return this;\n  }\n  resetIncrementalData(name, idx) {\n    this.#incremental[name].length = 0;\n    return this;\n  }\n  recordNamedData(name, idx) {\n    this.#namedDependencies.set(name, idx);\n    return this;\n  }\n  recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n    this.#simple[name] = this.#namedDependencies.get(depName) ?? fallbackIdx;\n  }\n  recordFutureForcedDependency(name, idx) {\n    this.recordIncrementalData(FORCED_DEPENDENCY_LABEL, idx);\n    return this;\n  }\n  inheritSimpleDataAsFutureForcedDependencies(names) {\n    for (const name of names) {\n      if (name in this.#simple) {\n        this.recordFutureForcedDependency(name, this.#simple[name]);\n      }\n    }\n    return this;\n  }\n  inheritPendingDependenciesAsFutureForcedDependencies() {\n    for (const dep of this.#pendingDependencies) {\n      this.recordFutureForcedDependency(FORCED_DEPENDENCY_LABEL, dep);\n    }\n    return this;\n  }\n  resetBBox(idx) {\n    this.#bboxTracker.resetBBox(idx);\n    return this;\n  }\n  recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n    this.#bboxTracker.recordClipBox(idx, ctx, minX, maxX, minY, maxY);\n    return this;\n  }\n  recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n    this.#bboxTracker.recordBBox(idx, ctx, minX, maxX, minY, maxY);\n    return this;\n  }\n  recordCharacterBBox(idx, ctx, font, scale = 1, x = 0, y = 0, getMeasure) {\n    const fontBBox = font.bbox;\n    let isBBoxTrustworthy;\n    let computedBBox;\n    if (fontBBox) {\n      isBBoxTrustworthy = fontBBox[2] !== fontBBox[0] && fontBBox[3] !== fontBBox[1] && this.#fontBBoxTrustworthy.get(font);\n      if (isBBoxTrustworthy !== false) {\n        computedBBox = [0, 0, 0, 0];\n        Util.axialAlignedBoundingBox(fontBBox, font.fontMatrix, computedBBox);\n        if (scale !== 1 || x !== 0 || y !== 0) {\n          scaleCharBBox(scale, -scale, x, y, computedBBox);\n        }\n        if (isBBoxTrustworthy) {\n          return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);\n        }\n      }\n    }\n    if (!getMeasure) {\n      return this.recordFullPageBBox(idx);\n    }\n    const measure = getMeasure();\n    if (fontBBox && computedBBox && isBBoxTrustworthy === undefined) {\n      isBBoxTrustworthy = computedBBox[0] <= x - measure.actualBoundingBoxLeft && computedBBox[2] >= x + measure.actualBoundingBoxRight && computedBBox[1] <= y - measure.actualBoundingBoxAscent && computedBBox[3] >= y + measure.actualBoundingBoxDescent;\n      this.#fontBBoxTrustworthy.set(font, isBBoxTrustworthy);\n      if (isBBoxTrustworthy) {\n        return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);\n      }\n    }\n    return this.recordBBox(idx, ctx, x - measure.actualBoundingBoxLeft, x + measure.actualBoundingBoxRight, y - measure.actualBoundingBoxAscent, y + measure.actualBoundingBoxDescent);\n  }\n  recordFullPageBBox(idx) {\n    this.#bboxTracker.recordFullPageBBox(idx);\n    return this;\n  }\n  getSimpleIndex(dependencyName) {\n    return this.#simple[dependencyName];\n  }\n  recordDependencies(idx, dependencyNames) {\n    const pendingDependencies = this.#pendingDependencies;\n    const simple = this.#simple;\n    const incremental = this.#incremental;\n    for (const name of dependencyNames) {\n      if (name in this.#simple) {\n        pendingDependencies.add(simple[name]);\n      } else if (name in incremental) {\n        incremental[name].forEach(pendingDependencies.add, pendingDependencies);\n      }\n    }\n    return this;\n  }\n  recordNamedDependency(idx, name) {\n    if (this.#namedDependencies.has(name)) {\n      this.#pendingDependencies.add(this.#namedDependencies.get(name));\n    }\n    return this;\n  }\n  recordOperation(idx, preserve = false) {\n    this.recordDependencies(idx, [FORCED_DEPENDENCY_LABEL]);\n    if (this.#debugMetadata) {\n      const metadata = ensureDebugMetadata(this.#debugMetadata, idx);\n      const {\n        dependencies\n      } = metadata;\n      this.#pendingDependencies.forEach(dependencies.add, dependencies);\n      this.#bboxTracker._savesStack.forEach(dependencies.add, dependencies);\n      this.#bboxTracker._markedContentStack.forEach(dependencies.add, dependencies);\n      dependencies.delete(idx);\n      metadata.isRenderingOperation = true;\n    }\n    const needsCleanup = !preserve && idx === this.#bboxTracker._pendingBBoxIdx;\n    this.#bboxTracker.recordOperation(idx, preserve, [this.#pendingDependencies, this.#bboxTracker._savesStack, this.#bboxTracker._markedContentStack]);\n    if (needsCleanup) {\n      this.#pendingDependencies.clear();\n    }\n    return this;\n  }\n  recordShowTextOperation(idx, preserve = false) {\n    const deps = Array.from(this.#pendingDependencies);\n    this.recordOperation(idx, preserve);\n    this.recordIncrementalData(\"sameLineText\", idx);\n    for (const dep of deps) {\n      this.recordIncrementalData(\"sameLineText\", dep);\n    }\n    return this;\n  }\n  bboxToClipBoxDropOperation(idx, preserve = false) {\n    const needsCleanup = !preserve && idx === this.#bboxTracker._pendingBBoxIdx;\n    this.#bboxTracker.bboxToClipBoxDropOperation(idx);\n    if (needsCleanup) {\n      this.#pendingDependencies.clear();\n    }\n    return this;\n  }\n  take() {\n    this.#fontBBoxTrustworthy.clear();\n    return this.#bboxTracker.take();\n  }\n  takeDebugMetadata() {\n    return this.#debugMetadata;\n  }\n}\nclass CanvasNestedDependencyTracker {\n  #dependencyTracker;\n  #opIdx;\n  #ignoreBBoxes;\n  #nestingLevel = 0;\n  #savesLevel = 0;\n  constructor(dependencyTracker, opIdx, ignoreBBoxes) {\n    if (dependencyTracker instanceof CanvasNestedDependencyTracker && dependencyTracker.#ignoreBBoxes === !!ignoreBBoxes) {\n      return dependencyTracker;\n    }\n    this.#dependencyTracker = dependencyTracker;\n    this.#opIdx = opIdx;\n    this.#ignoreBBoxes = !!ignoreBBoxes;\n  }\n  get clipBox() {\n    return this.#dependencyTracker.clipBox;\n  }\n  growOperationsCount() {\n    throw new Error(\"Unreachable\");\n  }\n  save(opIdx) {\n    this.#savesLevel++;\n    this.#dependencyTracker.save(this.#opIdx);\n    return this;\n  }\n  restore(opIdx) {\n    if (this.#savesLevel > 0) {\n      this.#dependencyTracker.restore(this.#opIdx);\n      this.#savesLevel--;\n    }\n    return this;\n  }\n  recordOpenMarker(idx) {\n    this.#nestingLevel++;\n    return this;\n  }\n  getOpenMarker() {\n    return this.#nestingLevel > 0 ? this.#opIdx : this.#dependencyTracker.getOpenMarker();\n  }\n  recordCloseMarker(idx) {\n    this.#nestingLevel--;\n    return this;\n  }\n  beginMarkedContent(opIdx) {\n    return this;\n  }\n  endMarkedContent(opIdx) {\n    return this;\n  }\n  pushBaseTransform(ctx) {\n    this.#dependencyTracker.pushBaseTransform(ctx);\n    return this;\n  }\n  popBaseTransform() {\n    this.#dependencyTracker.popBaseTransform();\n    return this;\n  }\n  recordSimpleData(name, idx) {\n    this.#dependencyTracker.recordSimpleData(name, this.#opIdx);\n    return this;\n  }\n  recordIncrementalData(name, idx) {\n    this.#dependencyTracker.recordIncrementalData(name, this.#opIdx);\n    return this;\n  }\n  resetIncrementalData(name, idx) {\n    this.#dependencyTracker.resetIncrementalData(name, this.#opIdx);\n    return this;\n  }\n  recordNamedData(name, idx) {\n    return this;\n  }\n  recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n    this.#dependencyTracker.recordSimpleDataFromNamed(name, depName, this.#opIdx);\n    return this;\n  }\n  recordFutureForcedDependency(name, idx) {\n    this.#dependencyTracker.recordFutureForcedDependency(name, this.#opIdx);\n    return this;\n  }\n  inheritSimpleDataAsFutureForcedDependencies(names) {\n    this.#dependencyTracker.inheritSimpleDataAsFutureForcedDependencies(names);\n    return this;\n  }\n  inheritPendingDependenciesAsFutureForcedDependencies() {\n    this.#dependencyTracker.inheritPendingDependenciesAsFutureForcedDependencies();\n    return this;\n  }\n  resetBBox(idx) {\n    if (!this.#ignoreBBoxes) {\n      this.#dependencyTracker.resetBBox(this.#opIdx);\n    }\n    return this;\n  }\n  recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n    if (!this.#ignoreBBoxes) {\n      this.#dependencyTracker.recordClipBox(this.#opIdx, ctx, minX, maxX, minY, maxY);\n    }\n    return this;\n  }\n  recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n    if (!this.#ignoreBBoxes) {\n      this.#dependencyTracker.recordBBox(this.#opIdx, ctx, minX, maxX, minY, maxY);\n    }\n    return this;\n  }\n  recordCharacterBBox(idx, ctx, font, scale, x, y, getMeasure) {\n    if (!this.#ignoreBBoxes) {\n      this.#dependencyTracker.recordCharacterBBox(this.#opIdx, ctx, font, scale, x, y, getMeasure);\n    }\n    return this;\n  }\n  recordFullPageBBox(idx) {\n    if (!this.#ignoreBBoxes) {\n      this.#dependencyTracker.recordFullPageBBox(this.#opIdx);\n    }\n    return this;\n  }\n  getSimpleIndex(dependencyName) {\n    return this.#dependencyTracker.getSimpleIndex(dependencyName);\n  }\n  recordDependencies(idx, dependencyNames) {\n    this.#dependencyTracker.recordDependencies(this.#opIdx, dependencyNames);\n    return this;\n  }\n  recordNamedDependency(idx, name) {\n    this.#dependencyTracker.recordNamedDependency(this.#opIdx, name);\n    return this;\n  }\n  recordOperation(idx) {\n    this.#dependencyTracker.recordOperation(this.#opIdx, true);\n    return this;\n  }\n  recordShowTextOperation(idx) {\n    this.#dependencyTracker.recordShowTextOperation(this.#opIdx, true);\n    return this;\n  }\n  bboxToClipBoxDropOperation(idx) {\n    if (!this.#ignoreBBoxes) {\n      this.#dependencyTracker.bboxToClipBoxDropOperation(this.#opIdx, true);\n    }\n    return this;\n  }\n  take() {\n    throw new Error(\"Unreachable\");\n  }\n  takeDebugMetadata() {\n    throw new Error(\"Unreachable\");\n  }\n}\nconst Dependencies = {\n  stroke: [\"path\", \"transform\", \"filter\", \"strokeColor\", \"strokeAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"dash\"],\n  fill: [\"path\", \"transform\", \"filter\", \"fillColor\", \"fillAlpha\", \"globalCompositeOperation\", \"SMask\"],\n  imageXObject: [\"transform\", \"SMask\", \"filter\", \"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\"],\n  rawFillPath: [\"filter\", \"fillColor\", \"fillAlpha\"],\n  showText: [\"transform\", \"leading\", \"charSpacing\", \"wordSpacing\", \"hScale\", \"textRise\", \"moveText\", \"textMatrix\", \"font\", \"fontObj\", \"filter\", \"fillColor\", \"textRenderingMode\", \"SMask\", \"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\", \"sameLineText\"],\n  transform: [\"transform\"],\n  transformAndFill: [\"transform\", \"fillColor\"]\n};\nclass CanvasImagesTracker {\n  #canvasWidth;\n  #canvasHeight;\n  #capacity = 4;\n  #count = 0;\n  #coords = new CanvasImagesTracker.#CoordsArray(this.#capacity * 6);\n  static #CoordsArray = FeatureTest.isFloat16ArraySupported ? Float16Array : Float32Array;\n  constructor(canvas) {\n    this.#canvasWidth = canvas.width;\n    this.#canvasHeight = canvas.height;\n  }\n  record(ctx, width, height, clipBox) {\n    if (this.#count === this.#capacity) {\n      this.#capacity *= 2;\n      const newCoords = new CanvasImagesTracker.#CoordsArray(this.#capacity * 6);\n      newCoords.set(this.#coords);\n      this.#coords = newCoords;\n    }\n    const transform = getCurrentTransform(ctx);\n    let coords;\n    if (clipBox[0] !== Infinity) {\n      const bbox = BBOX_INIT.slice();\n      Util.axialAlignedBoundingBox([0, -height, width, 0], transform, bbox);\n      const finalBBox = Util.intersect(clipBox, bbox);\n      if (!finalBBox) {\n        return;\n      }\n      const [minX, minY, maxX, maxY] = finalBBox;\n      if (minX !== bbox[0] || minY !== bbox[1] || maxX !== bbox[2] || maxY !== bbox[3]) {\n        const rotationAngle = Math.atan2(transform[1], transform[0]);\n        const sin = Math.abs(Math.sin(rotationAngle));\n        const cos = Math.abs(Math.cos(rotationAngle));\n        if (sin < 1e-6 || cos < 1e-6 || Math.abs(sin - cos) < 1e-6) {\n          coords = [minX, minY, minX, maxY, maxX, minY];\n        } else {\n          const finalBBoxWidth = maxX - minX;\n          const finalBBoxHeight = maxY - minY;\n          const sin2 = sin * sin;\n          const cos2 = cos * cos;\n          const cosSin = cos * sin;\n          const denom = cos2 - sin2;\n          const a = (finalBBoxHeight * cos2 - finalBBoxWidth * cosSin) / denom;\n          const b = (finalBBoxHeight * cosSin - finalBBoxWidth * sin2) / denom;\n          coords = [minX + b, minY, minX, minY + a, maxX, maxY - a];\n        }\n      }\n    }\n    if (!coords) {\n      coords = [0, -height, 0, 0, width, -height];\n      Util.applyTransform(coords, transform, 0);\n      Util.applyTransform(coords, transform, 2);\n      Util.applyTransform(coords, transform, 4);\n    }\n    coords[0] /= this.#canvasWidth;\n    coords[1] /= this.#canvasHeight;\n    coords[2] /= this.#canvasWidth;\n    coords[3] /= this.#canvasHeight;\n    coords[4] /= this.#canvasWidth;\n    coords[5] /= this.#canvasHeight;\n    this.#coords.set(coords, this.#count * 6);\n    this.#count++;\n  }\n  take() {\n    return this.#coords.subarray(0, this.#count * 6);\n  }\n}\n\n;// ./src/display/font_loader.js\n\n\nclass FontLoader {\n  #systemFonts = new Set();\n  #styleSheet = null;\n  constructor({\n    ownerDocument = globalThis.document,\n    styleElement = null\n  }) {\n    this._document = ownerDocument;\n    this.nativeFontFaces = new Set();\n    this.styleElement = null;\n    this.loadingRequests = [];\n    this.loadTestFontId = 0;\n  }\n  addNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.add(nativeFontFace);\n    this._document.fonts.add(nativeFontFace);\n  }\n  removeNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.delete(nativeFontFace);\n    this._document.fonts.delete(nativeFontFace);\n  }\n  insertRule(rule) {\n    const styleSheet = this.#getStyleSheet();\n    styleSheet.insertRule(rule, styleSheet.cssRules.length);\n  }\n  #getStyleSheet() {\n    if (this.#styleSheet) {\n      return this.#styleSheet;\n    }\n    const StyleSheet = this._document.defaultView?.CSSStyleSheet || globalThis.CSSStyleSheet;\n    if (!this.styleElement && StyleSheet) {\n      const {\n        adoptedStyleSheets\n      } = this._document;\n      if (adoptedStyleSheets) {\n        const styleSheet = new StyleSheet();\n        adoptedStyleSheets.push(styleSheet);\n        return this.#styleSheet = styleSheet;\n      }\n    }\n    if (!this.styleElement) {\n      this.styleElement = this._document.createElement(\"style\");\n      this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n    }\n    return this.#styleSheet = this.styleElement.sheet;\n  }\n  clear() {\n    for (const nativeFontFace of this.nativeFontFaces) {\n      this._document.fonts.delete(nativeFontFace);\n    }\n    this.nativeFontFaces.clear();\n    this.#systemFonts.clear();\n    if (this.#styleSheet) {\n      const {\n        adoptedStyleSheets\n      } = this._document;\n      if (adoptedStyleSheets?.includes(this.#styleSheet)) {\n        this._document.adoptedStyleSheets = adoptedStyleSheets.filter(styleSheet => styleSheet !== this.#styleSheet);\n      }\n      this.#styleSheet = null;\n    }\n    if (this.styleElement) {\n      this.styleElement.remove();\n      this.styleElement = null;\n    }\n  }\n  async loadSystemFont({\n    systemFontInfo: info,\n    disableFontFace,\n    _inspectFont\n  }) {\n    if (!info || this.#systemFonts.has(info.loadedName)) {\n      return;\n    }\n    assert(!disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n    if (this.isFontLoadingAPISupported) {\n      const {\n        loadedName,\n        src,\n        style\n      } = info;\n      const fontFace = new FontFace(loadedName, src, style);\n      this.addNativeFontFace(fontFace);\n      try {\n        await fontFace.load();\n        this.#systemFonts.add(loadedName);\n        _inspectFont?.(info);\n      } catch {\n        warn(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n        this.removeNativeFontFace(fontFace);\n      }\n      return;\n    }\n    unreachable(\"Not implemented: loadSystemFont without the Font Loading API.\");\n  }\n  async bind(font) {\n    if (font.attached || font.missingFile && !font.systemFontInfo) {\n      return;\n    }\n    font.attached = true;\n    if (font.systemFontInfo) {\n      await this.loadSystemFont(font);\n      return;\n    }\n    if (this.isFontLoadingAPISupported) {\n      const nativeFontFace = font.createNativeFontFace();\n      if (nativeFontFace) {\n        this.addNativeFontFace(nativeFontFace);\n        try {\n          await nativeFontFace.loaded;\n        } catch (ex) {\n          warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n          font.disableFontFace = true;\n          throw ex;\n        }\n      }\n      return;\n    }\n    const rule = font.createFontFaceRule();\n    if (rule) {\n      this.insertRule(rule);\n      if (this.isSyncFontLoadingSupported) {\n        return;\n      }\n      await new Promise(resolve => {\n        const request = this._queueLoadingCallback(resolve);\n        this._prepareFontLoadEvent(font, request);\n      });\n    }\n  }\n  get isFontLoadingAPISupported() {\n    const hasFonts = !!this._document?.fonts;\n    return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n  }\n  get isSyncFontLoadingSupported() {\n    return shadow(this, \"isSyncFontLoadingSupported\", isNodeJS || FeatureTest.platform.isFirefox);\n  }\n  _queueLoadingCallback(callback) {\n    function completeRequest() {\n      assert(!request.done, \"completeRequest() cannot be called twice.\");\n      request.done = true;\n      while (loadingRequests.length > 0 && loadingRequests[0].done) {\n        const otherRequest = loadingRequests.shift();\n        setTimeout(otherRequest.callback, 0);\n      }\n    }\n    const {\n      loadingRequests\n    } = this;\n    const request = {\n      done: false,\n      complete: completeRequest,\n      callback\n    };\n    loadingRequests.push(request);\n    return request;\n  }\n  get _loadTestFont() {\n    const testFont = atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n    return shadow(this, \"_loadTestFont\", testFont);\n  }\n  _prepareFontLoadEvent(font, request) {\n    function int32(data, offset) {\n      return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n    }\n    function string32(value) {\n      return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n    }\n    function spliceString(s, offset, remove, insert) {\n      const chunk1 = s.substring(0, offset);\n      const chunk2 = s.substring(offset + remove);\n      return chunk1 + insert + chunk2;\n    }\n    let i, ii;\n    const canvas = this._document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = 1;\n    const ctx = canvas.getContext(\"2d\");\n    let called = 0;\n    function isFontReady(name, callback) {\n      if (++called > 30) {\n        warn(\"Load test font never loaded.\");\n        callback();\n        return;\n      }\n      ctx.font = \"30px \" + name;\n      ctx.fillText(\".\", 0, 20);\n      const imageData = ctx.getImageData(0, 0, 1, 1);\n      if (imageData.data[3] > 0) {\n        callback();\n        return;\n      }\n      setTimeout(isFontReady.bind(null, name, callback));\n    }\n    const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n    let data = this._loadTestFont;\n    const COMMENT_OFFSET = 976;\n    data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n    const CFF_CHECKSUM_OFFSET = 16;\n    const XXXX_VALUE = 0x58585858;\n    let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n    for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n      checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n    }\n    if (i < loadTestFontId.length) {\n      checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n    }\n    data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n    const url = `url(data:font/opentype;base64,${btoa(data)});`;\n    const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n    this.insertRule(rule);\n    const div = this._document.createElement(\"div\");\n    div.style.visibility = \"hidden\";\n    div.style.width = div.style.height = \"10px\";\n    div.style.position = \"absolute\";\n    div.style.top = div.style.left = \"0px\";\n    for (const name of [font.loadedName, loadTestFontId]) {\n      const span = this._document.createElement(\"span\");\n      span.textContent = \"Hi\";\n      span.style.fontFamily = name;\n      div.append(span);\n    }\n    this._document.body.append(div);\n    isFontReady(loadTestFontId, () => {\n      div.remove();\n      request.complete();\n    });\n  }\n}\nclass FontFaceObject {\n  compiledGlyphs = Object.create(null);\n  #fontData;\n  constructor(translatedData, inspectFont = null, charProcOperatorList, extra) {\n    this.#fontData = translatedData;\n    this._inspectFont = inspectFont;\n    if (charProcOperatorList) {\n      this.charProcOperatorList = charProcOperatorList;\n    }\n    if (extra) {\n      Object.assign(this, extra);\n    }\n  }\n  createNativeFontFace() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    let nativeFontFace;\n    if (!this.cssFontInfo) {\n      nativeFontFace = new FontFace(this.loadedName, this.data, {});\n    } else {\n      const css = {\n        weight: this.cssFontInfo.fontWeight\n      };\n      if (this.cssFontInfo.italicAngle) {\n        css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n      }\n      nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n    }\n    this._inspectFont?.(this);\n    return nativeFontFace;\n  }\n  createFontFaceRule() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    const url = `url(data:${this.mimetype};base64,${this.data.toBase64()});`;\n    let rule;\n    if (!this.cssFontInfo) {\n      rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n    } else {\n      let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n      if (this.cssFontInfo.italicAngle) {\n        css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n      }\n      rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n    }\n    this._inspectFont?.(this, url);\n    return rule;\n  }\n  getPathGenerator(objs, character) {\n    if (this.compiledGlyphs[character] !== undefined) {\n      return this.compiledGlyphs[character];\n    }\n    const objId = this.loadedName + \"_path_\" + character;\n    let cmds;\n    try {\n      cmds = objs.get(objId);\n    } catch (ex) {\n      warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n    }\n    const path = makePathFromDrawOPS(cmds?.path);\n    if (!this.fontExtraProperties) {\n      objs.delete(objId);\n    }\n    return this.compiledGlyphs[character] = path;\n  }\n  get black() {\n    return this.#fontData.black;\n  }\n  get bold() {\n    return this.#fontData.bold;\n  }\n  get disableFontFace() {\n    return this.#fontData.disableFontFace;\n  }\n  set disableFontFace(value) {\n    shadow(this, \"disableFontFace\", !!value);\n  }\n  get fontExtraProperties() {\n    return this.#fontData.fontExtraProperties;\n  }\n  get isInvalidPDFjsFont() {\n    return this.#fontData.isInvalidPDFjsFont;\n  }\n  get isType3Font() {\n    return this.#fontData.isType3Font;\n  }\n  get italic() {\n    return this.#fontData.italic;\n  }\n  get missingFile() {\n    return this.#fontData.missingFile;\n  }\n  get remeasure() {\n    return this.#fontData.remeasure;\n  }\n  get vertical() {\n    return this.#fontData.vertical;\n  }\n  get ascent() {\n    return this.#fontData.ascent;\n  }\n  get defaultWidth() {\n    return this.#fontData.defaultWidth;\n  }\n  get descent() {\n    return this.#fontData.descent;\n  }\n  get bbox() {\n    return this.#fontData.bbox;\n  }\n  get fontMatrix() {\n    return this.#fontData.fontMatrix;\n  }\n  get fallbackName() {\n    return this.#fontData.fallbackName;\n  }\n  get loadedName() {\n    return this.#fontData.loadedName;\n  }\n  get mimetype() {\n    return this.#fontData.mimetype;\n  }\n  get name() {\n    return this.#fontData.name;\n  }\n  get data() {\n    return this.#fontData.data;\n  }\n  clearData() {\n    this.#fontData.clearData();\n  }\n  get cssFontInfo() {\n    return this.#fontData.cssFontInfo;\n  }\n  get systemFontInfo() {\n    return this.#fontData.systemFontInfo;\n  }\n  get defaultVMetrics() {\n    return this.#fontData.defaultVMetrics;\n  }\n}\n\n;// ./src/shared/obj_bin_transform_utils.js\nclass CSS_FONT_INFO {\n  static strings = [\"fontFamily\", \"fontWeight\", \"italicAngle\"];\n}\nclass SYSTEM_FONT_INFO {\n  static strings = [\"css\", \"loadedName\", \"baseFontName\", \"src\"];\n}\nclass FONT_INFO {\n  static bools = [\"black\", \"bold\", \"disableFontFace\", \"fontExtraProperties\", \"isInvalidPDFjsFont\", \"isType3Font\", \"italic\", \"missingFile\", \"remeasure\", \"vertical\"];\n  static numbers = [\"ascent\", \"defaultWidth\", \"descent\"];\n  static strings = [\"fallbackName\", \"loadedName\", \"mimetype\", \"name\"];\n  static OFFSET_NUMBERS = Math.ceil(this.bools.length * 2 / 8);\n  static OFFSET_BBOX = this.OFFSET_NUMBERS + this.numbers.length * 8;\n  static OFFSET_FONT_MATRIX = this.OFFSET_BBOX + 1 + 2 * 4;\n  static OFFSET_DEFAULT_VMETRICS = this.OFFSET_FONT_MATRIX + 1 + 8 * 6;\n  static OFFSET_STRINGS = this.OFFSET_DEFAULT_VMETRICS + 1 + 2 * 3;\n}\nclass PATTERN_INFO {\n  static KIND = 0;\n  static HAS_BBOX = 1;\n  static HAS_BACKGROUND = 2;\n  static SHADING_TYPE = 3;\n  static N_COORD = 4;\n  static N_COLOR = 8;\n  static N_STOP = 12;\n  static N_FIGURES = 16;\n}\n\n;// ./src/display/obj_bin_transform_display.js\n\n\nclass CssFontInfo {\n  #buffer;\n  #decoder = new TextDecoder();\n  #view;\n  constructor(buffer) {\n    this.#buffer = buffer;\n    this.#view = new DataView(buffer);\n  }\n  #readString(index) {\n    assert(index < CSS_FONT_INFO.strings.length, \"Invalid string index\");\n    let offset = 0;\n    for (let i = 0; i < index; i++) {\n      offset += this.#view.getUint32(offset) + 4;\n    }\n    const length = this.#view.getUint32(offset);\n    return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n  }\n  get fontFamily() {\n    return this.#readString(0);\n  }\n  get fontWeight() {\n    return this.#readString(1);\n  }\n  get italicAngle() {\n    return this.#readString(2);\n  }\n}\nclass SystemFontInfo {\n  #buffer;\n  #decoder = new TextDecoder();\n  #view;\n  constructor(buffer) {\n    this.#buffer = buffer;\n    this.#view = new DataView(buffer);\n  }\n  get guessFallback() {\n    return this.#view.getUint8(0) !== 0;\n  }\n  #readString(index) {\n    assert(index < SYSTEM_FONT_INFO.strings.length, \"Invalid string index\");\n    let offset = 5;\n    for (let i = 0; i < index; i++) {\n      offset += this.#view.getUint32(offset) + 4;\n    }\n    const length = this.#view.getUint32(offset);\n    return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n  }\n  get css() {\n    return this.#readString(0);\n  }\n  get loadedName() {\n    return this.#readString(1);\n  }\n  get baseFontName() {\n    return this.#readString(2);\n  }\n  get src() {\n    return this.#readString(3);\n  }\n  get style() {\n    let offset = 1;\n    offset += 4 + this.#view.getUint32(offset);\n    const styleLength = this.#view.getUint32(offset);\n    const style = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, styleLength));\n    offset += 4 + styleLength;\n    const weightLength = this.#view.getUint32(offset);\n    const weight = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, weightLength));\n    return {\n      style,\n      weight\n    };\n  }\n}\nclass FontInfo {\n  #buffer;\n  #decoder = new TextDecoder();\n  #view;\n  constructor({\n    buffer,\n    extra\n  }) {\n    this.#buffer = buffer;\n    this.#view = new DataView(buffer);\n    if (extra) {\n      Object.assign(this, extra);\n    }\n  }\n  #readBoolean(index) {\n    assert(index < FONT_INFO.bools.length, \"Invalid boolean index\");\n    const byteOffset = Math.floor(index / 4);\n    const bitOffset = index * 2 % 8;\n    const value = this.#view.getUint8(byteOffset) >> bitOffset & 0x03;\n    return value === 0x00 ? undefined : value === 0x02;\n  }\n  get black() {\n    return this.#readBoolean(0);\n  }\n  get bold() {\n    return this.#readBoolean(1);\n  }\n  get disableFontFace() {\n    return this.#readBoolean(2);\n  }\n  get fontExtraProperties() {\n    return this.#readBoolean(3);\n  }\n  get isInvalidPDFjsFont() {\n    return this.#readBoolean(4);\n  }\n  get isType3Font() {\n    return this.#readBoolean(5);\n  }\n  get italic() {\n    return this.#readBoolean(6);\n  }\n  get missingFile() {\n    return this.#readBoolean(7);\n  }\n  get remeasure() {\n    return this.#readBoolean(8);\n  }\n  get vertical() {\n    return this.#readBoolean(9);\n  }\n  #readNumber(index) {\n    assert(index < FONT_INFO.numbers.length, \"Invalid number index\");\n    return this.#view.getFloat64(FONT_INFO.OFFSET_NUMBERS + index * 8);\n  }\n  get ascent() {\n    return this.#readNumber(0);\n  }\n  get defaultWidth() {\n    return this.#readNumber(1);\n  }\n  get descent() {\n    return this.#readNumber(2);\n  }\n  #readArray(offset, arrLen, lookupName, increment) {\n    const len = this.#view.getUint8(offset);\n    if (len === 0) {\n      return undefined;\n    }\n    assert(len === arrLen, \"Invalid array length.\");\n    offset += 1;\n    const arr = new Array(len);\n    for (let i = 0; i < len; i++) {\n      arr[i] = this.#view[lookupName](offset, true);\n      offset += increment;\n    }\n    return arr;\n  }\n  get bbox() {\n    return this.#readArray(FONT_INFO.OFFSET_BBOX, 4, \"getInt16\", 2);\n  }\n  get fontMatrix() {\n    return this.#readArray(FONT_INFO.OFFSET_FONT_MATRIX, 6, \"getFloat64\", 8);\n  }\n  get defaultVMetrics() {\n    return this.#readArray(FONT_INFO.OFFSET_DEFAULT_VMETRICS, 3, \"getInt16\", 2);\n  }\n  #readString(index) {\n    assert(index < FONT_INFO.strings.length, \"Invalid string index\");\n    let offset = FONT_INFO.OFFSET_STRINGS + 4;\n    for (let i = 0; i < index; i++) {\n      offset += this.#view.getUint32(offset) + 4;\n    }\n    const length = this.#view.getUint32(offset);\n    return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n  }\n  get fallbackName() {\n    return this.#readString(0);\n  }\n  get loadedName() {\n    return this.#readString(1);\n  }\n  get mimetype() {\n    return this.#readString(2);\n  }\n  get name() {\n    return this.#readString(3);\n  }\n  #getDataOffsets() {\n    let offset = FONT_INFO.OFFSET_STRINGS;\n    const stringsLength = this.#view.getUint32(offset);\n    offset += 4 + stringsLength;\n    const systemFontInfoLength = this.#view.getUint32(offset);\n    offset += 4 + systemFontInfoLength;\n    const cssFontInfoLength = this.#view.getUint32(offset);\n    offset += 4 + cssFontInfoLength;\n    const length = this.#view.getUint32(offset);\n    return {\n      offset,\n      length\n    };\n  }\n  get data() {\n    const {\n      offset,\n      length\n    } = this.#getDataOffsets();\n    return length === 0 ? undefined : new Uint8Array(this.#buffer, offset + 4, length);\n  }\n  clearData() {\n    const {\n      offset,\n      length\n    } = this.#getDataOffsets();\n    if (length === 0) {\n      return;\n    }\n    this.#view.setUint32(offset, 0);\n    this.#buffer = new Uint8Array(this.#buffer, 0, offset + 4).slice().buffer;\n    this.#view = new DataView(this.#buffer);\n  }\n  get cssFontInfo() {\n    let offset = FONT_INFO.OFFSET_STRINGS;\n    const stringsLength = this.#view.getUint32(offset);\n    offset += 4 + stringsLength;\n    const systemFontInfoLength = this.#view.getUint32(offset);\n    offset += 4 + systemFontInfoLength;\n    const cssFontInfoLength = this.#view.getUint32(offset);\n    if (cssFontInfoLength === 0) {\n      return null;\n    }\n    const cssFontInfoData = new Uint8Array(cssFontInfoLength);\n    cssFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, cssFontInfoLength));\n    return new CssFontInfo(cssFontInfoData.buffer);\n  }\n  get systemFontInfo() {\n    let offset = FONT_INFO.OFFSET_STRINGS;\n    const stringsLength = this.#view.getUint32(offset);\n    offset += 4 + stringsLength;\n    const systemFontInfoLength = this.#view.getUint32(offset);\n    if (systemFontInfoLength === 0) {\n      return null;\n    }\n    const systemFontInfoData = new Uint8Array(systemFontInfoLength);\n    systemFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, systemFontInfoLength));\n    return new SystemFontInfo(systemFontInfoData.buffer);\n  }\n}\nclass PatternInfo {\n  constructor(buffer) {\n    this.buffer = buffer;\n    this.view = new DataView(buffer);\n    this.data = new Uint8Array(buffer);\n  }\n  getIR() {\n    const dataView = this.view;\n    const kind = this.data[PATTERN_INFO.KIND];\n    const hasBBox = !!this.data[PATTERN_INFO.HAS_BBOX];\n    const hasBackground = !!this.data[PATTERN_INFO.HAS_BACKGROUND];\n    const nCoord = dataView.getUint32(PATTERN_INFO.N_COORD, true);\n    const nColor = dataView.getUint32(PATTERN_INFO.N_COLOR, true);\n    const nStop = dataView.getUint32(PATTERN_INFO.N_STOP, true);\n    let offset = 20;\n    const coords = new Float32Array(this.buffer, offset, nCoord * 2);\n    offset += nCoord * 8;\n    const colors = new Uint8Array(this.buffer, offset, nColor * 4);\n    offset += nColor * 4;\n    const stops = [];\n    for (let i = 0; i < nStop; ++i) {\n      const p = dataView.getFloat32(offset, true);\n      offset += 4;\n      const rgb = dataView.getUint32(offset, true);\n      offset += 4;\n      stops.push([p, `#${rgb.toString(16).padStart(6, \"0\")}`]);\n    }\n    let bbox = null;\n    if (hasBBox) {\n      bbox = [];\n      for (let i = 0; i < 4; ++i) {\n        bbox.push(dataView.getFloat32(offset, true));\n        offset += 4;\n      }\n    }\n    let background = null;\n    if (hasBackground) {\n      background = new Uint8Array(this.buffer, offset, 3);\n      offset += 3;\n    }\n    if (kind === 1) {\n      return [\"RadialAxial\", \"axial\", bbox, stops, Array.from(coords.slice(0, 2)), Array.from(coords.slice(2, 4)), null, null];\n    }\n    if (kind === 2) {\n      return [\"RadialAxial\", \"radial\", bbox, stops, [coords[0], coords[1]], [coords[3], coords[4]], coords[2], coords[5]];\n    }\n    if (kind === 3) {\n      const shadingType = this.data[PATTERN_INFO.SHADING_TYPE];\n      let bounds = null;\n      if (coords.length > 0) {\n        bounds = BBOX_INIT.slice();\n        for (let i = 0, ii = coords.length; i < ii; i += 2) {\n          Util.pointBoundingBox(coords[i], coords[i + 1], bounds);\n        }\n      }\n      return [\"Mesh\", shadingType, coords, colors, nCoord, bounds, bbox, background];\n    }\n    throw new Error(`Unsupported pattern kind: ${kind}`);\n  }\n}\nclass FontPathInfo {\n  #buffer;\n  constructor(buffer) {\n    this.#buffer = buffer;\n  }\n  get path() {\n    if (FeatureTest.isFloat16ArraySupported) {\n      return new Float16Array(this.#buffer);\n    }\n    return new Float32Array(this.#buffer);\n  }\n}\n\n;// ./src/display/api_utils.js\n\nfunction getUrlProp(val) {\n  if (val instanceof URL) {\n    return val;\n  }\n  if (typeof val === \"string\") {\n    if (isNodeJS) {\n      if (/^[a-z][a-z0-9\\-+.]+:/i.test(val)) {\n        return new URL(val);\n      }\n      const url = process.getBuiltinModule(\"url\");\n      return new URL(url.pathToFileURL(val));\n    }\n    const url = URL.parse(val, window.location);\n    if (url) {\n      return url;\n    }\n  }\n  throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n  if (isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n    throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n  }\n  if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n    return val;\n  }\n  if (typeof val === \"string\") {\n    return stringToBytes(val);\n  }\n  if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === \"object\" && !isNaN(val?.length)) {\n    return new Uint8Array(val);\n  }\n  throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nfunction getFactoryUrlProp(val) {\n  if (typeof val !== \"string\") {\n    return null;\n  }\n  if (val.endsWith(\"/\")) {\n    return val;\n  }\n  throw new Error(`Invalid factory url: \"${val}\" must include trailing slash.`);\n}\nconst isRefProxy = v => typeof v === \"object\" && Number.isInteger(v?.num) && v.num >= 0 && Number.isInteger(v?.gen) && v.gen >= 0;\nconst isNameProxy = v => typeof v === \"object\" && typeof v?.name === \"string\";\nconst isValidExplicitDest = _isValidExplicitDest.bind(null, isRefProxy, isNameProxy);\nclass LoopbackPort {\n  #listeners = new Map();\n  #deferred = Promise.resolve();\n  postMessage(obj, transfer) {\n    const event = {\n      data: structuredClone(obj, transfer ? {\n        transfer\n      } : null)\n    };\n    this.#deferred.then(() => {\n      for (const [listener] of this.#listeners) {\n        listener.call(this, event);\n      }\n    });\n  }\n  addEventListener(name, listener, options = null) {\n    let rmAbort = null;\n    if (options?.signal instanceof AbortSignal) {\n      const {\n        signal\n      } = options;\n      if (signal.aborted) {\n        warn(\"LoopbackPort - cannot use an `aborted` signal.\");\n        return;\n      }\n      const onAbort = () => this.removeEventListener(name, listener);\n      rmAbort = () => signal.removeEventListener(\"abort\", onAbort);\n      signal.addEventListener(\"abort\", onAbort);\n    }\n    this.#listeners.set(listener, rmAbort);\n  }\n  removeEventListener(name, listener) {\n    const rmAbort = this.#listeners.get(listener);\n    rmAbort?.();\n    this.#listeners.delete(listener);\n  }\n  terminate() {\n    for (const [, rmAbort] of this.#listeners) {\n      rmAbort?.();\n    }\n    this.#listeners.clear();\n  }\n}\n\n;// ./src/shared/message_handler.js\n\nconst CallbackKind = {\n  DATA: 1,\n  ERROR: 2\n};\nconst StreamKind = {\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8\n};\nfunction onFn() {}\nfunction wrapReason(ex) {\n  if (ex instanceof AbortException || ex instanceof InvalidPDFException || ex instanceof PasswordException || ex instanceof ResponseException || ex instanceof UnknownErrorException) {\n    return ex;\n  }\n  if (!(ex instanceof Error || typeof ex === \"object\" && ex !== null)) {\n    unreachable('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n  }\n  switch (ex.name) {\n    case \"AbortException\":\n      return new AbortException(ex.message);\n    case \"InvalidPDFException\":\n      return new InvalidPDFException(ex.message);\n    case \"PasswordException\":\n      return new PasswordException(ex.message, ex.code);\n    case \"ResponseException\":\n      return new ResponseException(ex.message, ex.status, ex.missing);\n    case \"UnknownErrorException\":\n      return new UnknownErrorException(ex.message, ex.details);\n  }\n  return new UnknownErrorException(ex.message, ex.toString());\n}\nclass MessageHandler {\n  #messageAC = new AbortController();\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n    comObj.addEventListener(\"message\", this.#onMessage.bind(this), {\n      signal: this.#messageAC.signal\n    });\n  }\n  #onMessage({\n    data\n  }) {\n    if (data.targetName !== this.sourceName) {\n      return;\n    }\n    if (data.stream) {\n      this.#processStreamMessage(data);\n      return;\n    }\n    if (data.callback) {\n      const callbackId = data.callbackId;\n      const capability = this.callbackCapabilities[callbackId];\n      if (!capability) {\n        throw new Error(`Cannot resolve callback ${callbackId}`);\n      }\n      delete this.callbackCapabilities[callbackId];\n      if (data.callback === CallbackKind.DATA) {\n        capability.resolve(data.data);\n      } else if (data.callback === CallbackKind.ERROR) {\n        capability.reject(wrapReason(data.reason));\n      } else {\n        throw new Error(\"Unexpected callback case\");\n      }\n      return;\n    }\n    const action = this.actionHandler[data.action];\n    if (!action) {\n      throw new Error(`Unknown action from worker: ${data.action}`);\n    }\n    if (data.callbackId) {\n      const sourceName = this.sourceName,\n        targetName = data.sourceName,\n        comObj = this.comObj;\n      Promise.try(action, data.data).then(function (result) {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          callback: CallbackKind.DATA,\n          callbackId: data.callbackId,\n          data: result\n        });\n      }, function (reason) {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          callback: CallbackKind.ERROR,\n          callbackId: data.callbackId,\n          reason: wrapReason(reason)\n        });\n      });\n      return;\n    }\n    if (data.streamId) {\n      this.#createStreamSink(data);\n      return;\n    }\n    action(data.data);\n  }\n  on(actionName, handler) {\n    const ah = this.actionHandler;\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n    ah[actionName] = handler;\n  }\n  send(actionName, data, transfers) {\n    this.comObj.postMessage({\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data\n    }, transfers);\n  }\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = Promise.withResolvers();\n    this.callbackCapabilities[callbackId] = capability;\n    try {\n      this.comObj.postMessage({\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        callbackId,\n        data\n      }, transfers);\n    } catch (ex) {\n      capability.reject(ex);\n    }\n    return capability.promise;\n  }\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++,\n      sourceName = this.sourceName,\n      targetName = this.targetName,\n      comObj = this.comObj;\n    return new ReadableStream({\n      start: controller => {\n        const startCapability = Promise.withResolvers();\n        this.streamControllers[streamId] = {\n          controller,\n          startCall: startCapability,\n          pullCall: null,\n          cancelCall: null,\n          isClosed: false\n        };\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          action: actionName,\n          streamId,\n          data,\n          desiredSize: controller.desiredSize\n        }, transfers);\n        return startCapability.promise;\n      },\n      pull: controller => {\n        const pullCapability = Promise.withResolvers();\n        this.streamControllers[streamId].pullCall = pullCapability;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.PULL,\n          streamId,\n          desiredSize: controller.desiredSize\n        });\n        return pullCapability.promise;\n      },\n      cancel: reason => {\n        assert(reason instanceof Error, \"cancel must have a valid reason\");\n        const cancelCapability = Promise.withResolvers();\n        this.streamControllers[streamId].cancelCall = cancelCapability;\n        this.streamControllers[streamId].isClosed = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CANCEL,\n          streamId,\n          reason: wrapReason(reason)\n        });\n        return cancelCapability.promise;\n      }\n    }, queueingStrategy);\n  }\n  #createStreamSink(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const self = this,\n      action = this.actionHandler[data.action];\n    const streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = Promise.withResolvers();\n          this.ready = this.sinkCapability.promise;\n        }\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ENQUEUE,\n          streamId,\n          chunk\n        }, transfers);\n      },\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId\n        });\n        delete self.streamSinks[streamId];\n      },\n      error(reason) {\n        assert(reason instanceof Error, \"error must have a valid reason\");\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason)\n        });\n      },\n      sinkCapability: Promise.withResolvers(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null\n    };\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    Promise.try(action, data.data, streamSink).then(function () {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        success: true\n      });\n    }, function (reason) {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        reason: wrapReason(reason)\n      });\n    });\n  }\n  #processStreamMessage(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const streamController = this.streamControllers[streamId],\n      streamSink = this.streamSinks[streamId];\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          streamController.startCall.resolve();\n        } else {\n          streamController.startCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          streamController.pullCall.resolve();\n        } else {\n          streamController.pullCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL:\n        if (!streamSink) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n          break;\n        }\n        if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n          streamSink.sinkCapability.resolve();\n        }\n        streamSink.desiredSize = data.desiredSize;\n        Promise.try(streamSink.onPull || onFn).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        break;\n      case StreamKind.ENQUEUE:\n        assert(streamController, \"enqueue should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.controller.enqueue(data.chunk);\n        break;\n      case StreamKind.CLOSE:\n        assert(streamController, \"close should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.isClosed = true;\n        streamController.controller.close();\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.ERROR:\n        assert(streamController, \"error should have stream controller\");\n        streamController.controller.error(wrapReason(data.reason));\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          streamController.cancelCall.resolve();\n        } else {\n          streamController.cancelCall.reject(wrapReason(data.reason));\n        }\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL:\n        if (!streamSink) {\n          break;\n        }\n        const dataReason = wrapReason(data.reason);\n        Promise.try(streamSink.onCancel || onFn, dataReason).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        streamSink.sinkCapability.reject(dataReason);\n        streamSink.isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n  async #deleteStreamController(streamController, streamId) {\n    await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n    delete this.streamControllers[streamId];\n  }\n  destroy() {\n    this.#messageAC?.abort();\n    this.#messageAC = null;\n  }\n}\n\n;// ./src/display/binary_data_factory.js\n\n\nclass BaseBinaryDataFactory {\n  #errorStr = Object.freeze({\n    cMapUrl: \"CMap\",\n    standardFontDataUrl: \"font\",\n    wasmUrl: \"wasm\"\n  });\n  constructor({\n    cMapUrl = null,\n    standardFontDataUrl = null,\n    wasmUrl = null\n  }) {\n    this.cMapUrl = cMapUrl;\n    this.standardFontDataUrl = standardFontDataUrl;\n    this.wasmUrl = wasmUrl;\n  }\n  async fetch({\n    kind,\n    filename\n  }) {\n    switch (kind) {\n      case \"cMapUrl\":\n      case \"standardFontDataUrl\":\n      case \"wasmUrl\":\n        break;\n      default:\n        unreachable(`Not implemented: ${kind}`);\n    }\n    const baseUrl = this[kind];\n    if (!baseUrl) {\n      throw new Error(`Ensure that the \\`${kind}\\` API parameter is provided.`);\n    }\n    const url = `${baseUrl}${filename}`;\n    return this._fetch(url, kind).catch(reason => {\n      throw new Error(`Unable to load ${this.#errorStr[kind]} data at: ${url}`);\n    });\n  }\n  async _fetch(url, kind) {\n    unreachable(\"Abstract method `_fetch` called.\");\n  }\n}\nclass DOMBinaryDataFactory extends BaseBinaryDataFactory {\n  async _fetch(url, kind) {\n    const type = kind === \"cMapUrl\" && !url.endsWith(\".bcmap\") ? \"text\" : \"bytes\";\n    const data = await fetchData(url, type);\n    return data instanceof Uint8Array ? data : stringToBytes(data);\n  }\n}\n\n;// ./src/display/canvas_factory.js\n\nclass BaseCanvasFactory {\n  #enableHWA = false;\n  constructor({\n    enableHWA = false\n  }) {\n    this.#enableHWA = enableHWA;\n  }\n  create(width, height) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    const canvas = this._createCanvas(width, height);\n    return {\n      canvas,\n      context: canvas.getContext(\"2d\", {\n        willReadFrequently: !this.#enableHWA\n      })\n    };\n  }\n  reset({\n    canvas\n  }, width, height) {\n    if (!canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    canvas.width = width;\n    canvas.height = height;\n  }\n  destroy(canvasAndContext) {\n    const {\n      canvas\n    } = canvasAndContext;\n    if (!canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    canvas.width = canvas.height = 0;\n    canvasAndContext.canvas = null;\n    canvasAndContext.context = null;\n  }\n  _createCanvas(width, height) {\n    unreachable(\"Abstract method `_createCanvas` called.\");\n  }\n}\nclass DOMCanvasFactory extends BaseCanvasFactory {\n  constructor({\n    ownerDocument = globalThis.document,\n    enableHWA = false\n  }) {\n    super({\n      enableHWA\n    });\n    this._document = ownerDocument;\n  }\n  _createCanvas(width, height) {\n    const canvas = this._document.createElement(\"canvas\");\n    canvas.width = width;\n    canvas.height = height;\n    return canvas;\n  }\n}\n\n;// ./src/display/filter_factory.js\n\n\nclass BaseFilterFactory {\n  addFilter(maps) {\n    return \"none\";\n  }\n  addHCMFilter(fgColor, bgColor) {\n    return \"none\";\n  }\n  addAlphaFilter(map) {\n    return \"none\";\n  }\n  addLuminosityFilter(map) {\n    return \"none\";\n  }\n  addKnockoutFilter(alpha = 0) {\n    return \"none\";\n  }\n  addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n    return \"none\";\n  }\n  addSelectionHCMFilter(fgColor, bgColor) {\n    return \"none\";\n  }\n  addSelectionFilter() {\n    return \"none\";\n  }\n  createSelectionStyle(pageColors = null) {\n    return null;\n  }\n  destroy(keepHCM = false) {}\n}\nclass DOMFilterFactory extends BaseFilterFactory {\n  #baseUrl;\n  #_cache;\n  #_defs;\n  #docId;\n  #document;\n  #_hcmCache;\n  #id = 0;\n  constructor({\n    docId,\n    ownerDocument = globalThis.document\n  }) {\n    super();\n    this.#docId = docId;\n    this.#document = ownerDocument;\n  }\n  get #cache() {\n    return this.#_cache ||= new Map();\n  }\n  get #hcmCache() {\n    return this.#_hcmCache ||= new Map();\n  }\n  get #defs() {\n    if (!this.#_defs) {\n      const div = this.#document.createElement(\"div\");\n      const {\n        style\n      } = div;\n      style.colorScheme = \"only light\";\n      style.visibility = \"hidden\";\n      style.contain = \"strict\";\n      style.width = style.height = 0;\n      style.position = \"absolute\";\n      style.top = style.left = 0;\n      style.zIndex = -1;\n      const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n      svg.setAttribute(\"width\", 0);\n      svg.setAttribute(\"height\", 0);\n      this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n      div.append(svg);\n      svg.append(this.#_defs);\n      this.#document.body.append(div);\n    }\n    return this.#_defs;\n  }\n  #createTables(maps) {\n    if (maps.length === 1) {\n      const mapR = maps[0];\n      const buffer = new Array(256);\n      for (let i = 0; i < 256; i++) {\n        buffer[i] = mapR[i] / 255;\n      }\n      const table = buffer.join(\",\");\n      return [table, table, table];\n    }\n    const [mapR, mapG, mapB] = maps;\n    const bufferR = new Array(256);\n    const bufferG = new Array(256);\n    const bufferB = new Array(256);\n    for (let i = 0; i < 256; i++) {\n      bufferR[i] = mapR[i] / 255;\n      bufferG[i] = mapG[i] / 255;\n      bufferB[i] = mapB[i] / 255;\n    }\n    return [bufferR.join(\",\"), bufferG.join(\",\"), bufferB.join(\",\")];\n  }\n  #createUrl(id) {\n    if (this.#baseUrl === undefined) {\n      this.#baseUrl = \"\";\n      const url = this.#document.URL;\n      if (url !== this.#document.baseURI) {\n        if (isDataScheme(url)) {\n          warn('#createUrl: ignore \"data:\"-URL for performance reasons.');\n        } else {\n          this.#baseUrl = updateUrlHash(url, \"\");\n        }\n      }\n    }\n    return `url(${this.#baseUrl}#${id})`;\n  }\n  addFilter(maps) {\n    if (!maps) {\n      return \"none\";\n    }\n    let value = this.#cache.get(maps);\n    if (value) {\n      return value;\n    }\n    const [tableR, tableG, tableB] = this.#createTables(maps);\n    const key = maps.length === 1 ? tableR : `${tableR}${tableG}${tableB}`;\n    value = this.#cache.get(key);\n    if (value) {\n      this.#cache.set(maps, value);\n      return value;\n    }\n    const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n    const url = this.#createUrl(id);\n    this.#cache.set(maps, url);\n    this.#cache.set(key, url);\n    const filter = this.#createFilter(id);\n    this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n    return url;\n  }\n  addHCMFilter(fgColor, bgColor) {\n    const key = `${fgColor}-${bgColor}`;\n    const filterName = \"base\";\n    let info = this.#hcmCache.get(filterName);\n    if (info?.key === key) {\n      return info.url;\n    }\n    if (info) {\n      info.filter?.remove();\n      info.key = key;\n      info.url = \"none\";\n      info.filter = null;\n    } else {\n      info = {\n        key,\n        url: \"none\",\n        filter: null\n      };\n      this.#hcmCache.set(filterName, info);\n    }\n    if (!fgColor || !bgColor) {\n      return info.url;\n    }\n    const fgRGB = this.#getRGB(fgColor);\n    fgColor = Util.makeHexColor(...fgRGB);\n    const bgRGB = this.#getRGB(bgColor);\n    bgColor = Util.makeHexColor(...bgRGB);\n    this.#resetDefsColor();\n    if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n      return info.url;\n    }\n    const map = new Array(256);\n    for (let i = 0; i <= 255; i++) {\n      const x = i / 255;\n      map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n    }\n    const table = map.join(\",\");\n    const id = `g_${this.#docId}_hcm_filter`;\n    const filter = info.filter = this.#createFilter(id);\n    this.#addTransferMapConversion(table, table, table, filter);\n    this.#addGrayConversion(filter);\n    const getSteps = (c, n) => {\n      const start = fgRGB[c] / 255;\n      const end = bgRGB[c] / 255;\n      const arr = new Array(n + 1);\n      for (let i = 0; i <= n; i++) {\n        arr[i] = start + i / n * (end - start);\n      }\n      return arr.join(\",\");\n    };\n    this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n    info.url = this.#createUrl(id);\n    return info.url;\n  }\n  addSelectionHCMFilter(fgColor, bgColor) {\n    return this.addHighlightHCMFilter(\"selection\", fgColor, bgColor, \"HighlightText\", \"Highlight\");\n  }\n  addSelectionFilter() {\n    return this.addHighlightHCMFilter(\"selection_default\", \"black\", \"white\", \"HighlightText\", \"Highlight\");\n  }\n  createSelectionStyle(pageColors = null) {\n    const filter = pageColors ? this.addSelectionHCMFilter(pageColors.foreground, pageColors.background) : this.addSelectionFilter();\n    if (filter === \"none\" || !FeatureTest.platform.isFirefox) {\n      return null;\n    }\n    return {\n      \"backdrop-filter\": filter,\n      \"background-color\": \"transparent\"\n    };\n  }\n  addAlphaFilter(map) {\n    let value = this.#cache.get(map);\n    if (value) {\n      return value;\n    }\n    const [tableA] = this.#createTables([map]);\n    const key = `alpha_${tableA}`;\n    value = this.#cache.get(key);\n    if (value) {\n      this.#cache.set(map, value);\n      return value;\n    }\n    const id = `g_${this.#docId}_alpha_map_${this.#id++}`;\n    const url = this.#createUrl(id);\n    this.#cache.set(map, url);\n    this.#cache.set(key, url);\n    const filter = this.#createFilter(id);\n    this.#addTransferMapAlphaConversion(tableA, filter);\n    return url;\n  }\n  addLuminosityFilter(map) {\n    let value = this.#cache.get(map || \"luminosity\");\n    if (value) {\n      return value;\n    }\n    let tableA, key;\n    if (map) {\n      [tableA] = this.#createTables([map]);\n      key = `luminosity_${tableA}`;\n    } else {\n      key = \"luminosity\";\n    }\n    value = this.#cache.get(key);\n    if (value) {\n      this.#cache.set(map, value);\n      return value;\n    }\n    const id = `g_${this.#docId}_luminosity_map_${this.#id++}`;\n    const url = this.#createUrl(id);\n    this.#cache.set(map, url);\n    this.#cache.set(key, url);\n    const filter = this.#createFilter(id);\n    this.#addLuminosityConversion(filter);\n    if (map) {\n      this.#addTransferMapAlphaConversion(tableA, filter);\n    }\n    return url;\n  }\n  addKnockoutFilter(alpha = 0) {\n    const slope = alpha > 0 ? Math.min(1 / alpha, 1e6) : 1e6;\n    const key = `knockout_${slope}`;\n    const value = this.#cache.get(key);\n    if (value) {\n      return value;\n    }\n    const id = `g_${this.#docId}_knockout_filter_${this.#id++}`;\n    const url = this.#createUrl(id);\n    this.#cache.set(key, url);\n    const filter = this.#createFilter(id);\n    const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n    filter.append(feComponentTransfer);\n    const feFuncA = this.#document.createElementNS(SVG_NS, \"feFuncA\");\n    feFuncA.setAttribute(\"type\", \"linear\");\n    feFuncA.setAttribute(\"slope\", `${slope}`);\n    feFuncA.setAttribute(\"intercept\", \"0\");\n    feComponentTransfer.append(feFuncA);\n    return url;\n  }\n  addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n    const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n    let info = this.#hcmCache.get(filterName);\n    if (info?.key === key) {\n      return info.url;\n    }\n    if (info) {\n      info.filter?.remove();\n      info.key = key;\n      info.url = \"none\";\n      info.filter = null;\n    } else {\n      info = {\n        key,\n        url: \"none\",\n        filter: null\n      };\n      this.#hcmCache.set(filterName, info);\n    }\n    if (!fgColor || !bgColor) {\n      return info.url;\n    }\n    const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n    let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n    let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n    let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getOpaqueTextColor.bind(this));\n    if (bgGray < fgGray) {\n      [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n    }\n    this.#resetDefsColor();\n    const getSteps = (fg, bg, n) => {\n      const arr = new Array(256);\n      const step = (bgGray - fgGray) / n;\n      const newStart = fg / 255;\n      const newStep = (bg - fg) / (255 * n);\n      let prev = 0;\n      for (let i = 0; i <= n; i++) {\n        const k = Math.round(fgGray + i * step);\n        const value = newStart + i * newStep;\n        for (let j = prev; j <= k; j++) {\n          arr[j] = value;\n        }\n        prev = k + 1;\n      }\n      for (let i = prev; i < 256; i++) {\n        arr[i] = arr[prev - 1];\n      }\n      return arr.join(\",\");\n    };\n    const id = `g_${this.#docId}_hcm_${filterName}_filter`;\n    const filter = info.filter = this.#createFilter(id);\n    this.#addGrayConversion(filter);\n    this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n    info.url = this.#createUrl(id);\n    return info.url;\n  }\n  destroy(keepHCM = false) {\n    if (keepHCM && this.#_hcmCache?.size) {\n      return;\n    }\n    this.#_defs?.parentNode.parentNode.remove();\n    this.#_defs = null;\n    this.#_cache?.clear();\n    this.#_cache = null;\n    this.#_hcmCache?.clear();\n    this.#_hcmCache = null;\n    this.#id = 0;\n  }\n  #addLuminosityConversion(filter) {\n    const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"values\", \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0\");\n    filter.append(feColorMatrix);\n  }\n  #addGrayConversion(filter) {\n    const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n    filter.append(feColorMatrix);\n  }\n  #createFilter(id) {\n    const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n    filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.setAttribute(\"id\", id);\n    this.#defs.append(filter);\n    return filter;\n  }\n  #appendFeFunc(feComponentTransfer, func, table) {\n    const feFunc = this.#document.createElementNS(SVG_NS, func);\n    feFunc.setAttribute(\"type\", \"discrete\");\n    feFunc.setAttribute(\"tableValues\", table);\n    feComponentTransfer.append(feFunc);\n  }\n  #addTransferMapConversion(rTable, gTable, bTable, filter) {\n    const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n    filter.append(feComponentTransfer);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n  }\n  #addTransferMapAlphaConversion(aTable, filter) {\n    const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n    filter.append(feComponentTransfer);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncA\", aTable);\n  }\n  #getRGB(color) {\n    this.#defs.style.color = \"CanvasText\";\n    this.#defs.style.backgroundColor = color;\n    return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"background-color\"));\n  }\n  #getRGBA(color) {\n    this.#defs.style.color = \"CanvasText\";\n    this.#defs.style.backgroundColor = color;\n    return getRGBA(getComputedStyle(this.#defs).getPropertyValue(\"background-color\"));\n  }\n  #resetDefsColor() {\n    this.#defs.style.color = \"\";\n    this.#defs.style.backgroundColor = \"\";\n  }\n  #getOpaqueTextColor(color) {\n    const [r, g, b, alpha] = this.#getRGBA(color);\n    if (alpha === 1) {\n      return [r, g, b];\n    }\n    const [canvasR, canvasG, canvasB] = this.#getRGB(\"Canvas\");\n    return [blend(r, canvasR, alpha), blend(g, canvasG, alpha), blend(b, canvasB, alpha)];\n  }\n}\nfunction blend(fg, bg, alpha) {\n  return Math.round(alpha * fg + (1 - alpha) * bg);\n}\n\n;// ./src/display/node_utils.js\n\n\n\n\nif (isNodeJS) {\n  warn(\"Please use the `legacy` build in Node.js environments.\");\n}\nasync function node_utils_fetchData(url) {\n  const fs = process.getBuiltinModule(\"fs/promises\");\n  const data = await fs.readFile(url);\n  return new Uint8Array(data);\n}\nclass NodeFilterFactory extends BaseFilterFactory {}\nclass NodeCanvasFactory extends BaseCanvasFactory {\n  _createCanvas(width, height) {\n    const require = process.getBuiltinModule(\"module\").createRequire(import.meta.url);\n    const canvas = require(\"@napi-rs/canvas\");\n    return canvas.createCanvas(width, height);\n  }\n}\nclass NodeBinaryDataFactory extends BaseBinaryDataFactory {\n  async _fetch(url, kind) {\n    return node_utils_fetchData(url);\n  }\n}\n\n;// ./src/shared/image_utils.js\n/* unused harmony import specifier */ var image_utils_ImageKind;\n/* unused harmony import specifier */ var image_utils_FeatureTest;\n\nfunction convertToRGBA(params) {\n  switch (params.kind) {\n    case image_utils_ImageKind.GRAYSCALE_1BPP:\n      return convertBlackAndWhiteToRGBA(params);\n    case image_utils_ImageKind.RGB_24BPP:\n      return convertRGBToRGBA(params);\n  }\n  return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  width,\n  height,\n  nonBlackColor = 0xffffffff,\n  inverseDecode = false\n}) {\n  const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n  const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n  const widthInSource = width >> 3;\n  const widthRemainder = width & 7;\n  const xorMask = zeroMapping ^ oneMapping;\n  const srcLength = src.length;\n  dest = new Uint32Array(dest.buffer);\n  let destPos = 0;\n  for (let i = 0; i < height; ++i) {\n    for (const max = srcPos + widthInSource; srcPos < max; ++srcPos, destPos += 8) {\n      const elem = src[srcPos];\n      dest[destPos] = zeroMapping ^ -(elem >> 7 & 1) & xorMask;\n      dest[destPos + 1] = zeroMapping ^ -(elem >> 6 & 1) & xorMask;\n      dest[destPos + 2] = zeroMapping ^ -(elem >> 5 & 1) & xorMask;\n      dest[destPos + 3] = zeroMapping ^ -(elem >> 4 & 1) & xorMask;\n      dest[destPos + 4] = zeroMapping ^ -(elem >> 3 & 1) & xorMask;\n      dest[destPos + 5] = zeroMapping ^ -(elem >> 2 & 1) & xorMask;\n      dest[destPos + 6] = zeroMapping ^ -(elem >> 1 & 1) & xorMask;\n      dest[destPos + 7] = zeroMapping ^ -(elem & 1) & xorMask;\n    }\n    if (widthRemainder === 0) {\n      continue;\n    }\n    const elem = srcPos < srcLength ? src[srcPos++] : 255;\n    for (let j = 0; j < widthRemainder; ++j, ++destPos) {\n      dest[destPos] = zeroMapping ^ -(elem >> 7 - j & 1) & xorMask;\n    }\n  }\n  return {\n    srcPos,\n    destPos\n  };\n}\nfunction convertRGBToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  destPos = 0,\n  width,\n  height\n}) {\n  let i = 0;\n  const len = width * height * 3;\n  const len32 = len >> 2;\n  const src32 = new Uint32Array(src.buffer, srcPos, len32);\n  const alphaMask = FeatureTest.isLittleEndian ? 0xff000000 : 0xff;\n  if (FeatureTest.isLittleEndian) {\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i],\n        s2 = src32[i + 1],\n        s3 = src32[i + 2];\n      dest[destPos] = s1 | alphaMask;\n      dest[destPos + 1] = s1 >>> 24 | s2 << 8 | alphaMask;\n      dest[destPos + 2] = s2 >>> 16 | s3 << 16 | alphaMask;\n      dest[destPos + 3] = s3 >>> 8 | alphaMask;\n    }\n    for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n      dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | alphaMask;\n    }\n  } else {\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i],\n        s2 = src32[i + 1],\n        s3 = src32[i + 2];\n      dest[destPos] = s1 | alphaMask;\n      dest[destPos + 1] = s1 << 24 | s2 >>> 8 | alphaMask;\n      dest[destPos + 2] = s2 << 16 | s3 >>> 16 | alphaMask;\n      dest[destPos + 3] = s3 << 8 | alphaMask;\n    }\n    for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n      dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | alphaMask;\n    }\n  }\n  return {\n    srcPos: srcPos + len,\n    destPos\n  };\n}\nfunction grayToRGBA(src, dest) {\n  if (image_utils_FeatureTest.isLittleEndian) {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = src[i] * 0x10101 | 0xff000000;\n    }\n  } else {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = src[i] * 0x1010100 | 0x000000ff;\n    }\n  }\n}\n\n;// ./src/display/webgpu.js\nconst MESH_WGSL = `\nstruct Uniforms {\n  offsetX      : f32,\n  offsetY      : f32,\n  scaleX       : f32,\n  scaleY       : f32,\n  paddedWidth  : f32,\n  paddedHeight : f32,\n  borderSize   : f32,\n  _pad         : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : Uniforms;\n\nstruct VertexInput {\n  @location(0) position : vec2<f32>,\n  @location(1) color    : vec4<f32>,\n};\n\nstruct VertexOutput {\n  @builtin(position) position : vec4<f32>,\n  @location(0)       color    : vec3<f32>,\n};\n\n@vertex\nfn vs_main(in : VertexInput) -> VertexOutput {\n  var out : VertexOutput;\n  let cx = (in.position.x + u.offsetX) * u.scaleX;\n  let cy = (in.position.y + u.offsetY) * u.scaleY;\n  out.position = vec4<f32>(\n    ((cx + u.borderSize) / u.paddedWidth) * 2.0 - 1.0,\n    1.0 - ((cy + u.borderSize) / u.paddedHeight) * 2.0,\n    0.0,\n    1.0\n  );\n  out.color = in.color.rgb;\n  return out;\n}\n\n@fragment\nfn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {\n  return vec4<f32>(in.color, 1.0);\n}\n`;\nclass WebGPU {\n  #initPromise = null;\n  #device = null;\n  #meshPipeline = null;\n  #preferredFormat = null;\n  async #initGPU() {\n    if (!globalThis.navigator?.gpu) {\n      return false;\n    }\n    try {\n      const adapter = await navigator.gpu.requestAdapter();\n      if (!adapter) {\n        return false;\n      }\n      this.#preferredFormat = navigator.gpu.getPreferredCanvasFormat();\n      this.#device = await adapter.requestDevice();\n      return true;\n    } catch {\n      return false;\n    }\n  }\n  init() {\n    return this.#initPromise ||= this.#initGPU();\n  }\n  get isReady() {\n    return this.#device !== null;\n  }\n  loadMeshShader() {\n    if (!this.#device || this.#meshPipeline) {\n      return;\n    }\n    const shaderModule = this.#device.createShaderModule({\n      code: MESH_WGSL\n    });\n    this.#meshPipeline = this.#device.createRenderPipeline({\n      layout: \"auto\",\n      vertex: {\n        module: shaderModule,\n        entryPoint: \"vs_main\",\n        buffers: [{\n          arrayStride: 2 * 4,\n          attributes: [{\n            shaderLocation: 0,\n            offset: 0,\n            format: \"float32x2\"\n          }]\n        }, {\n          arrayStride: 4,\n          attributes: [{\n            shaderLocation: 1,\n            offset: 0,\n            format: \"unorm8x4\"\n          }]\n        }]\n      },\n      fragment: {\n        module: shaderModule,\n        entryPoint: \"fs_main\",\n        targets: [{\n          format: this.#preferredFormat\n        }]\n      },\n      primitive: {\n        topology: \"triangle-list\"\n      }\n    });\n  }\n  draw(posData, colData, vertexCount, context, backgroundColor, paddedWidth, paddedHeight, borderSize) {\n    this.loadMeshShader();\n    const device = this.#device;\n    const {\n      offsetX,\n      offsetY,\n      scaleX,\n      scaleY\n    } = context;\n    const posBuffer = device.createBuffer({\n      size: Math.max(posData.byteLength, 4),\n      usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST\n    });\n    if (posData.byteLength > 0) {\n      device.queue.writeBuffer(posBuffer, 0, posData);\n    }\n    const colBuffer = device.createBuffer({\n      size: Math.max(colData.byteLength, 4),\n      usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST\n    });\n    if (colData.byteLength > 0) {\n      device.queue.writeBuffer(colBuffer, 0, colData);\n    }\n    const uniformBuffer = device.createBuffer({\n      size: 8 * 4,\n      usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n    });\n    device.queue.writeBuffer(uniformBuffer, 0, new Float32Array([offsetX, offsetY, scaleX, scaleY, paddedWidth, paddedHeight, borderSize, 0]));\n    const bindGroup = device.createBindGroup({\n      layout: this.#meshPipeline.getBindGroupLayout(0),\n      entries: [{\n        binding: 0,\n        resource: {\n          buffer: uniformBuffer\n        }\n      }]\n    });\n    const offscreen = new OffscreenCanvas(paddedWidth, paddedHeight);\n    const gpuCtx = offscreen.getContext(\"webgpu\");\n    gpuCtx.configure({\n      device,\n      format: this.#preferredFormat,\n      alphaMode: backgroundColor ? \"opaque\" : \"premultiplied\"\n    });\n    const clearValue = backgroundColor ? {\n      r: backgroundColor[0] / 255,\n      g: backgroundColor[1] / 255,\n      b: backgroundColor[2] / 255,\n      a: 1\n    } : {\n      r: 0,\n      g: 0,\n      b: 0,\n      a: 0\n    };\n    const commandEncoder = device.createCommandEncoder();\n    const renderPass = commandEncoder.beginRenderPass({\n      colorAttachments: [{\n        view: gpuCtx.getCurrentTexture().createView(),\n        clearValue,\n        loadOp: \"clear\",\n        storeOp: \"store\"\n      }]\n    });\n    if (vertexCount > 0) {\n      renderPass.setPipeline(this.#meshPipeline);\n      renderPass.setBindGroup(0, bindGroup);\n      renderPass.setVertexBuffer(0, posBuffer);\n      renderPass.setVertexBuffer(1, colBuffer);\n      renderPass.draw(vertexCount);\n    }\n    renderPass.end();\n    device.queue.submit([commandEncoder.finish()]);\n    posBuffer.destroy();\n    colBuffer.destroy();\n    uniformBuffer.destroy();\n    return offscreen.transferToImageBitmap();\n  }\n}\nconst _webGPU = new WebGPU();\nfunction initGPU() {\n  return _webGPU.init();\n}\nfunction isGPUReady() {\n  return _webGPU.isReady;\n}\nfunction loadMeshShader() {\n  _webGPU.loadMeshShader();\n}\nfunction drawMeshWithGPU(posData, colData, vertexCount, context, backgroundColor, paddedWidth, paddedHeight, borderSize) {\n  return _webGPU.draw(posData, colData, vertexCount, context, backgroundColor, paddedWidth, paddedHeight, borderSize);\n}\n\n;// ./src/display/pattern_helper.js\n\n\n\n\nconst PathType = {\n  FILL: \"Fill\",\n  STROKE: \"Stroke\",\n  SHADING: \"Shading\"\n};\nfunction applyBoundingBox(ctx, bbox) {\n  if (!bbox) {\n    return;\n  }\n  const width = bbox[2] - bbox[0];\n  const height = bbox[3] - bbox[1];\n  const region = new Path2D();\n  region.rect(bbox[0], bbox[1], width, height);\n  ctx.clip(region);\n}\nclass BaseShadingPattern {\n  matrix = null;\n  isModifyingCurrentTransform() {\n    return false;\n  }\n  getPattern() {\n    unreachable(\"Abstract method `getPattern` called.\");\n  }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._type = IR[1];\n    this._bbox = IR[2];\n    this._colorStops = IR[3];\n    this._p0 = IR[4];\n    this._p1 = IR[5];\n    this._r0 = IR[6];\n    this._r1 = IR[7];\n  }\n  isOriginBased() {\n    return this._p0[0] === 0 && this._p0[1] === 0 && (!this.isRadial() || this._p1[0] === 0 && this._p1[1] === 0);\n  }\n  isRadial() {\n    return this._type === \"radial\";\n  }\n  areConic() {\n    if (!this.isRadial()) {\n      return false;\n    }\n    const dist = Math.hypot(this._p0[0] - this._p1[0], this._p0[1] - this._p1[1]);\n    return dist + this._r1 > this._r0 && dist + this._r0 > this._r1;\n  }\n  _createGradient(ctx, transform = null) {\n    let grad;\n    let firstPoint = this._p0;\n    let secondPoint = this._p1;\n    if (transform) {\n      firstPoint = firstPoint.slice();\n      secondPoint = secondPoint.slice();\n      Util.applyTransform(firstPoint, transform);\n      Util.applyTransform(secondPoint, transform);\n    }\n    if (this._type === \"axial\") {\n      grad = ctx.createLinearGradient(firstPoint[0], firstPoint[1], secondPoint[0], secondPoint[1]);\n    } else if (this._type === \"radial\") {\n      let r0 = this._r0;\n      let r1 = this._r1;\n      if (transform) {\n        const scale = new Float32Array(2);\n        Util.singularValueDecompose2dScale(transform, scale);\n        r0 *= scale[0];\n        r1 *= scale[0];\n      }\n      grad = ctx.createRadialGradient(firstPoint[0], firstPoint[1], r0, secondPoint[0], secondPoint[1], r1);\n    }\n    for (const colorStop of this._colorStops) {\n      grad.addColorStop(colorStop[0], colorStop[1]);\n    }\n    return grad;\n  }\n  _createReversedGradient(ctx, transform = null) {\n    let firstPoint = this._p1;\n    let secondPoint = this._p0;\n    if (transform) {\n      firstPoint = firstPoint.slice();\n      secondPoint = secondPoint.slice();\n      Util.applyTransform(firstPoint, transform);\n      Util.applyTransform(secondPoint, transform);\n    }\n    let r0 = this._r1;\n    let r1 = this._r0;\n    if (transform) {\n      const scale = new Float32Array(2);\n      Util.singularValueDecompose2dScale(transform, scale);\n      r0 *= scale[0];\n      r1 *= scale[0];\n    }\n    const grad = ctx.createRadialGradient(firstPoint[0], firstPoint[1], r0, secondPoint[0], secondPoint[1], r1);\n    const reversedStops = this._colorStops.map(([t, c]) => [1 - t, c]).reverse();\n    for (const [t, c] of reversedStops) {\n      grad.addColorStop(t, c);\n    }\n    return grad;\n  }\n  getPattern(ctx, owner, inverse, pathType) {\n    let pattern;\n    if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n      if (this.isOriginBased()) {\n        let transf = Util.transform(inverse, owner.baseTransform);\n        if (this.matrix) {\n          transf = Util.transform(transf, this.matrix);\n        }\n        const precision = 1e-3;\n        const n1 = Math.hypot(transf[0], transf[1]);\n        const n2 = Math.hypot(transf[2], transf[3]);\n        const ps = (transf[0] * transf[2] + transf[1] * transf[3]) / (n1 * n2);\n        if (Math.abs(ps) < precision) {\n          if (this.isRadial()) {\n            if (Math.abs(n1 - n2) < precision) {\n              return this._createGradient(ctx, transf);\n            }\n          } else {\n            return this._createGradient(ctx, transf);\n          }\n        }\n      }\n      const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, getCurrentTransform(ctx)) || [0, 0, 0, 0];\n      const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n      const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n      const tmpCanvas = owner.canvasFactory.create(width, height);\n      const tmpCtx = tmpCanvas.context;\n      tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      tmpCtx.beginPath();\n      tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n      inverse = Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n      tmpCtx.transform(...owner.baseTransform);\n      if (this.matrix) {\n        tmpCtx.transform(...this.matrix);\n      }\n      applyBoundingBox(tmpCtx, this._bbox);\n      if (this.areConic()) {\n        tmpCtx.fillStyle = this._createReversedGradient(tmpCtx);\n        tmpCtx.fill();\n      }\n      tmpCtx.fillStyle = this._createGradient(tmpCtx);\n      tmpCtx.fill();\n      pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n      owner.canvasFactory.destroy(tmpCanvas);\n      const domMatrix = new DOMMatrix(inverse);\n      pattern.setTransform(domMatrix);\n    } else {\n      if (this.areConic()) {\n        ctx.save();\n        applyBoundingBox(ctx, this._bbox);\n        ctx.fillStyle = this._createReversedGradient(ctx);\n        ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n        ctx.restore();\n      }\n      applyBoundingBox(ctx, this._bbox);\n      pattern = this._createGradient(ctx);\n    }\n    return pattern;\n  }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n  const coords = context.coords,\n    colors = context.colors;\n  const bytes = data.data,\n    rowSize = data.width * 4;\n  let tmp;\n  if (coords[p1 * 2 + 1] > coords[p2 * 2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n  if (coords[p2 * 2 + 1] > coords[p3 * 2 + 1]) {\n    tmp = p2;\n    p2 = p3;\n    p3 = tmp;\n    tmp = c2;\n    c2 = c3;\n    c3 = tmp;\n  }\n  if (coords[p1 * 2 + 1] > coords[p2 * 2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n  const x1 = (coords[p1 * 2] + context.offsetX) * context.scaleX;\n  const y1 = (coords[p1 * 2 + 1] + context.offsetY) * context.scaleY;\n  const x2 = (coords[p2 * 2] + context.offsetX) * context.scaleX;\n  const y2 = (coords[p2 * 2 + 1] + context.offsetY) * context.scaleY;\n  const x3 = (coords[p3 * 2] + context.offsetX) * context.scaleX;\n  const y3 = (coords[p3 * 2 + 1] + context.offsetY) * context.scaleY;\n  if (y1 >= y3) {\n    return;\n  }\n  const c1r = colors[c1 * 4],\n    c1g = colors[c1 * 4 + 1],\n    c1b = colors[c1 * 4 + 2];\n  const c2r = colors[c2 * 4],\n    c2g = colors[c2 * 4 + 1],\n    c2b = colors[c2 * 4 + 2];\n  const c3r = colors[c3 * 4],\n    c3g = colors[c3 * 4 + 1],\n    c3b = colors[c3 * 4 + 2];\n  const minY = Math.round(y1),\n    maxY = Math.round(y3);\n  let xa, car, cag, cab;\n  let xb, cbr, cbg, cbb;\n  for (let y = minY; y <= maxY; y++) {\n    if (y < y2) {\n      const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n      xa = x1 - (x1 - x2) * k;\n      car = c1r - (c1r - c2r) * k;\n      cag = c1g - (c1g - c2g) * k;\n      cab = c1b - (c1b - c2b) * k;\n    } else {\n      let k;\n      if (y > y3) {\n        k = 1;\n      } else if (y2 === y3) {\n        k = 0;\n      } else {\n        k = (y2 - y) / (y2 - y3);\n      }\n      xa = x2 - (x2 - x3) * k;\n      car = c2r - (c2r - c3r) * k;\n      cag = c2g - (c2g - c3g) * k;\n      cab = c2b - (c2b - c3b) * k;\n    }\n    let k;\n    if (y < y1) {\n      k = 0;\n    } else if (y > y3) {\n      k = 1;\n    } else {\n      k = (y1 - y) / (y1 - y3);\n    }\n    xb = x1 - (x1 - x3) * k;\n    cbr = c1r - (c1r - c3r) * k;\n    cbg = c1g - (c1g - c3g) * k;\n    cbb = c1b - (c1b - c3b) * k;\n    const x1_ = Math.round(Math.min(xa, xb));\n    const x2_ = Math.round(Math.max(xa, xb));\n    let j = rowSize * y + x1_ * 4;\n    for (let x = x1_; x <= x2_; x++) {\n      k = (xa - x) / (xa - xb);\n      if (k < 0) {\n        k = 0;\n      } else if (k > 1) {\n        k = 1;\n      }\n      bytes[j++] = car - (car - cbr) * k | 0;\n      bytes[j++] = cag - (cag - cbg) * k | 0;\n      bytes[j++] = cab - (cab - cbb) * k | 0;\n      bytes[j++] = 255;\n    }\n  }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._posData = IR[2];\n    this._colData = IR[3];\n    this._vertexCount = IR[4];\n    this._bounds = IR[5];\n    this._bbox = IR[6];\n    this._background = IR[7];\n    loadMeshShader();\n  }\n  _createMeshCanvas(combinedScale, backgroundColor, canvasFactory) {\n    const EXPECTED_SCALE = 1.1;\n    const MAX_PATTERN_SIZE = 3000;\n    const BORDER_SIZE = 2;\n    const offsetX = Math.floor(this._bounds[0]);\n    const offsetY = Math.floor(this._bounds[1]);\n    const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n    const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n    const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE) || 1;\n    const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE) || 1;\n    const scaleX = boundsWidth ? boundsWidth / width : 1;\n    const scaleY = boundsHeight ? boundsHeight / height : 1;\n    const context = {\n      coords: this._posData,\n      colors: this._colData,\n      offsetX: -offsetX,\n      offsetY: -offsetY,\n      scaleX: 1 / scaleX,\n      scaleY: 1 / scaleY\n    };\n    const paddedWidth = width + BORDER_SIZE * 2;\n    const paddedHeight = height + BORDER_SIZE * 2;\n    const tmpCanvas = canvasFactory.create(paddedWidth, paddedHeight);\n    if (isGPUReady() && this._vertexCount > 48) {\n      tmpCanvas.context.drawImage(drawMeshWithGPU(this._posData, this._colData, this._vertexCount, context, backgroundColor, paddedWidth, paddedHeight, BORDER_SIZE), 0, 0);\n    } else {\n      const data = tmpCanvas.context.createImageData(width, height);\n      if (backgroundColor) {\n        const bytes = data.data;\n        for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n          bytes[i] = backgroundColor[0];\n          bytes[i + 1] = backgroundColor[1];\n          bytes[i + 2] = backgroundColor[2];\n          bytes[i + 3] = 255;\n        }\n      }\n      for (let i = 0, ii = this._vertexCount; i < ii; i += 3) {\n        drawTriangle(data, context, i, i + 1, i + 2, i, i + 1, i + 2);\n      }\n      tmpCanvas.context.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n    }\n    return {\n      canvas: tmpCanvas.canvas,\n      offsetX: offsetX - BORDER_SIZE * scaleX,\n      offsetY: offsetY - BORDER_SIZE * scaleY,\n      scaleX,\n      scaleY\n    };\n  }\n  isModifyingCurrentTransform() {\n    return true;\n  }\n  getPattern(ctx, owner, inverse, pathType) {\n    applyBoundingBox(ctx, this._bbox);\n    const scale = new Float32Array(2);\n    if (pathType === PathType.SHADING) {\n      Util.singularValueDecompose2dScale(getCurrentTransform(ctx), scale);\n    } else if (this.matrix) {\n      Util.singularValueDecompose2dScale(this.matrix, scale);\n      const [matrixScaleX, matrixScaleY] = scale;\n      Util.singularValueDecompose2dScale(owner.baseTransform, scale);\n      scale[0] *= matrixScaleX;\n      scale[1] *= matrixScaleY;\n    } else {\n      Util.singularValueDecompose2dScale(owner.baseTransform, scale);\n    }\n    const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.canvasFactory);\n    if (pathType !== PathType.SHADING) {\n      ctx.setTransform(...owner.baseTransform);\n      if (this.matrix) {\n        ctx.transform(...this.matrix);\n      }\n    }\n    ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n    ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n    const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n    owner.canvasFactory.destroy(temporaryPatternCanvas);\n    return pattern;\n  }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n  getPattern() {\n    return \"hotpink\";\n  }\n}\nfunction getShadingPattern(IR) {\n  switch (IR[0]) {\n    case \"RadialAxial\":\n      return new RadialAxialShadingPattern(IR);\n    case \"Mesh\":\n      return new MeshShadingPattern(IR);\n    case \"Dummy\":\n      return new DummyShadingPattern();\n  }\n  throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n  COLORED: 1,\n  UNCOLORED: 2\n};\nclass TilingPattern {\n  static MAX_PATTERN_SIZE = 3000;\n  constructor(IR, ctx, canvasGraphicsFactory, baseTransform) {\n    this.color = IR[1];\n    this.operatorList = IR[2];\n    this.matrix = IR[3];\n    this.bbox = IR[4];\n    this.xstep = IR[5];\n    this.ystep = IR[6];\n    this.paintType = IR[7];\n    this.tilingType = IR[8];\n    this.needsIsolation = IR[9] ?? true;\n    this.ctx = ctx;\n    this.canvasGraphicsFactory = canvasGraphicsFactory;\n    this.baseTransform = baseTransform;\n    this.patternBaseMatrix = this.matrix ? Util.transform(baseTransform, this.matrix) : baseTransform;\n  }\n  canSkipPatternCanvas([width, height, offsetX, offsetY]) {\n    const [x0, y0, x1, y1] = this.bbox;\n    const absXStep = Math.abs(this.xstep);\n    const absYStep = Math.abs(this.ystep);\n    if (width > absXStep + 1e-6 || height > absYStep + 1e-6) {\n      return null;\n    }\n    const nXFirst = Math.floor((offsetX - x1) / absXStep) + 1;\n    const nXLast = Math.ceil((offsetX + width - x0) / absXStep) - 1;\n    const nYFirst = Math.floor((offsetY - y1) / absYStep) + 1;\n    const nYLast = Math.ceil((offsetY + height - y0) / absYStep) - 1;\n    return nXLast <= nXFirst && nYLast <= nYFirst ? [nXFirst, nYFirst] : null;\n  }\n  updatePatternDims(clippedBBox, dims) {\n    const inv = Util.inverseTransform(this.patternBaseMatrix);\n    const c1 = [clippedBBox[0], clippedBBox[1]];\n    const c2 = [clippedBBox[2], clippedBBox[3]];\n    Util.applyTransform(c1, inv);\n    Util.applyTransform(c2, inv);\n    dims[0] = Math.abs(c2[0] - c1[0]);\n    dims[1] = Math.abs(c2[1] - c1[1]);\n    dims[2] = Math.min(c1[0], c2[0]);\n    dims[3] = Math.min(c1[1], c2[1]);\n  }\n  _renderTileCanvas(owner, opIdx, dimx, dimy) {\n    const [x0, y0, x1, y1] = this.bbox;\n    const tmpCanvas = owner.canvasFactory.create(dimx.size, dimy.size);\n    const tmpCtx = tmpCanvas.context;\n    const graphics = this.canvasGraphicsFactory.createCanvasGraphics(tmpCtx, opIdx);\n    graphics.groupLevel = owner.groupLevel;\n    this.setFillAndStrokeStyleToContext(graphics, this.paintType, this.color);\n    tmpCtx.translate(-dimx.scale * x0, -dimy.scale * y0);\n    graphics.transform(0, dimx.scale, 0, 0, dimy.scale, 0, 0);\n    tmpCtx.save();\n    graphics.dependencyTracker?.save();\n    this.clipBbox(graphics, x0, y0, x1, y1);\n    graphics.baseTransform = getCurrentTransform(graphics.ctx);\n    graphics.executeOperatorList(this.operatorList);\n    graphics.endDrawing();\n    graphics.dependencyTracker?.restore();\n    tmpCtx.restore();\n    return tmpCanvas;\n  }\n  _getCombinedScales() {\n    const scale = new Float32Array(2);\n    Util.singularValueDecompose2dScale(this.matrix, scale);\n    const [matrixScaleX, matrixScaleY] = scale;\n    Util.singularValueDecompose2dScale(this.baseTransform, scale);\n    return [matrixScaleX * scale[0], matrixScaleY * scale[1]];\n  }\n  drawPattern(owner, path, useEOFill = false, [n, m], opIdx) {\n    const [x0, y0, x1, y1] = this.bbox;\n    const dependencyTracker = owner.dependencyTracker;\n    if (dependencyTracker) {\n      owner.dependencyTracker = new CanvasNestedDependencyTracker(dependencyTracker, opIdx);\n    }\n    owner.save();\n    if (useEOFill) {\n      owner.ctx.clip(path, \"evenodd\");\n    } else {\n      owner.ctx.clip(path);\n    }\n    owner.ctx.setTransform(...this.patternBaseMatrix);\n    owner.ctx.translate(n * this.xstep, m * this.ystep);\n    if (this.needsIsolation || owner.ctx.globalAlpha !== 1 || owner.ctx.globalCompositeOperation !== \"source-over\" || owner.inSMaskMode) {\n      const bboxWidth = x1 - x0;\n      const bboxHeight = y1 - y0;\n      const [combinedScaleX, combinedScaleY] = this._getCombinedScales();\n      const dimx = this.getSizeAndScale(bboxWidth, this.ctx.canvas.width, combinedScaleX);\n      const dimy = this.getSizeAndScale(bboxHeight, this.ctx.canvas.height, combinedScaleY);\n      const tmpCanvas = this._renderTileCanvas(owner, opIdx, dimx, dimy);\n      owner.ctx.drawImage(tmpCanvas.canvas, x0, y0, bboxWidth, bboxHeight);\n      owner.canvasFactory.destroy(tmpCanvas);\n    } else {\n      this.setFillAndStrokeStyleToContext(owner, this.paintType, this.color);\n      this.clipBbox(owner, x0, y0, x1, y1);\n      owner.baseTransformStack.push(owner.baseTransform);\n      owner.baseTransform = getCurrentTransform(owner.ctx);\n      owner.executeOperatorList(this.operatorList);\n      owner.baseTransform = owner.baseTransformStack.pop();\n    }\n    owner.restore();\n    if (dependencyTracker) {\n      owner.dependencyTracker = dependencyTracker;\n    }\n  }\n  createPatternCanvas(owner, opIdx) {\n    const [x0, y0, x1, y1] = this.bbox;\n    const width = x1 - x0;\n    const height = y1 - y0;\n    let {\n      xstep,\n      ystep\n    } = this;\n    xstep = Math.abs(xstep);\n    ystep = Math.abs(ystep);\n    info(\"TilingType: \" + this.tilingType);\n    const [combinedScaleX, combinedScaleY] = this._getCombinedScales();\n    let canvasWidth = width,\n      canvasHeight = height,\n      redrawHorizontally = false,\n      redrawVertically = false;\n    if (Math.ceil(xstep * combinedScaleX) >= Math.ceil(width * combinedScaleX)) {\n      canvasWidth = xstep;\n    } else {\n      redrawHorizontally = true;\n    }\n    if (Math.ceil(ystep * combinedScaleY) >= Math.ceil(height * combinedScaleY)) {\n      canvasHeight = ystep;\n    } else {\n      redrawVertically = true;\n    }\n    const dimx = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n    const dimy = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n    const tmpCanvas = this._renderTileCanvas(owner, opIdx, dimx, dimy);\n    if (redrawHorizontally || redrawVertically) {\n      const image = tmpCanvas.canvas;\n      if (redrawHorizontally) {\n        canvasWidth = xstep;\n      }\n      if (redrawVertically) {\n        canvasHeight = ystep;\n      }\n      const dimx2 = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n      const dimy2 = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n      const xSize = dimx2.size;\n      const ySize = dimy2.size;\n      const tmpCanvas2 = owner.canvasFactory.create(xSize, ySize);\n      const tmpCtx2 = tmpCanvas2.context;\n      const ii = redrawHorizontally ? Math.floor(width / xstep) : 0;\n      const jj = redrawVertically ? Math.floor(height / ystep) : 0;\n      for (let i = 0; i <= ii; i++) {\n        for (let j = 0; j <= jj; j++) {\n          tmpCtx2.drawImage(image, xSize * i, ySize * j, xSize, ySize, 0, 0, xSize, ySize);\n        }\n      }\n      owner.canvasFactory.destroy(tmpCanvas);\n      return {\n        canvas: tmpCanvas2.canvas,\n        canvasEntry: tmpCanvas2,\n        scaleX: dimx2.scale,\n        scaleY: dimy2.scale,\n        offsetX: x0,\n        offsetY: y0\n      };\n    }\n    return {\n      canvas: tmpCanvas.canvas,\n      canvasEntry: tmpCanvas,\n      scaleX: dimx.scale,\n      scaleY: dimy.scale,\n      offsetX: x0,\n      offsetY: y0\n    };\n  }\n  getSizeAndScale(step, realOutputSize, scale) {\n    const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n    let size = Math.ceil(step * scale);\n    if (size >= maxSize) {\n      size = maxSize;\n    } else {\n      scale = size / step;\n    }\n    return {\n      scale,\n      size\n    };\n  }\n  clipBbox(graphics, x0, y0, x1, y1) {\n    const bboxWidth = x1 - x0;\n    const bboxHeight = y1 - y0;\n    const clip = new Path2D();\n    clip.rect(x0, y0, bboxWidth, bboxHeight);\n    Util.axialAlignedBoundingBox([x0, y0, x1, y1], getCurrentTransform(graphics.ctx), graphics.current.minMax);\n    graphics.ctx.clip(clip);\n    graphics.current.updateClipFromPath();\n  }\n  setFillAndStrokeStyleToContext(graphics, paintType, color) {\n    const context = graphics.ctx,\n      current = graphics.current;\n    current.patternFill = current.patternStroke = false;\n    switch (paintType) {\n      case PaintType.COLORED:\n        const {\n          fillStyle,\n          strokeStyle\n        } = this.ctx;\n        context.fillStyle = current.fillColor = fillStyle;\n        context.strokeStyle = current.strokeColor = strokeStyle;\n        break;\n      case PaintType.UNCOLORED:\n        context.fillStyle = context.strokeStyle = color;\n        current.fillColor = current.strokeColor = color;\n        break;\n      default:\n        throw new FormatError(`Unsupported paint type: ${paintType}`);\n    }\n  }\n  isModifyingCurrentTransform() {\n    return false;\n  }\n  getPattern(ctx, owner, inverse, pathType, opIdx) {\n    const matrix = pathType !== PathType.SHADING ? Util.transform(inverse, this.patternBaseMatrix) : inverse;\n    const temporaryPatternCanvas = this.createPatternCanvas(owner, opIdx);\n    let domMatrix = new DOMMatrix(matrix);\n    domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n    domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n    const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n    owner.canvasFactory.destroy(temporaryPatternCanvas.canvasEntry);\n    pattern.setTransform(domMatrix);\n    return pattern;\n  }\n}\n\n;// ./src/display/canvas.js\n\n\n\n\n\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst FULL_CHUNK_HEIGHT = 16;\nconst SCALE_MATRIX = new DOMMatrix();\nconst XY = new Float32Array(2);\nfunction mirrorContextOperations(ctx, destCtx) {\n  if (ctx._removeMirroring) {\n    throw new Error(\"Context is already forwarding operations.\");\n  }\n  const originalMethods = new Map();\n  for (const name of [\"save\", \"restore\", \"rotate\", \"scale\", \"translate\", \"transform\", \"setTransform\", \"resetTransform\", \"clip\", \"moveTo\", \"lineTo\", \"bezierCurveTo\", \"quadraticCurveTo\", \"arc\", \"arcTo\", \"ellipse\", \"rect\", \"roundRect\", \"closePath\", \"beginPath\"]) {\n    const original = ctx[name];\n    if (typeof original !== \"function\" || typeof destCtx[name] !== \"function\") {\n      continue;\n    }\n    originalMethods.set(name, original);\n    ctx[name] = function (...args) {\n      destCtx[name](...args);\n      return original.apply(this, args);\n    };\n  }\n  ctx._removeMirroring = () => {\n    for (const [name, original] of originalMethods) {\n      ctx[name] = original;\n    }\n    delete ctx._removeMirroring;\n  };\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n  const [a, b, c, d, tx, ty] = getCurrentTransform(ctx);\n  if (b === 0 && c === 0) {\n    const tlX = destX * a + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destY * d + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destX + destW) * a + tx;\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destY + destH) * d + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n    ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n    ctx.setTransform(a, b, c, d, tx, ty);\n    return [rWidth, rHeight];\n  }\n  if (a === 0 && d === 0) {\n    const tlX = destY * c + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destX * b + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destY + destH) * c + tx;\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destX + destW) * b + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n    ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n    ctx.setTransform(a, b, c, d, tx, ty);\n    return [rHeight, rWidth];\n  }\n  ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n  const scaleX = Math.hypot(a, b);\n  const scaleY = Math.hypot(c, d);\n  return [scaleX * destW, scaleY * destH];\n}\nclass CanvasExtraState {\n  alphaIsShape = false;\n  fontSize = 0;\n  fontSizeScale = 1;\n  textMatrix = null;\n  textMatrixScale = 1;\n  fontMatrix = FONT_IDENTITY_MATRIX;\n  leading = 0;\n  x = 0;\n  y = 0;\n  lineX = 0;\n  lineY = 0;\n  charSpacing = 0;\n  wordSpacing = 0;\n  textHScale = 1;\n  textRenderingMode = TextRenderingMode.FILL;\n  textRise = 0;\n  fillColor = \"#000000\";\n  strokeColor = \"#000000\";\n  tilingPatternDims = null;\n  patternFill = false;\n  patternStroke = false;\n  fillAlpha = 1;\n  strokeAlpha = 1;\n  lineWidth = 1;\n  activeSMask = null;\n  transferMaps = \"none\";\n  minMax = F32_BBOX_INIT.slice();\n  constructor(width, height) {\n    this.clipBox = new Float32Array([0, 0, width, height]);\n  }\n  clone() {\n    const clone = Object.create(this);\n    clone.clipBox = this.clipBox.slice();\n    clone.minMax = this.minMax.slice();\n    clone.tilingPatternDims = this.tilingPatternDims?.slice();\n    return clone;\n  }\n  getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n    const box = this.minMax.slice();\n    if (pathType === PathType.STROKE) {\n      if (!transform) {\n        unreachable(\"Stroke bounding box must include transform.\");\n      }\n      Util.singularValueDecompose2dScale(transform, XY);\n      const xStrokePad = XY[0] * this.lineWidth / 2;\n      const yStrokePad = XY[1] * this.lineWidth / 2;\n      box[0] -= xStrokePad;\n      box[1] -= yStrokePad;\n      box[2] += xStrokePad;\n      box[3] += yStrokePad;\n    }\n    return box;\n  }\n  updateClipFromPath() {\n    const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n    this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n  }\n  isEmptyClip() {\n    return this.minMax[0] === Infinity;\n  }\n  startNewPathAndClipBox(box) {\n    this.clipBox.set(box, 0);\n    this.minMax.set(F32_BBOX_INIT, 0);\n  }\n  getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n    return Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n  }\n}\nfunction putBinaryImageData(ctx, imgData) {\n  const {\n    width,\n    height,\n    kind\n  } = imgData;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n  let i;\n  if (kind === ImageKind.GRAYSCALE_1BPP) {\n    for (i = 0; i < totalChunks; i++) {\n      ({\n        srcPos\n      } = convertBlackAndWhiteToRGBA({\n        src,\n        srcPos,\n        dest,\n        width,\n        height: i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight\n      }));\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else if (kind === ImageKind.RGBA_32BPP) {\n    let j = 0;\n    let elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n    for (i = 0; i < fullChunks; i++) {\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n      srcPos += elemsInThisChunk;\n      ctx.putImageData(chunkImgData, 0, j);\n      j += FULL_CHUNK_HEIGHT;\n    }\n    if (i < totalChunks) {\n      elemsInThisChunk = width * partialChunkHeight * 4;\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n      ctx.putImageData(chunkImgData, 0, j);\n    }\n  } else if (kind === ImageKind.RGB_24BPP) {\n    for (i = 0; i < totalChunks; i++) {\n      ({\n        srcPos\n      } = convertRGBToRGBA({\n        src,\n        srcPos,\n        dest: new Uint32Array(dest.buffer),\n        width,\n        height: i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight\n      }));\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else {\n    throw new Error(`bad image kind: ${kind}`);\n  }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n  if (imgData.bitmap) {\n    ctx.drawImage(imgData.bitmap, 0, 0);\n    return;\n  }\n  const {\n    width,\n    height\n  } = imgData;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n  for (let i = 0; i < totalChunks; i++) {\n    ({\n      srcPos\n    } = convertBlackAndWhiteToRGBA({\n      src,\n      srcPos,\n      dest,\n      width,\n      height: i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight,\n      nonBlackColor: 0\n    }));\n    ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n  }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n  const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n  for (const property of properties) {\n    if (sourceCtx[property] !== undefined) {\n      destCtx[property] = sourceCtx[property];\n    }\n  }\n  if (sourceCtx.setLineDash !== undefined) {\n    destCtx.setLineDash(sourceCtx.getLineDash());\n    destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n  }\n}\nfunction resetCtxToDefault(ctx) {\n  ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n  ctx.fillRule = \"nonzero\";\n  ctx.globalAlpha = 1;\n  ctx.lineWidth = 1;\n  ctx.lineCap = \"butt\";\n  ctx.lineJoin = \"miter\";\n  ctx.miterLimit = 10;\n  ctx.globalCompositeOperation = \"source-over\";\n  ctx.font = \"10px sans-serif\";\n  if (ctx.setLineDash !== undefined) {\n    ctx.setLineDash([]);\n    ctx.lineDashOffset = 0;\n  }\n  const {\n    filter\n  } = ctx;\n  if (filter !== \"none\" && filter !== \"\") {\n    ctx.filter = \"none\";\n  }\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n  if (interpolate) {\n    return true;\n  }\n  Util.singularValueDecompose2dScale(transform, XY);\n  const actualScale = Math.fround(OutputScale.pixelRatio * PixelsPerInch.PDF_TO_CSS_UNITS);\n  return XY[0] <= actualScale && XY[1] <= actualScale;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n  #knockoutGroupLevel = 0;\n  #knockoutElementDepth = 0;\n  #knockoutTempCanvasEntry = null;\n  #knockoutSavedCtx = null;\n  #knockoutSavedSMaskCtx = null;\n  #knockoutSavedGCO = null;\n  #knockoutElementAlpha = 1;\n  #knockoutFilterCache;\n  #knockoutElementGroupMeta = null;\n  #groupStackMeta = [];\n  constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n    optionalContentConfig,\n    markedContentStack = null\n  }, annotationCanvasMap, pageColors, dependencyTracker, imagesTracker) {\n    this.ctx = canvasCtx;\n    this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n    this.stateStack = [];\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.canvasFactory = canvasFactory;\n    this.filterFactory = filterFactory;\n    this.groupStack = [];\n    this.baseTransform = null;\n    this.baseTransformStack = [];\n    this.groupLevel = 0;\n    this.smaskStack = [];\n    this.tempSMask = null;\n    this.smaskGroupCanvases = [];\n    this.smaskPreparedEntry = null;\n    this.smaskPreparedFor = null;\n    this.smaskPreparedOffsetX = 0;\n    this.smaskPreparedOffsetY = 0;\n    this.smaskPreparedOOBAlpha = null;\n    this.suspendedCtx = null;\n    this.contentVisible = true;\n    this.markedContentStack = markedContentStack || [];\n    this.optionalContentConfig = optionalContentConfig;\n    this.cachedPatterns = new Map();\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.viewportScale = 1;\n    this.outputScaleX = 1;\n    this.outputScaleY = 1;\n    this.pageColors = pageColors;\n    this._cachedScaleForStroking = [-1, 0];\n    this._cachedGetSinglePixelWidth = null;\n    this._cachedBitmapsMap = new Map();\n    this.dependencyTracker = dependencyTracker ?? null;\n    this.imagesTracker = imagesTracker ?? null;\n  }\n  getObject(opIdx, data, fallback = null) {\n    if (typeof data === \"string\") {\n      this.dependencyTracker?.recordNamedDependency(opIdx, data);\n      return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n    }\n    return fallback;\n  }\n  beginDrawing({\n    transform,\n    viewport,\n    transparency = false,\n    background = null\n  }) {\n    const width = this.ctx.canvas.width;\n    const height = this.ctx.canvas.height;\n    const savedFillStyle = this.ctx.fillStyle;\n    this.ctx.fillStyle = background || \"#ffffff\";\n    this.ctx.fillRect(0, 0, width, height);\n    this.ctx.fillStyle = savedFillStyle;\n    if (transparency) {\n      const transparentCanvas = this.transparentCanvasEntry = this.canvasFactory.create(width, height);\n      this.compositeCtx = this.ctx;\n      ({\n        canvas: this.transparentCanvas,\n        context: this.ctx\n      } = transparentCanvas);\n      this.ctx.save();\n      this.ctx.transform(...getCurrentTransform(this.compositeCtx));\n    }\n    this.ctx.save();\n    resetCtxToDefault(this.ctx);\n    if (transform) {\n      this.ctx.transform(...transform);\n      this.outputScaleX = transform[0];\n      this.outputScaleY = transform[3];\n    }\n    this.ctx.transform(...viewport.transform);\n    this.viewportScale = viewport.scale;\n    this.baseTransform = getCurrentTransform(this.ctx);\n  }\n  executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper, operationsFilter) {\n    const argsArray = operatorList.argsArray;\n    const fnArray = operatorList.fnArray;\n    let i = executionStartIdx || 0;\n    const argsArrayLen = argsArray.length;\n    if (argsArrayLen === i) {\n      return i;\n    }\n    const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n    const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n    let steps = 0;\n    const commonObjs = this.commonObjs;\n    const objs = this.objs;\n    let fnId, fnArgs;\n    while (true) {\n      if (stepper !== undefined) {\n        if (i === stepper.nextBreakPoint) {\n          stepper.breakIt(i, continueCallback);\n          return i;\n        }\n        if (stepper.shouldSkip(i)) {\n          if (++i === argsArrayLen) {\n            return i;\n          }\n          continue;\n        }\n      }\n      if (!operationsFilter || operationsFilter(i)) {\n        fnId = fnArray[i];\n        fnArgs = argsArray[i] ?? null;\n        if (fnId !== OPS.dependency) {\n          if (fnArgs === null) {\n            this[fnId](i);\n          } else {\n            this[fnId](i, ...fnArgs);\n          }\n        } else {\n          for (const depObjId of fnArgs) {\n            this.dependencyTracker?.recordNamedData(depObjId, i);\n            const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n            if (!objsPool.has(depObjId)) {\n              objsPool.get(depObjId, continueCallback);\n              return i;\n            }\n          }\n        }\n      }\n      i++;\n      if (i === argsArrayLen) {\n        return i;\n      }\n      if (chunkOperations && ++steps > EXECUTION_STEPS) {\n        if (Date.now() > endTime) {\n          continueCallback();\n          return i;\n        }\n        steps = 0;\n      }\n    }\n  }\n  #restoreInitialState() {\n    while (this.stateStack.length || this.inSMaskMode) {\n      this.restore();\n    }\n    this.current.activeSMask = null;\n    this.ctx.restore();\n    if (this.transparentCanvas) {\n      this.ctx = this.compositeCtx;\n      this.ctx.save();\n      this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n      this.ctx.drawImage(this.transparentCanvas, 0, 0);\n      this.ctx.restore();\n      this.canvasFactory.destroy(this.transparentCanvasEntry);\n      this.transparentCanvas = null;\n      this.transparentCanvasEntry = null;\n    }\n  }\n  endDrawing() {\n    this.#restoreInitialState();\n    for (const canvas of this.smaskGroupCanvases) {\n      this.canvasFactory.destroy(canvas);\n    }\n    this.smaskGroupCanvases.length = 0;\n    this._clearPreparedSMask();\n    this.tempSMask = null;\n    this.smaskStack.length = 0;\n    for (const meta of this.#groupStackMeta) {\n      this.#destroyKnockoutPools(meta);\n    }\n    this.#groupStackMeta.length = 0;\n    this.#knockoutTempCanvasEntry = null;\n    this.#knockoutSavedCtx = null;\n    this.#knockoutSavedSMaskCtx = null;\n    this.#knockoutSavedGCO = null;\n    this.#knockoutElementAlpha = 1;\n    this.#knockoutElementGroupMeta = null;\n    this.#knockoutElementDepth = 0;\n    this.#knockoutGroupLevel = 0;\n    this.cachedPatterns.clear();\n    for (const cache of this._cachedBitmapsMap.values()) {\n      for (const canvas of cache.values()) {\n        if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n          canvas.width = canvas.height = 0;\n        }\n      }\n      cache.clear();\n    }\n    this._cachedBitmapsMap.clear();\n    this.#drawFilter();\n  }\n  #drawFilter() {\n    if (this.pageColors) {\n      const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n      if (hcmFilterId !== \"none\") {\n        const savedFilter = this.ctx.filter;\n        this.ctx.filter = hcmFilterId;\n        this.ctx.drawImage(this.ctx.canvas, 0, 0);\n        this.ctx.filter = savedFilter;\n      }\n    }\n  }\n  _scaleImage(img, inverseTransform) {\n    const width = img.width ?? img.displayWidth;\n    const height = img.height ?? img.displayHeight;\n    const widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n    const heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n    const scaleSteps = [];\n    let ws = widthScale,\n      hs = heightScale,\n      pw = width,\n      ph = height;\n    while (ws > 2 && pw > 1 || hs > 2 && ph > 1) {\n      let nw = pw,\n        nh = ph;\n      if (ws > 2 && pw > 1) {\n        nw = Math.ceil(pw / 2);\n        ws /= pw / nw;\n      }\n      if (hs > 2 && ph > 1) {\n        nh = Math.ceil(ph / 2);\n        hs /= ph / nh;\n      }\n      scaleSteps.push({\n        newWidth: nw,\n        newHeight: nh\n      });\n      pw = nw;\n      ph = nh;\n    }\n    if (scaleSteps.length === 0) {\n      return {\n        img,\n        paintWidth: width,\n        paintHeight: height,\n        tmpCanvas: null\n      };\n    }\n    if (scaleSteps.length === 1) {\n      const {\n        newWidth,\n        newHeight\n      } = scaleSteps[0];\n      const tmpCanvas = this.canvasFactory.create(newWidth, newHeight);\n      tmpCanvas.context.drawImage(img, 0, 0, width, height, 0, 0, newWidth, newHeight);\n      return {\n        img: tmpCanvas.canvas,\n        paintWidth: newWidth,\n        paintHeight: newHeight,\n        tmpCanvas\n      };\n    }\n    let readEntry = this.canvasFactory.create(1, 1);\n    let writeEntry = this.canvasFactory.create(1, 1);\n    let paintWidth = width,\n      paintHeight = height;\n    let source = img;\n    for (const {\n      newWidth,\n      newHeight\n    } of scaleSteps) {\n      this.canvasFactory.reset(writeEntry, newWidth, newHeight);\n      writeEntry.context.drawImage(source, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n      [readEntry, writeEntry] = [writeEntry, readEntry];\n      source = readEntry.canvas;\n      paintWidth = newWidth;\n      paintHeight = newHeight;\n    }\n    this.canvasFactory.destroy(writeEntry);\n    return {\n      img: readEntry.canvas,\n      paintWidth,\n      paintHeight,\n      tmpCanvas: readEntry\n    };\n  }\n  _createMaskCanvas(opIdx, img) {\n    const ctx = this.ctx;\n    const {\n      width,\n      height\n    } = img;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    const currentTransform = getCurrentTransform(ctx);\n    let cache, cacheKey, scaled, maskCanvas;\n    if ((img.bitmap || img.data) && img.count > 1) {\n      const mainKey = img.bitmap || img.data.buffer;\n      cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n      cache = this._cachedBitmapsMap.getOrInsertComputed(mainKey, makeMap);\n      const cachedImage = cache.get(cacheKey);\n      if (cachedImage && !isPatternFill) {\n        const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n        const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n        this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);\n        return {\n          canvas: cachedImage,\n          offsetX,\n          offsetY\n        };\n      }\n      scaled = cachedImage;\n    }\n    if (!scaled) {\n      maskCanvas = this.canvasFactory.create(width, height);\n      putBinaryImageMask(maskCanvas.context, img);\n    }\n    let maskToCanvas = Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n    maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n    const minMax = F32_BBOX_INIT.slice();\n    Util.axialAlignedBoundingBox([0, 0, width, height], maskToCanvas, minMax);\n    const [minX, minY, maxX, maxY] = minMax;\n    const drawnWidth = Math.round(maxX - minX) || 1;\n    const drawnHeight = Math.round(maxY - minY) || 1;\n    const fillCanvas = this.canvasFactory.create(drawnWidth, drawnHeight);\n    const fillCtx = fillCanvas.context;\n    const offsetX = minX;\n    const offsetY = minY;\n    fillCtx.translate(-offsetX, -offsetY);\n    fillCtx.transform(...maskToCanvas);\n    let scaledEntry = null;\n    if (!scaled) {\n      const scaleResult = this._scaleImage(maskCanvas.canvas, getCurrentTransformInverse(fillCtx));\n      scaled = scaleResult.img;\n      scaledEntry = scaleResult.tmpCanvas;\n      if (scaled !== maskCanvas.canvas) {\n        this.canvasFactory.destroy(maskCanvas);\n        maskCanvas = null;\n      }\n      if (cache && isPatternFill) {\n        cache.set(cacheKey, scaled);\n        scaledEntry = null;\n        maskCanvas = null;\n      }\n    }\n    fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(fillCtx), img.interpolate);\n    drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n    if (scaledEntry) {\n      this.canvasFactory.destroy(scaledEntry);\n    }\n    if (maskCanvas) {\n      this.canvasFactory.destroy(maskCanvas);\n    }\n    fillCtx.globalCompositeOperation = \"source-in\";\n    const inverse = Util.transform(getCurrentTransformInverse(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n    fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, PathType.FILL, opIdx) : fillColor;\n    fillCtx.fillRect(0, 0, width, height);\n    if (cache && !isPatternFill) {\n      cache.set(cacheKey, fillCanvas.canvas);\n    }\n    this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);\n    return {\n      canvas: fillCanvas.canvas,\n      canvasEntry: cache && !isPatternFill ? null : fillCanvas,\n      offsetX: Math.round(offsetX),\n      offsetY: Math.round(offsetY)\n    };\n  }\n  setLineWidth(opIdx, width) {\n    this.dependencyTracker?.recordSimpleData(\"lineWidth\", opIdx);\n    if (width !== this.current.lineWidth) {\n      this._cachedScaleForStroking[0] = -1;\n    }\n    this.current.lineWidth = width;\n    this.ctx.lineWidth = width;\n  }\n  setLineCap(opIdx, style) {\n    this.dependencyTracker?.recordSimpleData(\"lineCap\", opIdx);\n    this.ctx.lineCap = LINE_CAP_STYLES[style];\n  }\n  setLineJoin(opIdx, style) {\n    this.dependencyTracker?.recordSimpleData(\"lineJoin\", opIdx);\n    this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n  }\n  setMiterLimit(opIdx, limit) {\n    this.dependencyTracker?.recordSimpleData(\"miterLimit\", opIdx);\n    this.ctx.miterLimit = limit;\n  }\n  setDash(opIdx, dashArray, dashPhase) {\n    this.dependencyTracker?.recordSimpleData(\"dash\", opIdx);\n    const ctx = this.ctx;\n    if (ctx.setLineDash !== undefined) {\n      ctx.setLineDash(dashArray);\n      ctx.lineDashOffset = dashPhase;\n    }\n  }\n  setRenderingIntent(opIdx, intent) {}\n  setFlatness(opIdx, flatness) {}\n  setGState(opIdx, states) {\n    for (const [key, value] of states) {\n      switch (key) {\n        case \"LW\":\n          this.setLineWidth(opIdx, value);\n          break;\n        case \"LC\":\n          this.setLineCap(opIdx, value);\n          break;\n        case \"LJ\":\n          this.setLineJoin(opIdx, value);\n          break;\n        case \"ML\":\n          this.setMiterLimit(opIdx, value);\n          break;\n        case \"D\":\n          this.setDash(opIdx, value[0], value[1]);\n          break;\n        case \"RI\":\n          this.setRenderingIntent(opIdx, value);\n          break;\n        case \"FL\":\n          this.setFlatness(opIdx, value);\n          break;\n        case \"Font\":\n          this.setFont(opIdx, value[0], value[1]);\n          break;\n        case \"CA\":\n          this.dependencyTracker?.recordSimpleData(\"strokeAlpha\", opIdx);\n          this.current.strokeAlpha = value;\n          break;\n        case \"ca\":\n          this.dependencyTracker?.recordSimpleData(\"fillAlpha\", opIdx);\n          this.ctx.globalAlpha = this.current.fillAlpha = value;\n          break;\n        case \"BM\":\n          this.dependencyTracker?.recordSimpleData(\"globalCompositeOperation\", opIdx);\n          this.ctx.globalCompositeOperation = value;\n          break;\n        case \"SMask\":\n          this.dependencyTracker?.recordSimpleData(\"SMask\", opIdx);\n          this.current.activeSMask = value ? this.tempSMask : null;\n          if (this.current.activeSMask) {\n            this.current.activeSMask.blendMode = this.ctx.globalCompositeOperation;\n          }\n          this.tempSMask = null;\n          this.checkSMaskState(opIdx);\n          break;\n        case \"TR\":\n          this.dependencyTracker?.recordSimpleData(\"filter\", opIdx);\n          this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n          break;\n      }\n    }\n  }\n  get inSMaskMode() {\n    return !!this.suspendedCtx;\n  }\n  _clearPreparedSMask() {\n    if (this.smaskPreparedEntry) {\n      this.canvasFactory.destroy(this.smaskPreparedEntry);\n      this.smaskPreparedEntry = null;\n    }\n    this.smaskPreparedFor = null;\n    this.smaskPreparedOffsetX = 0;\n    this.smaskPreparedOffsetY = 0;\n    this.smaskPreparedOOBAlpha = null;\n  }\n  _ensurePreparedSMask(smask) {\n    if (smask === this.smaskPreparedFor) {\n      return;\n    }\n    this._clearPreparedSMask();\n    this._prepareSMaskCanvas(smask);\n  }\n  checkSMaskState(opIdx) {\n    const inSMaskMode = this.inSMaskMode;\n    if (this.current.activeSMask && !inSMaskMode) {\n      this.beginSMaskMode(opIdx);\n    } else if (!this.current.activeSMask && inSMaskMode) {\n      this.endSMaskMode();\n    } else if (this.current.activeSMask && inSMaskMode) {\n      this._ensurePreparedSMask(this.current.activeSMask);\n    }\n  }\n  _prepareSMaskCanvas(smask) {\n    const {\n      canvas: maskCanvas,\n      subtype,\n      backdrop,\n      transferMap\n    } = smask;\n    const hasFilter = subtype === \"Luminosity\" || subtype === \"Alpha\" && transferMap;\n    if (!hasFilter && !(subtype === \"Luminosity\" && backdrop)) {\n      this.smaskPreparedFor = smask;\n      return;\n    }\n    let filteredOOBAlpha;\n    if (subtype === \"Luminosity\" && backdrop) {\n      const [r, g, b] = getRGBA(backdrop);\n      const inputAlpha = Math.round(0.3 * r + 0.59 * g + 0.11 * b);\n      filteredOOBAlpha = transferMap?.[inputAlpha] ?? inputAlpha;\n    } else {\n      filteredOOBAlpha = transferMap?.[0] ?? 0;\n    }\n    const SMASK_LAYER_TO_MASK_AREA_RATIO = 4;\n    const {\n      width: layerW,\n      height: layerH\n    } = this.ctx.canvas;\n    const maskArea = maskCanvas.width * maskCanvas.height;\n    const useLayerSize = layerW * layerH < SMASK_LAYER_TO_MASK_AREA_RATIO * maskArea;\n    const filterSpec = hasFilter ? {\n      url: subtype === \"Alpha\" ? this.filterFactory.addAlphaFilter(transferMap) : this.filterFactory.addLuminosityFilter(transferMap),\n      subtype,\n      transferMap\n    } : null;\n    const bakedBackdrop = subtype === \"Luminosity\" ? backdrop : null;\n    let preparedEntry, offsetX, offsetY;\n    if (useLayerSize) {\n      preparedEntry = this._bakeSMaskCanvas(maskCanvas, smask.offsetX, smask.offsetY, layerW, layerH, bakedBackdrop, filterSpec);\n      offsetX = 0;\n      offsetY = 0;\n    } else {\n      preparedEntry = this._bakeSMaskCanvas(maskCanvas, 0, 0, maskCanvas.width, maskCanvas.height, bakedBackdrop, filterSpec);\n      offsetX = smask.offsetX;\n      offsetY = smask.offsetY;\n    }\n    this.smaskPreparedEntry = preparedEntry;\n    this.smaskPreparedFor = smask;\n    this.smaskPreparedOffsetX = offsetX;\n    this.smaskPreparedOffsetY = offsetY;\n    this.smaskPreparedOOBAlpha = !useLayerSize && filteredOOBAlpha !== 0 ? filteredOOBAlpha : null;\n  }\n  _bakeSMaskCanvas(maskCanvas, drawX, drawY, w, h, backdrop, filterSpec) {\n    if (!backdrop && !filterSpec) {\n      unreachable(\"_bakeSMaskCanvas with neither backdrop nor filter\");\n    }\n    const srcEntry = this.canvasFactory.create(w, h);\n    const sCtx = srcEntry.context;\n    sCtx.drawImage(maskCanvas, drawX, drawY);\n    if (backdrop) {\n      sCtx.globalCompositeOperation = \"destination-atop\";\n      sCtx.fillStyle = backdrop;\n      sCtx.fillRect(0, 0, w, h);\n    }\n    if (!filterSpec) {\n      return srcEntry;\n    }\n    const preparedEntry = this.canvasFactory.create(w, h);\n    const pCtx = preparedEntry.context;\n    pCtx.filter = filterSpec.url;\n    const filterApplied = FeatureTest.isCanvasFilterSupported && pCtx.filter !== \"none\" && pCtx.filter !== \"\";\n    pCtx.drawImage(srcEntry.canvas, 0, 0);\n    if (FeatureTest.isCanvasFilterSupported) {\n      pCtx.filter = \"none\";\n    }\n    if (!filterApplied) {\n      const img = pCtx.getImageData(0, 0, w, h);\n      const {\n        data\n      } = img;\n      const {\n        transferMap\n      } = filterSpec;\n      if (filterSpec.subtype === \"Luminosity\") {\n        for (let i = 0, ii = data.length; i < ii; i += 4) {\n          const a = 0.3 * data[i] + 0.59 * data[i + 1] + 0.11 * data[i + 2] + 0.5 | 0;\n          data[i] = data[i + 1] = data[i + 2] = 0;\n          data[i + 3] = transferMap?.[a] ?? a;\n        }\n      } else {\n        for (let i = 3, ii = data.length; i < ii; i += 4) {\n          data[i] = transferMap[data[i]];\n        }\n      }\n      pCtx.putImageData(img, 0, 0);\n    }\n    this.canvasFactory.destroy(srcEntry);\n    return preparedEntry;\n  }\n  beginSMaskMode(opIdx) {\n    if (this.inSMaskMode) {\n      throw new Error(\"beginSMaskMode called while already in smask mode\");\n    }\n    const {\n      width: drawnWidth,\n      height: drawnHeight\n    } = this.ctx.canvas;\n    const scratchCanvas = this.canvasFactory.create(drawnWidth, drawnHeight);\n    this.smaskScratchCanvas = scratchCanvas;\n    this.suspendedCtx = this.ctx;\n    const ctx = this.ctx = scratchCanvas.context;\n    ctx.setTransform(this.suspendedCtx.getTransform());\n    copyCtxState(this.suspendedCtx, ctx);\n    mirrorContextOperations(ctx, this.suspendedCtx);\n    this._ensurePreparedSMask(this.current.activeSMask);\n    this.setGState(opIdx, [[\"BM\", \"source-over\"]]);\n  }\n  endSMaskMode() {\n    if (!this.inSMaskMode) {\n      throw new Error(\"endSMaskMode called while not in smask mode\");\n    }\n    this.ctx._removeMirroring();\n    copyCtxState(this.ctx, this.suspendedCtx);\n    this.ctx = this.suspendedCtx;\n    this.suspendedCtx = null;\n    this.canvasFactory.destroy(this.smaskScratchCanvas);\n    this.smaskScratchCanvas = null;\n    this._clearPreparedSMask();\n  }\n  #createKnockoutMaskCanvas(sourceCanvas, reuseEntry = null, alpha = 1) {\n    const {\n      width,\n      height\n    } = sourceCanvas;\n    const maskEntry = reuseEntry ?? this.canvasFactory.create(width, height);\n    const maskCtx = maskEntry.context;\n    alpha = Math.round(alpha * 255) / 255;\n    const needsAlphaScaling = alpha < 1;\n    if (needsAlphaScaling && this.#knockoutFilterCache === undefined) {\n      this.#knockoutFilterCache = FeatureTest.isCanvasFilterSupported ? new Map() : \"none\";\n    }\n    let knockoutFilter = \"none\";\n    if (needsAlphaScaling && this.#knockoutFilterCache instanceof Map) {\n      knockoutFilter = this.#knockoutFilterCache.getOrInsertComputed(alpha, () => this.filterFactory.addKnockoutFilter(alpha));\n    }\n    if (!needsAlphaScaling || knockoutFilter !== \"none\") {\n      if (reuseEntry) {\n        maskCtx.save();\n        maskCtx.setTransform(1, 0, 0, 1, 0, 0);\n        maskCtx.clearRect(0, 0, width, height);\n        maskCtx.restore();\n      }\n      maskCtx.filter = knockoutFilter;\n      maskCtx.drawImage(sourceCanvas, 0, 0);\n      maskCtx.filter = \"none\";\n      return maskEntry;\n    }\n    const sourceData = sourceCanvas.getContext(\"2d\", {\n      willReadFrequently: true\n    }).getImageData(0, 0, width, height);\n    const maskData = maskCtx.createImageData(width, height);\n    const sourcePixels = sourceData.data,\n      maskPixels = maskData.data;\n    const alphaScale = alpha > 0 ? 1 / alpha : 1e6;\n    for (let i = 3, ii = sourcePixels.length; i < ii; i += 4) {\n      maskPixels[i] = Math.min(Math.round(sourcePixels[i] * alphaScale), 255);\n    }\n    maskCtx.putImageData(maskData, 0, 0);\n    return maskEntry;\n  }\n  #getOrCreatePooledEntry(meta, key, width, height) {\n    let entry = meta?.[key] ?? null;\n    if (entry && (entry.canvas.width !== width || entry.canvas.height !== height)) {\n      this.canvasFactory.destroy(entry);\n      entry = null;\n    }\n    if (!entry) {\n      entry = this.canvasFactory.create(width, height);\n      if (meta) {\n        meta[key] = entry;\n      }\n      return entry;\n    }\n    const ctx = entry.context;\n    ctx.save();\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.clearRect(0, 0, width, height);\n    ctx.restore();\n    return entry;\n  }\n  #compositeKnockoutSurface(destCtx, surfaceCanvas, options = {}) {\n    const {\n      backdropCanvas = null,\n      destTransform = [1, 0, 0, 1, 0, 0],\n      backdropOffset = [0, 0],\n      reuseMaskEntry = null,\n      poolMeta = null,\n      sourceAlpha = 1,\n      sourceFilter = \"none\",\n      knockoutAlpha = 1\n    } = options;\n    const {\n      width,\n      height\n    } = surfaceCanvas;\n    const knockoutMaskEntry = this.#createKnockoutMaskCanvas(surfaceCanvas, reuseMaskEntry, knockoutAlpha);\n    const sourceCompositeOperation = destCtx.globalCompositeOperation;\n    destCtx.save();\n    destCtx.setTransform(...destTransform);\n    destCtx.globalAlpha = 1;\n    if (FeatureTest.isCanvasFilterSupported) {\n      destCtx.filter = \"none\";\n    }\n    destCtx.globalCompositeOperation = \"destination-out\";\n    destCtx.drawImage(knockoutMaskEntry.canvas, 0, 0);\n    if (backdropCanvas) {\n      const [bx, by] = backdropOffset;\n      const backdropEntry = this.#getOrCreatePooledEntry(poolMeta, \"knockoutBackdropEntry\", width, height);\n      const backdropCtx = backdropEntry.context;\n      backdropCtx.drawImage(backdropCanvas, bx, by, width, height, 0, 0, width, height);\n      backdropCtx.globalCompositeOperation = \"destination-in\";\n      backdropCtx.drawImage(knockoutMaskEntry.canvas, 0, 0);\n      backdropCtx.globalCompositeOperation = \"source-over\";\n      destCtx.globalCompositeOperation = \"destination-over\";\n      destCtx.drawImage(backdropEntry.canvas, 0, 0);\n      if (!poolMeta) {\n        this.canvasFactory.destroy(backdropEntry);\n      }\n    }\n    destCtx.globalCompositeOperation = sourceCompositeOperation;\n    destCtx.globalAlpha = sourceAlpha;\n    if (FeatureTest.isCanvasFilterSupported) {\n      destCtx.filter = sourceFilter ?? \"none\";\n    }\n    destCtx.drawImage(surfaceCanvas, 0, 0);\n    destCtx.restore();\n    if (!reuseMaskEntry) {\n      this.canvasFactory.destroy(knockoutMaskEntry);\n    }\n  }\n  #beginKnockoutElement(alpha = 1) {\n    if (this.#knockoutGroupLevel === 0 || this.#knockoutElementDepth > 0 || !this.contentVisible) {\n      return false;\n    }\n    this.#knockoutElementDepth++;\n    this.#knockoutElementAlpha = alpha;\n    const groupMeta = this.#groupStackMeta.at(-1);\n    const {\n      canvas\n    } = this.ctx;\n    const tempEntry = this.#getOrCreatePooledEntry(groupMeta, \"knockoutTempEntry\", canvas.width, canvas.height);\n    this.#knockoutTempCanvasEntry = tempEntry;\n    const tempCtx = tempEntry.context;\n    tempCtx.save();\n    tempCtx.setTransform(this.ctx.getTransform());\n    copyCtxState(this.ctx, tempCtx);\n    this.#knockoutSavedGCO = tempCtx.globalCompositeOperation;\n    tempCtx.globalCompositeOperation = \"source-over\";\n    mirrorContextOperations(tempCtx, this.ctx);\n    this.#knockoutElementGroupMeta = groupMeta;\n    this.#knockoutSavedCtx = this.ctx;\n    this.#knockoutSavedSMaskCtx = this.suspendedCtx;\n    this.ctx = tempCtx;\n    if (this.inSMaskMode) {\n      this.suspendedCtx = tempCtx;\n    }\n    return true;\n  }\n  #endKnockoutElement(started) {\n    if (!started) {\n      return;\n    }\n    const tempEntry = this.#knockoutTempCanvasEntry;\n    const savedCtx = this.#knockoutSavedCtx;\n    const savedSMaskCtx = this.#knockoutSavedSMaskCtx;\n    const tempCtx = tempEntry.context;\n    this.#knockoutTempCanvasEntry = null;\n    this.#knockoutSavedCtx = null;\n    this.#knockoutSavedSMaskCtx = null;\n    if (this.inSMaskMode && this.suspendedCtx === tempCtx && this.ctx !== tempCtx) {\n      this.endSMaskMode();\n    }\n    if (this.inSMaskMode) {\n      this.suspendedCtx = savedSMaskCtx;\n    }\n    this.ctx._removeMirroring();\n    this.ctx.globalCompositeOperation = this.#knockoutSavedGCO;\n    this.#knockoutSavedGCO = null;\n    copyCtxState(this.ctx, savedCtx);\n    this.ctx = savedCtx;\n    const groupMeta = this.#knockoutElementGroupMeta;\n    this.#knockoutElementGroupMeta = null;\n    const knockoutAlpha = this.#knockoutElementAlpha;\n    this.#knockoutElementAlpha = 1;\n    try {\n      this.#compositeKnockoutSurface(savedSMaskCtx ?? savedCtx, tempEntry.canvas, {\n        backdropCanvas: groupMeta?.backdropCtx?.canvas ?? null,\n        backdropOffset: groupMeta?.backdropCtx ? [groupMeta.offsetX, groupMeta.offsetY] : [0, 0],\n        reuseMaskEntry: groupMeta?.knockoutMaskEntry ?? null,\n        poolMeta: groupMeta,\n        knockoutAlpha\n      });\n    } finally {\n      tempCtx.restore();\n      this.#knockoutElementDepth--;\n      if (!groupMeta) {\n        this.canvasFactory.destroy(tempEntry);\n      }\n    }\n  }\n  compose(dirtyBox) {\n    if (!this.current.activeSMask) {\n      return;\n    }\n    dirtyBox = dirtyBox ? [Math.floor(dirtyBox[0]), Math.floor(dirtyBox[1]), Math.ceil(dirtyBox[2]), Math.ceil(dirtyBox[3])] : [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n    const smask = this.current.activeSMask;\n    const suspendedCtx = this.suspendedCtx;\n    const applySMaskInPlace = this.#knockoutElementDepth > 0 && suspendedCtx === this.ctx;\n    this.composeSMask(applySMaskInPlace ? null : suspendedCtx, smask, this.ctx, dirtyBox);\n    if (applySMaskInPlace) {\n      return;\n    }\n    this.ctx.save();\n    this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n    this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n    this.ctx.restore();\n  }\n  composeSMask(ctx, smask, layerCtx, layerBox) {\n    const layerOffsetX = layerBox[0];\n    const layerOffsetY = layerBox[1];\n    const layerWidth = layerBox[2] - layerOffsetX;\n    const layerHeight = layerBox[3] - layerOffsetY;\n    if (layerWidth === 0 || layerHeight === 0) {\n      return;\n    }\n    const preparedEntry = this.smaskPreparedEntry;\n    if (preparedEntry) {\n      let clipX = layerOffsetX;\n      let clipY = layerOffsetY;\n      let clipW = layerWidth;\n      let clipH = layerHeight;\n      const oobAlpha = this.smaskPreparedOOBAlpha;\n      const hasOOBAlpha = oobAlpha !== null;\n      if (hasOOBAlpha) {\n        clipX = Math.max(layerOffsetX, smask.offsetX);\n        clipY = Math.max(layerOffsetY, smask.offsetY);\n        const x1 = Math.min(layerOffsetX + layerWidth, smask.offsetX + smask.canvas.width);\n        const y1 = Math.min(layerOffsetY + layerHeight, smask.offsetY + smask.canvas.height);\n        clipW = x1 - clipX;\n        clipH = y1 - clipY;\n      }\n      if (clipW > 0 && clipH > 0) {\n        const srcX = clipX - this.smaskPreparedOffsetX;\n        const srcY = clipY - this.smaskPreparedOffsetY;\n        layerCtx.save();\n        layerCtx.globalAlpha = 1;\n        layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n        const clip = new Path2D();\n        clip.rect(clipX, clipY, clipW, clipH);\n        layerCtx.clip(clip);\n        layerCtx.globalCompositeOperation = \"destination-in\";\n        layerCtx.drawImage(preparedEntry.canvas, srcX, srcY, clipW, clipH, clipX, clipY, clipW, clipH);\n        layerCtx.restore();\n      }\n      if (hasOOBAlpha && oobAlpha < 255) {\n        this._applySMaskOOBAlpha(layerCtx, layerOffsetX, layerOffsetY, layerWidth, layerHeight, clipX, clipY, clipX + clipW, clipY + clipH, oobAlpha);\n      }\n    } else {\n      this.genericComposeSMask(smask, layerCtx, layerWidth, layerHeight, layerOffsetX, layerOffsetY);\n    }\n    if (!ctx) {\n      return;\n    }\n    ctx.save();\n    ctx.globalAlpha = 1;\n    ctx.globalCompositeOperation = smask.blendMode || \"source-over\";\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.drawImage(layerCtx.canvas, layerOffsetX, layerOffsetY, layerWidth, layerHeight, layerOffsetX, layerOffsetY, layerWidth, layerHeight);\n    ctx.restore();\n  }\n  _applySMaskOOBAlpha(layerCtx, layerOffsetX, layerOffsetY, layerWidth, layerHeight, maskX0, maskY0, maskX1, maskY1, alpha) {\n    const hasInnerCutout = maskX0 < maskX1 && maskY0 < maskY1;\n    if (hasInnerCutout && maskX0 === layerOffsetX && maskY0 === layerOffsetY && maskX1 === layerOffsetX + layerWidth && maskY1 === layerOffsetY + layerHeight) {\n      return;\n    }\n    const path = new Path2D();\n    path.rect(layerOffsetX, layerOffsetY, layerWidth, layerHeight);\n    if (hasInnerCutout) {\n      path.rect(maskX0, maskY0, maskX1 - maskX0, maskY1 - maskY0);\n    }\n    layerCtx.save();\n    layerCtx.globalAlpha = alpha / 255;\n    layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n    layerCtx.clip(path, \"evenodd\");\n    layerCtx.globalCompositeOperation = \"destination-in\";\n    layerCtx.fillStyle = \"#000000\";\n    layerCtx.fillRect(layerOffsetX, layerOffsetY, layerWidth, layerHeight);\n    layerCtx.restore();\n  }\n  genericComposeSMask(smask, layerCtx, width, height, layerOffsetX, layerOffsetY) {\n    const {\n      context: maskCtx,\n      offsetX: maskOffsetX,\n      offsetY: maskOffsetY\n    } = smask;\n    layerCtx.save();\n    layerCtx.globalAlpha = 1;\n    layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n    const clip = new Path2D();\n    clip.rect(layerOffsetX, layerOffsetY, width, height);\n    layerCtx.clip(clip);\n    layerCtx.globalCompositeOperation = \"destination-in\";\n    layerCtx.drawImage(maskCtx.canvas, layerOffsetX - maskOffsetX, layerOffsetY - maskOffsetY, width, height, layerOffsetX, layerOffsetY, width, height);\n    layerCtx.restore();\n  }\n  save(opIdx) {\n    if (this.inSMaskMode) {\n      copyCtxState(this.ctx, this.suspendedCtx);\n    }\n    this.ctx.save();\n    const old = this.current;\n    this.stateStack.push(old);\n    this.current = old.clone();\n    this.dependencyTracker?.save(opIdx);\n  }\n  restore(opIdx) {\n    this.dependencyTracker?.restore(opIdx);\n    if (this.stateStack.length === 0) {\n      if (this.inSMaskMode) {\n        this.endSMaskMode();\n      }\n      return;\n    }\n    this.current = this.stateStack.pop();\n    this.ctx.restore();\n    if (this.inSMaskMode) {\n      copyCtxState(this.suspendedCtx, this.ctx);\n      this.ctx.setTransform(this.suspendedCtx.getTransform());\n    }\n    this.checkSMaskState(opIdx);\n    this.pendingClip = null;\n    this._cachedScaleForStroking[0] = -1;\n    this._cachedGetSinglePixelWidth = null;\n  }\n  transform(opIdx, a, b, c, d, e, f) {\n    this.dependencyTracker?.recordIncrementalData(\"transform\", opIdx);\n    this.ctx.transform(a, b, c, d, e, f);\n    this._cachedScaleForStroking[0] = -1;\n    this._cachedGetSinglePixelWidth = null;\n  }\n  constructPath(opIdx, op, data, minMax) {\n    let [path] = data;\n    if (!minMax) {\n      path ||= data[0] = new Path2D();\n      if (op !== OPS.stroke && op !== OPS.closeStroke) {\n        this.current.tilingPatternDims = null;\n      }\n      this[op](opIdx, path);\n      return;\n    }\n    if (this.dependencyTracker !== null) {\n      const outerExtraSize = op === OPS.stroke ? this.current.lineWidth / 2 : 0;\n      this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx, this.ctx, minMax[0] - outerExtraSize, minMax[2] + outerExtraSize, minMax[1] - outerExtraSize, minMax[3] + outerExtraSize).recordDependencies(opIdx, [\"transform\"]);\n    }\n    if (!(path instanceof Path2D)) {\n      path = data[0] = makePathFromDrawOPS(path);\n    }\n    Util.axialAlignedBoundingBox(minMax, getCurrentTransform(this.ctx), this.current.minMax);\n    const tilingDims = this.current.tilingPatternDims;\n    if (tilingDims && op !== OPS.stroke && op !== OPS.closeStroke && this.current.fillColor instanceof TilingPattern) {\n      const clippedBBox = Util.intersect(this.current.clipBox, this.current.minMax);\n      if (!clippedBBox) {\n        this.current.tilingPatternDims = null;\n      } else {\n        this.current.fillColor.updatePatternDims(clippedBBox, tilingDims);\n      }\n    }\n    this[op](opIdx, path);\n    this._pathStartIdx = opIdx;\n  }\n  closePath(opIdx) {\n    this.ctx.closePath();\n  }\n  stroke(opIdx, path, consumePath = true) {\n    const started = consumePath && this.#beginKnockoutElement(this.current.strokeAlpha);\n    const ctx = this.ctx;\n    const strokeColor = this.current.strokeColor;\n    ctx.globalAlpha = this.current.strokeAlpha;\n    if (this.contentVisible) {\n      if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n        const baseTransform = strokeColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;\n        ctx.save();\n        ctx.strokeStyle = strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);\n        if (baseTransform) {\n          const newPath = new Path2D();\n          newPath.addPath(path, ctx.getTransform().invertSelf().multiplySelf(baseTransform));\n          path = newPath;\n        }\n        this.rescaleAndStroke(path, false);\n        ctx.restore();\n      } else {\n        this.rescaleAndStroke(path, true);\n      }\n    }\n    this.dependencyTracker?.recordDependencies(opIdx, Dependencies.stroke);\n    if (consumePath) {\n      this.consumePath(opIdx, path, this.current.getClippedPathBoundingBox(PathType.STROKE, getCurrentTransform(this.ctx)));\n    }\n    ctx.globalAlpha = this.current.fillAlpha;\n    this.#endKnockoutElement(started);\n  }\n  closeStroke(opIdx, path) {\n    this.stroke(opIdx, path);\n  }\n  fill(opIdx, path, consumePath = true) {\n    const started = consumePath && this.#beginKnockoutElement(this.current.fillAlpha);\n    const ctx = this.ctx;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    let needRestore = false;\n    const intersect = this.current.getClippedPathBoundingBox();\n    this.dependencyTracker?.recordDependencies(opIdx, Dependencies.fill);\n    if (isPatternFill) {\n      const dims = this.current.tilingPatternDims;\n      const tileIdx = dims && fillColor.canSkipPatternCanvas(dims);\n      if (tileIdx) {\n        fillColor.drawPattern(this, path, this.pendingEOFill, tileIdx, opIdx);\n        this.pendingEOFill = false;\n        if (consumePath) {\n          this.consumePath(opIdx, path, intersect);\n        }\n        this.current.tilingPatternDims = null;\n        this.#endKnockoutElement(started);\n        return;\n      }\n      const baseTransform = fillColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;\n      this.dependencyTracker?.save(opIdx);\n      ctx.save();\n      ctx.fillStyle = fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);\n      if (baseTransform) {\n        const newPath = new Path2D();\n        newPath.addPath(path, ctx.getTransform().invertSelf().multiplySelf(baseTransform));\n        path = newPath;\n      }\n      needRestore = true;\n    }\n    if (this.contentVisible && intersect !== null) {\n      if (this.pendingEOFill) {\n        ctx.fill(path, \"evenodd\");\n        this.pendingEOFill = false;\n      } else {\n        ctx.fill(path);\n      }\n    }\n    if (needRestore) {\n      ctx.restore();\n      this.dependencyTracker?.restore(opIdx);\n    }\n    if (consumePath) {\n      this.consumePath(opIdx, path, intersect);\n    }\n    this.#endKnockoutElement(started);\n  }\n  eoFill(opIdx, path) {\n    this.pendingEOFill = true;\n    this.fill(opIdx, path);\n  }\n  fillStroke(opIdx, path) {\n    const started = this.#beginKnockoutElement(Math.min(this.current.fillAlpha, this.current.strokeAlpha));\n    this.fill(opIdx, path, false);\n    this.stroke(opIdx, path, false);\n    this.consumePath(opIdx, path);\n    this.#endKnockoutElement(started);\n  }\n  eoFillStroke(opIdx, path) {\n    this.pendingEOFill = true;\n    this.fillStroke(opIdx, path);\n  }\n  closeFillStroke(opIdx, path) {\n    this.fillStroke(opIdx, path);\n  }\n  closeEOFillStroke(opIdx, path) {\n    this.pendingEOFill = true;\n    this.fillStroke(opIdx, path);\n  }\n  endPath(opIdx, path) {\n    this.consumePath(opIdx, path);\n  }\n  rawFillPath(opIdx, path) {\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    this.ctx.fill(path);\n    this.dependencyTracker?.recordDependencies(opIdx, Dependencies.rawFillPath).recordOperation(opIdx);\n    this.#endKnockoutElement(started);\n  }\n  clip(opIdx) {\n    this.dependencyTracker?.recordFutureForcedDependency(\"clipMode\", opIdx);\n    this.pendingClip = NORMAL_CLIP;\n  }\n  eoClip(opIdx) {\n    this.dependencyTracker?.recordFutureForcedDependency(\"clipMode\", opIdx);\n    this.pendingClip = EO_CLIP;\n  }\n  beginText(opIdx) {\n    this.current.textMatrix = null;\n    this.current.textMatrixScale = 1;\n    this.current.x = this.current.lineX = 0;\n    this.current.y = this.current.lineY = 0;\n    this.dependencyTracker?.recordOpenMarker(opIdx).resetIncrementalData(\"sameLineText\").resetIncrementalData(\"moveText\", opIdx);\n  }\n  endText(opIdx) {\n    const paths = this.pendingTextPaths;\n    const ctx = this.ctx;\n    if (this.dependencyTracker) {\n      const {\n        dependencyTracker\n      } = this;\n      if (paths !== undefined) {\n        dependencyTracker.recordFutureForcedDependency(\"textClip\", dependencyTracker.getOpenMarker()).recordFutureForcedDependency(\"textClip\", opIdx);\n      }\n      dependencyTracker.recordCloseMarker(opIdx);\n    }\n    if (paths !== undefined) {\n      const newPath = new Path2D();\n      const invTransf = ctx.getTransform().invertSelf();\n      for (const {\n        transform,\n        x,\n        y,\n        fontSize,\n        path\n      } of paths) {\n        if (!path) {\n          continue;\n        }\n        newPath.addPath(path, new DOMMatrix(transform).preMultiplySelf(invTransf).translate(x, y).scale(fontSize, -fontSize));\n      }\n      ctx.clip(newPath);\n    }\n    delete this.pendingTextPaths;\n  }\n  setCharSpacing(opIdx, spacing) {\n    this.dependencyTracker?.recordSimpleData(\"charSpacing\", opIdx);\n    this.current.charSpacing = spacing;\n  }\n  setWordSpacing(opIdx, spacing) {\n    this.dependencyTracker?.recordSimpleData(\"wordSpacing\", opIdx);\n    this.current.wordSpacing = spacing;\n  }\n  setHScale(opIdx, scale) {\n    this.dependencyTracker?.recordSimpleData(\"hScale\", opIdx);\n    this.current.textHScale = scale / 100;\n  }\n  setLeading(opIdx, leading) {\n    this.dependencyTracker?.recordSimpleData(\"leading\", opIdx);\n    this.current.leading = -leading;\n  }\n  setFont(opIdx, fontRefName, size) {\n    this.dependencyTracker?.recordSimpleData(\"font\", opIdx).recordSimpleDataFromNamed(\"fontObj\", fontRefName, opIdx);\n    const fontObj = this.commonObjs.get(fontRefName);\n    const current = this.current;\n    if (!fontObj) {\n      throw new Error(`Can't find font for ${fontRefName}`);\n    }\n    current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n    if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n      warn(\"Invalid font matrix for font \" + fontRefName);\n    }\n    if (size < 0) {\n      size = -size;\n      current.fontDirection = -1;\n    } else {\n      current.fontDirection = 1;\n    }\n    this.current.font = fontObj;\n    this.current.fontSize = size;\n    if (fontObj.isType3Font) {\n      return;\n    }\n    const name = fontObj.loadedName || \"sans-serif\";\n    const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n    let bold = \"normal\";\n    if (fontObj.black) {\n      bold = \"900\";\n    } else if (fontObj.bold) {\n      bold = \"bold\";\n    }\n    const italic = fontObj.italic ? \"italic\" : \"normal\";\n    const browserFontSize = MathClamp(size, MIN_FONT_SIZE, MAX_FONT_SIZE);\n    this.current.fontSizeScale = size / browserFontSize;\n    this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n  }\n  setTextRenderingMode(opIdx, mode) {\n    this.dependencyTracker?.recordSimpleData(\"textRenderingMode\", opIdx);\n    this.current.textRenderingMode = mode;\n  }\n  setTextRise(opIdx, rise) {\n    this.dependencyTracker?.recordSimpleData(\"textRise\", opIdx);\n    this.current.textRise = rise;\n  }\n  moveText(opIdx, x, y) {\n    this.dependencyTracker?.resetIncrementalData(\"sameLineText\").recordIncrementalData(\"moveText\", opIdx);\n    this.current.x = this.current.lineX += x;\n    this.current.y = this.current.lineY += y;\n  }\n  setLeadingMoveText(opIdx, x, y) {\n    this.setLeading(opIdx, -y);\n    this.moveText(opIdx, x, y);\n  }\n  setTextMatrix(opIdx, matrix) {\n    this.dependencyTracker?.resetIncrementalData(\"sameLineText\").recordSimpleData(\"textMatrix\", opIdx);\n    const {\n      current\n    } = this;\n    current.textMatrix = matrix;\n    current.textMatrixScale = Math.hypot(matrix[0], matrix[1]);\n    current.x = current.lineX = 0;\n    current.y = current.lineY = 0;\n  }\n  nextLine(opIdx) {\n    this.moveText(opIdx, 0, this.current.leading);\n    this.dependencyTracker?.recordIncrementalData(\"moveText\", this.dependencyTracker.getSimpleIndex(\"leading\") ?? opIdx);\n  }\n  #getScaledPath(path, currentTransform, transform) {\n    const newPath = new Path2D();\n    newPath.addPath(path, new DOMMatrix(transform).invertSelf().multiplySelf(currentTransform));\n    return newPath;\n  }\n  paintChar(opIdx, character, x, y, patternFillTransform, patternStrokeTransform) {\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const textRenderingMode = current.textRenderingMode;\n    const fontSize = current.fontSize / current.fontSizeScale;\n    const fillStrokeMode = textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n    const isAddToPathSet = !!(textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);\n    const patternFill = current.patternFill && !font.missingFile;\n    const patternStroke = current.patternStroke && !font.missingFile;\n    let path;\n    if ((font.disableFontFace || isAddToPathSet || patternFill || patternStroke) && !font.missingFile) {\n      path = font.getPathGenerator(this.commonObjs, character);\n    }\n    if (path && (font.disableFontFace || patternFill || patternStroke)) {\n      ctx.save();\n      ctx.translate(x, y);\n      ctx.scale(fontSize, -fontSize);\n      this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font);\n      let currentTransform;\n      if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n        if (patternFillTransform) {\n          currentTransform = ctx.getTransform();\n          ctx.setTransform(...patternFillTransform);\n          const scaledPath = this.#getScaledPath(path, currentTransform, patternFillTransform);\n          ctx.fill(scaledPath);\n        } else {\n          ctx.fill(path);\n        }\n      }\n      if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n        if (patternStrokeTransform) {\n          currentTransform ||= ctx.getTransform();\n          ctx.setTransform(...patternStrokeTransform);\n          const {\n            a,\n            b,\n            c,\n            d\n          } = currentTransform;\n          const invPatternTransform = Util.inverseTransform(patternStrokeTransform);\n          const transf = Util.transform([a, b, c, d, 0, 0], invPatternTransform);\n          Util.singularValueDecompose2dScale(transf, XY);\n          ctx.lineWidth *= Math.max(XY[0], XY[1]) / fontSize;\n          ctx.stroke(this.#getScaledPath(path, currentTransform, patternStrokeTransform));\n        } else {\n          ctx.lineWidth /= fontSize;\n          ctx.stroke(path);\n        }\n      }\n      ctx.restore();\n    } else {\n      if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n        ctx.fillText(character, x, y);\n        this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y, () => ctx.measureText(character));\n      }\n      if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n        if (this.dependencyTracker) {\n          this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y, () => ctx.measureText(character)).recordDependencies(opIdx, Dependencies.stroke);\n        }\n        ctx.strokeText(character, x, y);\n      }\n    }\n    if (isAddToPathSet) {\n      const paths = this.pendingTextPaths ||= [];\n      paths.push({\n        transform: getCurrentTransform(ctx),\n        x,\n        y,\n        fontSize,\n        path\n      });\n      this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y);\n    }\n  }\n  get isFontSubpixelAAEnabled() {\n    const tmpCanvas = this.canvasFactory.create(10, 10);\n    const ctx = tmpCanvas.context;\n    ctx.scale(1.5, 1);\n    ctx.fillText(\"I\", 0, 10);\n    const data = ctx.getImageData(0, 0, 10, 10).data;\n    this.canvasFactory.destroy(tmpCanvas);\n    let enabled = false;\n    for (let i = 3; i < data.length; i += 4) {\n      if (data[i] > 0 && data[i] < 255) {\n        enabled = true;\n        break;\n      }\n    }\n    return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n  }\n  showText(opIdx, glyphs) {\n    if (this.dependencyTracker) {\n      this.dependencyTracker.recordDependencies(opIdx, Dependencies.showText).resetBBox(opIdx);\n      if (this.current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG) {\n        this.dependencyTracker.recordFutureForcedDependency(\"textClip\", opIdx).inheritPendingDependenciesAsFutureForcedDependencies();\n      }\n    }\n    const current = this.current;\n    const font = current.font;\n    if (font.isType3Font) {\n      const started = this.#beginKnockoutElement(current.fillAlpha);\n      this.showType3Text(opIdx, glyphs);\n      this.dependencyTracker?.recordShowTextOperation(opIdx);\n      this.#endKnockoutElement(started);\n      return;\n    }\n    const fontSize = current.fontSize;\n    if (fontSize === 0) {\n      this.dependencyTracker?.recordOperation(opIdx);\n      return;\n    }\n    const started = this.#beginKnockoutElement(current.fillAlpha);\n    const ctx = this.ctx;\n    const fontSizeScale = current.fontSizeScale;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const fontDirection = current.fontDirection;\n    const textHScale = current.textHScale * fontDirection;\n    const glyphsLength = glyphs.length;\n    const vertical = font.vertical;\n    const spacingDir = vertical ? 1 : -1;\n    const defaultVMetrics = font.defaultVMetrics;\n    const widthAdvanceScale = fontSize * current.fontMatrix[0];\n    const simpleFillText = current.textRenderingMode === TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n    ctx.save();\n    if (current.textMatrix) {\n      ctx.transform(...current.textMatrix);\n    }\n    ctx.translate(current.x, current.y + current.textRise);\n    if (fontDirection > 0) {\n      ctx.scale(textHScale, -1);\n    } else {\n      ctx.scale(textHScale, 1);\n    }\n    let patternFillTransform, patternStrokeTransform;\n    const fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n    const needsFill = fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE;\n    const needsStroke = fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE;\n    let lineWidth = current.lineWidth;\n    const scale = current.textMatrixScale;\n    if (scale === 0 || lineWidth === 0) {\n      if (needsStroke) {\n        lineWidth = this.getSinglePixelWidth();\n      }\n    } else {\n      lineWidth /= scale;\n    }\n    if (fontSizeScale !== 1.0) {\n      ctx.scale(fontSizeScale, fontSizeScale);\n      lineWidth /= fontSizeScale;\n    }\n    ctx.lineWidth = lineWidth;\n    if (needsFill && current.patternFill) {\n      ctx.save();\n      const pattern = current.fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);\n      patternFillTransform = getCurrentTransform(ctx);\n      ctx.restore();\n      ctx.fillStyle = pattern;\n    }\n    if (needsStroke && current.patternStroke) {\n      ctx.save();\n      const pattern = current.strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);\n      patternStrokeTransform = getCurrentTransform(ctx);\n      ctx.restore();\n      ctx.strokeStyle = pattern;\n    }\n    if (font.isInvalidPDFjsFont) {\n      const chars = [];\n      let width = 0;\n      for (const glyph of glyphs) {\n        chars.push(glyph.unicode);\n        width += glyph.width;\n      }\n      const joinedChars = chars.join(\"\");\n      ctx.fillText(joinedChars, 0, 0);\n      if (this.dependencyTracker !== null) {\n        const measure = ctx.measureText(joinedChars);\n        this.dependencyTracker.recordBBox(opIdx, this.ctx, -measure.actualBoundingBoxLeft, measure.actualBoundingBoxRight, -measure.actualBoundingBoxAscent, measure.actualBoundingBoxDescent).recordShowTextOperation(opIdx);\n      }\n      current.x += width * widthAdvanceScale * textHScale;\n      ctx.restore();\n      this.compose();\n      this.#endKnockoutElement(started);\n      return;\n    }\n    let x = 0,\n      i;\n    for (i = 0; i < glyphsLength; ++i) {\n      const glyph = glyphs[i];\n      if (typeof glyph === \"number\") {\n        x += spacingDir * glyph * fontSize / 1000;\n        continue;\n      }\n      let restoreNeeded = false;\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const character = glyph.fontChar;\n      const accent = glyph.accent;\n      let scaledX, scaledY;\n      let width = glyph.width;\n      if (vertical) {\n        const vmetric = glyph.vmetric || defaultVMetrics;\n        const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n        const vy = vmetric[2] * widthAdvanceScale;\n        width = vmetric ? -vmetric[0] : width;\n        scaledX = vx / fontSizeScale;\n        scaledY = (x + vy) / fontSizeScale;\n      } else {\n        scaledX = x / fontSizeScale;\n        scaledY = 0;\n      }\n      let measure;\n      if (font.remeasure && width > 0) {\n        measure = ctx.measureText(character);\n        const measuredWidth = measure.width * 1000 / fontSize * fontSizeScale;\n        if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n          const characterScaleX = width / measuredWidth;\n          restoreNeeded = true;\n          ctx.save();\n          ctx.scale(characterScaleX, 1);\n          scaledX /= characterScaleX;\n        } else if (width !== measuredWidth) {\n          scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n        }\n      }\n      if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n        if (simpleFillText && !accent) {\n          ctx.fillText(character, scaledX, scaledY);\n          this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, measure ? {\n            bbox: null\n          } : font, fontSize / fontSizeScale, scaledX, scaledY, () => measure ?? ctx.measureText(character));\n        } else {\n          this.paintChar(opIdx, character, scaledX, scaledY, patternFillTransform, patternStrokeTransform);\n          if (accent) {\n            const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n            const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n            this.paintChar(opIdx, accent.fontChar, scaledAccentX, scaledAccentY, patternFillTransform, patternStrokeTransform);\n          }\n        }\n      }\n      const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n      x += charWidth;\n      if (restoreNeeded) {\n        ctx.restore();\n      }\n    }\n    if (vertical) {\n      current.y -= x;\n    } else {\n      current.x += x * textHScale;\n    }\n    ctx.restore();\n    this.compose();\n    this.dependencyTracker?.recordShowTextOperation(opIdx);\n    this.#endKnockoutElement(started);\n  }\n  showType3Text(opIdx, glyphs) {\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const fontSize = current.fontSize;\n    const fontDirection = current.fontDirection;\n    const spacingDir = font.vertical ? 1 : -1;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const textHScale = current.textHScale * fontDirection;\n    const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n    const glyphsLength = glyphs.length;\n    const isTextInvisible = current.textRenderingMode === TextRenderingMode.INVISIBLE;\n    let i, glyph, width, spacingLength;\n    if (isTextInvisible || fontSize === 0) {\n      return;\n    }\n    this._cachedScaleForStroking[0] = -1;\n    this._cachedGetSinglePixelWidth = null;\n    ctx.save();\n    if (current.textMatrix) {\n      ctx.transform(...current.textMatrix);\n    }\n    ctx.translate(current.x, current.y + current.textRise);\n    ctx.scale(textHScale, fontDirection);\n    const dependencyTracker = this.dependencyTracker;\n    this.dependencyTracker = dependencyTracker ? new CanvasNestedDependencyTracker(dependencyTracker, opIdx) : null;\n    for (i = 0; i < glyphsLength; ++i) {\n      glyph = glyphs[i];\n      if (typeof glyph === \"number\") {\n        spacingLength = spacingDir * glyph * fontSize / 1000;\n        this.ctx.translate(spacingLength, 0);\n        current.x += spacingLength * textHScale;\n        continue;\n      }\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const operatorList = font.charProcOperatorList[glyph.operatorListId];\n      if (!operatorList) {\n        warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n      } else if (this.contentVisible) {\n        this.save();\n        if (operatorList.fnArray[0] === OPS.setCharWidth) {\n          current.fillAlpha = current.strokeAlpha = 1;\n          ctx.globalAlpha = 1;\n        }\n        ctx.scale(fontSize, fontSize);\n        ctx.transform(...fontMatrix);\n        this.executeOperatorList(operatorList);\n        this.restore();\n      }\n      const p = [glyph.width, 0];\n      Util.applyTransform(p, fontMatrix);\n      width = p[0] * fontSize + spacing;\n      ctx.translate(width, 0);\n      current.x += width * textHScale;\n    }\n    ctx.restore();\n    if (dependencyTracker) {\n      this.dependencyTracker = dependencyTracker;\n    }\n  }\n  setCharWidth(opIdx, xWidth, yWidth) {}\n  setCharWidthAndBounds(opIdx, xWidth, yWidth, llx, lly, urx, ury) {\n    const clip = new Path2D();\n    clip.rect(llx, lly, urx - llx, ury - lly);\n    this.ctx.clip(clip);\n    this.dependencyTracker?.recordBBox(opIdx, this.ctx, llx, urx, lly, ury).recordClipBox(opIdx, this.ctx, llx, urx, lly, ury);\n    this.endPath(opIdx);\n  }\n  getColorN_Pattern(opIdx, IR) {\n    let pattern;\n    if (IR[0] === \"TilingPattern\") {\n      const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);\n      const canvasGraphicsFactory = {\n        createCanvasGraphics: (ctx, renderingOpIdx) => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n          optionalContentConfig: this.optionalContentConfig,\n          markedContentStack: this.markedContentStack\n        }, undefined, undefined, this.dependencyTracker ? new CanvasNestedDependencyTracker(this.dependencyTracker, renderingOpIdx, true) : null)\n      };\n      pattern = new TilingPattern(IR, this.ctx, canvasGraphicsFactory, baseTransform);\n    } else {\n      pattern = this._getPattern(opIdx, IR[1], IR[2]);\n    }\n    return pattern;\n  }\n  setStrokeColorN(opIdx, ...args) {\n    this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n    this.current.strokeColor = this.getColorN_Pattern(opIdx, args);\n    this.current.patternStroke = true;\n  }\n  setFillColorN(opIdx, ...args) {\n    this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n    const pattern = this.current.fillColor = this.getColorN_Pattern(opIdx, args);\n    this.current.patternFill = true;\n    this.current.tilingPatternDims = pattern instanceof TilingPattern ? [0, 0, 0, 0] : null;\n  }\n  setStrokeRGBColor(opIdx, color) {\n    this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n    this.ctx.strokeStyle = this.current.strokeColor = color;\n    this.current.patternStroke = false;\n  }\n  setStrokeTransparent(opIdx) {\n    this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n    this.ctx.strokeStyle = this.current.strokeColor = \"transparent\";\n    this.current.patternStroke = false;\n  }\n  setFillRGBColor(opIdx, color) {\n    this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n    this.ctx.fillStyle = this.current.fillColor = color;\n    this.current.patternFill = false;\n    this.current.tilingPatternDims = null;\n  }\n  setFillTransparent(opIdx) {\n    this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n    this.ctx.fillStyle = this.current.fillColor = \"transparent\";\n    this.current.patternFill = false;\n    this.current.tilingPatternDims = null;\n  }\n  _getPattern(opIdx, objId, matrix = null) {\n    const pattern = this.cachedPatterns.getOrInsertComputed(objId, () => getShadingPattern(this.getObject(opIdx, objId)));\n    if (matrix) {\n      pattern.matrix = matrix;\n    }\n    return pattern;\n  }\n  shadingFill(opIdx, objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    const ctx = this.ctx;\n    this.save(opIdx);\n    const pattern = this._getPattern(opIdx, objId);\n    ctx.fillStyle = pattern.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.SHADING, opIdx);\n    const inv = getCurrentTransformInverse(ctx);\n    if (inv) {\n      const {\n        width,\n        height\n      } = ctx.canvas;\n      const minMax = F32_BBOX_INIT.slice();\n      Util.axialAlignedBoundingBox([0, 0, width, height], inv, minMax);\n      const [x0, y0, x1, y1] = minMax;\n      this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n    } else {\n      this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n    }\n    this.dependencyTracker?.resetBBox(opIdx).recordFullPageBBox(opIdx).recordDependencies(opIdx, Dependencies.transform).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);\n    this.compose(this.current.getClippedPathBoundingBox());\n    this.restore(opIdx);\n    this.#endKnockoutElement(started);\n  }\n  beginInlineImage() {\n    unreachable(\"Should not call beginInlineImage\");\n  }\n  beginImageData() {\n    unreachable(\"Should not call beginImageData\");\n  }\n  paintFormXObjectBegin(opIdx, matrix, bbox) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.save(opIdx);\n    this.baseTransformStack.push(this.baseTransform);\n    if (matrix) {\n      this.transform(opIdx, ...matrix);\n    }\n    this.baseTransform = getCurrentTransform(this.ctx);\n    if (bbox) {\n      Util.axialAlignedBoundingBox(bbox, this.baseTransform, this.current.minMax);\n      const [x0, y0, x1, y1] = bbox;\n      const clip = new Path2D();\n      clip.rect(x0, y0, x1 - x0, y1 - y0);\n      this.ctx.clip(clip);\n      this.dependencyTracker?.recordClipBox(opIdx, this.ctx, x0, x1, y0, y1);\n      this.endPath(opIdx);\n    }\n  }\n  paintFormXObjectEnd(opIdx) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.restore(opIdx);\n    this.baseTransform = this.baseTransformStack.pop();\n  }\n  beginGroup(opIdx, group) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.save(opIdx);\n    const {\n      inSMaskMode\n    } = this;\n    if (inSMaskMode) {\n      this.endSMaskMode();\n      this.current.activeSMask = null;\n    }\n    const currentCtx = this.ctx;\n    if ((!group.needsIsolation || !group.isolated && !group.hasSoftMask) && !group.knockout && !group.isGray && this.#knockoutGroupLevel === 0 && currentCtx.globalAlpha === 1 && currentCtx.globalCompositeOperation === \"source-over\" && !inSMaskMode) {\n      if (group.bbox) {\n        let clip = new Path2D();\n        const [x0, y0, x1, y1] = group.bbox;\n        clip.rect(x0, y0, x1 - x0, y1 - y0);\n        if (group.matrix) {\n          const path = new Path2D();\n          path.addPath(clip, new DOMMatrix(group.matrix));\n          clip = path;\n        }\n        currentCtx.clip(clip);\n      }\n      this.groupStack.push(null);\n      this.#groupStackMeta.push(null);\n      this.groupLevel++;\n      return;\n    }\n    if (!group.isolated && !group.knockout && this.#knockoutGroupLevel === 0) {\n      info(\"TODO: Fully support non-isolated non-knockout groups.\");\n    }\n    const currentTransform = getCurrentTransform(currentCtx);\n    if (group.matrix) {\n      currentCtx.transform(...group.matrix);\n    }\n    const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n    let bounds;\n    if (group.bbox) {\n      bounds = F32_BBOX_INIT.slice();\n      Util.axialAlignedBoundingBox(group.bbox, getCurrentTransform(currentCtx), bounds);\n      bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n    } else {\n      bounds = canvasBounds;\n    }\n    const offsetX = Math.floor(bounds[0]);\n    const offsetY = Math.floor(bounds[1]);\n    const drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n    const drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n    this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n    const scratchCanvas = this.canvasFactory.create(drawnWidth, drawnHeight);\n    if (group.smask) {\n      this.smaskGroupCanvases.push(scratchCanvas);\n    }\n    const groupCtx = scratchCanvas.context;\n    const backdropCtx = group.knockout && !group.isolated ? currentCtx : null;\n    const hasInnerBackdrop = !group.isolated && !group.knockout && !group.smask && group.needsIsolation && this.#knockoutGroupLevel > 0;\n    const knockoutMaskEntry = group.knockout ? this.canvasFactory.create(drawnWidth, drawnHeight) : null;\n    const savedKnockoutLevel = this.#knockoutGroupLevel;\n    if (group.knockout) {\n      this.#knockoutGroupLevel++;\n    } else {\n      this.#knockoutGroupLevel = 0;\n    }\n    groupCtx.translate(-offsetX, -offsetY);\n    groupCtx.transform(...currentTransform);\n    const needsBackdropCopy = !group.isolated && !group.smask && group.needsIsolation;\n    const replaceBackdrop = needsBackdropCopy && !inSMaskMode && savedKnockoutLevel === 0 && !group.knockout && !group.isGray && group.hasSoftMask && currentCtx.globalAlpha === 1 && currentCtx.globalCompositeOperation === \"source-over\" && this.current.transferMaps === \"none\";\n    if (needsBackdropCopy && (inSMaskMode || replaceBackdrop)) {\n      groupCtx.save();\n      groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n      groupCtx.drawImage(currentCtx.canvas, -offsetX, -offsetY);\n      groupCtx.restore();\n    }\n    if (group.bbox) {\n      let clip = new Path2D();\n      const [x0, y0, x1, y1] = group.bbox;\n      clip.rect(x0, y0, x1 - x0, y1 - y0);\n      if (group.matrix) {\n        const path = new Path2D();\n        path.addPath(clip, new DOMMatrix(group.matrix));\n        clip = path;\n      }\n      groupCtx.clip(clip);\n    }\n    if (group.smask) {\n      this.smaskStack.push({\n        canvas: scratchCanvas.canvas,\n        context: groupCtx,\n        offsetX,\n        offsetY,\n        subtype: group.smask.subtype,\n        backdrop: group.smask.backdrop,\n        transferMap: group.smask.transferMap || null\n      });\n    }\n    if (!group.smask || this.dependencyTracker) {\n      currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n      currentCtx.translate(offsetX, offsetY);\n      currentCtx.save();\n    }\n    copyCtxState(currentCtx, groupCtx);\n    this.ctx = groupCtx;\n    this.dependencyTracker?.inheritSimpleDataAsFutureForcedDependencies([\"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\"]).pushBaseTransform(currentCtx);\n    this.setGState(opIdx, [[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1], [\"TR\", null]]);\n    this.groupStack.push(currentCtx);\n    this.#groupStackMeta.push({\n      backdropCtx,\n      savedKnockoutLevel,\n      offsetX,\n      offsetY,\n      hasInnerBackdrop,\n      replaceBackdrop,\n      knockoutMaskEntry,\n      knockoutTempEntry: null,\n      knockoutBackdropEntry: null\n    });\n    this.groupLevel++;\n  }\n  endGroup(opIdx, group) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.groupLevel--;\n    const groupCtx = this.ctx;\n    const ctx = this.groupStack.pop();\n    const groupMeta = this.#groupStackMeta.pop();\n    if (groupMeta) {\n      this.#knockoutGroupLevel = groupMeta.savedKnockoutLevel;\n    }\n    if (ctx === null) {\n      this.restore(opIdx);\n      return;\n    }\n    if (group.isGray) {\n      this.#convertGroupToGray(groupCtx);\n    }\n    this.ctx = ctx;\n    this.ctx.imageSmoothingEnabled = false;\n    this.dependencyTracker?.popBaseTransform();\n    if (group.smask) {\n      this.tempSMask = this.smaskStack.pop();\n      this.restore(opIdx);\n      if (this.dependencyTracker) {\n        this.ctx.restore();\n        if (this.inSMaskMode) {\n          this.ctx.setTransform(this.suspendedCtx.getTransform());\n        }\n      }\n      this.#destroyKnockoutPools(groupMeta);\n    } else {\n      this.ctx.restore();\n      const currentMtx = getCurrentTransform(this.ctx);\n      this.restore(opIdx);\n      this.ctx.save();\n      this.ctx.setTransform(...currentMtx);\n      const dirtyBox = F32_BBOX_INIT.slice();\n      Util.axialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx, dirtyBox);\n      const parentGroupMeta = this.#groupStackMeta.at(-1);\n      if (this.#knockoutGroupLevel > 0) {\n        if (groupMeta.hasInnerBackdrop) {\n          const {\n            width,\n            height\n          } = groupCtx.canvas;\n          const colorEntry = this.canvasFactory.create(width, height);\n          const colorCtx = colorEntry.context;\n          colorCtx.drawImage(ctx.canvas, groupMeta.offsetX, groupMeta.offsetY, width, height, 0, 0, width, height);\n          colorCtx.globalCompositeOperation = \"source-over\";\n          colorCtx.drawImage(groupCtx.canvas, 0, 0);\n          const shapeMaskEntry = this.#createKnockoutMaskCanvas(groupCtx.canvas);\n          colorCtx.globalCompositeOperation = \"destination-in\";\n          colorCtx.drawImage(shapeMaskEntry.canvas, 0, 0);\n          const sourceCompositeOperation = this.ctx.globalCompositeOperation;\n          const sourceAlpha = this.ctx.globalAlpha;\n          const sourceFilter = this.ctx.filter;\n          this.ctx.save();\n          this.ctx.setTransform(...currentMtx);\n          this.ctx.globalAlpha = 1;\n          if (FeatureTest.isCanvasFilterSupported) {\n            this.ctx.filter = \"none\";\n          }\n          this.ctx.globalCompositeOperation = \"destination-out\";\n          this.ctx.drawImage(shapeMaskEntry.canvas, 0, 0);\n          this.ctx.globalCompositeOperation = sourceCompositeOperation;\n          this.ctx.globalAlpha = sourceAlpha;\n          if (FeatureTest.isCanvasFilterSupported) {\n            this.ctx.filter = sourceFilter ?? \"none\";\n          }\n          this.ctx.drawImage(colorEntry.canvas, 0, 0);\n          this.ctx.restore();\n          this.canvasFactory.destroy(shapeMaskEntry);\n          this.canvasFactory.destroy(colorEntry);\n        } else {\n          const backdropCtx = parentGroupMeta?.backdropCtx ?? null;\n          this.#compositeKnockoutSurface(this.ctx, groupCtx.canvas, {\n            backdropCanvas: backdropCtx?.canvas ?? null,\n            destTransform: currentMtx,\n            backdropOffset: backdropCtx ? [parentGroupMeta.offsetX + groupMeta.offsetX, parentGroupMeta.offsetY + groupMeta.offsetY] : [0, 0],\n            sourceAlpha: this.ctx.globalAlpha,\n            sourceFilter: this.ctx.filter\n          });\n        }\n      } else {\n        if (groupMeta.replaceBackdrop) {\n          const clip = new Path2D();\n          clip.rect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n          this.ctx.clip(clip);\n          this.ctx.globalCompositeOperation = \"copy\";\n        }\n        this.ctx.drawImage(groupCtx.canvas, 0, 0);\n      }\n      this.ctx.restore();\n      this.canvasFactory.destroy({\n        canvas: groupCtx.canvas,\n        context: groupCtx\n      });\n      this.#destroyKnockoutPools(groupMeta);\n      this.compose(dirtyBox);\n    }\n  }\n  #convertGroupToGray(groupCtx) {\n    const {\n      canvas\n    } = groupCtx;\n    const {\n      width,\n      height\n    } = canvas;\n    if (FeatureTest.isCanvasFilterSupported) {\n      groupCtx.save();\n      groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n      groupCtx.filter = \"grayscale(1)\";\n      groupCtx.globalAlpha = 1;\n      groupCtx.globalCompositeOperation = \"copy\";\n      groupCtx.drawImage(canvas, 0, 0);\n      groupCtx.restore();\n      return;\n    }\n    const imageData = groupCtx.getImageData(0, 0, width, height);\n    const {\n      data\n    } = imageData;\n    for (let i = 0, ii = data.length; i < ii; i += 4) {\n      const gray = data[i] * 0.2126 + data[i + 1] * 0.7152 + data[i + 2] * 0.0722 + 0.5 | 0;\n      data[i] = data[i + 1] = data[i + 2] = gray;\n    }\n    groupCtx.putImageData(imageData, 0, 0);\n  }\n  #destroyKnockoutPools(groupMeta) {\n    if (!groupMeta) {\n      return;\n    }\n    if (groupMeta.knockoutMaskEntry) {\n      this.canvasFactory.destroy(groupMeta.knockoutMaskEntry);\n      groupMeta.knockoutMaskEntry = null;\n    }\n    if (groupMeta.knockoutTempEntry) {\n      this.canvasFactory.destroy(groupMeta.knockoutTempEntry);\n      groupMeta.knockoutTempEntry = null;\n    }\n    if (groupMeta.knockoutBackdropEntry) {\n      this.canvasFactory.destroy(groupMeta.knockoutBackdropEntry);\n      groupMeta.knockoutBackdropEntry = null;\n    }\n  }\n  beginAnnotation(opIdx, id, rect, transform, matrix, hasOwnCanvas, canvasName) {\n    this.#restoreInitialState();\n    resetCtxToDefault(this.ctx);\n    this.ctx.save();\n    this.save(opIdx);\n    if (this.baseTransform) {\n      this.ctx.setTransform(...this.baseTransform);\n    }\n    if (rect) {\n      const width = rect[2] - rect[0];\n      const height = rect[3] - rect[1];\n      if (hasOwnCanvas && this.annotationCanvasMap) {\n        transform = transform.slice();\n        transform[4] -= rect[0];\n        transform[5] -= rect[1];\n        rect = rect.slice();\n        rect[0] = rect[1] = 0;\n        rect[2] = width;\n        rect[3] = height;\n        Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx), XY);\n        const {\n          viewportScale\n        } = this;\n        const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n        const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n        this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n        const {\n          canvas,\n          context\n        } = this.annotationCanvas;\n        if (canvasName) {\n          const canvases = this.annotationCanvasMap.getOrInsertComputed(id, makeArr);\n          canvas.setAttribute(\"data-canvas-name\", canvasName);\n          const index = canvases.findIndex(c => c.getAttribute(\"data-canvas-name\") === canvasName);\n          if (index === -1) {\n            canvases.push(canvas);\n          } else {\n            canvases[index] = canvas;\n          }\n        } else {\n          this.annotationCanvasMap.set(id, canvas);\n        }\n        this.annotationCanvas.savedCtx = this.ctx;\n        this.ctx = context;\n        this.ctx.save();\n        this.ctx.setTransform(XY[0], 0, 0, -XY[1], 0, height * XY[1]);\n        resetCtxToDefault(this.ctx);\n      } else {\n        resetCtxToDefault(this.ctx);\n        this.endPath(opIdx);\n        const clip = new Path2D();\n        clip.rect(rect[0], rect[1], width, height);\n        this.ctx.clip(clip);\n      }\n    }\n    this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n    this.baseTransformStack.push(this.baseTransform);\n    this.transform(opIdx, ...transform);\n    this.transform(opIdx, ...matrix);\n    this.baseTransform = getCurrentTransform(this.ctx);\n  }\n  endAnnotation(opIdx) {\n    if (this.annotationCanvas) {\n      this.ctx.restore();\n      this.#drawFilter();\n      this.ctx = this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas;\n    }\n    this.baseTransform = this.baseTransformStack.pop();\n  }\n  paintImageMaskXObject(opIdx, img) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const count = img.count;\n    img = this.getObject(opIdx, img.data, img);\n    img.count = count;\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    const ctx = this.ctx;\n    const mask = this._createMaskCanvas(opIdx, img);\n    const maskCanvas = mask.canvas;\n    ctx.save();\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n    this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, mask.offsetX, mask.offsetX + maskCanvas.width, mask.offsetY, mask.offsetY + maskCanvas.height).recordOperation(opIdx);\n    ctx.restore();\n    if (mask.canvasEntry) {\n      this.canvasFactory.destroy(mask.canvasEntry);\n    }\n    this.compose();\n    this.#endKnockoutElement(started);\n  }\n  paintImageMaskXObjectRepeat(opIdx, img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n    if (!this.contentVisible) {\n      return;\n    }\n    img = this.getObject(opIdx, img.data, img);\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    const ctx = this.ctx;\n    ctx.save();\n    const currentTransform = getCurrentTransform(ctx);\n    ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n    const mask = this._createMaskCanvas(opIdx, img);\n    ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n    this.dependencyTracker?.resetBBox(opIdx);\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      const trans = Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n      ctx.drawImage(mask.canvas, trans[4], trans[5]);\n      this.dependencyTracker?.recordBBox(opIdx, this.ctx, trans[4], trans[4] + mask.canvas.width, trans[5], trans[5] + mask.canvas.height);\n    }\n    ctx.restore();\n    if (mask.canvasEntry) {\n      this.canvasFactory.destroy(mask.canvasEntry);\n    }\n    this.compose();\n    this.dependencyTracker?.recordOperation(opIdx);\n    this.#endKnockoutElement(started);\n  }\n  paintImageMaskXObjectGroup(opIdx, images) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    const ctx = this.ctx;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    this.dependencyTracker?.resetBBox(opIdx).recordDependencies(opIdx, Dependencies.transformAndFill);\n    for (const image of images) {\n      const {\n        data,\n        width,\n        height,\n        transform\n      } = image;\n      const maskCanvas = this.canvasFactory.create(width, height);\n      const maskCtx = maskCanvas.context;\n      maskCtx.save();\n      const img = this.getObject(opIdx, data, image);\n      putBinaryImageMask(maskCtx, img);\n      maskCtx.globalCompositeOperation = \"source-in\";\n      maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx) : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n      maskCtx.restore();\n      ctx.save();\n      ctx.transform(...transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n      this.canvasFactory.destroy(maskCanvas);\n      this.dependencyTracker?.recordBBox(opIdx, ctx, 0, width, 0, height);\n      ctx.restore();\n    }\n    this.compose();\n    this.dependencyTracker?.recordOperation(opIdx);\n    this.#endKnockoutElement(started);\n  }\n  paintImageXObject(opIdx, objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const imgData = this.getObject(opIdx, objId);\n    if (!imgData) {\n      warn(\"Dependent image isn't ready yet\");\n      return;\n    }\n    this.paintInlineImageXObject(opIdx, imgData);\n  }\n  paintImageXObjectRepeat(opIdx, objId, scaleX, scaleY, positions) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const imgData = this.getObject(opIdx, objId);\n    if (!imgData) {\n      warn(\"Dependent image isn't ready yet\");\n      return;\n    }\n    const width = imgData.width;\n    const height = imgData.height;\n    const map = [];\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      map.push({\n        transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n        x: 0,\n        y: 0,\n        w: width,\n        h: height\n      });\n    }\n    this.paintInlineImageXObjectGroup(opIdx, imgData, map);\n  }\n  applyTransferMapsToCanvas(ctx) {\n    if (this.current.transferMaps !== \"none\") {\n      ctx.filter = this.current.transferMaps;\n      ctx.drawImage(ctx.canvas, 0, 0);\n      ctx.filter = \"none\";\n    }\n    return ctx.canvas;\n  }\n  applyTransferMapsToBitmap(imgData) {\n    if (this.current.transferMaps === \"none\") {\n      return {\n        img: imgData.bitmap,\n        canvasEntry: null\n      };\n    }\n    const {\n      bitmap,\n      width,\n      height\n    } = imgData;\n    const tmpCanvas = this.canvasFactory.create(width, height);\n    const tmpCtx = tmpCanvas.context;\n    tmpCtx.filter = this.current.transferMaps;\n    tmpCtx.drawImage(bitmap, 0, 0);\n    tmpCtx.filter = \"none\";\n    return {\n      img: tmpCanvas.canvas,\n      canvasEntry: tmpCanvas\n    };\n  }\n  paintInlineImageXObject(opIdx, imgData) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const width = imgData.width;\n    const height = imgData.height;\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    const ctx = this.ctx;\n    this.save(opIdx);\n    const {\n      filter\n    } = ctx;\n    if (filter !== \"none\" && filter !== \"\") {\n      ctx.filter = \"none\";\n    }\n    ctx.scale(1 / width, -1 / height);\n    let imgToPaint;\n    let inlineImgCanvas = null;\n    if (imgData.bitmap) {\n      const result = this.applyTransferMapsToBitmap(imgData);\n      imgToPaint = result.img;\n      inlineImgCanvas = result.canvasEntry;\n    } else {\n      const tmpCanvas = this.canvasFactory.create(width, height);\n      putBinaryImageData(tmpCanvas.context, imgData);\n      imgToPaint = this.applyTransferMapsToCanvas(tmpCanvas.context);\n      inlineImgCanvas = tmpCanvas;\n    }\n    const scaled = this._scaleImage(imgToPaint, getCurrentTransformInverse(ctx));\n    ctx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(ctx), imgData.interpolate);\n    if (this.dependencyTracker) {\n      this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx, ctx, 0, width, -height, 0).recordDependencies(opIdx, Dependencies.imageXObject).recordOperation(opIdx);\n      this.imagesTracker?.record(ctx, width, height, this.dependencyTracker.clipBox);\n    }\n    drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n    if (scaled.tmpCanvas) {\n      this.canvasFactory.destroy(scaled.tmpCanvas);\n    }\n    if (inlineImgCanvas) {\n      this.canvasFactory.destroy(inlineImgCanvas);\n    }\n    this.compose();\n    this.restore(opIdx);\n    this.#endKnockoutElement(started);\n  }\n  paintInlineImageXObjectGroup(opIdx, imgData, map) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    const ctx = this.ctx;\n    let imgToPaint;\n    let inlineImgCanvas = null;\n    if (imgData.bitmap) {\n      imgToPaint = imgData.bitmap;\n    } else {\n      const w = imgData.width;\n      const h = imgData.height;\n      const tmpCanvas = this.canvasFactory.create(w, h);\n      putBinaryImageData(tmpCanvas.context, imgData);\n      imgToPaint = this.applyTransferMapsToCanvas(tmpCanvas.context);\n      inlineImgCanvas = tmpCanvas;\n    }\n    this.dependencyTracker?.resetBBox(opIdx);\n    for (const entry of map) {\n      ctx.save();\n      ctx.transform(...entry.transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n      this.dependencyTracker?.recordBBox(opIdx, ctx, 0, 1, -1, 0);\n      ctx.restore();\n    }\n    if (inlineImgCanvas) {\n      this.canvasFactory.destroy(inlineImgCanvas);\n    }\n    this.dependencyTracker?.recordOperation(opIdx);\n    this.compose();\n    this.#endKnockoutElement(started);\n  }\n  paintSolidColorImageMask(opIdx) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const started = this.#beginKnockoutElement(this.current.fillAlpha);\n    this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, 0, 1, 0, 1).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);\n    this.ctx.fillRect(0, 0, 1, 1);\n    this.compose();\n    this.#endKnockoutElement(started);\n  }\n  markPoint(opIdx, tag) {}\n  markPointProps(opIdx, tag, properties) {}\n  beginMarkedContent(opIdx, tag) {\n    this.dependencyTracker?.beginMarkedContent(opIdx);\n    this.markedContentStack.push({\n      visible: true\n    });\n  }\n  beginMarkedContentProps(opIdx, tag, properties) {\n    this.dependencyTracker?.beginMarkedContent(opIdx);\n    if (tag === \"OC\") {\n      this.markedContentStack.push({\n        visible: this.optionalContentConfig.isVisible(properties)\n      });\n    } else {\n      this.markedContentStack.push({\n        visible: true\n      });\n    }\n    this.contentVisible = this.isContentVisible();\n  }\n  endMarkedContent(opIdx) {\n    this.dependencyTracker?.endMarkedContent(opIdx);\n    this.markedContentStack.pop();\n    this.contentVisible = this.isContentVisible();\n  }\n  beginCompat(opIdx) {}\n  endCompat(opIdx) {}\n  consumePath(opIdx, path, clipBox) {\n    const isEmpty = this.current.isEmptyClip();\n    if (this.pendingClip) {\n      this.current.updateClipFromPath();\n    }\n    if (!this.pendingClip) {\n      this.compose(clipBox);\n    }\n    const ctx = this.ctx;\n    if (this.pendingClip) {\n      if (!isEmpty) {\n        if (this.pendingClip === EO_CLIP) {\n          ctx.clip(path, \"evenodd\");\n        } else {\n          ctx.clip(path);\n        }\n      }\n      this.pendingClip = null;\n      this.dependencyTracker?.bboxToClipBoxDropOperation(opIdx).recordFutureForcedDependency(\"clipPath\", opIdx);\n    } else {\n      this.dependencyTracker?.recordOperation(opIdx);\n    }\n    this.current.startNewPathAndClipBox(this.current.clipBox);\n  }\n  getSinglePixelWidth() {\n    if (!this._cachedGetSinglePixelWidth) {\n      const m = getCurrentTransform(this.ctx);\n      if (m[1] === 0 && m[2] === 0) {\n        this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n      } else {\n        const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n        const normX = Math.hypot(m[0], m[2]);\n        const normY = Math.hypot(m[1], m[3]);\n        this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n      }\n    }\n    return this._cachedGetSinglePixelWidth;\n  }\n  getScaleForStroking() {\n    if (this._cachedScaleForStroking[0] === -1) {\n      const {\n        lineWidth\n      } = this.current;\n      const {\n        a,\n        b,\n        c,\n        d\n      } = this.ctx.getTransform();\n      let scaleX, scaleY;\n      if (b === 0 && c === 0) {\n        const normX = Math.abs(a);\n        const normY = Math.abs(d);\n        if (normX === normY) {\n          if (lineWidth === 0) {\n            scaleX = scaleY = 1 / normX;\n          } else {\n            const scaledLineWidth = normX * lineWidth;\n            scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n          }\n        } else if (lineWidth === 0) {\n          scaleX = 1 / normX;\n          scaleY = 1 / normY;\n        } else {\n          const scaledXLineWidth = normX * lineWidth;\n          const scaledYLineWidth = normY * lineWidth;\n          scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n          scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n        }\n      } else {\n        const absDet = Math.abs(a * d - b * c);\n        const normX = Math.hypot(a, b);\n        const normY = Math.hypot(c, d);\n        if (lineWidth === 0) {\n          scaleX = normY / absDet;\n          scaleY = normX / absDet;\n        } else {\n          const baseArea = lineWidth * absDet;\n          scaleX = normY > baseArea ? normY / baseArea : 1;\n          scaleY = normX > baseArea ? normX / baseArea : 1;\n        }\n      }\n      this._cachedScaleForStroking[0] = scaleX;\n      this._cachedScaleForStroking[1] = scaleY;\n    }\n    return this._cachedScaleForStroking;\n  }\n  rescaleAndStroke(path, saveRestore) {\n    const {\n      ctx,\n      current: {\n        lineWidth\n      }\n    } = this;\n    const [scaleX, scaleY] = this.getScaleForStroking();\n    if (scaleX === scaleY) {\n      ctx.lineWidth = (lineWidth || 1) * scaleX;\n      ctx.stroke(path);\n      return;\n    }\n    const dashes = ctx.getLineDash();\n    if (saveRestore) {\n      ctx.save();\n    }\n    ctx.scale(scaleX, scaleY);\n    SCALE_MATRIX.a = 1 / scaleX;\n    SCALE_MATRIX.d = 1 / scaleY;\n    const newPath = new Path2D();\n    newPath.addPath(path, SCALE_MATRIX);\n    if (dashes.length > 0) {\n      const scale = Math.max(scaleX, scaleY);\n      ctx.setLineDash(dashes.map(x => x / scale));\n      ctx.lineDashOffset /= scale;\n    }\n    ctx.lineWidth = lineWidth || 1;\n    ctx.stroke(newPath);\n    if (saveRestore) {\n      ctx.restore();\n    }\n  }\n  isContentVisible() {\n    for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n      if (!this.markedContentStack[i].visible) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\nfor (const op in OPS) {\n  if (CanvasGraphics.prototype[op] !== undefined) {\n    CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n  }\n}\n\n;// ./src/shared/base_pdf_stream.js\n\nclass BasePDFStream {\n  #PDFStreamReader = null;\n  #PDFStreamRangeReader = null;\n  _fullReader = null;\n  _rangeReaders = new Set();\n  _source = null;\n  constructor(source, PDFStreamReader, PDFStreamRangeReader) {\n    this._source = source;\n    this.#PDFStreamReader = PDFStreamReader;\n    this.#PDFStreamRangeReader = PDFStreamRangeReader;\n  }\n  get _progressiveDataLength() {\n    return this._fullReader?._loaded ?? 0;\n  }\n  getFullReader() {\n    assert(!this._fullReader, \"BasePDFStream.getFullReader can only be called once.\");\n    return this._fullReader = new this.#PDFStreamReader(this);\n  }\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const reader = new this.#PDFStreamRangeReader(this, begin, end);\n    this._rangeReaders.add(reader);\n    return reader;\n  }\n  cancelAllRequests(reason) {\n    this._fullReader?.cancel(reason);\n    for (const reader of new Set(this._rangeReaders)) {\n      reader.cancel(reason);\n    }\n  }\n}\nclass BasePDFStreamReader {\n  onProgress = null;\n  _contentLength = 0;\n  _filename = null;\n  _headersCapability = Promise.withResolvers();\n  _isRangeSupported = false;\n  _isStreamingSupported = false;\n  _loaded = 0;\n  _stream = null;\n  constructor(stream) {\n    this._stream = stream;\n  }\n  _callOnProgress() {\n    this.onProgress?.({\n      loaded: this._loaded,\n      total: this._contentLength\n    });\n  }\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n  get filename() {\n    return this._filename;\n  }\n  get contentLength() {\n    return this._contentLength;\n  }\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n  async read() {\n    unreachable(\"Abstract method `read` called\");\n  }\n  cancel(reason) {\n    unreachable(\"Abstract method `cancel` called\");\n  }\n}\nclass BasePDFStreamRangeReader {\n  _stream = null;\n  constructor(stream, begin, end) {\n    this._stream = stream;\n  }\n  async read() {\n    unreachable(\"Abstract method `read` called\");\n  }\n  cancel(reason) {\n    unreachable(\"Abstract method `cancel` called\");\n  }\n}\n\n;// ./src/display/content_disposition.js\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n  let needsEncodingFixup = true;\n  let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = unescape(filename);\n    filename = rfc5987decode(filename);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n  tmp = rfc2231getparam(contentDisposition);\n  if (tmp) {\n    const filename = rfc2047decode(tmp);\n    return fixupEncoding(filename);\n  }\n  tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n  function toParamRegExp(attributePattern, flags) {\n    return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n  }\n  function textdecode(encoding, value) {\n    if (encoding) {\n      if (!/^[\\x00-\\xFF]+$/.test(value)) {\n        return value;\n      }\n      try {\n        const decoder = new TextDecoder(encoding, {\n          fatal: true\n        });\n        const buffer = stringToBytes(value);\n        value = decoder.decode(buffer);\n        needsEncodingFixup = false;\n      } catch {}\n    }\n    return value;\n  }\n  function fixupEncoding(value) {\n    if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n      value = textdecode(\"utf-8\", value);\n      if (needsEncodingFixup) {\n        value = textdecode(\"iso-8859-1\", value);\n      }\n    }\n    return value;\n  }\n  function rfc2231getparam(contentDispositionStr) {\n    const matches = [];\n    let match;\n    const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n    while ((match = iter.exec(contentDispositionStr)) !== null) {\n      let [, n, quot, part] = match;\n      n = parseInt(n, 10);\n      if (n in matches) {\n        if (n === 0) {\n          break;\n        }\n        continue;\n      }\n      matches[n] = [quot, part];\n    }\n    const parts = [];\n    for (let n = 0; n < matches.length; ++n) {\n      if (!(n in matches)) {\n        break;\n      }\n      let [quot, part] = matches[n];\n      part = rfc2616unquote(part);\n      if (quot) {\n        part = unescape(part);\n        if (n === 0) {\n          part = rfc5987decode(part);\n        }\n      }\n      parts.push(part);\n    }\n    return parts.join(\"\");\n  }\n  function rfc2616unquote(value) {\n    if (value.startsWith('\"')) {\n      const parts = value.slice(1).split('\\\\\"');\n      for (let i = 0; i < parts.length; ++i) {\n        const quotindex = parts[i].indexOf('\"');\n        if (quotindex !== -1) {\n          parts[i] = parts[i].slice(0, quotindex);\n          parts.length = i + 1;\n        }\n        parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n      }\n      value = parts.join('\"');\n    }\n    return value;\n  }\n  function rfc5987decode(extvalue) {\n    const encodingend = extvalue.indexOf(\"'\");\n    if (encodingend === -1) {\n      return extvalue;\n    }\n    const encoding = extvalue.slice(0, encodingend);\n    const langvalue = extvalue.slice(encodingend + 1);\n    const value = langvalue.replace(/^[^']*'/, \"\");\n    return textdecode(encoding, value);\n  }\n  function rfc2047decode(value) {\n    if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n      return value;\n    }\n    return value.replaceAll(/=\\?([\\w-]*)\\?([QB])\\?((?:[^?]|\\?(?!=))*)\\?=/gi, function (matches, charset, encoding, text) {\n      if (encoding === \"q\" || encoding === \"Q\") {\n        text = text.replaceAll(\"_\", \" \");\n        text = text.replaceAll(/=([0-9a-f]{2})/gi, function (match, hex) {\n          return String.fromCharCode(parseInt(hex, 16));\n        });\n        return textdecode(charset, text);\n      }\n      try {\n        text = atob(text);\n      } catch {}\n      return textdecode(charset, text);\n    });\n  }\n  return \"\";\n}\n\n;// ./src/display/network_utils.js\n\n\n\nfunction createHeaders(isHttp, httpHeaders) {\n  const headers = new Headers();\n  if (!isHttp || !httpHeaders || typeof httpHeaders !== \"object\") {\n    return headers;\n  }\n  for (const key in httpHeaders) {\n    const val = httpHeaders[key];\n    if (val !== undefined) {\n      headers.append(key, val);\n    }\n  }\n  return headers;\n}\nfunction getResponseOrigin(url) {\n  return URL.parse(url)?.origin ?? null;\n}\nfunction validateRangeRequestCapabilities({\n  responseHeaders,\n  isHttp,\n  rangeChunkSize,\n  disableRange\n}) {\n  const rv = {\n    contentLength: 0,\n    isRangeSupported: false\n  };\n  const length = parseInt(responseHeaders.get(\"Content-Length\"), 10);\n  if (!Number.isInteger(length)) {\n    return rv;\n  }\n  rv.contentLength = length;\n  if (length <= 2 * rangeChunkSize) {\n    return rv;\n  }\n  if (disableRange || !isHttp) {\n    return rv;\n  }\n  if (responseHeaders.get(\"Accept-Ranges\") !== \"bytes\") {\n    return rv;\n  }\n  const contentEncoding = responseHeaders.get(\"Content-Encoding\") || \"identity\";\n  if (contentEncoding === \"identity\") {\n    rv.isRangeSupported = true;\n  }\n  return rv;\n}\nfunction extractFilenameFromHeader(responseHeaders) {\n  const contentDisposition = responseHeaders.get(\"Content-Disposition\");\n  if (contentDisposition) {\n    let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n    if (filename.includes(\"%\")) {\n      try {\n        filename = decodeURIComponent(filename);\n      } catch {}\n    }\n    if (isPdfFile(filename)) {\n      return filename;\n    }\n  }\n  return null;\n}\nfunction createResponseError(status, url) {\n  return new ResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url.href}\".`, status, status === 404 || status === 0 && url.protocol === \"file:\");\n}\nfunction ensureResponseOrigin(rangeOrigin, origin) {\n  if (rangeOrigin !== origin) {\n    throw new Error(`Expected range response-origin \"${rangeOrigin}\" to match \"${origin}\".`);\n  }\n}\n\n;// ./src/display/fetch_stream.js\n\n\n\nfunction fetchUrl(url, headers, withCredentials, abortController) {\n  return fetch(url, {\n    method: \"GET\",\n    headers,\n    signal: abortController.signal,\n    mode: \"cors\",\n    credentials: withCredentials ? \"include\" : \"same-origin\",\n    redirect: \"follow\"\n  });\n}\nfunction ensureResponseStatus(status, url) {\n  if (status !== 200 && status !== 206) {\n    throw createResponseError(status, url);\n  }\n}\nfunction getArrayBuffer(val) {\n  if (val instanceof Uint8Array) {\n    return val.buffer;\n  }\n  if (val instanceof ArrayBuffer) {\n    return val;\n  }\n  throw new Error(`getArrayBuffer - unexpected data: ${val}`);\n}\nclass PDFFetchStream extends BasePDFStream {\n  _responseOrigin = null;\n  constructor(source) {\n    super(source, PDFFetchStreamReader, PDFFetchStreamRangeReader);\n    const {\n      httpHeaders,\n      url\n    } = source;\n    assert(/https?:/.test(url.protocol), \"PDFFetchStream only supports http(s):// URLs.\");\n    this.headers = createHeaders(true, httpHeaders);\n  }\n}\nclass PDFFetchStreamReader extends BasePDFStreamReader {\n  _abortController = new AbortController();\n  _reader = null;\n  constructor(stream) {\n    super(stream);\n    const {\n      disableRange,\n      disableStream,\n      rangeChunkSize,\n      url,\n      withCredentials\n    } = stream._source;\n    this._isStreamingSupported = !disableStream;\n    const headers = new Headers(stream.headers);\n    fetchUrl(url, headers, withCredentials, this._abortController).then(response => {\n      stream._responseOrigin = getResponseOrigin(response.url);\n      ensureResponseStatus(response.status, url);\n      this._reader = response.body.getReader();\n      const responseHeaders = response.headers;\n      const {\n        contentLength,\n        isRangeSupported\n      } = validateRangeRequestCapabilities({\n        responseHeaders,\n        isHttp: true,\n        rangeChunkSize,\n        disableRange\n      });\n      this._contentLength = contentLength;\n      this._isRangeSupported = isRangeSupported;\n      this._filename = extractFilenameFromHeader(responseHeaders);\n      if (!this._isStreamingSupported && this._isRangeSupported) {\n        this.cancel(new AbortException(\"Streaming is disabled.\"));\n      }\n      this._headersCapability.resolve();\n    }).catch(this._headersCapability.reject);\n  }\n  async read() {\n    await this._headersCapability.promise;\n    const {\n      value,\n      done\n    } = await this._reader.read();\n    if (done) {\n      return {\n        value,\n        done\n      };\n    }\n    this._loaded += value.byteLength;\n    this._callOnProgress();\n    return {\n      value: getArrayBuffer(value),\n      done: false\n    };\n  }\n  cancel(reason) {\n    this._reader?.cancel(reason);\n    this._abortController.abort();\n  }\n}\nclass PDFFetchStreamRangeReader extends BasePDFStreamRangeReader {\n  _abortController = new AbortController();\n  _readCapability = Promise.withResolvers();\n  _reader = null;\n  constructor(stream, begin, end) {\n    super(stream, begin, end);\n    const {\n      url,\n      withCredentials\n    } = stream._source;\n    const headers = new Headers(stream.headers);\n    headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n    fetchUrl(url, headers, withCredentials, this._abortController).then(response => {\n      const responseOrigin = getResponseOrigin(response.url);\n      ensureResponseOrigin(responseOrigin, stream._responseOrigin);\n      ensureResponseStatus(response.status, url);\n      this._reader = response.body.getReader();\n      this._readCapability.resolve();\n    }).catch(this._readCapability.reject);\n  }\n  async read() {\n    await this._readCapability.promise;\n    const {\n      value,\n      done\n    } = await this._reader.read();\n    if (done) {\n      return {\n        value,\n        done\n      };\n    }\n    return {\n      value: getArrayBuffer(value),\n      done: false\n    };\n  }\n  cancel(reason) {\n    this._reader?.cancel(reason);\n    this._abortController.abort();\n  }\n}\n\n;// ./src/display/transport_stream.js\n\n\n\nfunction transport_stream_getArrayBuffer(val) {\n  return val instanceof Uint8Array && val.byteLength === val.buffer.byteLength ? val.buffer : new Uint8Array(val).buffer;\n}\nfunction endRequests() {\n  for (const capability of this._requests) {\n    capability.resolve({\n      value: undefined,\n      done: true\n    });\n  }\n  this._requests.length = 0;\n}\nclass PDFDataTransportStream extends BasePDFStream {\n  _progressiveDone = false;\n  _queuedChunks = [];\n  constructor(source) {\n    super(source, PDFDataTransportStreamReader, PDFDataTransportStreamRangeReader);\n    const {\n      pdfDataRangeTransport\n    } = source;\n    const {\n      initialData,\n      progressiveDone\n    } = pdfDataRangeTransport;\n    if (initialData?.length > 0) {\n      const buffer = transport_stream_getArrayBuffer(initialData);\n      this._queuedChunks.push(buffer);\n    }\n    this._progressiveDone = progressiveDone;\n    const listener = args => {\n      switch (args.type) {\n        case \"range\":\n        case \"progressiveRead\":\n          this.#onReceiveData(args.begin, args.chunk);\n          break;\n        case \"progressiveDone\":\n          this._fullReader?.progressiveDone();\n          this._progressiveDone = true;\n          break;\n      }\n    };\n    pdfDataRangeTransport.transportReady(listener);\n  }\n  #onReceiveData(begin, chunk) {\n    const buffer = transport_stream_getArrayBuffer(chunk);\n    if (begin === undefined) {\n      if (this._fullReader) {\n        this._fullReader._enqueue(buffer);\n      } else {\n        this._queuedChunks.push(buffer);\n      }\n    } else {\n      const rangeReader = this._rangeReaders.keys().find(r => r._begin === begin);\n      assert(rangeReader, \"#onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n      rangeReader._enqueue(buffer);\n    }\n  }\n  getFullReader() {\n    const reader = super.getFullReader();\n    this._queuedChunks = null;\n    return reader;\n  }\n  getRangeReader(begin, end) {\n    const reader = super.getRangeReader(begin, end);\n    if (reader) {\n      reader.onDone = () => this._rangeReaders.delete(reader);\n      this._source.pdfDataRangeTransport.requestDataRange(begin, end);\n    }\n    return reader;\n  }\n  cancelAllRequests(reason) {\n    super.cancelAllRequests(reason);\n    this._source.pdfDataRangeTransport.abort();\n  }\n}\nclass PDFDataTransportStreamReader extends BasePDFStreamReader {\n  #endRequests = endRequests.bind(this);\n  _done = false;\n  _queuedChunks = null;\n  _requests = [];\n  constructor(stream) {\n    super(stream);\n    const {\n      pdfDataRangeTransport,\n      disableRange,\n      disableStream\n    } = stream._source;\n    const {\n      length,\n      contentDispositionFilename\n    } = pdfDataRangeTransport;\n    this._queuedChunks = stream._queuedChunks || [];\n    for (const chunk of this._queuedChunks) {\n      this._loaded += chunk.byteLength;\n    }\n    this._done = stream._progressiveDone;\n    this._contentLength = length;\n    this._isStreamingSupported = !disableStream;\n    this._isRangeSupported = !disableRange;\n    if (isPdfFile(contentDispositionFilename)) {\n      this._filename = contentDispositionFilename;\n    }\n    this._headersCapability.resolve();\n    const loaded = this._loaded;\n    Promise.resolve().then(() => {\n      if (loaded > 0 && this._loaded === loaded) {\n        this._callOnProgress();\n      }\n    });\n  }\n  _enqueue(chunk) {\n    if (this._done) {\n      return;\n    }\n    if (this._requests.length > 0) {\n      const capability = this._requests.shift();\n      capability.resolve({\n        value: chunk,\n        done: false\n      });\n    } else {\n      this._queuedChunks.push(chunk);\n    }\n    this._loaded += chunk.byteLength;\n    this._callOnProgress();\n  }\n  async read() {\n    if (this._queuedChunks.length > 0) {\n      const chunk = this._queuedChunks.shift();\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n    const capability = Promise.withResolvers();\n    this._requests.push(capability);\n    return capability.promise;\n  }\n  cancel(reason) {\n    this._done = true;\n    this.#endRequests();\n  }\n  progressiveDone() {\n    this._done ||= true;\n    if (this._queuedChunks.length === 0) {\n      this.#endRequests();\n    }\n  }\n}\nclass PDFDataTransportStreamRangeReader extends BasePDFStreamRangeReader {\n  #endRequests = endRequests.bind(this);\n  onDone = null;\n  _begin = -1;\n  _done = false;\n  _queuedChunk = null;\n  _requests = [];\n  constructor(stream, begin, end) {\n    super(stream, begin, end);\n    this._begin = begin;\n  }\n  _enqueue(chunk) {\n    if (this._done) {\n      return;\n    }\n    if (this._requests.length === 0) {\n      this._queuedChunk = chunk;\n    } else {\n      const capability = this._requests.shift();\n      capability.resolve({\n        value: chunk,\n        done: false\n      });\n      this.#endRequests();\n    }\n    this._done = true;\n    this.onDone?.();\n  }\n  async read() {\n    if (this._queuedChunk) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n    const capability = Promise.withResolvers();\n    this._requests.push(capability);\n    return capability.promise;\n  }\n  cancel(reason) {\n    this._done = true;\n    this.#endRequests();\n    this.onDone?.();\n  }\n}\n\n;// ./src/display/network.js\n\n\n\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction network_getArrayBuffer(val) {\n  return typeof val !== \"string\" ? val : stringToBytes(val).buffer;\n}\nclass PDFNetworkStream extends BasePDFStream {\n  #pendingRequests = new WeakMap();\n  _responseOrigin = null;\n  constructor(source) {\n    super(source, PDFNetworkStreamReader, PDFNetworkStreamRangeReader);\n    const {\n      httpHeaders,\n      url\n    } = source;\n    this.url = url;\n    this.isHttp = /https?:/.test(url.protocol);\n    this.headers = createHeaders(this.isHttp, httpHeaders);\n  }\n  _request(args) {\n    const xhr = new XMLHttpRequest();\n    const pendingRequest = {\n      validateStatus: null,\n      onHeadersReceived: args.onHeadersReceived,\n      onDone: args.onDone,\n      onError: args.onError,\n      onProgress: args.onProgress\n    };\n    this.#pendingRequests.set(xhr, pendingRequest);\n    xhr.open(\"GET\", this.url);\n    xhr.withCredentials = this._source.withCredentials;\n    for (const [key, val] of this.headers) {\n      xhr.setRequestHeader(key, val);\n    }\n    if (this.isHttp && \"begin\" in args && \"end\" in args) {\n      xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n      pendingRequest.validateStatus = status => status === PARTIAL_CONTENT_RESPONSE || status === OK_RESPONSE;\n    } else {\n      pendingRequest.validateStatus = status => status === OK_RESPONSE;\n    }\n    xhr.responseType = \"arraybuffer\";\n    assert(args.onError, \"Expected `onError` callback to be provided.\");\n    xhr.onerror = () => args.onError(xhr.status);\n    xhr.onreadystatechange = this.#onStateChange.bind(this, xhr);\n    xhr.onprogress = this.#onProgress.bind(this, xhr);\n    xhr.send(null);\n    return xhr;\n  }\n  #onProgress(xhr, evt) {\n    const pendingRequest = this.#pendingRequests.get(xhr);\n    pendingRequest?.onProgress?.(evt);\n  }\n  #onStateChange(xhr, evt) {\n    const pendingRequest = this.#pendingRequests.get(xhr);\n    if (!pendingRequest) {\n      return;\n    }\n    if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n      pendingRequest.onHeadersReceived();\n      delete pendingRequest.onHeadersReceived;\n    }\n    if (xhr.readyState !== 4) {\n      return;\n    }\n    if (!this.#pendingRequests.has(xhr)) {\n      return;\n    }\n    this.#pendingRequests.delete(xhr);\n    if (xhr.status === 0 && this.isHttp) {\n      pendingRequest.onError(xhr.status);\n      return;\n    }\n    const xhrStatus = xhr.status || OK_RESPONSE;\n    if (!pendingRequest.validateStatus(xhrStatus)) {\n      pendingRequest.onError(xhr.status);\n      return;\n    }\n    const chunk = network_getArrayBuffer(xhr.response);\n    if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n      const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n      if (/bytes \\d+-\\d+\\/\\d+/.test(rangeHeader)) {\n        pendingRequest.onDone(chunk);\n      } else {\n        warn(`Missing or invalid \"Content-Range\" header.`);\n        pendingRequest.onError(0);\n      }\n    } else if (chunk) {\n      pendingRequest.onDone(chunk);\n    } else {\n      pendingRequest.onError(xhr.status);\n    }\n  }\n  _abortRequest(xhr) {\n    if (this.#pendingRequests.has(xhr)) {\n      this.#pendingRequests.delete(xhr);\n      xhr.abort();\n    }\n  }\n  getRangeReader(begin, end) {\n    const reader = super.getRangeReader(begin, end);\n    if (reader) {\n      reader.onClosed = () => this._rangeReaders.delete(reader);\n    }\n    return reader;\n  }\n}\nclass PDFNetworkStreamReader extends BasePDFStreamReader {\n  #endRequests = endRequests.bind(this);\n  _cachedChunks = [];\n  _done = false;\n  _requests = [];\n  _storedError = null;\n  constructor(stream) {\n    super(stream);\n    this._fullRequestXhr = stream._request({\n      onHeadersReceived: this.#onHeadersReceived.bind(this),\n      onDone: this.#onDone.bind(this),\n      onError: this.#onError.bind(this),\n      onProgress: this.#onProgress.bind(this)\n    });\n  }\n  #onHeadersReceived() {\n    const stream = this._stream;\n    const {\n      disableRange,\n      rangeChunkSize\n    } = stream._source;\n    const fullRequestXhr = this._fullRequestXhr;\n    stream._responseOrigin = getResponseOrigin(fullRequestXhr.responseURL);\n    const rawResponseHeaders = fullRequestXhr.getAllResponseHeaders();\n    const responseHeaders = new Headers(rawResponseHeaders ? rawResponseHeaders.trimStart().replace(/[^\\S ]+$/, \"\").split(/[\\r\\n]+/).map(x => {\n      const [key, ...val] = x.split(\": \");\n      return [key, val.join(\": \")];\n    }) : []);\n    const {\n      contentLength,\n      isRangeSupported\n    } = validateRangeRequestCapabilities({\n      responseHeaders,\n      isHttp: stream.isHttp,\n      rangeChunkSize,\n      disableRange\n    });\n    this._contentLength = contentLength;\n    this._isRangeSupported = isRangeSupported;\n    this._filename = extractFilenameFromHeader(responseHeaders);\n    if (this._isRangeSupported) {\n      stream._abortRequest(fullRequestXhr);\n    }\n    this._headersCapability.resolve();\n  }\n  #onDone(chunk) {\n    if (this._requests.length > 0) {\n      const capability = this._requests.shift();\n      capability.resolve({\n        value: chunk,\n        done: false\n      });\n    } else {\n      this._cachedChunks.push(chunk);\n    }\n    this._done = true;\n    if (this._cachedChunks.length === 0) {\n      this.#endRequests();\n    }\n  }\n  #onError(status) {\n    this._storedError = createResponseError(status, this._stream.url);\n    this._headersCapability.reject(this._storedError);\n    for (const capability of this._requests) {\n      capability.reject(this._storedError);\n    }\n    this._requests.length = 0;\n    this._cachedChunks.length = 0;\n  }\n  #onProgress(evt) {\n    this.onProgress?.({\n      loaded: evt.loaded,\n      total: evt.lengthComputable ? evt.total : this._contentLength\n    });\n  }\n  async read() {\n    await this._headersCapability.promise;\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._cachedChunks.length > 0) {\n      const chunk = this._cachedChunks.shift();\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n    const capability = Promise.withResolvers();\n    this._requests.push(capability);\n    return capability.promise;\n  }\n  cancel(reason) {\n    this._done = true;\n    this._headersCapability.reject(reason);\n    this.#endRequests();\n    this._stream._abortRequest(this._fullRequestXhr);\n    this._fullRequestXhr = null;\n  }\n}\nclass PDFNetworkStreamRangeReader extends BasePDFStreamRangeReader {\n  #endRequests = endRequests.bind(this);\n  onClosed = null;\n  _done = false;\n  _queuedChunk = null;\n  _requests = [];\n  _storedError = null;\n  constructor(stream, begin, end) {\n    super(stream, begin, end);\n    this._requestXhr = stream._request({\n      begin,\n      end,\n      onHeadersReceived: this.#onHeadersReceived.bind(this),\n      onDone: this.#onDone.bind(this),\n      onError: this.#onError.bind(this),\n      onProgress: null\n    });\n  }\n  #onHeadersReceived() {\n    const responseOrigin = getResponseOrigin(this._requestXhr?.responseURL);\n    try {\n      ensureResponseOrigin(responseOrigin, this._stream._responseOrigin);\n    } catch (ex) {\n      this._storedError = ex;\n      this.#onError(0);\n    }\n  }\n  #onDone(chunk) {\n    if (this._requests.length > 0) {\n      const capability = this._requests.shift();\n      capability.resolve({\n        value: chunk,\n        done: false\n      });\n    } else {\n      this._queuedChunk = chunk;\n    }\n    this._done = true;\n    this.#endRequests();\n    this.onClosed?.();\n  }\n  #onError(status) {\n    this._storedError ??= createResponseError(status, this._stream.url);\n    for (const capability of this._requests) {\n      capability.reject(this._storedError);\n    }\n    this._requests.length = 0;\n    this._queuedChunk = null;\n  }\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._queuedChunk !== null) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n    const capability = Promise.withResolvers();\n    this._requests.push(capability);\n    return capability.promise;\n  }\n  cancel(reason) {\n    this._done = true;\n    this.#endRequests();\n    this._stream._abortRequest(this._requestXhr);\n    this.onClosed?.();\n  }\n}\n\n;// ./src/display/node_stream.js\n\n\n\n\nfunction getReadableStream(url, opts = null) {\n  const fs = process.getBuiltinModule(\"fs\");\n  const {\n    Readable\n  } = process.getBuiltinModule(\"stream\");\n  const readStream = fs.createReadStream(url, opts);\n  return Readable.toWeb(readStream);\n}\nclass PDFNodeStream extends BasePDFStream {\n  constructor(source) {\n    super(source, PDFNodeStreamReader, PDFNodeStreamRangeReader);\n    const {\n      url\n    } = source;\n    assert(url.protocol === \"file:\", \"PDFNodeStream only supports file:// URLs.\");\n  }\n}\nclass PDFNodeStreamReader extends BasePDFStreamReader {\n  _reader = null;\n  constructor(stream) {\n    super(stream);\n    const {\n      disableRange,\n      disableStream,\n      rangeChunkSize,\n      url\n    } = stream._source;\n    this._isStreamingSupported = !disableStream;\n    const fs = process.getBuiltinModule(\"fs/promises\");\n    fs.lstat(url).then(stat => {\n      const readableStream = getReadableStream(url);\n      this._reader = readableStream.getReader();\n      const {\n        size\n      } = stat;\n      this._contentLength = size;\n      this._isRangeSupported = !disableRange && size > 2 * rangeChunkSize;\n      if (!this._isStreamingSupported && this._isRangeSupported) {\n        this.cancel(new AbortException(\"Streaming is disabled.\"));\n      }\n      this._headersCapability.resolve();\n    }).catch(error => {\n      if (error.code === \"ENOENT\") {\n        error = createResponseError(0, url);\n      }\n      this._headersCapability.reject(error);\n    });\n  }\n  async read() {\n    await this._headersCapability.promise;\n    const {\n      value,\n      done\n    } = await this._reader.read();\n    if (done) {\n      return {\n        value,\n        done\n      };\n    }\n    this._loaded += value.byteLength;\n    this._callOnProgress();\n    return {\n      value: getArrayBuffer(value),\n      done: false\n    };\n  }\n  cancel(reason) {\n    this._reader?.cancel(reason);\n  }\n}\nclass PDFNodeStreamRangeReader extends BasePDFStreamRangeReader {\n  _readCapability = Promise.withResolvers();\n  _reader = null;\n  constructor(stream, begin, end) {\n    super(stream, begin, end);\n    const {\n      url\n    } = stream._source;\n    try {\n      const readableStream = getReadableStream(url, {\n        start: begin,\n        end: end - 1\n      });\n      this._reader = readableStream.getReader();\n      this._readCapability.resolve();\n    } catch (error) {\n      this._readCapability.reject(error);\n    }\n  }\n  async read() {\n    await this._readCapability.promise;\n    const {\n      value,\n      done\n    } = await this._reader.read();\n    if (done) {\n      return {\n        value,\n        done\n      };\n    }\n    return {\n      value: getArrayBuffer(value),\n      done: false\n    };\n  }\n  cancel(reason) {\n    this._reader?.cancel(reason);\n  }\n}\n\n;// ./src/display/network_stream.js\n\n\n\n\n\nfunction getNetworkStream(url) {\n  return isValidFetchUrl(url) ? PDFFetchStream : isNodeJS ? PDFNodeStream : PDFNetworkStream;\n}\n\n;// ./src/display/worker_options.js\nclass GlobalWorkerOptions {\n  static #port = null;\n  static #src = \"\";\n  static get workerPort() {\n    return this.#port;\n  }\n  static set workerPort(val) {\n    if (!(typeof Worker !== \"undefined\" && val instanceof Worker) && val !== null) {\n      throw new Error(\"Invalid `workerPort` type.\");\n    }\n    this.#port = val;\n  }\n  static get workerSrc() {\n    return this.#src;\n  }\n  static set workerSrc(val) {\n    if (typeof val !== \"string\") {\n      throw new Error(\"Invalid `workerSrc` type.\");\n    }\n    this.#src = val;\n  }\n}\n\n;// ./src/display/metadata.js\nclass Metadata {\n  #map;\n  #data;\n  constructor({\n    parsedData,\n    rawData\n  }) {\n    this.#map = parsedData;\n    this.#data = rawData;\n  }\n  getRaw() {\n    return this.#data;\n  }\n  get(name) {\n    return this.#map.get(name) ?? null;\n  }\n  [Symbol.iterator]() {\n    return this.#map.entries();\n  }\n}\n\n;// ./src/display/optional_content_config.js\n\n\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n  #isDisplay = false;\n  #isPrint = false;\n  #userSet = false;\n  #visible = true;\n  constructor(renderingIntent, {\n    name,\n    intent,\n    usage,\n    rbGroups\n  }) {\n    this.#isDisplay = !!(renderingIntent & RenderingIntentFlag.DISPLAY);\n    this.#isPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n    this.name = name;\n    this.intent = intent;\n    this.usage = usage;\n    this.rbGroups = rbGroups;\n  }\n  get visible() {\n    if (this.#userSet) {\n      return this.#visible;\n    }\n    if (!this.#visible) {\n      return false;\n    }\n    const {\n      print,\n      view\n    } = this.usage;\n    if (this.#isDisplay) {\n      return view?.viewState !== \"OFF\";\n    } else if (this.#isPrint) {\n      return print?.printState !== \"OFF\";\n    }\n    return true;\n  }\n  _setVisible(internal, visible, userSet = false) {\n    if (internal !== INTERNAL) {\n      unreachable(\"Internal method `_setVisible` called.\");\n    }\n    this.#userSet = userSet;\n    this.#visible = visible;\n  }\n  get serializable() {\n    return {\n      userSet: this.#userSet,\n      visible: this.#visible\n    };\n  }\n}\nclass OptionalContentConfig {\n  #cachedGetHash = null;\n  #groups = new Map();\n  #initialHash = null;\n  #order = null;\n  #rawData;\n  creator = null;\n  name = null;\n  constructor(data, renderingIntent = RenderingIntentFlag.DISPLAY, groupState = null) {\n    this.#rawData = data;\n    this.renderingIntent = renderingIntent;\n    if (data === null) {\n      return;\n    }\n    this.name = data.name;\n    this.creator = data.creator;\n    this.#order = data.order;\n    for (const group of data.groups) {\n      this.#groups.set(group.id, new OptionalContentGroup(renderingIntent, group));\n    }\n    if (groupState) {\n      if (groupState.size !== this.#groups.size) {\n        unreachable(\"Incorrect serialized groupState.\");\n      }\n      for (const [id, group] of groupState) {\n        this.#groups.get(id)._setVisible(INTERNAL, group.visible, group.userSet);\n      }\n    } else {\n      if (data.baseState === \"OFF\") {\n        for (const group of this.#groups.values()) {\n          group._setVisible(INTERNAL, false);\n        }\n      }\n      for (const on of data.on) {\n        this.#groups.get(on)._setVisible(INTERNAL, true);\n      }\n      for (const off of data.off) {\n        this.#groups.get(off)._setVisible(INTERNAL, false);\n      }\n    }\n    this.#initialHash = this.getHash();\n  }\n  #evaluateVisibilityExpression(array) {\n    const length = array.length;\n    if (length < 2) {\n      return true;\n    }\n    const operator = array[0];\n    for (let i = 1; i < length; i++) {\n      const element = array[i];\n      let state;\n      if (Array.isArray(element)) {\n        state = this.#evaluateVisibilityExpression(element);\n      } else if (this.#groups.has(element)) {\n        state = this.#groups.get(element).visible;\n      } else {\n        warn(`Optional content group not found: ${element}`);\n        return true;\n      }\n      switch (operator) {\n        case \"And\":\n          if (!state) {\n            return false;\n          }\n          break;\n        case \"Or\":\n          if (state) {\n            return true;\n          }\n          break;\n        case \"Not\":\n          return !state;\n        default:\n          return true;\n      }\n    }\n    return operator === \"And\";\n  }\n  isVisible(group) {\n    if (this.#groups.size === 0) {\n      return true;\n    }\n    if (!group) {\n      info(\"Optional content group not defined.\");\n      return true;\n    }\n    if (group.type === \"OCG\") {\n      if (!this.#groups.has(group.id)) {\n        warn(`Optional content group not found: ${group.id}`);\n        return true;\n      }\n      return this.#groups.get(group.id).visible;\n    } else if (group.type === \"OCMD\") {\n      if (group.expression) {\n        return this.#evaluateVisibilityExpression(group.expression);\n      }\n      if (!group.policy || group.policy === \"AnyOn\") {\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this.#groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOn\") {\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this.#groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      } else if (group.policy === \"AnyOff\") {\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this.#groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOff\") {\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this.#groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      }\n      warn(`Unknown optional content policy ${group.policy}.`);\n      return true;\n    }\n    warn(`Unknown group type ${group.type}.`);\n    return true;\n  }\n  setVisibility(id, visible = true, preserveRB = true) {\n    const group = this.#groups.get(id);\n    if (!group) {\n      warn(`Optional content group not found: ${id}`);\n      return;\n    }\n    if (preserveRB && visible && group.rbGroups.length) {\n      for (const rbGroup of group.rbGroups) {\n        for (const otherId of rbGroup) {\n          if (otherId !== id) {\n            this.#groups.get(otherId)?._setVisible(INTERNAL, false, true);\n          }\n        }\n      }\n    }\n    group._setVisible(INTERNAL, !!visible, true);\n    this.#cachedGetHash = null;\n  }\n  setOCGState({\n    state,\n    preserveRB\n  }) {\n    let operator;\n    for (const elem of state) {\n      switch (elem) {\n        case \"ON\":\n        case \"OFF\":\n        case \"Toggle\":\n          operator = elem;\n          continue;\n      }\n      const group = this.#groups.get(elem);\n      if (!group) {\n        continue;\n      }\n      switch (operator) {\n        case \"ON\":\n          this.setVisibility(elem, true, preserveRB);\n          break;\n        case \"OFF\":\n          this.setVisibility(elem, false, preserveRB);\n          break;\n        case \"Toggle\":\n          this.setVisibility(elem, !group.visible, preserveRB);\n          break;\n      }\n    }\n    this.#cachedGetHash = null;\n  }\n  get hasInitialVisibility() {\n    return this.#initialHash === null || this.getHash() === this.#initialHash;\n  }\n  getOrder() {\n    if (!this.#groups.size) {\n      return null;\n    }\n    if (this.#order) {\n      return this.#order.slice();\n    }\n    return [...this.#groups.keys()];\n  }\n  getGroup(id) {\n    return this.#groups.get(id) || null;\n  }\n  getHash() {\n    if (this.#cachedGetHash !== null) {\n      return this.#cachedGetHash;\n    }\n    const hash = new MurmurHash3_64();\n    for (const [id, group] of this.#groups) {\n      hash.update(`${id}:${group.visible}`);\n    }\n    return this.#cachedGetHash = hash.hexdigest();\n  }\n  [Symbol.iterator]() {\n    return this.#groups.entries();\n  }\n  get serializable() {\n    const groupState = new Map();\n    for (const [id, group] of this.#groups) {\n      groupState.set(id, group.serializable);\n    }\n    return {\n      data: this.#rawData,\n      renderingIntent: this.renderingIntent,\n      groupState\n    };\n  }\n  static fromSerializable({\n    data,\n    renderingIntent,\n    groupState\n  }) {\n    return new OptionalContentConfig(data, renderingIntent, groupState);\n  }\n}\n\n;// ./src/display/pages_mapper.js\n\n\nclass PagesMapper {\n  #pageNumberToId = null;\n  #prevPageNumbers = null;\n  #pagesNumber = 0;\n  #clipboard = null;\n  #savedData = null;\n  get pagesNumber() {\n    return this.#pagesNumber;\n  }\n  set pagesNumber(n) {\n    if (this.#pagesNumber === n) {\n      return;\n    }\n    this.#pagesNumber = n;\n    this.#pageNumberToId = null;\n    this.#prevPageNumbers = null;\n  }\n  #ensureInit() {\n    if (this.#pageNumberToId) {\n      return;\n    }\n    const n = this.#pagesNumber;\n    const pageNumberToId = this.#pageNumberToId = new Uint32Array(n);\n    for (let i = 0; i < n; i++) {\n      pageNumberToId[i] = i + 1;\n    }\n    this.#prevPageNumbers = new Int32Array(pageNumberToId);\n  }\n  #buildIdToPageNumber() {\n    const idToPageNumber = new Map();\n    const pageNumberToId = this.#pageNumberToId;\n    for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n      const id = pageNumberToId[i];\n      const pageNumbers = idToPageNumber.get(id);\n      if (pageNumbers) {\n        pageNumbers.push(i + 1);\n      } else {\n        idToPageNumber.set(id, [i + 1]);\n      }\n    }\n    return idToPageNumber;\n  }\n  movePages(selectedPages, pagesToMove, index) {\n    this.#ensureInit();\n    const pageNumberToId = this.#pageNumberToId;\n    const prevIdToPageNumber = this.#buildIdToPageNumber();\n    const movedCount = pagesToMove.length;\n    const mappedPagesToMove = new Uint32Array(movedCount);\n    let removedBeforeTarget = 0;\n    for (let i = 0; i < movedCount; i++) {\n      const pageIndex = pagesToMove[i] - 1;\n      mappedPagesToMove[i] = pageNumberToId[pageIndex];\n      if (pageIndex < index) {\n        removedBeforeTarget++;\n      }\n    }\n    const pagesNumber = this.#pagesNumber;\n    const remainingLen = pagesNumber - movedCount;\n    const adjustedTarget = MathClamp(index - removedBeforeTarget, 0, remainingLen);\n    for (let i = 0, r = 0; i < pagesNumber; i++) {\n      if (!selectedPages.has(i + 1)) {\n        pageNumberToId[r++] = pageNumberToId[i];\n      }\n    }\n    pageNumberToId.copyWithin(adjustedTarget + movedCount, adjustedTarget, remainingLen);\n    pageNumberToId.set(mappedPagesToMove, adjustedTarget);\n    this.#updatePrevPageNumbers(prevIdToPageNumber);\n    if (pageNumberToId.every((id, i) => id === i + 1)) {\n      this.#pageNumberToId = null;\n    }\n  }\n  deletePages(pagesToDelete) {\n    this.#ensureInit();\n    const pageNumberToId = this.#pageNumberToId;\n    const prevIdToPageNumber = this.#buildIdToPageNumber();\n    this.#savedData = {\n      pageNumberToId: pageNumberToId.slice(),\n      pagesNumber: this.#pagesNumber,\n      prevPageNumbers: this.#prevPageNumbers.slice()\n    };\n    const newN = this.#pagesNumber - pagesToDelete.length;\n    this.#pagesNumber = newN;\n    const newPageNumberToId = this.#pageNumberToId = new Uint32Array(newN);\n    this.#prevPageNumbers = new Int32Array(newN);\n    let sourceIndex = 0;\n    let destIndex = 0;\n    for (const pageNumber of pagesToDelete) {\n      const pageIndex = pageNumber - 1;\n      if (pageIndex !== sourceIndex) {\n        newPageNumberToId.set(pageNumberToId.subarray(sourceIndex, pageIndex), destIndex);\n        destIndex += pageIndex - sourceIndex;\n      }\n      sourceIndex = pageIndex + 1;\n    }\n    if (sourceIndex < pageNumberToId.length) {\n      newPageNumberToId.set(pageNumberToId.subarray(sourceIndex), destIndex);\n    }\n    this.#updatePrevPageNumbers(prevIdToPageNumber, new Set(pagesToDelete));\n  }\n  cancelDelete() {\n    if (this.#savedData) {\n      this.#pageNumberToId = this.#savedData.pageNumberToId;\n      this.#pagesNumber = this.#savedData.pagesNumber;\n      this.#prevPageNumbers = this.#savedData.prevPageNumbers;\n      this.#savedData = null;\n    }\n  }\n  cleanSavedData() {\n    this.#savedData = null;\n  }\n  copyPages(pagesToCopy) {\n    this.#ensureInit();\n    this.#clipboard = {\n      pageNumbers: pagesToCopy,\n      pageIds: pagesToCopy.map(n => this.#pageNumberToId[n - 1])\n    };\n  }\n  cancelCopy() {\n    this.#clipboard = null;\n  }\n  pastePages(index) {\n    this.#ensureInit();\n    const pageNumberToId = this.#pageNumberToId;\n    const prevIdToPageNumber = this.#buildIdToPageNumber();\n    const {\n      pageNumbers: copiedPageNumbers,\n      pageIds: copiedPageIds\n    } = this.#clipboard;\n    const newN = this.#pagesNumber + copiedPageNumbers.length;\n    this.#pagesNumber = newN;\n    const newPageNumberToId = this.#pageNumberToId = new Uint32Array(newN);\n    this.#prevPageNumbers = new Int32Array(newN);\n    newPageNumberToId.set(pageNumberToId.subarray(0, index), 0);\n    newPageNumberToId.set(copiedPageIds, index);\n    newPageNumberToId.set(pageNumberToId.subarray(index), index + copiedPageNumbers.length);\n    this.#updatePrevPageNumbers(prevIdToPageNumber, null, index, copiedPageNumbers);\n    this.#clipboard = null;\n  }\n  #updatePrevPageNumbers(prevIdToPageNumber, deletedPageNumbers = null, pasteIndex = -1, copiedPageNumbers = null) {\n    const prevPageNumbers = this.#prevPageNumbers;\n    const newPageNumberToId = this.#pageNumberToId;\n    const pasteEnd = pasteIndex + (copiedPageNumbers?.length ?? 0);\n    const idsIndices = new Map();\n    for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n      if (i >= pasteIndex && i < pasteEnd) {\n        prevPageNumbers[i] = -copiedPageNumbers[i - pasteIndex];\n        continue;\n      }\n      const id = newPageNumberToId[i];\n      const oldPositions = prevIdToPageNumber.get(id);\n      let j = idsIndices.get(id) || 0;\n      if (deletedPageNumbers && oldPositions) {\n        while (j < oldPositions.length && deletedPageNumbers.has(oldPositions[j])) {\n          j++;\n        }\n      }\n      prevPageNumbers[i] = oldPositions?.[j];\n      idsIndices.set(id, j + 1);\n    }\n  }\n  hasBeenAltered() {\n    return this.#pageNumberToId !== null;\n  }\n  getPageMappingForSaving(idToPageNumber = null) {\n    idToPageNumber ??= this.#buildIdToPageNumber();\n    let nCopy = 0;\n    for (const pageNumbers of idToPageNumber.values()) {\n      nCopy = Math.max(nCopy, pageNumbers.length);\n    }\n    const extractParams = new Array(nCopy);\n    for (let i = 0; i < nCopy; i++) {\n      extractParams[i] = {\n        document: null,\n        pageIndices: [],\n        includePages: []\n      };\n    }\n    for (const [id, pageNumbers] of idToPageNumber) {\n      for (let i = 0, ii = pageNumbers.length; i < ii; i++) {\n        extractParams[i].includePages.push([id - 1, pageNumbers[i] - 1]);\n      }\n    }\n    for (const {\n      includePages,\n      pageIndices\n    } of extractParams) {\n      includePages.sort((a, b) => a[0] - b[0]);\n      for (let i = 0, ii = includePages.length; i < ii; i++) {\n        pageIndices.push(includePages[i][1]);\n        includePages[i] = includePages[i][0];\n      }\n    }\n    return extractParams;\n  }\n  extractPages(extractedPageNumbers) {\n    extractedPageNumbers = Array.from(extractedPageNumbers).sort((a, b) => a - b);\n    const usedIds = new Map();\n    for (let i = 0, ii = extractedPageNumbers.length; i < ii; i++) {\n      const id = this.getPageId(extractedPageNumbers[i]);\n      const usedPageNumbers = usedIds.getOrInsertComputed(id, makeArr);\n      usedPageNumbers.push(i + 1);\n    }\n    return this.getPageMappingForSaving(usedIds);\n  }\n  getPrevPageNumber(pageNumber) {\n    return this.#prevPageNumbers?.[pageNumber - 1] ?? 0;\n  }\n  getPageNumber(id) {\n    if (!this.#pageNumberToId) {\n      return id;\n    }\n    const pageNumberToId = this.#pageNumberToId;\n    for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n      if (pageNumberToId[i] === id) {\n        return i + 1;\n      }\n    }\n    return 0;\n  }\n  getPageId(pageNumber) {\n    return this.#pageNumberToId?.[pageNumber - 1] ?? pageNumber;\n  }\n  getMapping() {\n    return this.#pageNumberToId?.subarray(0, this.pagesNumber);\n  }\n}\n\n;// ./src/display/pdf_objects.js\nconst INITIAL_DATA = Symbol(\"INITIAL_DATA\");\nconst dataObj = () => ({\n  ...Promise.withResolvers(),\n  data: INITIAL_DATA\n});\nclass PDFObjects {\n  #objs = new Map();\n  get(objId, callback = null) {\n    if (callback) {\n      const obj = this.#objs.getOrInsertComputed(objId, dataObj);\n      obj.promise.then(() => callback(obj.data));\n      return null;\n    }\n    const obj = this.#objs.get(objId);\n    if (!obj || obj.data === INITIAL_DATA) {\n      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n    }\n    return obj.data;\n  }\n  has(objId) {\n    const obj = this.#objs.get(objId);\n    return !!obj && obj.data !== INITIAL_DATA;\n  }\n  delete(objId) {\n    const obj = this.#objs.get(objId);\n    if (!obj || obj.data === INITIAL_DATA) {\n      return false;\n    }\n    this.#objs.delete(objId);\n    return true;\n  }\n  resolve(objId, data = null) {\n    const obj = this.#objs.getOrInsertComputed(objId, dataObj);\n    if (obj.data !== INITIAL_DATA) {\n      throw new Error(`Object already resolved ${objId}.`);\n    }\n    obj.data = data;\n    obj.resolve();\n  }\n  clear() {\n    for (const {\n      data\n    } of this.#objs.values()) {\n      data?.bitmap?.close();\n    }\n    this.#objs.clear();\n  }\n  *[Symbol.iterator]() {\n    for (const [objId, {\n      data\n    }] of this.#objs) {\n      if (data !== INITIAL_DATA) {\n        yield [objId, data];\n      }\n    }\n  }\n}\n\n;// ./src/display/text_layer.js\n\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nclass TextLayer {\n  #capability = Promise.withResolvers();\n  #container = null;\n  #disableProcessItems = false;\n  #fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n  #imagesHandler = null;\n  #lang = null;\n  #layoutTextParams = null;\n  #pageHeight = 0;\n  #pageWidth = 0;\n  #reader = null;\n  #rootContainer = null;\n  #rotation = 0;\n  #scale = 0;\n  #styleCache = Object.create(null);\n  #textContentItemsStr = [];\n  #textContentSource = null;\n  #textDivs = [];\n  #textDivProperties = new WeakMap();\n  #transform = null;\n  static #ascentCache = new Map();\n  static #canvasContexts = new Map();\n  static #canvasCtxFonts = new WeakMap();\n  static #minFontSize = null;\n  static #pendingTextLayers = new Set();\n  constructor({\n    textContentSource,\n    images,\n    container,\n    viewport\n  }) {\n    if (textContentSource instanceof ReadableStream) {\n      this.#textContentSource = textContentSource;\n    } else if (typeof textContentSource === \"object\") {\n      this.#textContentSource = new ReadableStream({\n        start(controller) {\n          controller.enqueue(textContentSource);\n          controller.close();\n        }\n      });\n    } else {\n      throw new Error('No \"textContentSource\" parameter specified.');\n    }\n    this.#container = this.#rootContainer = container;\n    this.#imagesHandler = images;\n    this.#scale = viewport.scale * OutputScale.pixelRatio;\n    this.#rotation = viewport.rotation;\n    this.#layoutTextParams = {\n      div: null,\n      properties: null,\n      ctx: null\n    };\n    const {\n      pageWidth,\n      pageHeight,\n      pageX,\n      pageY\n    } = viewport.rawDims;\n    this.#transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n    this.#pageWidth = pageWidth;\n    this.#pageHeight = pageHeight;\n    TextLayer.#ensureMinFontSizeComputed();\n    container.style.setProperty(\"--min-font-size\", TextLayer.#minFontSize);\n    setLayerDimensions(container, viewport);\n    this.#capability.promise.finally(() => {\n      TextLayer.#pendingTextLayers.delete(this);\n      this.#layoutTextParams = null;\n      this.#styleCache = null;\n    }).catch(() => {});\n  }\n  static get fontFamilyMap() {\n    const {\n      isWindows,\n      isFirefox\n    } = FeatureTest.platform;\n    return shadow(this, \"fontFamilyMap\", new Map([[\"sans-serif\", `${isWindows && isFirefox ? \"Calibri, \" : \"\"}sans-serif`], [\"monospace\", `${isWindows && isFirefox ? \"Lucida Console, \" : \"\"}monospace`]]));\n  }\n  render() {\n    if (this.#imagesHandler) {\n      this.#container.append(this.#imagesHandler.render());\n    }\n    const pump = () => {\n      this.#reader.read().then(({\n        value,\n        done\n      }) => {\n        if (done) {\n          this.#capability.resolve();\n          return;\n        }\n        this.#lang ??= value.lang;\n        Object.assign(this.#styleCache, value.styles);\n        this.#processItems(value.items);\n        pump();\n      }, this.#capability.reject);\n    };\n    this.#reader = this.#textContentSource.getReader();\n    TextLayer.#pendingTextLayers.add(this);\n    pump();\n    return this.#capability.promise;\n  }\n  update({\n    viewport,\n    onBefore = null\n  }) {\n    const scale = viewport.scale * OutputScale.pixelRatio;\n    const rotation = viewport.rotation;\n    if (rotation !== this.#rotation) {\n      onBefore?.();\n      this.#rotation = rotation;\n      setLayerDimensions(this.#rootContainer, {\n        rotation\n      });\n    }\n    if (scale !== this.#scale) {\n      onBefore?.();\n      this.#scale = scale;\n      const params = {\n        div: null,\n        properties: null,\n        ctx: TextLayer.#getCtx(this.#lang)\n      };\n      for (const div of this.#textDivs) {\n        params.properties = this.#textDivProperties.get(div);\n        params.div = div;\n        this.#layout(params);\n      }\n    }\n  }\n  cancel() {\n    const abortEx = new AbortException(\"TextLayer task cancelled.\");\n    this.#reader?.cancel(abortEx).catch(() => {});\n    this.#reader = null;\n    this.#capability.reject(abortEx);\n  }\n  get textDivs() {\n    return this.#textDivs;\n  }\n  get textContentItemsStr() {\n    return this.#textContentItemsStr;\n  }\n  #processItems(items) {\n    if (this.#disableProcessItems) {\n      return;\n    }\n    this.#layoutTextParams.ctx ??= TextLayer.#getCtx(this.#lang);\n    const textDivs = this.#textDivs,\n      textContentItemsStr = this.#textContentItemsStr;\n    for (const item of items) {\n      if (textDivs.length > MAX_TEXT_DIVS_TO_RENDER) {\n        warn(\"Ignoring additional textDivs for performance reasons.\");\n        this.#disableProcessItems = true;\n        return;\n      }\n      if (item.str === undefined) {\n        if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n          const parent = this.#container;\n          this.#container = document.createElement(\"span\");\n          this.#container.classList.add(\"markedContent\");\n          if (item.id) {\n            this.#container.setAttribute(\"id\", item.id);\n          }\n          if (item.tag === \"Artifact\") {\n            this.#container.ariaHidden = true;\n          }\n          parent.append(this.#container);\n        } else if (item.type === \"endMarkedContent\") {\n          this.#container = this.#container.parentNode;\n        }\n        continue;\n      }\n      textContentItemsStr.push(item.str);\n      this.#appendText(item);\n    }\n  }\n  #appendText(geom) {\n    const textDiv = document.createElement(\"span\");\n    const textDivProperties = {\n      angle: 0,\n      canvasWidth: 0,\n      hasText: geom.str !== \"\",\n      hasEOL: geom.hasEOL,\n      fontSize: 0\n    };\n    this.#textDivs.push(textDiv);\n    const tx = Util.transform(this.#transform, geom.transform);\n    let angle = Math.atan2(tx[1], tx[0]);\n    const style = this.#styleCache[geom.fontName];\n    if (style.vertical) {\n      angle += Math.PI / 2;\n    }\n    let fontFamily = this.#fontInspectorEnabled && style.fontSubstitution || style.fontFamily;\n    fontFamily = TextLayer.fontFamilyMap.get(fontFamily) || fontFamily;\n    const fontHeight = Math.hypot(tx[2], tx[3]);\n    const fontAscent = fontHeight * TextLayer.#getAscent(fontFamily, style, this.#lang);\n    let left, top;\n    if (angle === 0) {\n      left = tx[4];\n      top = tx[5] - fontAscent;\n    } else {\n      left = tx[4] + fontAscent * Math.sin(angle);\n      top = tx[5] - fontAscent * Math.cos(angle);\n    }\n    const divStyle = textDiv.style;\n    divStyle.left = `${(100 * left / this.#pageWidth).toFixed(2)}%`;\n    divStyle.top = `${(100 * top / this.#pageHeight).toFixed(2)}%`;\n    divStyle.setProperty(\"--font-height\", `${fontHeight.toFixed(2)}px`);\n    divStyle.fontFamily = fontFamily;\n    textDivProperties.fontSize = fontHeight;\n    textDiv.setAttribute(\"role\", \"presentation\");\n    textDiv.textContent = geom.str;\n    textDiv.dir = geom.dir;\n    if (this.#fontInspectorEnabled) {\n      textDiv.dataset.fontName = style.fontSubstitutionLoadedName || geom.fontName;\n    }\n    if (angle !== 0) {\n      textDivProperties.angle = angle * (180 / Math.PI);\n    }\n    let shouldScaleText = false;\n    if (geom.str.length > 1) {\n      shouldScaleText = true;\n    } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n      const absScaleX = Math.abs(geom.transform[0]),\n        absScaleY = Math.abs(geom.transform[3]);\n      if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n        shouldScaleText = true;\n      }\n    }\n    if (shouldScaleText) {\n      textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n    }\n    this.#textDivProperties.set(textDiv, textDivProperties);\n    this.#layoutTextParams.div = textDiv;\n    this.#layoutTextParams.properties = textDivProperties;\n    this.#layout(this.#layoutTextParams);\n    if (textDivProperties.hasText) {\n      this.#container.append(textDiv);\n    }\n    if (textDivProperties.hasEOL) {\n      const br = document.createElement(\"br\");\n      br.setAttribute(\"role\", \"presentation\");\n      this.#container.append(br);\n    }\n  }\n  #layout(params) {\n    const {\n      div,\n      properties,\n      ctx\n    } = params;\n    const {\n      style\n    } = div;\n    if (properties.canvasWidth !== 0 && properties.hasText) {\n      const {\n        fontFamily\n      } = style;\n      const {\n        canvasWidth,\n        fontSize\n      } = properties;\n      TextLayer.#ensureCtxFont(ctx, fontSize * this.#scale, fontFamily);\n      const {\n        width\n      } = ctx.measureText(div.textContent);\n      if (width > 0) {\n        style.setProperty(\"--scale-x\", canvasWidth * this.#scale / width);\n      }\n    }\n    if (properties.angle !== 0) {\n      style.setProperty(\"--rotate\", `${properties.angle}deg`);\n    }\n  }\n  static cleanup() {\n    if (this.#pendingTextLayers.size > 0) {\n      return;\n    }\n    this.#ascentCache.clear();\n    for (const {\n      canvas\n    } of this.#canvasContexts.values()) {\n      canvas.remove();\n    }\n    this.#canvasContexts.clear();\n  }\n  static #getCtx(lang = null) {\n    let ctx = this.#canvasContexts.get(lang ||= \"\");\n    if (!ctx) {\n      const canvas = document.createElement(\"canvas\");\n      canvas.style.cssText = \"position:absolute;top:0;left:0;width:0;height:0;display:none;\" + \"letter-spacing:normal;word-spacing:normal\";\n      canvas.lang = lang;\n      document.body.append(canvas);\n      ctx = canvas.getContext(\"2d\", {\n        alpha: false,\n        willReadFrequently: true\n      });\n      this.#canvasContexts.set(lang, ctx);\n      this.#canvasCtxFonts.set(ctx, {\n        size: 0,\n        family: \"\"\n      });\n    }\n    return ctx;\n  }\n  static #ensureCtxFont(ctx, size, family) {\n    const cached = this.#canvasCtxFonts.get(ctx);\n    if (size === cached.size && family === cached.family) {\n      return;\n    }\n    ctx.font = `${size}px ${family}`;\n    cached.size = size;\n    cached.family = family;\n  }\n  static #ensureMinFontSizeComputed() {\n    if (this.#minFontSize !== null) {\n      return;\n    }\n    const div = document.createElement(\"div\");\n    div.style.opacity = 0;\n    div.style.lineHeight = 1;\n    div.style.fontSize = \"1px\";\n    div.style.position = \"absolute\";\n    div.textContent = \"X\";\n    document.body.append(div);\n    this.#minFontSize = div.getBoundingClientRect().height;\n    div.remove();\n  }\n  static #getAscent(fontFamily, style, lang) {\n    const cachedAscent = this.#ascentCache.get(fontFamily);\n    if (cachedAscent) {\n      return cachedAscent;\n    }\n    const ctx = this.#getCtx(lang);\n    ctx.canvas.width = ctx.canvas.height = DEFAULT_FONT_SIZE;\n    this.#ensureCtxFont(ctx, DEFAULT_FONT_SIZE, fontFamily);\n    const metrics = ctx.measureText(\"\");\n    const ascent = metrics.fontBoundingBoxAscent;\n    const descent = Math.abs(metrics.fontBoundingBoxDescent);\n    ctx.canvas.width = ctx.canvas.height = 0;\n    let ratio = 0.8;\n    if (ascent) {\n      ratio = ascent / (ascent + descent);\n    } else {\n      if (FeatureTest.platform.isFirefox) {\n        warn(\"Enable the `dom.textMetrics.fontBoundingBox.enabled` preference \" + \"in `about:config` to improve TextLayer rendering.\");\n      }\n      if (style.ascent) {\n        ratio = style.ascent;\n      } else if (style.descent) {\n        ratio = 1 + style.descent;\n      }\n    }\n    this.#ascentCache.set(fontFamily, ratio);\n    return ratio;\n  }\n}\n\n;// ./src/display/api.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nfunction getDocument(src = {}) {\n  const task = new PDFDocumentLoadingTask();\n  const {\n    docId\n  } = task;\n  const url = src.url ? getUrlProp(src.url) : null;\n  const data = src.data ? getDataProp(src.data) : null;\n  const httpHeaders = src.httpHeaders || null;\n  const withCredentials = src.withCredentials === true;\n  const password = src.password ?? null;\n  const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n  const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : 2 ** 16;\n  let worker = src.worker instanceof PDFWorker ? src.worker : null;\n  const verbosity = src.verbosity;\n  const docBaseUrl = typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;\n  const cMapUrl = getFactoryUrlProp(src.cMapUrl);\n  const cMapPacked = src.cMapPacked !== false;\n  const iccUrl = getFactoryUrlProp(src.iccUrl);\n  const standardFontDataUrl = getFactoryUrlProp(src.standardFontDataUrl);\n  const wasmUrl = getFactoryUrlProp(src.wasmUrl);\n  const ignoreErrors = src.stopAtErrors !== true;\n  const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n  const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !isNodeJS;\n  const isImageDecoderSupported = typeof src.isImageDecoderSupported === \"boolean\" ? src.isImageDecoderSupported : !isNodeJS;\n  const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n  const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : isNodeJS;\n  const fontExtraProperties = src.fontExtraProperties === true;\n  const enableXfa = src.enableXfa === true;\n  const ownerDocument = src.ownerDocument || globalThis.document;\n  const disableRange = src.disableRange === true;\n  const disableStream = src.disableStream === true;\n  const disableAutoFetch = src.disableAutoFetch === true;\n  const pdfBug = src.pdfBug === true;\n  const CanvasFactory = src.CanvasFactory || (isNodeJS ? NodeCanvasFactory : DOMCanvasFactory);\n  const FilterFactory = src.FilterFactory || (isNodeJS ? NodeFilterFactory : DOMFilterFactory);\n  const BinaryDataFactory = src.BinaryDataFactory || (isNodeJS ? NodeBinaryDataFactory : DOMBinaryDataFactory);\n  const enableHWA = src.enableHWA === true;\n  const enableWebGPU = src.enableWebGPU === true;\n  const gpuPromise = enableWebGPU ? initGPU() : Promise.resolve(false);\n  const useWasm = src.useWasm !== false;\n  const pagesMapper = src.pagesMapper || new PagesMapper();\n  const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !isNodeJS && !disableFontFace;\n  const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : !!(BinaryDataFactory === DOMBinaryDataFactory && cMapUrl && cMapPacked && standardFontDataUrl && wasmUrl && isValidFetchUrl(cMapUrl, document.baseURI) && isValidFetchUrl(standardFontDataUrl, document.baseURI) && isValidFetchUrl(wasmUrl, document.baseURI));\n  const styleElement = null;\n  setVerbosityLevel(verbosity);\n  const transportFactory = {\n    canvasFactory: new CanvasFactory({\n      ownerDocument,\n      enableHWA\n    }),\n    filterFactory: new FilterFactory({\n      docId,\n      ownerDocument\n    }),\n    binaryDataFactory: useWorkerFetch ? null : new BinaryDataFactory({\n      cMapUrl,\n      standardFontDataUrl,\n      wasmUrl\n    })\n  };\n  if (!worker) {\n    worker = PDFWorker.create({\n      verbosity,\n      port: GlobalWorkerOptions.workerPort\n    });\n    task._worker = worker;\n  }\n  const docParams = {\n    docId,\n    apiVersion: \"6.2.108\",\n    data,\n    password,\n    disableAutoFetch,\n    rangeChunkSize,\n    docBaseUrl,\n    enableXfa,\n    evaluatorOptions: {\n      maxImageSize,\n      disableFontFace,\n      ignoreErrors,\n      isOffscreenCanvasSupported,\n      isImageDecoderSupported,\n      canvasMaxAreaInBytes,\n      fontExtraProperties,\n      useSystemFonts,\n      useWasm,\n      useWorkerFetch,\n      cMapUrl,\n      cMapPacked,\n      iccUrl,\n      standardFontDataUrl,\n      wasmUrl,\n      hasGPU: false\n    }\n  };\n  const transportParams = {\n    ownerDocument,\n    pdfBug,\n    styleElement,\n    enableHWA,\n    loadingParams: {\n      disableAutoFetch,\n      enableXfa\n    }\n  };\n  Promise.all([worker.promise, gpuPromise]).then(function ([, hasGPU]) {\n    if (worker.destroyed) {\n      throw new Error(\"Worker was destroyed\");\n    }\n    docParams.evaluatorOptions.hasGPU = hasGPU;\n    const workerIdPromise = worker.messageHandler.sendWithPromise(\"GetDocRequest\", docParams, data ? [data.buffer] : null);\n    let networkStream;\n    if (data) {} else if (rangeTransport) {\n      networkStream = new PDFDataTransportStream({\n        pdfDataRangeTransport: rangeTransport,\n        disableRange,\n        disableStream\n      });\n    } else if (url) {\n      const NetworkStream = getNetworkStream(url);\n      networkStream = new NetworkStream({\n        url,\n        httpHeaders,\n        withCredentials,\n        rangeChunkSize,\n        disableRange,\n        disableStream\n      });\n    } else {\n      throw new Error(\"getDocument - expected either `data`, `range`, or `url` parameter.\");\n    }\n    return workerIdPromise.then(workerId => {\n      if (worker.destroyed) {\n        throw new Error(\"Worker was destroyed\");\n      }\n      const messageHandler = new MessageHandler(docId, workerId, worker.port);\n      const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory, pagesMapper);\n      task._transport = transport;\n      if (task.destroyed) {\n        throw new Error(\"Loading aborted\");\n      }\n      messageHandler.send(\"Ready\", null);\n    });\n  }).catch(task._capability.reject).finally(task._setupCapability.resolve);\n  return task;\n}\nclass PDFDocumentLoadingTask {\n  static #docId = 0;\n  _capability = Promise.withResolvers();\n  _setupCapability = Promise.withResolvers();\n  _transport = null;\n  _worker = null;\n  docId = `d${PDFDocumentLoadingTask.#docId++}`;\n  destroyed = false;\n  onPassword = null;\n  onProgress = null;\n  get promise() {\n    return this._capability.promise;\n  }\n  async destroy() {\n    this.destroyed = true;\n    this._capability.promise.catch(() => {});\n    try {\n      if (this._worker?.port) {\n        this._worker._pendingDestroy = true;\n      }\n      await this._setupCapability.promise;\n      await this._transport?.destroy();\n    } catch (ex) {\n      if (this._worker?.port) {\n        delete this._worker._pendingDestroy;\n      }\n      throw ex;\n    }\n    this._transport = null;\n    this._worker?.destroy();\n    this._worker = null;\n  }\n  async getData() {\n    return this._transport.getData();\n  }\n}\nclass PDFDataRangeTransport {\n  #capability = Promise.withResolvers();\n  #listener = null;\n  constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n    this.length = length;\n    this.initialData = initialData;\n    this.progressiveDone = progressiveDone;\n    this.contentDispositionFilename = contentDispositionFilename;\n  }\n  onDataRange(begin, chunk) {\n    this.#listener({\n      type: \"range\",\n      begin,\n      chunk\n    });\n  }\n  onDataProgressiveRead(chunk) {\n    this.#capability.promise.then(() => {\n      this.#listener({\n        type: \"progressiveRead\",\n        chunk\n      });\n    });\n  }\n  onDataProgressiveDone() {\n    this.#capability.promise.then(() => {\n      this.#listener({\n        type: \"progressiveDone\"\n      });\n    });\n  }\n  transportReady(listener) {\n    this.#listener = listener;\n    this.#capability.resolve();\n  }\n  requestDataRange(begin, end) {\n    unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n  }\n  abort() {}\n}\nclass PDFDocumentProxy {\n  constructor(pdfInfo, transport) {\n    this._pdfInfo = pdfInfo;\n    this._transport = transport;\n  }\n  get pagesMapper() {\n    return this._transport.pagesMapper;\n  }\n  get annotationStorage() {\n    return this._transport.annotationStorage;\n  }\n  get canvasFactory() {\n    return this._transport.canvasFactory;\n  }\n  get filterFactory() {\n    return this._transport.filterFactory;\n  }\n  get numPages() {\n    return this._pdfInfo.numPages;\n  }\n  get fingerprints() {\n    return this._pdfInfo.fingerprints;\n  }\n  get isPureXfa() {\n    return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n  }\n  get allXfaHtml() {\n    return this._transport._htmlForXfa;\n  }\n  getPage(pageNumber) {\n    return this._transport.getPage(pageNumber);\n  }\n  getPageIndex(ref) {\n    return this._transport.getPageIndex(ref);\n  }\n  getDestinations() {\n    return this._transport.getDestinations();\n  }\n  getDestination(id) {\n    return this._transport.getDestination(id);\n  }\n  getPageLabels() {\n    return this._transport.getPageLabels();\n  }\n  getPageLayout() {\n    return this._transport.getPageLayout();\n  }\n  getPageMode() {\n    return this._transport.getPageMode();\n  }\n  getViewerPreferences() {\n    return this._transport.getViewerPreferences();\n  }\n  getOpenAction() {\n    return this._transport.getOpenAction();\n  }\n  getAttachments() {\n    return this._transport.getAttachments();\n  }\n  getAttachmentContent(id) {\n    return this._transport.getAttachmentContent(id);\n  }\n  getAnnotationsByType(types, pageIndexesToSkip) {\n    return this._transport.getAnnotationsByType(types, pageIndexesToSkip);\n  }\n  getJSActions() {\n    return this._transport.getDocJSActions();\n  }\n  getOutline() {\n    return this._transport.getOutline();\n  }\n  getOptionalContentConfig({\n    intent = \"display\"\n  } = {}) {\n    const {\n      renderingIntent\n    } = this._transport.getRenderingIntent(intent);\n    return this._transport.getOptionalContentConfig(renderingIntent);\n  }\n  getPermissions() {\n    return this._transport.getPermissions();\n  }\n  getMetadata() {\n    return this._transport.getMetadata();\n  }\n  getMarkInfo() {\n    return this._transport.getMarkInfo();\n  }\n  getData() {\n    return this._transport.getData();\n  }\n  saveDocument() {\n    return this._transport.saveDocument();\n  }\n  extractPages(pageInfos) {\n    return this._transport.extractPages(pageInfos);\n  }\n  getDownloadInfo() {\n    return this._transport.downloadInfoCapability.promise;\n  }\n  getRawData(data) {\n    return this._transport.getRawData(data);\n  }\n  cleanup(keepLoadedFonts = false) {\n    return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n  }\n  cachedPageNumber(ref) {\n    return this._transport.cachedPageNumber(ref);\n  }\n  get loadingParams() {\n    return this._transport.loadingParams;\n  }\n  get loadingTask() {\n    return this._transport.loadingTask;\n  }\n  getFieldObjects() {\n    return this._transport.getFieldObjects();\n  }\n  getSignatures() {\n    return this._transport.getSignatures();\n  }\n  getSignatureData(id) {\n    return this._transport.getSignatureData(id);\n  }\n  hasJSActions() {\n    return this._transport.hasJSActions();\n  }\n  getCalculationOrderIds() {\n    return this._transport.getCalculationOrderIds();\n  }\n}\nclass PDFPageProxy {\n  #pendingCleanup = false;\n  #pagesMapper = null;\n  constructor(pageIndex, pageInfo, transport, pagesMapper, pdfBug = false) {\n    this._pageIndex = pageIndex;\n    this._pageInfo = pageInfo;\n    this._transport = transport;\n    this._stats = pdfBug ? new StatTimer() : null;\n    this._pdfBug = pdfBug;\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n    this._intentStates = new Map();\n    this.destroyed = false;\n    this.recordedBBoxes = null;\n    this.#pagesMapper = pagesMapper;\n    this.imageCoordinates = null;\n  }\n  clone(id) {\n    const clone = new PDFPageProxy(id, this._pageInfo, this._transport, this.#pagesMapper, this._pdfBug);\n    clone.clonedFromIndex = this.clonedFromIndex ?? this._pageIndex;\n    this._transport.updatePage(clone);\n    return clone;\n  }\n  get pageNumber() {\n    return this._pageIndex + 1;\n  }\n  set pageNumber(value) {\n    this._pageIndex = value - 1;\n    this._transport.updatePage(this);\n  }\n  get rotate() {\n    return this._pageInfo.rotate;\n  }\n  get ref() {\n    return this._pageInfo.ref;\n  }\n  get userUnit() {\n    return this._pageInfo.userUnit;\n  }\n  get view() {\n    return this._pageInfo.view;\n  }\n  getViewport({\n    scale,\n    rotation = this.rotate,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.view,\n      userUnit: this.userUnit,\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip\n    });\n  }\n  getAnnotations({\n    intent = \"display\"\n  } = {}) {\n    const {\n      renderingIntent\n    } = this._transport.getRenderingIntent(intent);\n    return this._transport.getAnnotations(this._pageIndex, renderingIntent);\n  }\n  getJSActions() {\n    return this._transport.getPageJSActions(this._pageIndex);\n  }\n  get filterFactory() {\n    return this._transport.filterFactory;\n  }\n  get isPureXfa() {\n    return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n  }\n  async getXfa() {\n    return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n  }\n  render({\n    canvasContext,\n    canvas = canvasContext.canvas,\n    viewport,\n    intent = \"display\",\n    annotationMode = AnnotationMode.ENABLE,\n    transform = null,\n    background = null,\n    optionalContentConfigPromise = null,\n    annotationCanvasMap = null,\n    pageColors = null,\n    printAnnotationStorage = null,\n    isEditing = false,\n    recordImages = false,\n    recordOperations = false,\n    operationsFilter = null\n  }) {\n    this._stats?.time(\"Overall\");\n    const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing);\n    const {\n      renderingIntent,\n      cacheKey\n    } = intentArgs;\n    this.#pendingCleanup = false;\n    optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent);\n    const intentState = this._intentStates.getOrInsertComputed(cacheKey, makeObj);\n    if (intentState.streamReaderCancelTimeout) {\n      clearTimeout(intentState.streamReaderCancelTimeout);\n      intentState.streamReaderCancelTimeout = null;\n    }\n    const intentPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n    if (!intentState.displayReadyCapability) {\n      intentState.displayReadyCapability = Promise.withResolvers();\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null\n      };\n      this._stats?.time(\"Page Request\");\n      this._pumpOperatorList(intentArgs);\n    }\n    const recordForDebugger = !!(this._pdfBug && globalThis.StepperManager?.enabled);\n    const shouldRecordOperations = !!canvas && !this.recordedBBoxes && (recordOperations || recordForDebugger);\n    const shouldRecordImages = !!canvas && !this.imageCoordinates && recordImages;\n    const complete = error => {\n      intentState.renderTasks.delete(internalRenderTask);\n      if (shouldRecordOperations) {\n        const recordedBBoxes = internalRenderTask.gfx?.dependencyTracker.take();\n        if (recordedBBoxes) {\n          internalRenderTask.stepper?.setOperatorBBoxes(recordedBBoxes, internalRenderTask.gfx.dependencyTracker.takeDebugMetadata());\n          if (recordOperations) {\n            this.recordedBBoxes = recordedBBoxes;\n          }\n        }\n      }\n      if (shouldRecordImages && !error) {\n        this.imageCoordinates = internalRenderTask.gfx?.imagesTracker.take();\n      }\n      if (intentPrint) {\n        this.#pendingCleanup = true;\n      }\n      this.#tryCleanup();\n      if (error) {\n        internalRenderTask.capability.reject(error);\n        this._abortOperatorList({\n          intentState,\n          reason: error instanceof Error ? error : new Error(error)\n        });\n      } else {\n        internalRenderTask.capability.resolve();\n      }\n      if (this._stats) {\n        this._stats.timeEnd(\"Rendering\");\n        this._stats.timeEnd(\"Overall\");\n        if (globalThis.Stats?.enabled) {\n          globalThis.Stats.add(this.pageNumber, this._stats);\n        }\n      }\n    };\n    let dependencyTracker = null;\n    let bboxTracker = null;\n    if (shouldRecordOperations || shouldRecordImages) {\n      bboxTracker = new CanvasBBoxTracker(canvas, intentState.operatorList.length);\n    }\n    if (shouldRecordOperations) {\n      dependencyTracker = new CanvasDependencyTracker(bboxTracker, recordForDebugger);\n    }\n    const internalRenderTask = new InternalRenderTask({\n      callback: complete,\n      params: {\n        canvas,\n        canvasContext,\n        dependencyTracker: dependencyTracker ?? bboxTracker,\n        imagesTracker: shouldRecordImages ? new CanvasImagesTracker(canvas) : null,\n        viewport,\n        transform,\n        background\n      },\n      objs: this.objs,\n      commonObjs: this.commonObjs,\n      annotationCanvasMap,\n      operatorList: intentState.operatorList,\n      pageIndex: this._pageIndex,\n      canvasFactory: this._transport.canvasFactory,\n      filterFactory: this._transport.filterFactory,\n      useRequestAnimationFrame: !intentPrint,\n      pdfBug: this._pdfBug,\n      pageColors,\n      enableHWA: this._transport.enableHWA,\n      operationsFilter\n    });\n    (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n    const renderTask = internalRenderTask.task;\n    Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n      if (this.destroyed) {\n        complete();\n        return;\n      }\n      this._stats?.time(\"Rendering\");\n      if (!(optionalContentConfig.renderingIntent & renderingIntent)) {\n        throw new Error(\"Must use the same `intent`-argument when calling the `PDFPageProxy.render` \" + \"and `PDFDocumentProxy.getOptionalContentConfig` methods.\");\n      }\n      internalRenderTask.initializeGraphics({\n        transparency,\n        optionalContentConfig\n      });\n      internalRenderTask.operatorListChanged();\n    }).catch(complete);\n    return renderTask;\n  }\n  getOperatorList({\n    intent = \"display\",\n    annotationMode = AnnotationMode.ENABLE,\n    printAnnotationStorage = null,\n    isEditing = false\n  } = {}) {\n    function operatorListChanged() {\n      if (intentState.operatorList.lastChunk) {\n        intentState.opListReadCapability.resolve(intentState.operatorList);\n        intentState.renderTasks.delete(opListTask);\n      }\n    }\n    const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing, true);\n    const intentState = this._intentStates.getOrInsertComputed(intentArgs.cacheKey, makeObj);\n    let opListTask;\n    if (!intentState.opListReadCapability) {\n      opListTask = Object.create(null);\n      opListTask.operatorListChanged = operatorListChanged;\n      intentState.opListReadCapability = Promise.withResolvers();\n      (intentState.renderTasks ||= new Set()).add(opListTask);\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null\n      };\n      this._stats?.time(\"Page Request\");\n      this._pumpOperatorList(intentArgs);\n    }\n    return intentState.opListReadCapability.promise;\n  }\n  streamTextContent({\n    includeMarkedContent = false,\n    disableNormalization = false\n  } = {}) {\n    const TEXT_CONTENT_CHUNK_SIZE = 100;\n    return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n      pageId: this.#pagesMapper.getPageId(this._pageIndex + 1) - 1,\n      pageIndex: this._pageIndex,\n      includeMarkedContent: includeMarkedContent === true,\n      disableNormalization: disableNormalization === true\n    }, {\n      highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n      size(textContent) {\n        return textContent.items.length;\n      }\n    });\n  }\n  async getTextContent(params = {}) {\n    if (this._transport._htmlForXfa) {\n      return this.getXfa().then(xfa => XfaText.textContent(xfa));\n    }\n    const readableStream = this.streamTextContent(params);\n    const textContent = {\n      items: [],\n      styles: Object.create(null),\n      lang: null\n    };\n    for await (const value of readableStream) {\n      textContent.lang ??= value.lang;\n      Object.assign(textContent.styles, value.styles);\n      textContent.items.push(...value.items);\n    }\n    return textContent;\n  }\n  getStructTree() {\n    return this._transport.getStructTree(this._pageIndex);\n  }\n  _destroy() {\n    this.destroyed = true;\n    const waitOn = [];\n    for (const intentState of this._intentStates.values()) {\n      this._abortOperatorList({\n        intentState,\n        reason: new Error(\"Page was destroyed.\"),\n        force: true\n      });\n      if (intentState.opListReadCapability) {\n        continue;\n      }\n      for (const internalRenderTask of intentState.renderTasks) {\n        waitOn.push(internalRenderTask.completed);\n        internalRenderTask.cancel();\n      }\n    }\n    this.objs.clear();\n    this.#pendingCleanup = false;\n    return Promise.all(waitOn);\n  }\n  cleanup(resetStats = false) {\n    this.#pendingCleanup = true;\n    const success = this.#tryCleanup();\n    if (resetStats && success) {\n      this._stats &&= new StatTimer();\n    }\n    return success;\n  }\n  #tryCleanup() {\n    if (!this.#pendingCleanup || this.destroyed) {\n      return false;\n    }\n    for (const {\n      renderTasks,\n      operatorList\n    } of this._intentStates.values()) {\n      if (renderTasks.size > 0 || !operatorList.lastChunk) {\n        return false;\n      }\n    }\n    this._intentStates.clear();\n    this.objs.clear();\n    this.#pendingCleanup = false;\n    return true;\n  }\n  _startRenderPage(transparency, cacheKey) {\n    const intentState = this._intentStates.get(cacheKey);\n    if (!intentState) {\n      return;\n    }\n    this._stats?.timeEnd(\"Page Request\");\n    intentState.displayReadyCapability?.resolve(transparency);\n  }\n  _renderPageChunk(operatorListChunk, intentState) {\n    for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n      intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n      intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n    }\n    intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n    intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n    for (const internalRenderTask of intentState.renderTasks) {\n      internalRenderTask.operatorListChanged();\n    }\n    if (operatorListChunk.lastChunk) {\n      this.#tryCleanup();\n    }\n  }\n  _pumpOperatorList({\n    renderingIntent,\n    cacheKey,\n    annotationStorageSerializable,\n    modifiedIds\n  }) {\n    const {\n      map,\n      transfer\n    } = annotationStorageSerializable;\n    const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n      pageId: this.#pagesMapper.getPageId(this._pageIndex + 1) - 1,\n      pageIndex: this._pageIndex,\n      intent: renderingIntent,\n      cacheKey,\n      annotationStorage: map,\n      modifiedIds\n    }, undefined, transfer);\n    const reader = readableStream.getReader();\n    const intentState = this._intentStates.get(cacheKey);\n    intentState.streamReader = reader;\n    const pump = () => {\n      reader.read().then(({\n        value,\n        done\n      }) => {\n        if (done) {\n          intentState.streamReader = null;\n          return;\n        }\n        if (this._transport.destroyed) {\n          return;\n        }\n        this._renderPageChunk(value, intentState);\n        pump();\n      }, reason => {\n        intentState.streamReader = null;\n        if (this._transport.destroyed) {\n          return;\n        }\n        if (intentState.operatorList) {\n          intentState.operatorList.lastChunk = true;\n          for (const internalRenderTask of intentState.renderTasks) {\n            internalRenderTask.operatorListChanged();\n          }\n          this.#tryCleanup();\n        }\n        if (intentState.displayReadyCapability) {\n          intentState.displayReadyCapability.reject(reason);\n        } else if (intentState.opListReadCapability) {\n          intentState.opListReadCapability.reject(reason);\n        } else {\n          throw reason;\n        }\n      });\n    };\n    pump();\n  }\n  _abortOperatorList({\n    intentState,\n    reason,\n    force = false\n  }) {\n    if (!intentState.streamReader) {\n      return;\n    }\n    if (intentState.streamReaderCancelTimeout) {\n      clearTimeout(intentState.streamReaderCancelTimeout);\n      intentState.streamReaderCancelTimeout = null;\n    }\n    if (!force) {\n      if (intentState.renderTasks.size > 0) {\n        return;\n      }\n      if (reason instanceof RenderingCancelledException) {\n        let delay = RENDERING_CANCELLED_TIMEOUT;\n        if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n          delay += reason.extraDelay;\n        }\n        intentState.streamReaderCancelTimeout = setTimeout(() => {\n          intentState.streamReaderCancelTimeout = null;\n          this._abortOperatorList({\n            intentState,\n            reason,\n            force: true\n          });\n        }, delay);\n        return;\n      }\n    }\n    intentState.streamReader.cancel(new AbortException(reason.message)).catch(() => {});\n    intentState.streamReader = null;\n    if (this._transport.destroyed) {\n      return;\n    }\n    for (const [curCacheKey, curIntentState] of this._intentStates) {\n      if (curIntentState === intentState) {\n        this._intentStates.delete(curCacheKey);\n        break;\n      }\n    }\n    this.cleanup();\n  }\n  get stats() {\n    return this._stats;\n  }\n}\nclass PDFWorker {\n  #capability = Promise.withResolvers();\n  #messageHandler = null;\n  #port = null;\n  #webWorker = null;\n  static #fakeWorkerId = 0;\n  static #isWorkerDisabled = false;\n  static #workerPorts = new WeakMap();\n  static {\n    if (isNodeJS) {\n      this.#isWorkerDisabled = true;\n      GlobalWorkerOptions.workerSrc ||= \"./pdf.worker.mjs\";\n    }\n    this._isSameOrigin = (baseUrl, otherUrl) => {\n      const base = URL.parse(baseUrl);\n      if (!base?.origin || base.origin === \"null\") {\n        return false;\n      }\n      const other = new URL(otherUrl, base);\n      return base.origin === other.origin;\n    };\n    this._createCDNWrapper = url => {\n      const wrapper = `await import(\"${url}\");`;\n      return URL.createObjectURL(new Blob([wrapper], {\n        type: \"text/javascript\"\n      }));\n    };\n  }\n  constructor({\n    name = null,\n    port = null,\n    verbosity = getVerbosityLevel()\n  } = {}) {\n    this.name = name;\n    this.destroyed = false;\n    this.verbosity = verbosity;\n    if (port) {\n      if (PDFWorker.#workerPorts.has(port)) {\n        throw new Error(\"Cannot use more than one PDFWorker per port.\");\n      }\n      PDFWorker.#workerPorts.set(port, this);\n      this.#initializeFromPort(port);\n    } else {\n      this.#initialize();\n    }\n  }\n  get promise() {\n    return this.#capability.promise;\n  }\n  #resolve() {\n    this.#capability.resolve();\n    this.#messageHandler.send(\"configure\", {\n      verbosity: this.verbosity\n    });\n  }\n  get port() {\n    return this.#port;\n  }\n  get messageHandler() {\n    return this.#messageHandler;\n  }\n  #initializeFromPort(port) {\n    this.#port = port;\n    this.#messageHandler = new MessageHandler(\"main\", \"worker\", port);\n    this.#messageHandler.on(\"ready\", () => {});\n    this.#resolve();\n  }\n  #initialize() {\n    if (PDFWorker.#isWorkerDisabled || PDFWorker.#mainThreadWorkerMessageHandler) {\n      this.#setupFakeWorker();\n      return;\n    }\n    let {\n      workerSrc\n    } = PDFWorker;\n    try {\n      if (!PDFWorker._isSameOrigin(window.location, workerSrc)) {\n        workerSrc = PDFWorker._createCDNWrapper(new URL(workerSrc, window.location).href);\n      }\n      const worker = new Worker(workerSrc, {\n        type: \"module\"\n      });\n      const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n      const terminateEarly = () => {\n        ac.abort();\n        messageHandler.destroy();\n        worker.terminate();\n        if (this.destroyed) {\n          this.#capability.reject(new Error(\"Worker was destroyed\"));\n        } else {\n          this.#setupFakeWorker();\n        }\n      };\n      const ac = new AbortController();\n      worker.addEventListener(\"error\", () => {\n        if (!this.#webWorker) {\n          terminateEarly();\n        }\n      }, {\n        signal: ac.signal\n      });\n      messageHandler.on(\"test\", data => {\n        ac.abort();\n        if (this.destroyed || !data) {\n          terminateEarly();\n          return;\n        }\n        this.#messageHandler = messageHandler;\n        this.#port = worker;\n        this.#webWorker = worker;\n        this.#resolve();\n      });\n      messageHandler.on(\"ready\", data => {\n        ac.abort();\n        if (this.destroyed) {\n          terminateEarly();\n          return;\n        }\n        try {\n          sendTest();\n        } catch {\n          this.#setupFakeWorker();\n        }\n      });\n      const sendTest = () => {\n        const testObj = new Uint8Array();\n        messageHandler.send(\"test\", testObj, [testObj.buffer]);\n      };\n      sendTest();\n      return;\n    } catch {\n      info(\"The worker has been disabled.\");\n    }\n    this.#setupFakeWorker();\n  }\n  #setupFakeWorker() {\n    if (!PDFWorker.#isWorkerDisabled) {\n      warn(\"Setting up fake worker.\");\n      PDFWorker.#isWorkerDisabled = true;\n    }\n    PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n      if (this.destroyed) {\n        this.#capability.reject(new Error(\"Worker was destroyed\"));\n        return;\n      }\n      const port = new LoopbackPort();\n      this.#port = port;\n      const id = `fake${PDFWorker.#fakeWorkerId++}`;\n      const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n      WorkerMessageHandler.setup(workerHandler, port);\n      this.#messageHandler = new MessageHandler(id, id + \"_worker\", port);\n      this.#resolve();\n    }).catch(reason => {\n      this.#capability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n    });\n  }\n  destroy() {\n    this.destroyed = true;\n    this.#webWorker?.terminate();\n    this.#webWorker = null;\n    PDFWorker.#workerPorts.delete(this.#port);\n    this.#port = null;\n    this.#messageHandler?.destroy();\n    this.#messageHandler = null;\n  }\n  static create(params) {\n    const cachedPort = this.#workerPorts.get(params?.port);\n    if (cachedPort) {\n      if (cachedPort._pendingDestroy) {\n        throw new Error(\"PDFWorker.create - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n      }\n      return cachedPort;\n    }\n    return new PDFWorker(params);\n  }\n  static get workerSrc() {\n    if (GlobalWorkerOptions.workerSrc) {\n      return GlobalWorkerOptions.workerSrc;\n    }\n    throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n  }\n  static get #mainThreadWorkerMessageHandler() {\n    try {\n      return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n    } catch {\n      return null;\n    }\n  }\n  static get _setupFakeWorkerGlobal() {\n    const loader = async () => {\n      if (this.#mainThreadWorkerMessageHandler) {\n        return this.#mainThreadWorkerMessageHandler;\n      }\n      const worker = await import(\n      /*webpackIgnore: true*/\n      /*@vite-ignore*/\n      this.workerSrc);\n      return worker.WorkerMessageHandler;\n    };\n    return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n  }\n}\nclass WorkerTransport {\n  downloadInfoCapability = Promise.withResolvers();\n  #fullReader = null;\n  #methodPromises = new Map();\n  #networkStream = null;\n  #pageCache = new Map();\n  #pagePromises = new Map();\n  #pageRefCache = new Map();\n  #passwordCapability = null;\n  constructor(messageHandler, loadingTask, networkStream, params, factory, pagesMapper) {\n    this.messageHandler = messageHandler;\n    this.loadingTask = loadingTask;\n    this.#networkStream = networkStream;\n    this.commonObjs = new PDFObjects();\n    this.fontLoader = new FontLoader({\n      ownerDocument: params.ownerDocument,\n      styleElement: params.styleElement\n    });\n    this.enableHWA = params.enableHWA;\n    this.loadingParams = params.loadingParams;\n    this._params = params;\n    this.canvasFactory = factory.canvasFactory;\n    this.filterFactory = factory.filterFactory;\n    this.binaryDataFactory = factory.binaryDataFactory;\n    this.pagesMapper = pagesMapper;\n    this.destroyed = false;\n    this.destroyCapability = null;\n    this.setupMessageHandler();\n  }\n  updatePage(page) {\n    const {\n      _pageIndex\n    } = page;\n    this.#pageCache.set(_pageIndex, page);\n    this.#pagePromises.set(_pageIndex, Promise.resolve(page));\n  }\n  #cacheSimpleMethod(name, data = null) {\n    return this.#methodPromises.getOrInsertComputed(name, () => this.messageHandler.sendWithPromise(name, data));\n  }\n  #onProgress({\n    loaded,\n    total\n  }) {\n    this.loadingTask.onProgress?.({\n      loaded,\n      total,\n      percent: total ? MathClamp(Math.round(loaded / total * 100), 0, 100) : NaN\n    });\n  }\n  get annotationStorage() {\n    return shadow(this, \"annotationStorage\", new AnnotationStorage());\n  }\n  getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isEditing = false, isOpList = false) {\n    let renderingIntent = RenderingIntentFlag.DISPLAY;\n    let annotationStorageSerializable = SerializableEmpty;\n    switch (intent) {\n      case \"any\":\n        renderingIntent = RenderingIntentFlag.ANY;\n        break;\n      case \"display\":\n        break;\n      case \"print\":\n        renderingIntent = RenderingIntentFlag.PRINT;\n        break;\n      default:\n        warn(`getRenderingIntent - invalid intent: ${intent}`);\n    }\n    const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n    switch (annotationMode) {\n      case AnnotationMode.DISABLE:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n        break;\n      case AnnotationMode.ENABLE:\n        break;\n      case AnnotationMode.ENABLE_FORMS:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n        break;\n      case AnnotationMode.ENABLE_STORAGE:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n        annotationStorageSerializable = annotationStorage.serializable;\n        break;\n      default:\n        warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n    }\n    if (isEditing) {\n      renderingIntent += RenderingIntentFlag.IS_EDITING;\n    }\n    if (isOpList) {\n      renderingIntent += RenderingIntentFlag.OPLIST;\n    }\n    const {\n      ids: modifiedIds,\n      hash: modifiedIdsHash\n    } = annotationStorage.modifiedIds;\n    const cacheKeyBuf = [renderingIntent, annotationStorageSerializable.hash, modifiedIdsHash];\n    return {\n      renderingIntent,\n      cacheKey: cacheKeyBuf.join(\"_\"),\n      annotationStorageSerializable,\n      modifiedIds\n    };\n  }\n  destroy() {\n    if (this.destroyCapability) {\n      return this.destroyCapability.promise;\n    }\n    this.destroyed = true;\n    this.destroyCapability = Promise.withResolvers();\n    this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n    const waitOn = [];\n    for (const page of this.#pageCache.values()) {\n      waitOn.push(page._destroy());\n    }\n    this.#pageCache.clear();\n    this.#pagePromises.clear();\n    this.#pageRefCache.clear();\n    if (Object.hasOwn(this, \"annotationStorage\")) {\n      this.annotationStorage.resetModified();\n    }\n    const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n    waitOn.push(terminated);\n    Promise.all(waitOn).then(() => {\n      this.commonObjs.clear();\n      this.fontLoader.clear();\n      this.#methodPromises.clear();\n      this.filterFactory.destroy();\n      TextLayer.cleanup();\n      this.#networkStream?.cancelAllRequests(new AbortException(\"Worker was terminated.\"));\n      this.messageHandler?.destroy();\n      this.messageHandler = null;\n      this.destroyCapability.resolve();\n    }, this.destroyCapability.reject);\n    return this.destroyCapability.promise;\n  }\n  setupMessageHandler() {\n    const {\n      messageHandler,\n      loadingTask\n    } = this;\n    messageHandler.on(\"GetReader\", (data, sink) => {\n      assert(this.#networkStream, \"GetReader - no `BasePDFStream` instance available.\");\n      this.#fullReader = this.#networkStream.getFullReader();\n      this.#fullReader.onProgress = evt => this.#onProgress(evt);\n      sink.onPull = () => {\n        this.#fullReader.read().then(function ({\n          value,\n          done\n        }) {\n          if (done) {\n            sink.close();\n            return;\n          }\n          assert(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n          sink.enqueue(new Uint8Array(value), 1, [value]);\n        }).catch(reason => {\n          sink.error(reason);\n        });\n      };\n      sink.onCancel = reason => {\n        this.#fullReader.cancel(reason);\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return;\n          }\n          throw readyReason;\n        });\n      };\n    });\n    messageHandler.on(\"ReaderHeadersReady\", async data => {\n      await this.#fullReader.headersReady;\n      const {\n        isStreamingSupported,\n        isRangeSupported,\n        contentLength\n      } = this.#fullReader;\n      if (isStreamingSupported && isRangeSupported) {\n        this.#fullReader.onProgress = null;\n      }\n      return {\n        isStreamingSupported,\n        isRangeSupported,\n        contentLength\n      };\n    });\n    messageHandler.on(\"GetRangeReader\", (data, sink) => {\n      assert(this.#networkStream, \"GetRangeReader - no `BasePDFStream` instance available.\");\n      const rangeReader = this.#networkStream.getRangeReader(data.begin, data.end);\n      if (!rangeReader) {\n        sink.close();\n        return;\n      }\n      sink.onPull = () => {\n        rangeReader.read().then(function ({\n          value,\n          done\n        }) {\n          if (done) {\n            sink.close();\n            return;\n          }\n          assert(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n          sink.enqueue(new Uint8Array(value), 1, [value]);\n        }).catch(reason => {\n          sink.error(reason);\n        });\n      };\n      sink.onCancel = reason => {\n        rangeReader.cancel(reason);\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return;\n          }\n          throw readyReason;\n        });\n      };\n    });\n    messageHandler.on(\"GetDoc\", ({\n      pdfInfo\n    }) => {\n      this.pagesMapper.pagesNumber = pdfInfo.numPages;\n      this._numPages = pdfInfo.numPages;\n      this._htmlForXfa = pdfInfo.htmlForXfa;\n      delete pdfInfo.htmlForXfa;\n      loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n    });\n    messageHandler.on(\"DocException\", ex => {\n      loadingTask._capability.reject(wrapReason(ex));\n    });\n    messageHandler.on(\"PasswordRequest\", ex => {\n      this.#passwordCapability = Promise.withResolvers();\n      try {\n        if (!loadingTask.onPassword) {\n          throw wrapReason(ex);\n        }\n        const updatePassword = password => {\n          if (password instanceof Error) {\n            this.#passwordCapability.reject(password);\n          } else {\n            this.#passwordCapability.resolve({\n              password\n            });\n          }\n        };\n        loadingTask.onPassword(updatePassword, ex.code);\n      } catch (err) {\n        this.#passwordCapability.reject(err);\n      }\n      return this.#passwordCapability.promise;\n    });\n    messageHandler.on(\"DataLoaded\", data => {\n      this.#onProgress({\n        loaded: data.length,\n        total: data.length\n      });\n      this.downloadInfoCapability.resolve(data);\n    });\n    messageHandler.on(\"StartRenderPage\", data => {\n      if (this.destroyed) {\n        return;\n      }\n      const page = this.#pageCache.get(data.pageIndex);\n      page._startRenderPage(data.transparency, data.cacheKey);\n    });\n    messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n      if (this.destroyed) {\n        return null;\n      }\n      if (this.commonObjs.has(id)) {\n        return null;\n      }\n      switch (type) {\n        case \"Font\":\n          if (\"error\" in exportedData) {\n            const exportedError = exportedData.error;\n            warn(`Error during font loading: ${exportedError}`);\n            this.commonObjs.resolve(id, exportedError);\n            break;\n          }\n          const fontData = new FontInfo(exportedData);\n          const inspectFont = this._params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n          const font = new FontFaceObject(fontData, inspectFont, exportedData.charProcOperatorList, exportedData.extra);\n          this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise(\"FontFallback\", {\n            id\n          })).finally(() => {\n            if (!font.fontExtraProperties) {\n              font.clearData();\n            }\n            this.commonObjs.resolve(id, font);\n          });\n          break;\n        case \"CopyLocalImage\":\n          const {\n            imageRef\n          } = exportedData;\n          assert(imageRef, \"The imageRef must be defined.\");\n          for (const pageProxy of this.#pageCache.values()) {\n            for (const [, data] of pageProxy.objs) {\n              if (data?.ref !== imageRef) {\n                continue;\n              }\n              if (!data.dataLen) {\n                return null;\n              }\n              const copy = structuredClone(data);\n              this.commonObjs.resolve(id, copy);\n              return data.dataLen;\n            }\n          }\n          break;\n        case \"FontPath\":\n          this.commonObjs.resolve(id, new FontPathInfo(exportedData));\n          break;\n        case \"Image\":\n          this.commonObjs.resolve(id, exportedData);\n          break;\n        case \"Pattern\":\n          const pattern = new PatternInfo(exportedData);\n          this.commonObjs.resolve(id, pattern.getIR());\n          break;\n        default:\n          throw new Error(`Got unknown common object type ${type}`);\n      }\n      return null;\n    });\n    messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n      if (this.destroyed) {\n        return;\n      }\n      const pageProxy = this.#pageCache.get(pageIndex);\n      if (pageProxy.objs.has(id)) {\n        return;\n      }\n      if (pageProxy._intentStates.size === 0) {\n        imageData?.bitmap?.close();\n        return;\n      }\n      switch (type) {\n        case \"Image\":\n        case \"Pattern\":\n          pageProxy.objs.resolve(id, imageData);\n          break;\n        default:\n          throw new Error(`Got unknown object type ${type}`);\n      }\n    });\n    messageHandler.on(\"DocProgress\", data => {\n      if (this.destroyed) {\n        return;\n      }\n      this.#onProgress(data);\n    });\n    messageHandler.on(\"FetchBinaryData\", async data => {\n      if (this.destroyed) {\n        throw new Error(\"Worker was destroyed.\");\n      }\n      if (!this.binaryDataFactory) {\n        throw new Error(\"`BinaryDataFactory` not initialized, see the `useWorkerFetch` parameter.\");\n      }\n      return this.binaryDataFactory.fetch(data);\n    });\n  }\n  getData() {\n    return this.messageHandler.sendWithPromise(\"GetData\", null);\n  }\n  saveDocument() {\n    if (this.annotationStorage.size <= 0) {\n      warn(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n    }\n    const {\n      map,\n      transfer\n    } = this.annotationStorage.serializable;\n    return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n      isPureXfa: !!this._htmlForXfa,\n      numPages: this._numPages,\n      annotationStorage: map,\n      filename: this.#fullReader?.filename ?? null\n    }, transfer).finally(() => {\n      this.annotationStorage.resetModified();\n    });\n  }\n  extractPages(pageInfos) {\n    const params = {\n      pageInfos\n    };\n    let transfer;\n    const ImageBitmapCtor = globalThis.ImageBitmap;\n    if (typeof ImageBitmapCtor === \"function\") {\n      const infos = Array.isArray(pageInfos) ? pageInfos : [pageInfos];\n      for (const pageInfo of infos) {\n        if (pageInfo?.image instanceof ImageBitmapCtor) {\n          (transfer ||= []).push(pageInfo.image);\n        }\n      }\n    }\n    if (this.annotationStorage.size > 0) {\n      const serialized = this.annotationStorage.serializable;\n      let {\n        map\n      } = serialized;\n      if (serialized.transfer?.length) {\n        if (transfer) {\n          transfer.push(...serialized.transfer);\n        } else {\n          transfer = serialized.transfer;\n        }\n      }\n      const mapping = this.pagesMapper.getMapping();\n      if (mapping) {\n        const remapped = new Map();\n        for (const [k, v] of map) {\n          if (v?.pageIndex !== undefined && v.pageIndex >= 0 && v.pageIndex < mapping.length) {\n            const sourceIdx = mapping[v.pageIndex] - 1;\n            if (sourceIdx !== v.pageIndex) {\n              remapped.set(k, {\n                ...v,\n                pageIndex: sourceIdx\n              });\n              continue;\n            }\n          }\n          remapped.set(k, v);\n        }\n        map = remapped;\n      }\n      params.annotationStorage = map;\n    }\n    return this.messageHandler.sendWithPromise(\"ExtractPages\", params, transfer).finally(() => {\n      this.annotationStorage.resetModified();\n    });\n  }\n  getPage(pageNumber) {\n    if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.pagesMapper.pagesNumber) {\n      return Promise.reject(new Error(\"Invalid page request.\"));\n    }\n    const pageIndex = pageNumber - 1;\n    const newPageIndex = this.pagesMapper.getPageId(pageNumber) - 1;\n    const cachedPromise = this.#pagePromises.get(pageIndex);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n      pageIndex: newPageIndex\n    }).then(pageInfo => {\n      if (this.destroyed) {\n        throw new Error(\"Transport destroyed\");\n      }\n      if (pageInfo.refStr) {\n        this.#pageRefCache.set(pageInfo.refStr, newPageIndex);\n      }\n      const page = new PDFPageProxy(pageIndex, pageInfo, this, this.pagesMapper, this._params.pdfBug);\n      this.#pageCache.set(pageIndex, page);\n      return page;\n    });\n    this.#pagePromises.set(pageIndex, promise);\n    return promise;\n  }\n  async getPageIndex(ref) {\n    if (!isRefProxy(ref)) {\n      throw new Error(\"Invalid pageIndex request.\");\n    }\n    const index = await this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n      num: ref.num,\n      gen: ref.gen\n    });\n    const pageNumber = this.pagesMapper.getPageNumber(index + 1);\n    if (pageNumber === 0) {\n      throw new Error(\"GetPageIndex: page has been removed.\");\n    }\n    return pageNumber - 1;\n  }\n  getAnnotations(pageIndex, intent) {\n    return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n      pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1,\n      intent\n    });\n  }\n  getFieldObjects() {\n    return this.#cacheSimpleMethod(\"GetFieldObjects\");\n  }\n  getSignatures() {\n    return this.#cacheSimpleMethod(\"GetSignatures\");\n  }\n  getSignatureData(id) {\n    return this.messageHandler.sendWithPromise(\"GetSignatureData\", id);\n  }\n  hasJSActions() {\n    return this.#cacheSimpleMethod(\"HasJSActions\");\n  }\n  getCalculationOrderIds() {\n    return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n  }\n  getDestinations() {\n    return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n  }\n  getDestination(id) {\n    if (typeof id !== \"string\") {\n      return Promise.reject(new Error(\"Invalid destination request.\"));\n    }\n    return this.messageHandler.sendWithPromise(\"GetDestination\", {\n      id\n    });\n  }\n  getPageLabels() {\n    return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n  }\n  getPageLayout() {\n    return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n  }\n  getPageMode() {\n    return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n  }\n  getViewerPreferences() {\n    return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n  }\n  getOpenAction() {\n    return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n  }\n  getAttachments() {\n    return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n  }\n  getAttachmentContent(id) {\n    return this.messageHandler.sendWithPromise(\"GetAttachmentContent\", id);\n  }\n  getAnnotationsByType(types, pageIndexesToSkip) {\n    return this.messageHandler.sendWithPromise(\"GetAnnotationsByType\", {\n      types,\n      pageIndexesToSkip\n    });\n  }\n  getDocJSActions() {\n    return this.#cacheSimpleMethod(\"GetDocJSActions\");\n  }\n  getPageJSActions(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n      pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1\n    });\n  }\n  getStructTree(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n      pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1\n    });\n  }\n  getOutline() {\n    return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n  }\n  getOptionalContentConfig(renderingIntent) {\n    return this.#cacheSimpleMethod(\"GetOptionalContentConfig\").then(data => new OptionalContentConfig(data, renderingIntent));\n  }\n  getPermissions() {\n    return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n  }\n  getMetadata() {\n    const name = \"GetMetadata\";\n    return this.#methodPromises.getOrInsertComputed(name, () => this.messageHandler.sendWithPromise(name, null).then(results => ({\n      info: results[0],\n      metadata: results[1] ? new Metadata(results[1]) : null,\n      contentDispositionFilename: this.#fullReader?.filename ?? null,\n      contentLength: this.#fullReader?.contentLength ?? null,\n      hasStructTree: results[2]\n    })));\n  }\n  getMarkInfo() {\n    return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n  }\n  getRawData(data) {\n    return this.messageHandler.sendWithPromise(\"GetRawData\", data);\n  }\n  async startCleanup(keepLoadedFonts = false) {\n    if (this.destroyed) {\n      return;\n    }\n    await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n    for (const page of this.#pageCache.values()) {\n      const cleanupSuccessful = page.cleanup();\n      if (!cleanupSuccessful) {\n        throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n      }\n    }\n    this.commonObjs.clear();\n    if (!keepLoadedFonts) {\n      this.fontLoader.clear();\n    }\n    this.#methodPromises.clear();\n    this.filterFactory.destroy(true);\n    TextLayer.cleanup();\n  }\n  cachedPageNumber(ref) {\n    if (!isRefProxy(ref)) {\n      return null;\n    }\n    const refStr = ref.gen === 0 ? `${ref.num}R` : `${ref.num}R${ref.gen}`;\n    const pageIndex = this.#pageRefCache.get(refStr);\n    if (pageIndex >= 0) {\n      const pageNumber = this.pagesMapper.getPageNumber(pageIndex + 1);\n      if (pageNumber !== 0) {\n        return pageNumber;\n      }\n    }\n    return null;\n  }\n}\nclass RenderTask {\n  _internalRenderTask = null;\n  onContinue = null;\n  onError = null;\n  constructor(internalRenderTask) {\n    this._internalRenderTask = internalRenderTask;\n  }\n  get promise() {\n    return this._internalRenderTask.capability.promise;\n  }\n  cancel(extraDelay = 0) {\n    this._internalRenderTask.cancel(null, extraDelay);\n  }\n  get separateAnnots() {\n    const {\n      separateAnnots\n    } = this._internalRenderTask.operatorList;\n    if (!separateAnnots) {\n      return false;\n    }\n    const {\n      annotationCanvasMap\n    } = this._internalRenderTask;\n    return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n  }\n  get imageCoordinates() {\n    return this._internalRenderTask.imageCoordinates || null;\n  }\n}\nclass InternalRenderTask {\n  #rAF = null;\n  static #canvasInUse = new WeakSet();\n  constructor({\n    callback,\n    params,\n    objs,\n    commonObjs,\n    annotationCanvasMap,\n    operatorList,\n    pageIndex,\n    canvasFactory,\n    filterFactory,\n    useRequestAnimationFrame = false,\n    pdfBug = false,\n    pageColors = null,\n    enableHWA = false,\n    operationsFilter = null\n  }) {\n    this.callback = callback;\n    this.params = params;\n    this.objs = objs;\n    this.commonObjs = commonObjs;\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.operatorListIdx = null;\n    this.operatorList = operatorList;\n    this._pageIndex = pageIndex;\n    this.canvasFactory = canvasFactory;\n    this.filterFactory = filterFactory;\n    this._pdfBug = pdfBug;\n    this.pageColors = pageColors;\n    this.running = false;\n    this.graphicsReadyCallback = null;\n    this.graphicsReady = false;\n    this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n    this.cancelled = false;\n    this.capability = Promise.withResolvers();\n    this.task = new RenderTask(this);\n    this._cancelBound = this.cancel.bind(this);\n    this._continueBound = this._continue.bind(this);\n    this._scheduleNextBound = this._scheduleNext.bind(this);\n    this._nextBound = this._next.bind(this);\n    this._canvas = params.canvas;\n    this._canvasContext = params.canvas ? null : params.canvasContext;\n    this._enableHWA = enableHWA;\n    this._dependencyTracker = params.dependencyTracker;\n    this._imagesTracker = params.imagesTracker;\n    this._operationsFilter = operationsFilter;\n  }\n  get completed() {\n    return this.capability.promise.catch(function () {});\n  }\n  initializeGraphics({\n    transparency = false,\n    optionalContentConfig\n  }) {\n    if (this.cancelled) {\n      return;\n    }\n    if (this._canvas) {\n      if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n        throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n      }\n      InternalRenderTask.#canvasInUse.add(this._canvas);\n    }\n    if (this._pdfBug && globalThis.StepperManager?.enabled) {\n      this.stepper = globalThis.StepperManager.create(this._pageIndex);\n      this.stepper.init(this.operatorList);\n      this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n    }\n    const {\n      viewport,\n      transform,\n      background,\n      dependencyTracker,\n      imagesTracker\n    } = this.params;\n    const canvasContext = this._canvasContext || this._canvas.getContext(\"2d\", {\n      alpha: false,\n      willReadFrequently: !this._enableHWA\n    });\n    this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n      optionalContentConfig\n    }, this.annotationCanvasMap, this.pageColors, dependencyTracker, imagesTracker);\n    this.gfx.beginDrawing({\n      transform,\n      viewport,\n      transparency,\n      background\n    });\n    this.operatorListIdx = 0;\n    this.graphicsReady = true;\n    this.graphicsReadyCallback?.();\n  }\n  cancel(error = null, extraDelay = 0) {\n    this.running = false;\n    this.cancelled = true;\n    this.gfx?.endDrawing();\n    if (this.#rAF) {\n      window.cancelAnimationFrame(this.#rAF);\n      this.#rAF = null;\n    }\n    InternalRenderTask.#canvasInUse.delete(this._canvas);\n    error ||= new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay);\n    this.callback(error);\n    this.task.onError?.(error);\n  }\n  operatorListChanged() {\n    if (!this.graphicsReady) {\n      this.graphicsReadyCallback ||= this._continueBound;\n      return;\n    }\n    this.gfx.dependencyTracker?.growOperationsCount(this.operatorList.fnArray.length);\n    this.stepper?.updateOperatorList(this.operatorList);\n    if (this.running) {\n      return;\n    }\n    this._continue();\n  }\n  _continue() {\n    this.running = true;\n    if (this.cancelled) {\n      return;\n    }\n    if (this.task.onContinue) {\n      this.task.onContinue(this._scheduleNextBound);\n    } else {\n      this._scheduleNext();\n    }\n  }\n  _scheduleNext() {\n    if (this._useRequestAnimationFrame) {\n      this.#rAF = window.requestAnimationFrame(() => {\n        this.#rAF = null;\n        this._nextBound().catch(this._cancelBound);\n      });\n    } else {\n      Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n    }\n  }\n  async _next() {\n    if (this.cancelled) {\n      return;\n    }\n    this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper, this._operationsFilter);\n    if (this.operatorListIdx === this.operatorList.argsArray.length) {\n      this.running = false;\n      if (this.operatorList.lastChunk) {\n        this.gfx.endDrawing();\n        InternalRenderTask.#canvasInUse.delete(this._canvas);\n        this.callback();\n      }\n    }\n  }\n}\nconst version = \"6.2.108\";\nconst build = \"0365cbde0\";\n\n;// ./src/display/editor/color_picker.js\n\n\n\nclass ColorPicker {\n  #button = null;\n  #buttonSwatch = null;\n  #defaultColor;\n  #dropdown = null;\n  #dropdownWasFromKeyboard = false;\n  #isMainColorPicker = false;\n  #editor = null;\n  #eventBus;\n  #openDropdownAC = null;\n  #uiManager = null;\n  static #l10nColor = null;\n  static get _keyboardManager() {\n    return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"Escape\"], ColorPicker.prototype._hideDropdownFromKeyboard], [[\"Space\"], ColorPicker.prototype._colorSelectFromKeyboard], [[\"ArrowDown\", \"ArrowRight\"], ColorPicker.prototype._moveToNext], [[\"ArrowUp\", \"ArrowLeft\"], ColorPicker.prototype._moveToPrevious], [[\"Home\"], ColorPicker.prototype._moveToBeginning], [[\"End\"], ColorPicker.prototype._moveToEnd]]));\n  }\n  constructor({\n    editor = null,\n    uiManager = null\n  }) {\n    if (editor) {\n      this.#isMainColorPicker = false;\n      this.#editor = editor;\n    } else {\n      this.#isMainColorPicker = true;\n    }\n    this.#uiManager = editor?._uiManager || uiManager;\n    this.#eventBus = this.#uiManager._eventBus;\n    this.#defaultColor = editor?.color?.toUpperCase() || this.#uiManager?.highlightColors.values().next().value || \"#FFFF98\";\n    ColorPicker.#l10nColor ||= Object.freeze({\n      blue: \"pdfjs-editor-colorpicker-blue\",\n      green: \"pdfjs-editor-colorpicker-green\",\n      pink: \"pdfjs-editor-colorpicker-pink\",\n      red: \"pdfjs-editor-colorpicker-red\",\n      yellow: \"pdfjs-editor-colorpicker-yellow\"\n    });\n  }\n  renderButton() {\n    const button = this.#button = document.createElement(\"button\");\n    button.className = \"colorPicker\";\n    button.tabIndex = \"0\";\n    button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-button\");\n    button.ariaHasPopup = \"true\";\n    if (this.#editor) {\n      button.ariaControls = `${this.#editor.id}_colorpicker_dropdown`;\n    }\n    const signal = this.#uiManager._signal;\n    button.addEventListener(\"click\", this.#openDropdown.bind(this), {\n      signal\n    });\n    button.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n      signal\n    });\n    const swatch = this.#buttonSwatch = document.createElement(\"span\");\n    swatch.className = \"swatch\";\n    swatch.ariaHidden = \"true\";\n    swatch.style.backgroundColor = this.#defaultColor;\n    button.append(swatch);\n    return button;\n  }\n  renderMainDropdown() {\n    const dropdown = this.#dropdown = this.#getDropdownRoot();\n    dropdown.ariaOrientation = \"horizontal\";\n    dropdown.ariaLabelledBy = \"highlightColorPickerLabel\";\n    return dropdown;\n  }\n  #getDropdownRoot() {\n    const div = document.createElement(\"div\");\n    const signal = this.#uiManager._signal;\n    div.addEventListener(\"contextmenu\", noContextMenu, {\n      signal\n    });\n    div.className = \"dropdown\";\n    div.role = \"listbox\";\n    div.ariaMultiSelectable = \"false\";\n    div.ariaOrientation = \"vertical\";\n    div.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-dropdown\");\n    if (this.#editor) {\n      div.id = `${this.#editor.id}_colorpicker_dropdown`;\n    }\n    for (const [name, color] of this.#uiManager.highlightColors) {\n      const button = document.createElement(\"button\");\n      button.tabIndex = \"0\";\n      button.role = \"option\";\n      button.setAttribute(\"data-color\", color);\n      button.title = name;\n      button.setAttribute(\"data-l10n-id\", ColorPicker.#l10nColor[name]);\n      const swatch = document.createElement(\"span\");\n      button.append(swatch);\n      swatch.className = \"swatch\";\n      swatch.style.backgroundColor = color;\n      button.ariaSelected = color === this.#defaultColor;\n      button.addEventListener(\"click\", this.#colorSelect.bind(this, color), {\n        signal\n      });\n      div.append(button);\n    }\n    div.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n      signal\n    });\n    return div;\n  }\n  #colorSelect(color, event) {\n    event.stopPropagation();\n    this.#eventBus.dispatch(\"switchannotationeditorparams\", {\n      source: this,\n      type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n      value: color\n    });\n    this.updateColor(color);\n  }\n  _colorSelectFromKeyboard(event) {\n    if (event.target === this.#button) {\n      this.#openDropdown(event);\n      return;\n    }\n    const color = event.target.getAttribute(\"data-color\");\n    if (!color) {\n      return;\n    }\n    this.#colorSelect(color, event);\n  }\n  _moveToNext(event) {\n    if (!this.#isDropdownVisible) {\n      this.#openDropdown(event);\n      return;\n    }\n    if (event.target === this.#button) {\n      this.#dropdown.firstElementChild?.focus();\n      return;\n    }\n    event.target.nextSibling?.focus();\n  }\n  _moveToPrevious(event) {\n    if (event.target === this.#dropdown?.firstElementChild || event.target === this.#button) {\n      if (this.#isDropdownVisible) {\n        this._hideDropdownFromKeyboard();\n      }\n      return;\n    }\n    if (!this.#isDropdownVisible) {\n      this.#openDropdown(event);\n    }\n    event.target.previousSibling?.focus();\n  }\n  _moveToBeginning(event) {\n    if (!this.#isDropdownVisible) {\n      this.#openDropdown(event);\n      return;\n    }\n    this.#dropdown.firstElementChild?.focus();\n  }\n  _moveToEnd(event) {\n    if (!this.#isDropdownVisible) {\n      this.#openDropdown(event);\n      return;\n    }\n    this.#dropdown.lastElementChild?.focus();\n  }\n  #keyDown(event) {\n    ColorPicker._keyboardManager.exec(this, event);\n  }\n  #openDropdown(event) {\n    if (this.#isDropdownVisible) {\n      this.hideDropdown();\n      return;\n    }\n    this.#dropdownWasFromKeyboard = event.detail === 0;\n    if (!this.#openDropdownAC) {\n      this.#openDropdownAC = new AbortController();\n      window.addEventListener(\"pointerdown\", this.#pointerDown.bind(this), {\n        signal: this.#uiManager.combinedSignal(this.#openDropdownAC)\n      });\n    }\n    this.#button.ariaExpanded = \"true\";\n    if (this.#dropdown) {\n      this.#dropdown.classList.remove(\"hidden\");\n      return;\n    }\n    const root = this.#dropdown = this.#getDropdownRoot();\n    this.#button.append(root);\n  }\n  #pointerDown(event) {\n    if (this.#dropdown?.contains(event.target)) {\n      return;\n    }\n    this.hideDropdown();\n  }\n  hideDropdown() {\n    this.#dropdown?.classList.add(\"hidden\");\n    this.#button.ariaExpanded = \"false\";\n    this.#openDropdownAC?.abort();\n    this.#openDropdownAC = null;\n  }\n  get #isDropdownVisible() {\n    return this.#dropdown && !this.#dropdown.classList.contains(\"hidden\");\n  }\n  _hideDropdownFromKeyboard() {\n    if (this.#isMainColorPicker) {\n      return;\n    }\n    if (!this.#isDropdownVisible) {\n      this.#editor?.unselect();\n      return;\n    }\n    this.hideDropdown();\n    this.#button.focus({\n      preventScroll: true,\n      focusVisible: this.#dropdownWasFromKeyboard\n    });\n  }\n  updateColor(color) {\n    if (this.#buttonSwatch) {\n      this.#buttonSwatch.style.backgroundColor = color;\n    }\n    if (!this.#dropdown) {\n      return;\n    }\n    const i = this.#uiManager.highlightColors.values();\n    for (const child of this.#dropdown.children) {\n      child.ariaSelected = i.next().value === color.toUpperCase();\n    }\n  }\n  destroy() {\n    this.#button?.remove();\n    this.#button = null;\n    this.#buttonSwatch = null;\n    this.#dropdown?.remove();\n    this.#dropdown = null;\n  }\n}\nclass BasicColorPicker {\n  #input = null;\n  #hasAlpha = false;\n  #editor = null;\n  #uiManager = null;\n  static #l10nColor = null;\n  constructor(editor) {\n    this.#editor = editor;\n    this.#uiManager = editor._uiManager;\n    BasicColorPicker.#l10nColor ||= Object.freeze({\n      freetext: \"pdfjs-editor-color-picker-free-text-input\",\n      ink: \"pdfjs-editor-color-picker-ink-input\"\n    });\n  }\n  renderButton() {\n    if (this.#input) {\n      return this.#input;\n    }\n    const {\n      editorType,\n      colorType,\n      colorAndOpacityType,\n      opacityType,\n      color,\n      opacity\n    } = this.#editor;\n    const hasAlpha = this.#hasAlpha = FeatureTest.isAlphaColorInputSupported && opacityType !== undefined;\n    const input = this.#input = document.createElement(\"input\");\n    input.type = \"color\";\n    if (hasAlpha) {\n      input.setAttribute(\"alpha\", \"\");\n      const alphaHex = Util.hexNums[Math.round((opacity ?? 1) * 255)];\n      input.value = (color || \"#000000\") + alphaHex;\n    } else {\n      input.value = color || \"#000000\";\n    }\n    input.className = \"basicColorPicker\";\n    input.tabIndex = 0;\n    input.setAttribute(\"data-l10n-id\", BasicColorPicker.#l10nColor[editorType]);\n    input.addEventListener(\"input\", () => {\n      if (hasAlpha) {\n        const rgba = getRGBA(input.value);\n        if (!rgba) {\n          return;\n        }\n        const [r, g, b, op] = rgba;\n        const hex = Util.makeHexColor(r, g, b);\n        if (colorAndOpacityType !== undefined) {\n          this.#uiManager.updateParams(colorAndOpacityType, {\n            color: hex,\n            opacity: op\n          });\n        } else {\n          this.#uiManager.updateParams(colorType, hex);\n          this.#uiManager.updateParams(opacityType, op);\n        }\n      } else {\n        this.#uiManager.updateParams(colorType, input.value);\n      }\n    }, {\n      signal: this.#uiManager._signal\n    });\n    return input;\n  }\n  update(value) {\n    if (!this.#input) {\n      return;\n    }\n    if (this.#hasAlpha) {\n      const alphaHex = Util.hexNums[Math.round(this.#editor.opacity * 255)];\n      this.#input.value = value + alphaHex;\n    } else {\n      this.#input.value = value;\n    }\n  }\n  updateOpacity(value) {\n    if (!this.#input || !this.#hasAlpha) {\n      return;\n    }\n    const alphaHex = Util.hexNums[Math.round(value * 255)];\n    this.#input.value = this.#editor.color + alphaHex;\n  }\n  destroy() {\n    this.#input?.remove();\n    this.#input = null;\n  }\n  hideDropdown() {}\n}\n\n;// ./src/shared/scripting_utils.js\n\nfunction makeColorComp(n) {\n  return Math.floor(MathClamp(n, 0, 1) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n  return MathClamp(x, 0, 1) * 255;\n}\nclass ColorConverters {\n  static CMYK_G([c, y, m, k]) {\n    return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n  }\n  static G_CMYK([g]) {\n    return [\"CMYK\", 0, 0, 0, 1 - g];\n  }\n  static G_RGB([g]) {\n    return [\"RGB\", g, g, g];\n  }\n  static G_rgb([g]) {\n    g = scaleAndClamp(g);\n    return [g, g, g];\n  }\n  static G_HTML([g]) {\n    const G = makeColorComp(g);\n    return `#${G}${G}${G}`;\n  }\n  static RGB_G([r, g, b]) {\n    return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n  }\n  static RGB_rgb(color) {\n    return color.map(scaleAndClamp);\n  }\n  static RGB_HTML(color) {\n    return `#${color.map(makeColorComp).join(\"\")}`;\n  }\n  static T_HTML() {\n    return \"#00000000\";\n  }\n  static T_rgb() {\n    return [null];\n  }\n  static CMYK_RGB([c, y, m, k]) {\n    return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n  }\n  static CMYK_rgb([c, y, m, k]) {\n    return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n  }\n  static CMYK_HTML(components) {\n    const rgb = this.CMYK_RGB(components).slice(1);\n    return this.RGB_HTML(rgb);\n  }\n  static RGB_CMYK([r, g, b]) {\n    const c = 1 - r;\n    const m = 1 - g;\n    const y = 1 - b;\n    const k = Math.min(c, m, y);\n    return [\"CMYK\", c, m, y, k];\n  }\n}\nconst DateFormats = (/* unused pure expression or super */ null && ([\"m/d\", \"m/d/yy\", \"mm/dd/yy\", \"mm/yy\", \"d-mmm\", \"d-mmm-yy\", \"dd-mmm-yy\", \"yy-mm-dd\", \"mmm-yy\", \"mmmm-yy\", \"mmm d, yyyy\", \"mmmm d, yyyy\", \"m/d/yy h:MM tt\", \"m/d/yy HH:MM\"]));\nconst TimeFormats = (/* unused pure expression or super */ null && ([\"HH:MM\", \"h:MM tt\", \"HH:MM:ss\", \"h:MM:ss tt\"]));\n\n;// ./src/display/svg_factory.js\n\nclass BaseSVGFactory {\n  create(width, height, skipDimensions = false) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid SVG dimensions\");\n    }\n    const svg = this._createSVG(\"svg:svg\");\n    svg.setAttribute(\"version\", \"1.1\");\n    if (!skipDimensions) {\n      svg.setAttribute(\"width\", `${width}px`);\n      svg.setAttribute(\"height\", `${height}px`);\n    }\n    svg.setAttribute(\"preserveAspectRatio\", \"none\");\n    svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n    return svg;\n  }\n  createElement(type) {\n    if (typeof type !== \"string\") {\n      throw new Error(\"Invalid SVG element type\");\n    }\n    return this._createSVG(type);\n  }\n  _createSVG(type) {\n    unreachable(\"Abstract method `_createSVG` called.\");\n  }\n}\nclass DOMSVGFactory extends BaseSVGFactory {\n  _createSVG(type) {\n    return document.createElementNS(SVG_NS, type);\n  }\n}\n\n;// ./src/display/annotation_layer.js\n\n\n\n\n\nconst annotation_layer_DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nconst TIMEZONE_OFFSET = new Date().getTimezoneOffset() * 60 * 1000;\nclass AnnotationElementFactory {\n  static create(parameters) {\n    const subtype = parameters.data.annotationType;\n    switch (subtype) {\n      case AnnotationType.LINK:\n        return new LinkAnnotationElement(parameters);\n      case AnnotationType.TEXT:\n        return new TextAnnotationElement(parameters);\n      case AnnotationType.WIDGET:\n        const fieldType = parameters.data.fieldType;\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotationElement(parameters);\n          case \"Btn\":\n            if (parameters.data.radioButton) {\n              return new RadioButtonWidgetAnnotationElement(parameters);\n            } else if (parameters.data.checkBox) {\n              return new CheckboxWidgetAnnotationElement(parameters);\n            }\n            return new PushButtonWidgetAnnotationElement(parameters);\n          case \"Ch\":\n            return new ChoiceWidgetAnnotationElement(parameters);\n          case \"Sig\":\n            return new SignatureWidgetAnnotationElement(parameters);\n        }\n        return new WidgetAnnotationElement(parameters);\n      case AnnotationType.POPUP:\n        return new PopupAnnotationElement(parameters);\n      case AnnotationType.FREETEXT:\n        return new FreeTextAnnotationElement(parameters);\n      case AnnotationType.LINE:\n        return new LineAnnotationElement(parameters);\n      case AnnotationType.SQUARE:\n        return new SquareAnnotationElement(parameters);\n      case AnnotationType.CIRCLE:\n        return new CircleAnnotationElement(parameters);\n      case AnnotationType.POLYLINE:\n        return new PolylineAnnotationElement(parameters);\n      case AnnotationType.CARET:\n        return new CaretAnnotationElement(parameters);\n      case AnnotationType.INK:\n        return new InkAnnotationElement(parameters);\n      case AnnotationType.POLYGON:\n        return new PolygonAnnotationElement(parameters);\n      case AnnotationType.HIGHLIGHT:\n        return new HighlightAnnotationElement(parameters);\n      case AnnotationType.UNDERLINE:\n        return new UnderlineAnnotationElement(parameters);\n      case AnnotationType.SQUIGGLY:\n        return new SquigglyAnnotationElement(parameters);\n      case AnnotationType.STRIKEOUT:\n        return new StrikeOutAnnotationElement(parameters);\n      case AnnotationType.STAMP:\n        return new StampAnnotationElement(parameters);\n      case AnnotationType.FILEATTACHMENT:\n        return new FileAttachmentAnnotationElement(parameters);\n      case AnnotationType.RICHMEDIA:\n      case AnnotationType.SCREEN:\n      case AnnotationType.SOUND:\n        return new MediaAnnotationElement(parameters);\n      default:\n        return new AnnotationElement(parameters);\n    }\n  }\n}\nclass AnnotationElement {\n  #updates = null;\n  #hasBorder = false;\n  #popupElement = null;\n  constructor(parameters, {\n    isRenderable = false,\n    ignoreBorder = false,\n    createQuadrilaterals = false\n  } = {}) {\n    this.isRenderable = isRenderable;\n    this.data = parameters.data;\n    this.layer = parameters.layer;\n    this.linkService = parameters.linkService;\n    this.downloadManager = parameters.downloadManager;\n    this.imageResourcesPath = parameters.imageResourcesPath;\n    this.renderForms = parameters.renderForms;\n    this.svgFactory = parameters.svgFactory;\n    this.annotationStorage = parameters.annotationStorage;\n    this.enableComment = parameters.enableComment;\n    this.enableScripting = parameters.enableScripting;\n    this.hasJSActions = parameters.hasJSActions;\n    this._fieldObjects = parameters.fieldObjects;\n    this.parent = parameters.parent;\n    this.hasOwnCommentButton = false;\n    if (isRenderable) {\n      this.contentElement = this.container = this._createContainer(ignoreBorder);\n    }\n    if (createQuadrilaterals) {\n      this._createQuadrilaterals();\n    }\n  }\n  static _hasPopupData({\n    contentsObj,\n    richText\n  }) {\n    return !!(contentsObj?.str || richText?.str);\n  }\n  get _isEditable() {\n    return this.data.isEditable;\n  }\n  get hasPopupData() {\n    return AnnotationElement._hasPopupData(this.data) || this.enableComment && !!this.commentText;\n  }\n  get commentData() {\n    const {\n      data\n    } = this;\n    const editor = this.annotationStorage?.getEditor(data.id);\n    if (editor) {\n      return editor.getData();\n    }\n    return data;\n  }\n  get hasCommentButton() {\n    return this.enableComment && this.hasPopupElement;\n  }\n  get commentButtonPosition() {\n    const editor = this.annotationStorage?.getEditor(this.data.id);\n    if (editor) {\n      return editor.commentButtonPositionInPage;\n    }\n    const {\n      quadPoints,\n      inkLists,\n      rect\n    } = this.data;\n    let maxX = -Infinity;\n    let maxY = -Infinity;\n    if (quadPoints?.length >= 8) {\n      for (let i = 0; i < quadPoints.length; i += 8) {\n        if (quadPoints[i + 1] > maxY) {\n          maxY = quadPoints[i + 1];\n          maxX = quadPoints[i + 2];\n        } else if (quadPoints[i + 1] === maxY) {\n          maxX = Math.max(maxX, quadPoints[i + 2]);\n        }\n      }\n      return [maxX, maxY];\n    }\n    if (inkLists?.length >= 1) {\n      for (const inkList of inkLists) {\n        for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n          if (inkList[i + 1] > maxY) {\n            maxY = inkList[i + 1];\n            maxX = inkList[i];\n          } else if (inkList[i + 1] === maxY) {\n            maxX = Math.max(maxX, inkList[i]);\n          }\n        }\n      }\n      if (maxX !== Infinity) {\n        return [maxX, maxY];\n      }\n    }\n    if (rect) {\n      return [rect[2], rect[3]];\n    }\n    return null;\n  }\n  _normalizePoint(point) {\n    const {\n      page: {\n        view\n      },\n      viewport: {\n        rawDims: {\n          pageWidth,\n          pageHeight,\n          pageX,\n          pageY\n        }\n      }\n    } = this.parent;\n    point[1] = view[3] - point[1] + view[1];\n    point[0] = 100 * (point[0] - pageX) / pageWidth;\n    point[1] = 100 * (point[1] - pageY) / pageHeight;\n    return point;\n  }\n  get commentText() {\n    const {\n      data\n    } = this;\n    return this.annotationStorage.getRawValue(`${AnnotationEditorPrefix}${data.id}`)?.popup?.contents || data.contentsObj?.str || \"\";\n  }\n  set commentText(text) {\n    const {\n      data\n    } = this;\n    const popup = {\n      deleted: !text,\n      contents: text || \"\"\n    };\n    if (!this.annotationStorage.updateEditor(data.id, {\n      popup\n    })) {\n      this.annotationStorage.setValue(`${AnnotationEditorPrefix}${data.id}`, {\n        id: data.id,\n        annotationType: data.annotationType,\n        page: this.parent.page,\n        popup,\n        popupRef: data.popupRef,\n        modificationDate: new Date()\n      });\n    }\n    if (!text) {\n      this.removePopup();\n    }\n  }\n  removePopup() {\n    (this.#popupElement?.popup || this.popup)?.remove();\n    this.#popupElement = this.popup = null;\n  }\n  updateEdited(params) {\n    if (!this.container) {\n      return;\n    }\n    if (params.rect) {\n      this.#updates ||= {\n        rect: this.data.rect.slice(0)\n      };\n    }\n    const {\n      rect,\n      popup: newPopup\n    } = params;\n    if (rect) {\n      this.#setRectEdited(rect);\n    }\n    let popup = this.#popupElement?.popup || this.popup;\n    if (!popup && newPopup?.text) {\n      this._createPopup(newPopup);\n      popup = this.#popupElement.popup;\n    }\n    if (!popup) {\n      return;\n    }\n    popup.updateEdited(params);\n    if (newPopup?.deleted) {\n      popup.remove();\n      this.#popupElement = null;\n      this.popup = null;\n    }\n  }\n  resetEdited() {\n    if (!this.#updates) {\n      return;\n    }\n    this.#setRectEdited(this.#updates.rect);\n    this.#popupElement?.popup.resetEdited();\n    this.#updates = null;\n  }\n  #setRectEdited(rect) {\n    const {\n      container: {\n        style\n      },\n      data: {\n        rect: currentRect,\n        rotation\n      },\n      parent: {\n        viewport: {\n          rawDims: {\n            pageWidth,\n            pageHeight,\n            pageX,\n            pageY\n          }\n        }\n      }\n    } = this;\n    currentRect?.splice(0, 4, ...rect);\n    style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n    style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`;\n    if (rotation === 0) {\n      style.width = `${100 * (rect[2] - rect[0]) / pageWidth}%`;\n      style.height = `${100 * (rect[3] - rect[1]) / pageHeight}%`;\n    } else {\n      this.setRotation(rotation);\n    }\n  }\n  _createContainer(ignoreBorder) {\n    const {\n      data,\n      parent: {\n        page,\n        viewport\n      }\n    } = this;\n    const container = document.createElement(\"section\");\n    container.setAttribute(\"data-annotation-id\", data.id);\n    if (!(this instanceof WidgetAnnotationElement) && !(this instanceof LinkAnnotationElement) && !(this instanceof MediaAnnotationElement)) {\n      container.tabIndex = 0;\n    }\n    const {\n      style\n    } = container;\n    style.zIndex = this.parent.zIndex;\n    this.parent.zIndex += 2;\n    if (data.alternativeText) {\n      container.title = data.alternativeText;\n    }\n    if (data.noRotate) {\n      container.classList.add(\"norotate\");\n    }\n    if (!data.rect || this instanceof PopupAnnotationElement) {\n      const {\n        rotation\n      } = data;\n      if (!data.hasOwnCanvas && rotation !== 0) {\n        this.setRotation(rotation, container);\n      }\n      return container;\n    }\n    const {\n      width,\n      height\n    } = this;\n    if (!ignoreBorder && data.borderStyle.width > 0) {\n      style.borderWidth = `${data.borderStyle.width}px`;\n      const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n      const verticalRadius = data.borderStyle.verticalCornerRadius;\n      if (horizontalRadius > 0 || verticalRadius > 0) {\n        const radius = `calc(${horizontalRadius}px * var(--total-scale-factor)) / calc(${verticalRadius}px * var(--total-scale-factor))`;\n        style.borderRadius = radius;\n      }\n      switch (data.borderStyle.style) {\n        case AnnotationBorderStyleType.SOLID:\n          style.borderStyle = \"solid\";\n          break;\n        case AnnotationBorderStyleType.DASHED:\n          style.borderStyle = \"dashed\";\n          break;\n        case AnnotationBorderStyleType.BEVELED:\n          warn(\"Unimplemented border style: beveled\");\n          break;\n        case AnnotationBorderStyleType.INSET:\n          warn(\"Unimplemented border style: inset\");\n          break;\n        case AnnotationBorderStyleType.UNDERLINE:\n          style.borderBottomStyle = \"solid\";\n          break;\n        default:\n          break;\n      }\n      const borderColor = data.borderColor || null;\n      if (borderColor) {\n        this.#hasBorder = true;\n        style.borderColor = Util.makeHexColor(...borderColor);\n      } else {\n        style.borderWidth = 0;\n      }\n    }\n    const rect = Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n    const {\n      pageWidth,\n      pageHeight,\n      pageX,\n      pageY\n    } = viewport.rawDims;\n    style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n    style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n    const {\n      rotation\n    } = data;\n    if (data.hasOwnCanvas || rotation === 0) {\n      style.width = `${100 * width / pageWidth}%`;\n      style.height = `${100 * height / pageHeight}%`;\n    } else {\n      this.setRotation(rotation, container);\n    }\n    return container;\n  }\n  setRotation(angle, container = this.container) {\n    if (!this.data.rect) {\n      return;\n    }\n    const {\n      pageWidth,\n      pageHeight\n    } = this.parent.viewport.rawDims;\n    let {\n      width,\n      height\n    } = this;\n    if (angle % 180 !== 0) {\n      [width, height] = [height, width];\n    }\n    container.style.width = `${100 * width / pageWidth}%`;\n    container.style.height = `${100 * height / pageHeight}%`;\n    container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n  }\n  get _commonActions() {\n    const setColor = (jsName, styleName, event) => {\n      const color = event.detail[jsName];\n      const colorType = color[0];\n      const colorArray = color.slice(1);\n      event.target.style[styleName] = ColorConverters[`${colorType}_HTML`](colorArray);\n      this.annotationStorage.setValue(this.data.id, {\n        [styleName]: ColorConverters[`${colorType}_rgb`](colorArray)\n      });\n    };\n    return shadow(this, \"_commonActions\", {\n      display: event => {\n        const {\n          display\n        } = event.detail;\n        const hidden = display % 2 === 1;\n        this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          noView: hidden,\n          noPrint: display === 1 || display === 2\n        });\n      },\n      print: event => {\n        this.annotationStorage.setValue(this.data.id, {\n          noPrint: !event.detail.print\n        });\n      },\n      hidden: event => {\n        const {\n          hidden\n        } = event.detail;\n        this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          noPrint: hidden,\n          noView: hidden\n        });\n      },\n      focus: event => {\n        setTimeout(() => event.target.focus({\n          preventScroll: false\n        }), 0);\n      },\n      userName: event => {\n        event.target.title = event.detail.userName;\n      },\n      readonly: event => {\n        event.target.disabled = event.detail.readonly;\n      },\n      required: event => {\n        this._setRequired(event.target, event.detail.required);\n      },\n      bgColor: event => {\n        setColor(\"bgColor\", \"backgroundColor\", event);\n      },\n      fillColor: event => {\n        setColor(\"fillColor\", \"backgroundColor\", event);\n      },\n      fgColor: event => {\n        setColor(\"fgColor\", \"color\", event);\n      },\n      textColor: event => {\n        setColor(\"textColor\", \"color\", event);\n      },\n      borderColor: event => {\n        setColor(\"borderColor\", \"borderColor\", event);\n      },\n      strokeColor: event => {\n        setColor(\"strokeColor\", \"borderColor\", event);\n      },\n      rotation: event => {\n        const angle = event.detail.rotation;\n        this.setRotation(angle);\n        this.annotationStorage.setValue(this.data.id, {\n          rotation: angle\n        });\n      }\n    });\n  }\n  _dispatchEventFromSandbox(actions, jsEvent) {\n    const commonActions = this._commonActions;\n    for (const name of Object.keys(jsEvent.detail)) {\n      const action = actions[name] || commonActions[name];\n      action?.(jsEvent);\n    }\n  }\n  _setDefaultPropertiesFromJS(element) {\n    if (!this.enableScripting) {\n      return;\n    }\n    const storedData = this.annotationStorage.getRawValue(this.data.id);\n    if (!storedData) {\n      return;\n    }\n    const commonActions = this._commonActions;\n    for (const [actionName, detail] of Object.entries(storedData)) {\n      const action = commonActions[actionName];\n      if (action) {\n        const eventProxy = {\n          detail: {\n            [actionName]: detail\n          },\n          target: element\n        };\n        action(eventProxy);\n        delete storedData[actionName];\n      }\n    }\n  }\n  _createQuadrilaterals() {\n    if (!this.container) {\n      return;\n    }\n    const {\n      quadPoints\n    } = this.data;\n    if (!quadPoints) {\n      return;\n    }\n    const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect.map(x => Math.fround(x));\n    if (quadPoints.length === 8) {\n      const [trX, trY, blX, blY] = quadPoints.subarray(2, 6);\n      if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n        return;\n      }\n    }\n    const {\n      style\n    } = this.container;\n    let svgBuffer;\n    if (this.#hasBorder) {\n      const {\n        borderColor,\n        borderWidth\n      } = style;\n      style.borderWidth = 0;\n      svgBuffer = [\"url('data:image/svg+xml;utf8,\", `<svg xmlns=\"${SVG_NS}\" preserveAspectRatio=\"none\" viewBox=\"0 0 1 1\">`, `<g fill=\"transparent\" stroke=\"${borderColor}\" stroke-width=\"${borderWidth}\">`];\n      this.container.classList.add(\"hasBorder\");\n    }\n    const width = rectTrX - rectBlX;\n    const height = rectTrY - rectBlY;\n    const {\n      svgFactory\n    } = this;\n    const svg = svgFactory.createElement(\"svg\");\n    svg.classList.add(\"quadrilateralsContainer\");\n    svg.setAttribute(\"width\", 0);\n    svg.setAttribute(\"height\", 0);\n    svg.role = \"none\";\n    const defs = svgFactory.createElement(\"defs\");\n    svg.append(defs);\n    const clipPath = svgFactory.createElement(\"clipPath\");\n    const id = `clippath_${this.data.id}`;\n    clipPath.setAttribute(\"id\", id);\n    clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n    defs.append(clipPath);\n    for (let i = 2, ii = quadPoints.length; i < ii; i += 8) {\n      const trX = quadPoints[i];\n      const trY = quadPoints[i + 1];\n      const blX = quadPoints[i + 2];\n      const blY = quadPoints[i + 3];\n      const rect = svgFactory.createElement(\"rect\");\n      const x = (blX - rectBlX) / width;\n      const y = (rectTrY - trY) / height;\n      const rectWidth = (trX - blX) / width;\n      const rectHeight = (trY - blY) / height;\n      rect.setAttribute(\"x\", x);\n      rect.setAttribute(\"y\", y);\n      rect.setAttribute(\"width\", rectWidth);\n      rect.setAttribute(\"height\", rectHeight);\n      clipPath.append(rect);\n      svgBuffer?.push(`<rect vector-effect=\"non-scaling-stroke\" x=\"${x}\" y=\"${y}\" width=\"${rectWidth}\" height=\"${rectHeight}\"/>`);\n    }\n    if (this.#hasBorder) {\n      svgBuffer.push(`</g></svg>')`);\n      style.backgroundImage = svgBuffer.join(\"\");\n    }\n    this.container.append(svg);\n    this.container.style.clipPath = `url(#${id})`;\n  }\n  _createPopup(popupData = null) {\n    const {\n      data\n    } = this;\n    let contentsObj, modificationDate;\n    if (popupData) {\n      contentsObj = {\n        str: popupData.text\n      };\n      modificationDate = popupData.date;\n    } else {\n      contentsObj = data.contentsObj;\n      modificationDate = data.modificationDate;\n    }\n    this.#popupElement = new PopupAnnotationElement({\n      data: {\n        color: data.color,\n        titleObj: data.titleObj,\n        modificationDate,\n        contentsObj,\n        richText: data.richText,\n        parentRect: data.rect,\n        borderStyle: 0,\n        id: `popup_${data.id}`,\n        rotation: data.rotation,\n        noRotate: true\n      },\n      linkService: this.linkService,\n      parent: this.parent,\n      elements: [this]\n    });\n  }\n  get hasPopupElement() {\n    return !!(this.#popupElement || this.popup || this.data.popupRef);\n  }\n  get extraPopupElement() {\n    return this.#popupElement;\n  }\n  render() {\n    unreachable(\"Abstract method `AnnotationElement.render` called\");\n  }\n  _getElementsByName(name, skipId = null) {\n    const fields = [];\n    if (this._fieldObjects) {\n      const fieldObj = this._fieldObjects[name] || [];\n      for (const {\n        page,\n        id,\n        exportValues\n      } of fieldObj) {\n        if (page === -1) {\n          continue;\n        }\n        if (id === skipId) {\n          continue;\n        }\n        const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n        const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n        if (domElement && !GetElementsByNameSet.has(domElement)) {\n          warn(`_getElementsByName - element not allowed: ${id}`);\n          continue;\n        }\n        fields.push({\n          id,\n          exportValue,\n          domElement\n        });\n      }\n      return fields;\n    }\n    for (const domElement of document.getElementsByName(name)) {\n      const {\n        exportValue\n      } = domElement;\n      const id = domElement.getAttribute(\"data-element-id\");\n      if (id === skipId) {\n        continue;\n      }\n      if (!GetElementsByNameSet.has(domElement)) {\n        continue;\n      }\n      fields.push({\n        id,\n        exportValue,\n        domElement\n      });\n    }\n    return fields;\n  }\n  show() {\n    if (this.container) {\n      this.container.hidden = false;\n    }\n    this.popup?.maybeShow();\n  }\n  hide() {\n    if (this.container) {\n      this.container.hidden = true;\n    }\n    this.popup?.forceHide();\n  }\n  getElementsToTriggerPopup() {\n    return this.container;\n  }\n  addHighlightArea() {\n    const triggers = this.getElementsToTriggerPopup();\n    if (Array.isArray(triggers)) {\n      for (const element of triggers) {\n        element.classList.add(\"highlightArea\");\n      }\n    } else {\n      triggers.classList.add(\"highlightArea\");\n    }\n  }\n  _editOnDoubleClick() {\n    if (!this._isEditable) {\n      return;\n    }\n    const {\n      annotationEditorType: mode,\n      data: {\n        id: editId\n      }\n    } = this;\n    this.container.addEventListener(\"dblclick\", () => {\n      this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n        source: this,\n        mode,\n        editId,\n        mustEnterInEditMode: true\n      });\n    });\n  }\n  updateOC(optionalContentConfig) {\n    if (!this.data.oc || !optionalContentConfig) {\n      return;\n    }\n    const isVisible = optionalContentConfig.isVisible(this.data.oc);\n    if (isVisible) {\n      this.show();\n    } else {\n      this.hide();\n    }\n  }\n  get width() {\n    return this.data.rect[2] - this.data.rect[0];\n  }\n  get height() {\n    return this.data.rect[3] - this.data.rect[1];\n  }\n  _setBackgroundColor(element) {\n    const color = this.data.backgroundColor || null;\n    element.style.backgroundColor = color === null ? \"transparent\" : Util.makeHexColor(...color);\n  }\n}\nclass EditorAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n    this.editor = parameters.editor;\n  }\n  render() {\n    this.container.className = \"editorAnnotation\";\n    return this.container;\n  }\n  createOrUpdatePopup() {\n    const {\n      editor\n    } = this;\n    if (!editor.hasComment) {\n      return;\n    }\n    this._createPopup(editor.comment);\n  }\n  get hasCommentButton() {\n    return this.enableComment && this.editor.hasComment;\n  }\n  get commentButtonPosition() {\n    return this.editor.commentButtonPositionInPage;\n  }\n  get commentText() {\n    return this.editor.comment.text;\n  }\n  set commentText(text) {\n    this.editor.comment = text;\n    if (!text) {\n      this.removePopup();\n    }\n  }\n  get commentData() {\n    return this.editor.getData();\n  }\n  remove() {\n    this.parent.removeAnnotation(this.data.id);\n    this.container.remove();\n    this.container = null;\n    this.removePopup();\n  }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n  constructor(parameters, options = null) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: !!options?.ignoreBorder,\n      createQuadrilaterals: true\n    });\n    this.isTooltipOnly = parameters.data.isTooltipOnly;\n  }\n  render() {\n    const {\n      data,\n      linkService\n    } = this;\n    const link = document.createElement(\"a\");\n    link.setAttribute(\"data-element-id\", data.id);\n    let isBound = false;\n    if (data.url) {\n      linkService.addLinkAttributes(link, data.url, data.newWindow);\n      isBound = true;\n    } else if (data.action) {\n      this._bindNamedAction(link, data.action, data.overlaidText);\n      isBound = true;\n    } else if (data.attachment) {\n      this.#bindAttachment(link, data.attachmentId, data.attachment, data.overlaidText, data.attachmentDest);\n      isBound = true;\n    } else if (data.setOCGState) {\n      this.#bindSetOCGState(link, data.setOCGState, data.overlaidText);\n      isBound = true;\n    } else if (data.dest) {\n      this._bindLink(link, data.dest, data.overlaidText);\n      isBound = true;\n    } else {\n      if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n        this._bindJSAction(link, data);\n        isBound = true;\n      }\n      if (data.resetForm) {\n        this._bindResetFormAction(link, data.resetForm);\n        isBound = true;\n      } else if (this.isTooltipOnly && !isBound) {\n        this._bindLink(link, \"\");\n        isBound = true;\n      }\n    }\n    this.container.classList.add(\"linkAnnotation\");\n    if (isBound) {\n      this.contentElement = link;\n      this.container.append(link);\n    }\n    return this.container;\n  }\n  #setInternalLink() {\n    this.container.setAttribute(\"data-internal-link\", \"\");\n  }\n  _bindLink(link, destination, overlaidText = \"\") {\n    link.href = this.linkService.getDestinationHash(destination);\n    link.onclick = () => {\n      if (destination) {\n        this.linkService.goToDestination(destination);\n      }\n      return false;\n    };\n    if (destination || destination === \"\") {\n      this.#setInternalLink();\n    }\n    if (overlaidText) {\n      link.title = overlaidText;\n    }\n  }\n  _bindNamedAction(link, action, overlaidText = \"\") {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.linkService.executeNamedAction(action);\n      return false;\n    };\n    if (overlaidText) {\n      link.title = overlaidText;\n    }\n    this.#setInternalLink();\n  }\n  #bindAttachment(link, attachmentId, attachment, overlaidText = \"\", dest = null) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    if (attachment.description) {\n      link.title = attachment.description;\n    } else if (overlaidText) {\n      link.title = overlaidText;\n    }\n    const openAttachment = async () => {\n      const content = await this.linkService.getAttachmentContent(attachmentId);\n      if (content) {\n        this.downloadManager?.openOrDownloadData(content, attachment.filename, dest);\n      }\n    };\n    link.onclick = () => {\n      openAttachment();\n      return false;\n    };\n    this.#setInternalLink();\n  }\n  #bindSetOCGState(link, action, overlaidText = \"\") {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.linkService.executeSetOCGState(action);\n      return false;\n    };\n    if (overlaidText) {\n      link.title = overlaidText;\n    }\n    this.#setInternalLink();\n  }\n  _bindJSAction(link, data) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n    for (const name of Object.keys(data.actions)) {\n      const jsName = map.get(name);\n      if (!jsName) {\n        continue;\n      }\n      link[jsName] = () => {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: data.id,\n            name\n          }\n        });\n        return false;\n      };\n    }\n    if (data.overlaidText) {\n      link.title = data.overlaidText;\n    }\n    link.onclick ||= () => false;\n    this.#setInternalLink();\n  }\n  _bindResetFormAction(link, resetForm) {\n    const otherClickAction = link.onclick;\n    if (!otherClickAction) {\n      link.href = this.linkService.getAnchorUrl(\"\");\n    }\n    this.#setInternalLink();\n    if (!this._fieldObjects) {\n      warn(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n      if (!otherClickAction) {\n        link.onclick = () => false;\n      }\n      return;\n    }\n    link.onclick = () => {\n      otherClickAction?.();\n      const {\n        fields: resetFormFields,\n        refs: resetFormRefs,\n        include\n      } = resetForm;\n      const allFields = [];\n      if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n        const fieldIds = new Set(resetFormRefs);\n        for (const fieldName of resetFormFields) {\n          const fields = this._fieldObjects[fieldName] || [];\n          for (const {\n            id\n          } of fields) {\n            fieldIds.add(id);\n          }\n        }\n        for (const fields of Object.values(this._fieldObjects)) {\n          for (const field of fields) {\n            if (fieldIds.has(field.id) === include) {\n              allFields.push(field);\n            }\n          }\n        }\n      } else {\n        for (const fields of Object.values(this._fieldObjects)) {\n          allFields.push(...fields);\n        }\n      }\n      const storage = this.annotationStorage;\n      const allIds = [];\n      for (const field of allFields) {\n        const {\n          id\n        } = field;\n        allIds.push(id);\n        switch (field.type) {\n          case \"text\":\n            {\n              const value = field.defaultValue || \"\";\n              storage.setValue(id, {\n                value\n              });\n              break;\n            }\n          case \"checkbox\":\n          case \"radiobutton\":\n            {\n              const value = field.defaultValue === field.exportValues;\n              storage.setValue(id, {\n                value\n              });\n              break;\n            }\n          case \"combobox\":\n          case \"listbox\":\n            {\n              const value = field.defaultValue || \"\";\n              storage.setValue(id, {\n                value\n              });\n              break;\n            }\n          default:\n            continue;\n        }\n        const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n        if (!domElement) {\n          continue;\n        } else if (!GetElementsByNameSet.has(domElement)) {\n          warn(`_bindResetFormAction - element not allowed: ${id}`);\n          continue;\n        }\n        domElement.dispatchEvent(new Event(\"resetform\"));\n      }\n      if (this.enableScripting) {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: \"app\",\n            ids: allIds,\n            name: \"ResetForm\"\n          }\n        });\n      }\n      return false;\n    };\n  }\n}\nclass TextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true\n    });\n  }\n  render() {\n    this.container.classList.add(\"textAnnotation\");\n    const image = document.createElement(\"img\");\n    image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n    image.setAttribute(\"data-l10n-id\", \"pdfjs-text-annotation-type\");\n    image.setAttribute(\"data-l10n-args\", JSON.stringify({\n      type: this.data.name\n    }));\n    if (!this.data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this.container.append(image);\n    return this.container;\n  }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n  render() {\n    return this.container;\n  }\n  _getKeyModifier(event) {\n    return FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey;\n  }\n  _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n    if (baseName.includes(\"mouse\")) {\n      element.addEventListener(baseName, event => {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event),\n            shift: event.shiftKey,\n            modifier: this._getKeyModifier(event)\n          }\n        });\n      });\n    } else {\n      element.addEventListener(baseName, event => {\n        if (baseName === \"blur\") {\n          if (!elementData.focused || !event.relatedTarget) {\n            return;\n          }\n          elementData.focused = false;\n        } else if (baseName === \"focus\") {\n          if (elementData.focused) {\n            return;\n          }\n          elementData.focused = true;\n        }\n        if (!valueGetter) {\n          return;\n        }\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event)\n          }\n        });\n      });\n    }\n  }\n  _setEventListeners(element, elementData, names, getter) {\n    for (const [baseName, eventName] of names) {\n      if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n        if (eventName === \"Focus\" || eventName === \"Blur\") {\n          elementData ||= {\n            focused: false\n          };\n        }\n        this._setEventListener(element, elementData, baseName, eventName, getter);\n        if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n          this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n        } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n          this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n        }\n      }\n    }\n  }\n  _setTextStyle(element) {\n    const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n    const {\n      fontColor\n    } = this.data.defaultAppearanceData;\n    const fontSize = this.data.defaultAppearanceData.fontSize || annotation_layer_DEFAULT_FONT_SIZE;\n    const style = element.style;\n    let computedFontSize;\n    const BORDER_SIZE = 2;\n    const roundToOneDecimal = x => Math.round(10 * x) / 10;\n    if (this.data.multiLine) {\n      const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n      const numberOfLines = Math.round(height / ((/* inlined export .LINE_FACTOR */1.35) * fontSize)) || 1;\n      const lineHeight = height / numberOfLines;\n      computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / (/* inlined export .LINE_FACTOR */1.35)));\n    } else {\n      const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n      computedFontSize = Math.min(fontSize, roundToOneDecimal(height / (/* inlined export .LINE_FACTOR */1.35)));\n    }\n    style.fontSize = `calc(${computedFontSize}px * var(--total-scale-factor))`;\n    style.color = Util.makeHexColor(...fontColor);\n    if (this.data.textAlignment !== null && !this.data.comb) {\n      style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n    }\n  }\n  _setRequired(element, isRequired) {\n    if (isRequired) {\n      element.setAttribute(\"required\", true);\n    } else {\n      element.removeAttribute(\"required\");\n    }\n    element.setAttribute(\"aria-required\", isRequired);\n  }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    const isRenderable = parameters.renderForms || parameters.data.hasOwnCanvas || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n    super(parameters, {\n      isRenderable\n    });\n  }\n  setPropertyOnSiblings(base, key, value, keyInStorage) {\n    const storage = this.annotationStorage;\n    for (const element of this._getElementsByName(base.name, base.id)) {\n      if (element.domElement) {\n        element.domElement[key] = value;\n      }\n      storage.setValue(element.id, {\n        [keyInStorage]: value\n      });\n    }\n  }\n  render() {\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n    this.container.classList.add(\"textWidgetAnnotation\");\n    let element = null;\n    if (this.renderForms) {\n      const storedData = storage.getValue(id, {\n        value: this.data.fieldValue\n      });\n      let textContent = storedData.value || \"\";\n      const maxLen = storage.getValue(id, {\n        charLimit: this.data.maxLen\n      }).charLimit;\n      if (maxLen && textContent.length > maxLen) {\n        textContent = textContent.slice(0, maxLen);\n      }\n      let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n      if (fieldFormattedValues && this.data.comb) {\n        fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n      }\n      const elementData = {\n        userValue: textContent,\n        formattedValue: fieldFormattedValues,\n        lastCommittedValue: null,\n        commitKey: 1,\n        focused: false\n      };\n      if (this.data.multiLine) {\n        element = document.createElement(\"textarea\");\n        element.textContent = fieldFormattedValues ?? textContent;\n        if (this.data.doNotScroll) {\n          element.style.overflowY = \"hidden\";\n        }\n      } else {\n        element = document.createElement(\"input\");\n        element.type = this.data.password ? \"password\" : \"text\";\n        element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n        if (this.data.doNotScroll) {\n          element.style.overflowX = \"hidden\";\n        }\n      }\n      if (this.data.hasOwnCanvas) {\n        this.container.classList.add(\"hasOwnCanvas\");\n        if (storage.has(id)) {\n          this.container.classList.add(\"sandboxModified\");\n        }\n      }\n      GetElementsByNameSet.add(element);\n      this.contentElement = element;\n      element.setAttribute(\"data-element-id\", id);\n      element.disabled = this.data.readOnly;\n      element.name = this.data.fieldName;\n      element.tabIndex = 0;\n      const {\n        datetimeFormat,\n        datetimeType,\n        timeStep\n      } = this.data;\n      const hasDateOrTime = !!datetimeType && this.enableScripting;\n      if (datetimeFormat) {\n        element.title = datetimeFormat;\n      }\n      this._setRequired(element, this.data.required);\n      if (maxLen) {\n        element.maxLength = maxLen;\n      }\n      element.addEventListener(\"input\", event => {\n        storage.setValue(id, {\n          value: event.target.value\n        });\n        this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n        elementData.formattedValue = null;\n      });\n      element.addEventListener(\"resetform\", event => {\n        const defaultValue = this.data.defaultFieldValue ?? \"\";\n        element.value = elementData.userValue = defaultValue;\n        elementData.formattedValue = null;\n      });\n      let blurListener = event => {\n        const {\n          formattedValue\n        } = elementData;\n        if (formattedValue !== null && formattedValue !== undefined) {\n          event.target.value = formattedValue;\n        }\n        event.target.scrollLeft = 0;\n      };\n      if (this.enableScripting && this.hasJSActions) {\n        element.addEventListener(\"focus\", event => {\n          if (elementData.focused) {\n            return;\n          }\n          const {\n            target\n          } = event;\n          if (hasDateOrTime) {\n            target.type = datetimeType;\n            if (timeStep) {\n              target.step = timeStep;\n            }\n          }\n          if (elementData.userValue) {\n            const value = elementData.userValue;\n            if (hasDateOrTime) {\n              if (datetimeType === \"time\") {\n                const date = new Date(value);\n                const parts = [date.getHours(), date.getMinutes(), date.getSeconds()];\n                target.value = parts.map(v => v.toString().padStart(2, \"0\")).join(\":\");\n              } else {\n                target.value = new Date(value - TIMEZONE_OFFSET).toISOString().split(datetimeType === \"date\" ? \"T\" : \".\", 1)[0];\n              }\n            } else {\n              target.value = value;\n            }\n          }\n          elementData.lastCommittedValue = target.value;\n          elementData.commitKey = 1;\n          if (!this.data.actions?.Focus) {\n            elementData.focused = true;\n          }\n        });\n        element.addEventListener(\"updatefromsandbox\", jsEvent => {\n          this.container.classList.add(\"sandboxModified\");\n          const actions = {\n            value(event) {\n              elementData.userValue = event.detail.value ?? \"\";\n              if (!hasDateOrTime) {\n                storage.setValue(id, {\n                  value: elementData.userValue.toString()\n                });\n              }\n              event.target.value = elementData.userValue;\n            },\n            formattedValue(event) {\n              const {\n                formattedValue\n              } = event.detail;\n              elementData.formattedValue = formattedValue;\n              if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n                event.target.value = formattedValue;\n              }\n              const data = {\n                formattedValue\n              };\n              if (hasDateOrTime) {\n                data.value = formattedValue;\n              }\n              storage.setValue(id, data);\n            },\n            selRange(event) {\n              event.target.setSelectionRange(...event.detail.selRange);\n            },\n            charLimit: event => {\n              const {\n                charLimit\n              } = event.detail;\n              const {\n                target\n              } = event;\n              if (charLimit === 0) {\n                target.removeAttribute(\"maxLength\");\n                return;\n              }\n              target.setAttribute(\"maxLength\", charLimit);\n              let value = elementData.userValue;\n              if (!value || value.length <= charLimit) {\n                return;\n              }\n              value = value.slice(0, charLimit);\n              target.value = elementData.userValue = value;\n              storage.setValue(id, {\n                value\n              });\n              this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n                source: this,\n                detail: {\n                  id,\n                  name: \"Keystroke\",\n                  value,\n                  willCommit: true,\n                  commitKey: 1,\n                  selStart: target.selectionStart,\n                  selEnd: target.selectionEnd\n                }\n              });\n            }\n          };\n          this._dispatchEventFromSandbox(actions, jsEvent);\n        });\n        element.addEventListener(\"keydown\", event => {\n          elementData.commitKey = 1;\n          let commitKey = -1;\n          if (event.key === \"Escape\") {\n            commitKey = 0;\n          } else if (event.key === \"Enter\" && !this.data.multiLine) {\n            commitKey = 2;\n          } else if (event.key === \"Tab\") {\n            elementData.commitKey = 3;\n          }\n          if (commitKey === -1) {\n            return;\n          }\n          const {\n            value\n          } = event.target;\n          if (elementData.lastCommittedValue === value) {\n            return;\n          }\n          elementData.lastCommittedValue = value;\n          elementData.userValue = value;\n          this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n            source: this,\n            detail: {\n              id,\n              name: \"Keystroke\",\n              value,\n              willCommit: true,\n              commitKey,\n              selStart: event.target.selectionStart,\n              selEnd: event.target.selectionEnd\n            }\n          });\n        });\n        const _blurListener = blurListener;\n        blurListener = null;\n        element.addEventListener(\"blur\", event => {\n          if (!elementData.focused || !event.relatedTarget) {\n            return;\n          }\n          if (!this.data.actions?.Blur) {\n            elementData.focused = false;\n          }\n          const {\n            target\n          } = event;\n          let {\n            value\n          } = target;\n          if (hasDateOrTime) {\n            if (value && datetimeType === \"time\") {\n              const parts = value.split(\":\").map(v => parseInt(v, 10));\n              value = new Date(2000, 0, 1, parts[0], parts[1], parts[2] || 0).valueOf();\n              target.step = \"\";\n            } else {\n              if (!value.includes(\"T\")) {\n                value = `${value}T00:00`;\n              }\n              value = new Date(value).valueOf();\n            }\n            target.type = \"text\";\n          }\n          elementData.userValue = value;\n          if (elementData.lastCommittedValue !== value) {\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                willCommit: true,\n                commitKey: elementData.commitKey,\n                selStart: event.target.selectionStart,\n                selEnd: event.target.selectionEnd\n              }\n            });\n          }\n          _blurListener(event);\n        });\n        if (this.data.actions?.Keystroke) {\n          element.addEventListener(\"beforeinput\", event => {\n            elementData.lastCommittedValue = null;\n            const {\n              data,\n              target\n            } = event;\n            const {\n              value,\n              selectionStart,\n              selectionEnd\n            } = target;\n            let selStart = selectionStart,\n              selEnd = selectionEnd;\n            switch (event.inputType) {\n              case \"deleteWordBackward\":\n                {\n                  const match = value.substring(0, selectionStart).match(/\\w*\\W*$/);\n                  if (match) {\n                    selStart -= match[0].length;\n                  }\n                  break;\n                }\n              case \"deleteWordForward\":\n                {\n                  const match = value.substring(selectionStart).match(/^\\W*\\w*/);\n                  if (match) {\n                    selEnd += match[0].length;\n                  }\n                  break;\n                }\n              case \"deleteContentBackward\":\n                if (selectionStart === selectionEnd) {\n                  selStart -= 1;\n                }\n                break;\n              case \"deleteContentForward\":\n                if (selectionStart === selectionEnd) {\n                  selEnd += 1;\n                }\n                break;\n            }\n            event.preventDefault();\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                change: data || \"\",\n                willCommit: false,\n                selStart,\n                selEnd\n              }\n            });\n          });\n        }\n        this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n      }\n      if (blurListener) {\n        element.addEventListener(\"blur\", blurListener);\n      }\n      if (this.data.comb) {\n        const fieldWidth = this.data.rect[2] - this.data.rect[0];\n        const combWidth = fieldWidth / maxLen;\n        element.classList.add(\"comb\");\n        element.style.setProperty(\"--comb-width\", `calc(${combWidth}px * var(--total-scale-factor))`);\n        const alignment = this.data.textAlignment;\n        if (alignment === 1 || alignment === 2) {\n          const setCombOffset = () => {\n            const free = maxLen - element.value.length;\n            element.style.setProperty(\"--comb-offset\", `${alignment === 1 ? free >> 1 : free}`);\n          };\n          setCombOffset();\n          for (const evt of [\"input\", \"blur\", \"resetform\", \"updatefromsandbox\"]) {\n            element.addEventListener(evt, setCombOffset);\n          }\n        }\n      }\n    } else {\n      element = document.createElement(\"div\");\n      element.textContent = this.data.fieldValue;\n      element.style.verticalAlign = \"middle\";\n      element.style.display = \"table-cell\";\n      if (this.data.hasOwnCanvas) {\n        element.hidden = true;\n      }\n    }\n    this._setTextStyle(element);\n    this._setBackgroundColor(element);\n    this._setDefaultPropertiesFromJS(element);\n    this.container.append(element);\n    return this.container;\n  }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: !!parameters.data.hasOwnCanvas\n    });\n  }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: parameters.renderForms\n    });\n  }\n  render() {\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.exportValue === data.fieldValue\n    }).value;\n    if (typeof value === \"string\") {\n      value = value !== \"Off\";\n      storage.setValue(id, {\n        value\n      });\n    }\n    this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n    element.disabled = data.readOnly;\n    this._setRequired(element, this.data.required);\n    element.type = \"checkbox\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n    element.setAttribute(\"exportValue\", data.exportValue);\n    element.tabIndex = 0;\n    element.addEventListener(\"change\", event => {\n      const {\n        name,\n        checked\n      } = event.target;\n      for (const checkbox of this._getElementsByName(name, id)) {\n        const curChecked = checked && checkbox.exportValue === data.exportValue;\n        if (checkbox.domElement) {\n          checkbox.domElement.checked = curChecked;\n        }\n        storage.setValue(checkbox.id, {\n          value: curChecked\n        });\n      }\n      storage.setValue(id, {\n        value: checked\n      });\n    });\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue || \"Off\";\n      event.target.checked = defaultValue === data.exportValue;\n    });\n    if (this.enableScripting && this.hasJSActions) {\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            event.target.checked = event.detail.value !== \"Off\";\n            storage.setValue(id, {\n              value: event.target.checked\n            });\n          }\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n      this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n    }\n    this._setDefaultPropertiesFromJS(element);\n    this.container.append(element);\n    return this.container;\n  }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: parameters.renderForms\n    });\n  }\n  render() {\n    this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.buttonValue !== null && data.fieldValue === data.buttonValue\n    }).value;\n    if (typeof value === \"string\") {\n      value = value !== data.buttonValue;\n      storage.setValue(id, {\n        value\n      });\n    }\n    if (value) {\n      for (const radio of this._getElementsByName(data.fieldName, id)) {\n        storage.setValue(radio.id, {\n          value: false\n        });\n      }\n    }\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n    element.disabled = data.readOnly;\n    this._setRequired(element, this.data.required);\n    element.type = \"radio\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n    element.tabIndex = 0;\n    element.addEventListener(\"change\", event => {\n      const {\n        name,\n        checked\n      } = event.target;\n      for (const radio of this._getElementsByName(name, id)) {\n        storage.setValue(radio.id, {\n          value: false\n        });\n      }\n      storage.setValue(id, {\n        value: checked\n      });\n    });\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue;\n      event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n    });\n    if (this.enableScripting && this.hasJSActions) {\n      const pdfButtonValue = data.buttonValue;\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value: event => {\n            const checked = pdfButtonValue === event.detail.value;\n            for (const radio of this._getElementsByName(event.target.name)) {\n              const curChecked = checked && radio.id === id;\n              if (radio.domElement) {\n                radio.domElement.checked = curChecked;\n              }\n              storage.setValue(radio.id, {\n                value: curChecked\n              });\n            }\n          }\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n      this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n    }\n    this._setDefaultPropertiesFromJS(element);\n    this.container.append(element);\n    return this.container;\n  }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      ignoreBorder: parameters.data.hasAppearance\n    });\n  }\n  render() {\n    const container = super.render();\n    container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n    const linkElement = container.lastChild;\n    if (this.enableScripting && this.hasJSActions && linkElement) {\n      this._setDefaultPropertiesFromJS(linkElement);\n      linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        this._dispatchEventFromSandbox({}, jsEvent);\n      });\n    }\n    return container;\n  }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: parameters.renderForms\n    });\n  }\n  render() {\n    this.container.classList.add(\"choiceWidgetAnnotation\");\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n    const storedData = storage.getValue(id, {\n      value: this.data.fieldValue\n    });\n    const selectElement = document.createElement(\"select\");\n    GetElementsByNameSet.add(selectElement);\n    selectElement.setAttribute(\"data-element-id\", id);\n    selectElement.disabled = this.data.readOnly;\n    this._setRequired(selectElement, this.data.required);\n    selectElement.name = this.data.fieldName;\n    selectElement.tabIndex = 0;\n    let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n    if (!this.data.combo) {\n      selectElement.size = this.data.options.length;\n      if (this.data.multiSelect) {\n        selectElement.multiple = true;\n      }\n    }\n    selectElement.addEventListener(\"resetform\", event => {\n      const defaultValue = this.data.defaultFieldValue;\n      for (const option of selectElement.options) {\n        option.selected = option.value === defaultValue;\n      }\n    });\n    const fixDisplayValue = (option, value) => {\n      const newValue = value.replaceAll(\" \", \"\\u00A0\");\n      option.textContent = newValue;\n      if (newValue !== value) {\n        option.setAttribute(\"display-value\", value);\n      }\n    };\n    for (const option of this.data.options) {\n      const optionElement = document.createElement(\"option\");\n      fixDisplayValue(optionElement, option.displayValue);\n      optionElement.value = option.exportValue;\n      if (storedData.value.includes(option.exportValue)) {\n        optionElement.setAttribute(\"selected\", true);\n        addAnEmptyEntry = false;\n      }\n      selectElement.append(optionElement);\n    }\n    let removeEmptyEntry = null;\n    if (addAnEmptyEntry) {\n      const noneOptionElement = document.createElement(\"option\");\n      noneOptionElement.value = \" \";\n      noneOptionElement.setAttribute(\"hidden\", true);\n      noneOptionElement.setAttribute(\"selected\", true);\n      selectElement.prepend(noneOptionElement);\n      removeEmptyEntry = () => {\n        noneOptionElement.remove();\n        selectElement.removeEventListener(\"input\", removeEmptyEntry);\n        removeEmptyEntry = null;\n      };\n      selectElement.addEventListener(\"input\", removeEmptyEntry);\n    }\n    const getValue = isExport => {\n      const name = isExport ? \"value\" : \"textContent\";\n      const {\n        options,\n        multiple\n      } = selectElement;\n      if (!multiple) {\n        return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n      }\n      return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n    };\n    let selectedValues = getValue(false);\n    const getItems = event => {\n      const options = event.target.options;\n      return Array.prototype.map.call(options, option => ({\n        displayValue: option.getAttribute(\"display-value\") || option.textContent,\n        exportValue: option.value\n      }));\n    };\n    if (this.enableScripting && this.hasJSActions) {\n      selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            removeEmptyEntry?.();\n            const value = event.detail.value;\n            const values = new Set(Array.isArray(value) ? value : [value]);\n            for (const option of selectElement.options) {\n              option.selected = values.has(option.value);\n            }\n            storage.setValue(id, {\n              value: getValue(true)\n            });\n            selectedValues = getValue(false);\n          },\n          multipleSelection(event) {\n            selectElement.multiple = true;\n          },\n          remove(event) {\n            const options = selectElement.options;\n            const index = event.detail.remove;\n            options[index].selected = false;\n            selectElement.remove(index);\n            if (options.length > 0) {\n              const i = Array.prototype.findIndex.call(options, option => option.selected);\n              if (i === -1) {\n                options[0].selected = true;\n              }\n            }\n            storage.setValue(id, {\n              value: getValue(true),\n              items: getItems(event)\n            });\n            selectedValues = getValue(false);\n          },\n          clear(event) {\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n            storage.setValue(id, {\n              value: null,\n              items: []\n            });\n            selectedValues = getValue(false);\n          },\n          insert(event) {\n            const {\n              index,\n              displayValue,\n              exportValue\n            } = event.detail.insert;\n            const selectChild = selectElement.children[index];\n            const optionElement = document.createElement(\"option\");\n            fixDisplayValue(optionElement, displayValue);\n            optionElement.value = exportValue;\n            if (selectChild) {\n              selectChild.before(optionElement);\n            } else {\n              selectElement.append(optionElement);\n            }\n            storage.setValue(id, {\n              value: getValue(true),\n              items: getItems(event)\n            });\n            selectedValues = getValue(false);\n          },\n          items(event) {\n            const {\n              items\n            } = event.detail;\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n            for (const item of items) {\n              const {\n                displayValue,\n                exportValue\n              } = item;\n              const optionElement = document.createElement(\"option\");\n              fixDisplayValue(optionElement, displayValue);\n              optionElement.value = exportValue;\n              selectElement.append(optionElement);\n            }\n            if (selectElement.options.length > 0) {\n              selectElement.options[0].selected = true;\n            }\n            storage.setValue(id, {\n              value: getValue(true),\n              items: getItems(event)\n            });\n            selectedValues = getValue(false);\n          },\n          indices(event) {\n            const indices = new Set(event.detail.indices);\n            for (const option of event.target.options) {\n              option.selected = indices.has(option.index);\n            }\n            storage.setValue(id, {\n              value: getValue(true)\n            });\n            selectedValues = getValue(false);\n          },\n          editable(event) {\n            event.target.disabled = !event.detail.editable;\n          }\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n      selectElement.addEventListener(\"input\", event => {\n        const exportValue = getValue(true);\n        const change = getValue(false);\n        storage.setValue(id, {\n          value: exportValue\n        });\n        event.preventDefault();\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id,\n            name: \"Keystroke\",\n            value: selectedValues,\n            change,\n            changeEx: exportValue,\n            willCommit: false,\n            commitKey: 1,\n            keyDown: false\n          }\n        });\n      });\n      this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n    } else {\n      selectElement.addEventListener(\"input\", function (event) {\n        storage.setValue(id, {\n          value: getValue(true)\n        });\n      });\n    }\n    if (this.data.combo) {\n      this._setTextStyle(selectElement);\n    } else {}\n    this._setBackgroundColor(selectElement);\n    this._setDefaultPropertiesFromJS(selectElement);\n    this.container.append(selectElement);\n    return this.container;\n  }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const {\n      data,\n      elements,\n      parent\n    } = parameters;\n    const hasCommentManager = !!parent._commentManager;\n    super(parameters, {\n      isRenderable: !hasCommentManager && AnnotationElement._hasPopupData(data)\n    });\n    this.elements = elements;\n    if (hasCommentManager && AnnotationElement._hasPopupData(data)) {\n      const popup = this.popup = this.#createPopup();\n      for (const element of elements) {\n        element.popup = popup;\n      }\n    } else {\n      this.popup = null;\n    }\n  }\n  #createPopup() {\n    return new PopupElement({\n      container: this.container,\n      color: this.data.color,\n      titleObj: this.data.titleObj,\n      modificationDate: this.data.modificationDate || this.data.creationDate,\n      contentsObj: this.data.contentsObj,\n      richText: this.data.richText,\n      rect: this.data.rect,\n      parentRect: this.data.parentRect || null,\n      parent: this.parent,\n      elements: this.elements,\n      open: this.data.open,\n      commentManager: this.parent._commentManager\n    });\n  }\n  render() {\n    const {\n      container\n    } = this;\n    container.classList.add(\"popupAnnotation\");\n    container.role = \"comment\";\n    const popup = this.popup = this.#createPopup();\n    const elementIds = [];\n    for (const element of this.elements) {\n      element.popup = popup;\n      element.container.ariaHasPopup = \"dialog\";\n      elementIds.push(element.data.id);\n      element.addHighlightArea();\n    }\n    this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${AnnotationPrefix}${id}`).join(\",\"));\n    return this.container;\n  }\n}\nclass PopupElement {\n  #commentManager = null;\n  #boundKeyDown = this.#keyDown.bind(this);\n  #boundHide = this.#hide.bind(this);\n  #boundShow = this.#show.bind(this);\n  #boundToggle = this.#toggle.bind(this);\n  #color = null;\n  #container = null;\n  #contentsObj = null;\n  #dateObj = null;\n  #elements = null;\n  #parent = null;\n  #parentRect = null;\n  #pinned = false;\n  #popup = null;\n  #popupAbortController = null;\n  #position = null;\n  #commentButton = null;\n  #commentButtonPosition = null;\n  #popupPosition = null;\n  #rect = null;\n  #richText = null;\n  #titleObj = null;\n  #updates = null;\n  #wasVisible = false;\n  #firstElement = null;\n  #commentText = null;\n  constructor({\n    container,\n    color,\n    elements,\n    titleObj,\n    modificationDate,\n    contentsObj,\n    richText,\n    parent,\n    rect,\n    parentRect,\n    open,\n    commentManager = null\n  }) {\n    this.#container = container;\n    this.#titleObj = titleObj;\n    this.#contentsObj = contentsObj;\n    this.#richText = richText;\n    this.#parent = parent;\n    this.#color = color;\n    this.#rect = rect;\n    this.#parentRect = parentRect;\n    this.#elements = elements;\n    this.#commentManager = commentManager;\n    this.#firstElement = elements[0];\n    this.#dateObj = PDFDateString.toDateObject(modificationDate);\n    this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n    if (!commentManager) {\n      this.#addEventListeners();\n      this.#container.hidden = true;\n      if (open) {\n        this.#toggle();\n      }\n    }\n  }\n  #addEventListeners() {\n    if (this.#popupAbortController) {\n      return;\n    }\n    this.#popupAbortController = new AbortController();\n    const {\n      signal\n    } = this.#popupAbortController;\n    for (const element of this.trigger) {\n      element.addEventListener(\"click\", this.#boundToggle, {\n        signal\n      });\n      element.addEventListener(\"pointerenter\", this.#boundShow, {\n        signal\n      });\n      element.addEventListener(\"pointerleave\", this.#boundHide, {\n        signal\n      });\n      element.classList.add(\"popupTriggerArea\");\n    }\n    for (const element of this.#elements) {\n      element.container?.addEventListener(\"keydown\", this.#boundKeyDown, {\n        signal\n      });\n    }\n  }\n  #setCommentButtonPosition() {\n    const element = this.#elements.find(e => e.hasCommentButton);\n    if (!element) {\n      return;\n    }\n    this.#commentButtonPosition = element._normalizePoint(element.commentButtonPosition);\n  }\n  renderCommentButton() {\n    if (this.#commentButton) {\n      if (!this.#commentButton.parentNode) {\n        this.#firstElement.container.after(this.#commentButton);\n      }\n      return;\n    }\n    if (!this.#commentButtonPosition) {\n      this.#setCommentButtonPosition();\n    }\n    if (!this.#commentButtonPosition) {\n      return;\n    }\n    const {\n      signal\n    } = this.#popupAbortController = new AbortController();\n    const hasOwnButton = this.#firstElement.hasOwnCommentButton;\n    const togglePopup = () => {\n      this.#commentManager.toggleCommentPopup(this, true, undefined, !hasOwnButton);\n    };\n    const showPopup = () => {\n      this.#commentManager.toggleCommentPopup(this, false, true, !hasOwnButton);\n    };\n    const hidePopup = () => {\n      this.#commentManager.toggleCommentPopup(this, false, false);\n    };\n    if (!hasOwnButton) {\n      const button = this.#commentButton = document.createElement(\"button\");\n      button.className = \"annotationCommentButton\";\n      const parentContainer = this.#firstElement.container;\n      button.style.zIndex = parseInt(parentContainer.style.zIndex, 10) + 1;\n      button.tabIndex = 0;\n      button.ariaHasPopup = \"dialog\";\n      button.ariaControls = \"commentPopup\";\n      button.setAttribute(\"data-l10n-id\", \"pdfjs-show-comment-button\");\n      this.#updateColor();\n      this.#updateCommentButtonPosition();\n      button.addEventListener(\"keydown\", this.#boundKeyDown, {\n        signal\n      });\n      button.addEventListener(\"click\", togglePopup, {\n        signal\n      });\n      button.addEventListener(\"pointerenter\", showPopup, {\n        signal\n      });\n      button.addEventListener(\"pointerleave\", hidePopup, {\n        signal\n      });\n      parentContainer.after(button);\n    } else {\n      this.#commentButton = this.#firstElement.container;\n      for (const element of this.trigger) {\n        element.ariaHasPopup = \"dialog\";\n        element.ariaControls = \"commentPopup\";\n        element.addEventListener(\"keydown\", this.#boundKeyDown, {\n          signal\n        });\n        element.addEventListener(\"click\", togglePopup, {\n          signal\n        });\n        element.addEventListener(\"pointerenter\", showPopup, {\n          signal\n        });\n        element.addEventListener(\"pointerleave\", hidePopup, {\n          signal\n        });\n        element.classList.add(\"popupTriggerArea\");\n      }\n    }\n  }\n  #updateCommentButtonPosition() {\n    if (this.#firstElement.extraPopupElement && !this.#firstElement.editor) {\n      return;\n    }\n    if (!this.#commentButton) {\n      this.renderCommentButton();\n    }\n    const [x, y] = this.#commentButtonPosition;\n    const {\n      style\n    } = this.#commentButton;\n    style.left = `calc(${x}%)`;\n    style.top = `calc(${y}% - var(--comment-button-dim))`;\n  }\n  #updateColor() {\n    if (this.#firstElement.extraPopupElement) {\n      return;\n    }\n    if (!this.#commentButton) {\n      this.renderCommentButton();\n    }\n    this.#commentButton.style.backgroundColor = this.commentButtonColor || \"\";\n  }\n  get commentButtonColor() {\n    const {\n      color,\n      opacity\n    } = this.#firstElement.commentData;\n    if (!color) {\n      return null;\n    }\n    return this.#parent._commentManager.makeCommentColor(color, opacity);\n  }\n  focusCommentButton() {\n    setTimeout(() => {\n      this.#commentButton?.focus();\n    }, 0);\n  }\n  getData() {\n    const {\n      richText,\n      color,\n      opacity,\n      creationDate,\n      modificationDate\n    } = this.#firstElement.commentData;\n    return {\n      contentsObj: {\n        str: this.comment\n      },\n      richText,\n      color,\n      opacity,\n      creationDate,\n      modificationDate\n    };\n  }\n  get elementBeforePopup() {\n    return this.#commentButton;\n  }\n  get comment() {\n    this.#commentText ||= this.#firstElement.commentText;\n    return this.#commentText;\n  }\n  set comment(text) {\n    if (text === this.comment) {\n      return;\n    }\n    this.#firstElement.commentText = this.#commentText = text;\n  }\n  focus() {\n    this.#firstElement.container?.focus();\n  }\n  get parentBoundingClientRect() {\n    return this.#firstElement.layer.getBoundingClientRect();\n  }\n  setCommentButtonStates({\n    selected,\n    hasPopup\n  }) {\n    if (!this.#commentButton) {\n      return;\n    }\n    this.#commentButton.classList.toggle(\"selected\", selected);\n    this.#commentButton.ariaExpanded = hasPopup;\n  }\n  setSelectedCommentButton(selected) {\n    this.#commentButton.classList.toggle(\"selected\", selected);\n  }\n  get commentPopupPosition() {\n    if (this.#popupPosition) {\n      return this.#popupPosition;\n    }\n    const {\n      x,\n      y,\n      height\n    } = this.#commentButton.getBoundingClientRect();\n    const {\n      x: parentX,\n      y: parentY,\n      width: parentWidth,\n      height: parentHeight\n    } = this.#firstElement.layer.getBoundingClientRect();\n    return [(x - parentX) / parentWidth, (y + height - parentY) / parentHeight];\n  }\n  set commentPopupPosition(pos) {\n    this.#popupPosition = pos;\n  }\n  hasDefaultPopupPosition() {\n    return this.#popupPosition === null;\n  }\n  get commentButtonPosition() {\n    return this.#commentButtonPosition;\n  }\n  get commentButtonWidth() {\n    return this.#commentButton.getBoundingClientRect().width / this.parentBoundingClientRect.width;\n  }\n  editComment(options) {\n    const [posX, posY] = this.#popupPosition || this.commentButtonPosition.map(x => x / 100);\n    const parentDimensions = this.parentBoundingClientRect;\n    const {\n      x: parentX,\n      y: parentY,\n      width: parentWidth,\n      height: parentHeight\n    } = parentDimensions;\n    this.#commentManager.showDialog(null, this, parentX + posX * parentWidth, parentY + posY * parentHeight, {\n      ...options,\n      parentDimensions\n    });\n  }\n  render() {\n    if (this.#popup) {\n      return;\n    }\n    const popup = this.#popup = document.createElement(\"div\");\n    popup.className = \"popup\";\n    if (this.#color) {\n      const baseColor = popup.style.outlineColor = Util.makeHexColor(...this.#color);\n      popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n    }\n    const header = document.createElement(\"span\");\n    header.className = \"header\";\n    if (this.#titleObj?.str) {\n      const title = document.createElement(\"span\");\n      title.className = \"title\";\n      header.append(title);\n      ({\n        dir: title.dir,\n        str: title.textContent\n      } = this.#titleObj);\n    }\n    popup.append(header);\n    if (this.#dateObj) {\n      const modificationDate = document.createElement(\"time\");\n      modificationDate.className = \"popupDate\";\n      modificationDate.setAttribute(\"data-l10n-id\", \"pdfjs-annotation-date-time-string\");\n      modificationDate.setAttribute(\"data-l10n-args\", JSON.stringify({\n        dateObj: this.#dateObj.valueOf()\n      }));\n      modificationDate.dateTime = this.#dateObj.toISOString();\n      header.append(modificationDate);\n    }\n    renderRichText({\n      html: this.#html || this.#contentsObj.str,\n      dir: this.#contentsObj?.dir,\n      className: \"popupContent\"\n    }, popup);\n    this.#container.append(popup);\n  }\n  get #html() {\n    const richText = this.#richText;\n    const contentsObj = this.#contentsObj;\n    if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n      return this.#richText.html || null;\n    }\n    return null;\n  }\n  get #fontSize() {\n    return this.#html?.attributes?.style?.fontSize || 0;\n  }\n  get #fontColor() {\n    return this.#html?.attributes?.style?.color || null;\n  }\n  #makePopupContent(text) {\n    const popupLines = [];\n    const popupContent = {\n      str: text,\n      html: {\n        name: \"div\",\n        attributes: {\n          dir: \"auto\"\n        },\n        children: [{\n          name: \"p\",\n          children: popupLines\n        }]\n      }\n    };\n    const lineAttributes = {\n      style: {\n        color: this.#fontColor,\n        fontSize: this.#fontSize ? `calc(${this.#fontSize}px * var(--total-scale-factor))` : \"\"\n      }\n    };\n    for (const line of text.split(\"\\n\")) {\n      popupLines.push({\n        name: \"span\",\n        value: line,\n        attributes: lineAttributes\n      });\n    }\n    return popupContent;\n  }\n  #keyDown(event) {\n    if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n      return;\n    }\n    if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n      this.#toggle();\n    }\n  }\n  updateEdited({\n    rect,\n    popup,\n    deleted\n  }) {\n    if (this.#commentManager) {\n      if (deleted) {\n        this.remove();\n        this.#commentText = null;\n      } else if (popup) {\n        if (popup.deleted) {\n          this.remove();\n        } else {\n          this.#updateColor();\n          this.#commentText = popup.text;\n        }\n      }\n      if (rect) {\n        this.#commentButtonPosition = null;\n        this.#setCommentButtonPosition();\n        this.#updateCommentButtonPosition();\n      }\n      return;\n    }\n    if (deleted || popup?.deleted) {\n      this.remove();\n      return;\n    }\n    this.#addEventListeners();\n    this.#updates ||= {\n      contentsObj: this.#contentsObj,\n      richText: this.#richText\n    };\n    if (rect) {\n      this.#position = null;\n    }\n    if (popup && popup.text) {\n      this.#richText = this.#makePopupContent(popup.text);\n      this.#dateObj = PDFDateString.toDateObject(popup.date);\n      this.#contentsObj = null;\n    }\n    this.#popup?.remove();\n    this.#popup = null;\n  }\n  resetEdited() {\n    if (!this.#updates) {\n      return;\n    }\n    ({\n      contentsObj: this.#contentsObj,\n      richText: this.#richText\n    } = this.#updates);\n    this.#updates = null;\n    this.#popup?.remove();\n    this.#popup = null;\n    this.#position = null;\n  }\n  remove() {\n    this.#popupAbortController?.abort();\n    this.#popupAbortController = null;\n    this.#popup?.remove();\n    this.#popup = null;\n    this.#wasVisible = false;\n    this.#pinned = false;\n    this.#commentButton?.remove();\n    this.#commentButton = null;\n    if (this.trigger) {\n      for (const element of this.trigger) {\n        element.classList.remove(\"popupTriggerArea\");\n      }\n    }\n  }\n  #setPosition() {\n    if (this.#position !== null) {\n      return;\n    }\n    const {\n      page: {\n        view\n      },\n      viewport: {\n        rawDims: {\n          pageWidth,\n          pageHeight,\n          pageX,\n          pageY\n        }\n      }\n    } = this.#parent;\n    let useParentRect = !!this.#parentRect;\n    let rect = useParentRect ? this.#parentRect : this.#rect;\n    for (const element of this.#elements) {\n      if (!rect || Util.intersect(element.data.rect, rect) !== null) {\n        rect = element.data.rect;\n        useParentRect = true;\n        break;\n      }\n    }\n    const normalizedRect = Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n    const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n    const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n    const popupLeft = normalizedRect[0] + parentWidth;\n    const popupTop = normalizedRect[1];\n    this.#position = [100 * (popupLeft - pageX) / pageWidth, 100 * (popupTop - pageY) / pageHeight];\n    const {\n      style\n    } = this.#container;\n    style.left = `${this.#position[0]}%`;\n    style.top = `${this.#position[1]}%`;\n  }\n  #toggle() {\n    if (this.#commentManager) {\n      this.#commentManager.toggleCommentPopup(this, false);\n      return;\n    }\n    this.#pinned = !this.#pinned;\n    if (this.#pinned) {\n      this.#show();\n      this.#container.addEventListener(\"click\", this.#boundToggle);\n      this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n    } else {\n      this.#hide();\n      this.#container.removeEventListener(\"click\", this.#boundToggle);\n      this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n    }\n  }\n  #show() {\n    if (!this.#popup) {\n      this.render();\n    }\n    if (!this.isVisible) {\n      this.#setPosition();\n      this.#container.hidden = false;\n      this.#container.style.zIndex = parseInt(this.#container.style.zIndex, 10) + 1000;\n    } else if (this.#pinned) {\n      this.#container.classList.add(\"focused\");\n    }\n  }\n  #hide() {\n    this.#container.classList.remove(\"focused\");\n    if (this.#pinned || !this.isVisible) {\n      return;\n    }\n    this.#container.hidden = true;\n    this.#container.style.zIndex = parseInt(this.#container.style.zIndex, 10) - 1000;\n  }\n  forceHide() {\n    this.#wasVisible = this.isVisible;\n    if (!this.#wasVisible) {\n      return;\n    }\n    this.#container.hidden = true;\n  }\n  maybeShow() {\n    if (this.#commentManager) {\n      return;\n    }\n    this.#addEventListeners();\n    if (!this.#wasVisible) {\n      return;\n    }\n    if (!this.#popup) {\n      this.#show();\n    }\n    this.#wasVisible = false;\n    this.#container.hidden = false;\n  }\n  get isVisible() {\n    if (this.#commentManager) {\n      return false;\n    }\n    return this.#container.hidden === false;\n  }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n    this.textContent = parameters.data.textContent;\n    this.textPosition = parameters.data.textPosition;\n    this.annotationEditorType = AnnotationEditorType.FREETEXT;\n  }\n  render() {\n    this.container.classList.add(\"freeTextAnnotation\");\n    if (this.textContent) {\n      const content = this.contentElement = document.createElement(\"div\");\n      content.classList.add(\"annotationTextContent\");\n      content.setAttribute(\"role\", \"comment\");\n      for (const line of this.textContent) {\n        const lineSpan = document.createElement(\"span\");\n        lineSpan.textContent = line;\n        content.append(lineSpan);\n      }\n      this.container.append(content);\n    }\n    if (!this.data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this._editOnDoubleClick();\n    return this.container;\n  }\n}\nclass LineAnnotationElement extends AnnotationElement {\n  #line = null;\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n  }\n  render() {\n    this.container.classList.add(\"lineAnnotation\");\n    const {\n      data,\n      width,\n      height\n    } = this;\n    const svg = this.svgFactory.create(width, height, true);\n    const line = this.#line = this.svgFactory.createElement(\"svg:line\");\n    line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n    line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n    line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n    line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n    line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    line.setAttribute(\"stroke\", \"transparent\");\n    line.setAttribute(\"fill\", \"transparent\");\n    svg.append(line);\n    this.container.append(svg);\n    if (!data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    return this.container;\n  }\n  getElementsToTriggerPopup() {\n    return this.#line;\n  }\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n  #square = null;\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n  }\n  render() {\n    this.container.classList.add(\"squareAnnotation\");\n    const {\n      data,\n      width,\n      height\n    } = this;\n    const svg = this.svgFactory.create(width, height, true);\n    const borderWidth = data.borderStyle.width;\n    const square = this.#square = this.svgFactory.createElement(\"svg:rect\");\n    square.setAttribute(\"x\", borderWidth / 2);\n    square.setAttribute(\"y\", borderWidth / 2);\n    square.setAttribute(\"width\", width - borderWidth);\n    square.setAttribute(\"height\", height - borderWidth);\n    square.setAttribute(\"stroke-width\", borderWidth || 1);\n    square.setAttribute(\"stroke\", \"transparent\");\n    square.setAttribute(\"fill\", \"transparent\");\n    svg.append(square);\n    this.container.append(svg);\n    if (!data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    return this.container;\n  }\n  getElementsToTriggerPopup() {\n    return this.#square;\n  }\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n  #circle = null;\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n  }\n  render() {\n    this.container.classList.add(\"circleAnnotation\");\n    const {\n      data,\n      width,\n      height\n    } = this;\n    const svg = this.svgFactory.create(width, height, true);\n    const borderWidth = data.borderStyle.width;\n    const circle = this.#circle = this.svgFactory.createElement(\"svg:ellipse\");\n    circle.setAttribute(\"cx\", width / 2);\n    circle.setAttribute(\"cy\", height / 2);\n    circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n    circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n    circle.setAttribute(\"stroke-width\", borderWidth || 1);\n    circle.setAttribute(\"stroke\", \"transparent\");\n    circle.setAttribute(\"fill\", \"transparent\");\n    svg.append(circle);\n    this.container.append(svg);\n    if (!data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    return this.container;\n  }\n  getElementsToTriggerPopup() {\n    return this.#circle;\n  }\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n  #polyline = null;\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n    this.containerClassName = \"polylineAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n  }\n  render() {\n    this.container.classList.add(this.containerClassName);\n    const {\n      data: {\n        rect,\n        vertices,\n        borderStyle,\n        popupRef\n      },\n      width,\n      height\n    } = this;\n    if (!vertices) {\n      return this.container;\n    }\n    const svg = this.svgFactory.create(width, height, true);\n    let points = [];\n    for (let i = 0, ii = vertices.length; i < ii; i += 2) {\n      const x = vertices[i] - rect[0];\n      const y = rect[3] - vertices[i + 1];\n      points.push(`${x},${y}`);\n    }\n    points = points.join(\" \");\n    const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);\n    polyline.setAttribute(\"points\", points);\n    polyline.setAttribute(\"stroke-width\", borderStyle.width || 1);\n    polyline.setAttribute(\"stroke\", \"transparent\");\n    polyline.setAttribute(\"fill\", \"transparent\");\n    svg.append(polyline);\n    this.container.append(svg);\n    if (!popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    return this.container;\n  }\n  getElementsToTriggerPopup() {\n    return this.#polyline;\n  }\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n  constructor(parameters) {\n    super(parameters);\n    this.containerClassName = \"polygonAnnotation\";\n    this.svgElementName = \"svg:polygon\";\n  }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n  }\n  render() {\n    this.container.classList.add(\"caretAnnotation\");\n    if (!this.data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    return this.container;\n  }\n}\nclass InkAnnotationElement extends AnnotationElement {\n  #polylinesGroupElement = null;\n  #polylines = [];\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n    this.containerClassName = \"inkAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n    this.annotationEditorType = this.data.it === \"InkHighlight\" ? AnnotationEditorType.HIGHLIGHT : AnnotationEditorType.INK;\n  }\n  #getTransform(rotation, rect) {\n    switch (rotation) {\n      case 90:\n        return {\n          transform: `rotate(90) translate(${-rect[0]},${rect[1]}) scale(1,-1)`,\n          width: rect[3] - rect[1],\n          height: rect[2] - rect[0]\n        };\n      case 180:\n        return {\n          transform: `rotate(180) translate(${-rect[2]},${rect[1]}) scale(1,-1)`,\n          width: rect[2] - rect[0],\n          height: rect[3] - rect[1]\n        };\n      case 270:\n        return {\n          transform: `rotate(270) translate(${-rect[2]},${rect[3]}) scale(1,-1)`,\n          width: rect[3] - rect[1],\n          height: rect[2] - rect[0]\n        };\n      default:\n        return {\n          transform: `translate(${-rect[0]},${rect[3]}) scale(1,-1)`,\n          width: rect[2] - rect[0],\n          height: rect[3] - rect[1]\n        };\n    }\n  }\n  render() {\n    this.container.classList.add(this.containerClassName);\n    const {\n      data: {\n        rect,\n        rotation,\n        inkLists,\n        borderStyle,\n        popupRef\n      }\n    } = this;\n    const {\n      transform,\n      width,\n      height\n    } = this.#getTransform(rotation, rect);\n    const svg = this.svgFactory.create(width, height, true);\n    const g = this.#polylinesGroupElement = this.svgFactory.createElement(\"svg:g\");\n    svg.append(g);\n    g.setAttribute(\"stroke-width\", borderStyle.width || 1);\n    g.setAttribute(\"stroke-linecap\", \"round\");\n    g.setAttribute(\"stroke-linejoin\", \"round\");\n    g.setAttribute(\"stroke-miterlimit\", 10);\n    g.setAttribute(\"stroke\", \"transparent\");\n    g.setAttribute(\"fill\", \"transparent\");\n    g.setAttribute(\"transform\", transform);\n    for (const inkList of inkLists) {\n      const polyline = this.svgFactory.createElement(this.svgElementName);\n      this.#polylines.push(polyline);\n      polyline.setAttribute(\"points\", inkList.join(\",\"));\n      g.append(polyline);\n    }\n    if (!popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this.container.append(svg);\n    this._editOnDoubleClick();\n    return this.container;\n  }\n  updateEdited(params) {\n    super.updateEdited(params);\n    const {\n      thickness,\n      points,\n      rect\n    } = params;\n    const g = this.#polylinesGroupElement;\n    if (thickness >= 0) {\n      g.setAttribute(\"stroke-width\", thickness || 1);\n    }\n    if (points) {\n      for (let i = 0, ii = this.#polylines.length; i < ii; i++) {\n        this.#polylines[i].setAttribute(\"points\", points[i].join(\",\"));\n      }\n    }\n    if (rect) {\n      const {\n        transform,\n        width,\n        height\n      } = this.#getTransform(this.data.rotation, rect);\n      const root = g.parentElement;\n      root.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n      g.setAttribute(\"transform\", transform);\n    }\n  }\n  getElementsToTriggerPopup() {\n    return this.#polylines;\n  }\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\nclass HighlightAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n    this.annotationEditorType = AnnotationEditorType.HIGHLIGHT;\n  }\n  render() {\n    const {\n      data: {\n        overlaidText,\n        popupRef\n      }\n    } = this;\n    if (!popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this.container.classList.add(\"highlightAnnotation\");\n    this._editOnDoubleClick();\n    if (overlaidText) {\n      const mark = document.createElement(\"mark\");\n      mark.classList.add(\"overlaidText\");\n      mark.textContent = overlaidText;\n      this.container.append(mark);\n    }\n    return this.container;\n  }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n  }\n  render() {\n    const {\n      data: {\n        overlaidText,\n        popupRef\n      }\n    } = this;\n    if (!popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this.container.classList.add(\"underlineAnnotation\");\n    if (overlaidText) {\n      const underline = document.createElement(\"u\");\n      underline.classList.add(\"overlaidText\");\n      underline.textContent = overlaidText;\n      this.container.append(underline);\n    }\n    return this.container;\n  }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n  }\n  render() {\n    const {\n      data: {\n        overlaidText,\n        popupRef\n      }\n    } = this;\n    if (!popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this.container.classList.add(\"squigglyAnnotation\");\n    if (overlaidText) {\n      const underline = document.createElement(\"u\");\n      underline.classList.add(\"overlaidText\");\n      underline.textContent = overlaidText;\n      this.container.append(underline);\n    }\n    return this.container;\n  }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n  }\n  render() {\n    const {\n      data: {\n        overlaidText,\n        popupRef\n      }\n    } = this;\n    if (!popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this.container.classList.add(\"strikeoutAnnotation\");\n    if (overlaidText) {\n      const strikeout = document.createElement(\"s\");\n      strikeout.classList.add(\"overlaidText\");\n      strikeout.textContent = overlaidText;\n      this.container.append(strikeout);\n    }\n    return this.container;\n  }\n}\nclass StampAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true\n    });\n    this.annotationEditorType = AnnotationEditorType.STAMP;\n  }\n  render() {\n    this.container.classList.add(\"stampAnnotation\");\n    this.container.setAttribute(\"role\", \"img\");\n    if (!this.data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    }\n    this._editOnDoubleClick();\n    return this.container;\n  }\n}\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n  #trigger = null;\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true\n    });\n    const {\n      fileId,\n      file\n    } = this.data;\n    this.filename = file.filename;\n    this.content = file.content;\n    this.fileId = fileId;\n    this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n      source: this,\n      attachmentId: this.fileId,\n      ...file\n    });\n  }\n  render() {\n    this.container.classList.add(\"fileAttachmentAnnotation\");\n    const {\n      container,\n      data\n    } = this;\n    let trigger;\n    if (data.hasAppearance || data.fillAlpha === 0) {\n      trigger = document.createElement(\"div\");\n    } else {\n      trigger = document.createElement(\"img\");\n      trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n      if (data.fillAlpha && data.fillAlpha < 1) {\n        trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n      }\n    }\n    trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n    this.#trigger = trigger;\n    const {\n      isMac\n    } = FeatureTest.platform;\n    container.addEventListener(\"keydown\", evt => {\n      if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n        this.#download();\n      }\n    });\n    if (!data.popupRef && this.hasPopupData) {\n      this.hasOwnCommentButton = true;\n      this._createPopup();\n    } else {\n      trigger.classList.add(\"popupTriggerArea\");\n    }\n    container.append(trigger);\n    return container;\n  }\n  getElementsToTriggerPopup() {\n    return this.#trigger;\n  }\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n  async #download() {\n    const {\n      fileId,\n      filename,\n      content: fallbackContent\n    } = this;\n    const content = (await this.linkService.getAttachmentContent(fileId)) || fallbackContent;\n    if (content) {\n      this.downloadManager?.openOrDownloadData(content, filename);\n    }\n  }\n}\nclass MediaAnnotationElement extends AnnotationElement {\n  #abortController = new AbortController();\n  #contentUrl = null;\n  #media = null;\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: !!parameters.data.richMedia\n    });\n  }\n  render() {\n    this.container.classList.add(\"mediaAnnotation\");\n    const {\n      filename\n    } = this.data.richMedia;\n    const button = document.createElement(\"button\");\n    button.className = \"mediaPlayButton\";\n    button.type = \"button\";\n    button.title = button.ariaLabel = filename;\n    button.addEventListener(\"click\", () => this.#load(button), {\n      signal: this.#abortController.signal\n    });\n    this.container.append(button);\n    return this.container;\n  }\n  async #load(button) {\n    const {\n      fileId,\n      filename,\n      contentType\n    } = this.data.richMedia;\n    button.disabled = true;\n    let content;\n    try {\n      content = await this.linkService.getAttachmentContent(fileId);\n    } catch {\n      return;\n    } finally {\n      button.disabled = false;\n    }\n    if (!content || !button.isConnected) {\n      return;\n    }\n    const {\n      signal\n    } = this.#abortController;\n    const url = URL.createObjectURL(new Blob([content], {\n      type: contentType\n    }));\n    this.#contentUrl = url;\n    const isAudio = contentType.startsWith(\"audio/\");\n    const media = document.createElement(isAudio ? \"audio\" : \"video\");\n    this.#media = media;\n    media.className = \"mediaContent\";\n    this._setBackgroundColor(media);\n    media.src = url;\n    media.title = filename;\n    media.controls = true;\n    media.autoplay = true;\n    media.tabIndex = 0;\n    if (isAudio) {\n      let hovered = false;\n      let focused = false;\n      const updateControls = () => {\n        media.controls = hovered || focused;\n      };\n      this.container.addEventListener(\"pointerenter\", () => {\n        hovered = true;\n        updateControls();\n      }, {\n        signal\n      });\n      this.container.addEventListener(\"pointerleave\", () => {\n        hovered = false;\n        updateControls();\n      }, {\n        signal\n      });\n      this.container.addEventListener(\"focusin\", () => {\n        focused = true;\n        updateControls();\n      }, {\n        signal\n      });\n      this.container.addEventListener(\"focusout\", () => {\n        focused = false;\n        updateControls();\n      }, {\n        signal\n      });\n    }\n    media.addEventListener(\"emptied\", () => this.#revokeContentUrl(url), {\n      once: true,\n      signal\n    });\n    button.replaceWith(media);\n    media.play().catch(() => {});\n  }\n  #revokeContentUrl(url = this.#contentUrl) {\n    if (url && url === this.#contentUrl) {\n      URL.revokeObjectURL(url);\n      this.#contentUrl = null;\n    }\n  }\n  destroy() {\n    this.#abortController.abort();\n    if (this.#media) {\n      this.#media.pause();\n      this.#media.removeAttribute(\"src\");\n      this.#media.load();\n      this.#media = null;\n    }\n    this.#revokeContentUrl();\n  }\n}\nclass AnnotationLayer {\n  #accessibilityManager = null;\n  #annotationCanvasMap = null;\n  #annotationStorage = null;\n  #editableAnnotations = new Map();\n  #structTreeLayer = null;\n  #linkService = null;\n  #elements = [];\n  #hasAriaAttributesFromStructTree = false;\n  zIndex = 0;\n  constructor({\n    div,\n    accessibilityManager,\n    annotationCanvasMap,\n    annotationEditorUIManager,\n    page,\n    viewport,\n    structTreeLayer,\n    commentManager,\n    linkService,\n    annotationStorage\n  }) {\n    this.div = div;\n    this.#accessibilityManager = accessibilityManager;\n    this.#annotationCanvasMap = annotationCanvasMap;\n    this.#structTreeLayer = structTreeLayer || null;\n    this.#linkService = linkService || null;\n    this.#annotationStorage = annotationStorage || new AnnotationStorage();\n    this.page = page;\n    this.viewport = viewport;\n    this._annotationEditorUIManager = annotationEditorUIManager;\n    this._commentManager = commentManager || null;\n  }\n  hasEditableAnnotations() {\n    return this.#editableAnnotations.size > 0;\n  }\n  async render(params) {\n    const {\n      annotations,\n      optionalContentConfig\n    } = params;\n    const layer = this.div;\n    setLayerDimensions(layer, this.viewport);\n    const popupToElements = new Map();\n    const popupAnnotations = [];\n    const elementParams = {\n      data: null,\n      layer,\n      linkService: this.#linkService,\n      downloadManager: params.downloadManager,\n      imageResourcesPath: params.imageResourcesPath || \"\",\n      renderForms: params.renderForms !== false,\n      svgFactory: new DOMSVGFactory(),\n      annotationStorage: this.#annotationStorage,\n      enableComment: params.enableComment === true,\n      enableScripting: params.enableScripting === true,\n      hasJSActions: params.hasJSActions,\n      fieldObjects: params.fieldObjects,\n      parent: this,\n      elements: null\n    };\n    for (const data of annotations) {\n      if (data.noHTML) {\n        continue;\n      }\n      const isPopupAnnotation = data.annotationType === AnnotationType.POPUP;\n      if (!isPopupAnnotation) {\n        if (data.rect[2] === data.rect[0] || data.rect[3] === data.rect[1]) {\n          continue;\n        }\n      } else {\n        const elements = popupToElements.get(data.id);\n        if (!elements) {\n          continue;\n        }\n        if (!this._commentManager) {\n          popupAnnotations.push(data);\n          continue;\n        }\n        elementParams.elements = elements;\n      }\n      elementParams.data = data;\n      const element = AnnotationElementFactory.create(elementParams);\n      if (!element.isRenderable) {\n        continue;\n      }\n      if (!isPopupAnnotation) {\n        this.#elements.push(element);\n        if (data.popupRef) {\n          popupToElements.getOrInsertComputed(data.popupRef, makeArr).push(element);\n        }\n      }\n      const rendered = element.render();\n      if (data.hidden) {\n        rendered.style.visibility = \"hidden\";\n      }\n      element.updateOC(optionalContentConfig);\n      if (element._isEditable) {\n        this.#editableAnnotations.set(element.data.id, element);\n        this._annotationEditorUIManager?.renderAnnotationElement(element);\n      }\n    }\n    await this.#addElementsToDOM();\n    for (const data of popupAnnotations) {\n      const elements = elementParams.elements = popupToElements.get(data.id);\n      elementParams.data = data;\n      const element = AnnotationElementFactory.create(elementParams);\n      if (!element.isRenderable) {\n        continue;\n      }\n      const rendered = element.render();\n      element.contentElement.id = `${AnnotationPrefix}${data.id}`;\n      if (data.hidden) {\n        rendered.style.visibility = \"hidden\";\n      }\n      elements.at(-1).container.after(rendered);\n    }\n    this.#setAnnotationCanvasMap();\n  }\n  async #addElementsToDOM() {\n    if (this.#elements.length === 0) {\n      return;\n    }\n    this.div.replaceChildren();\n    const promises = [];\n    if (!this.#hasAriaAttributesFromStructTree) {\n      this.#hasAriaAttributesFromStructTree = true;\n      for (const {\n        contentElement,\n        data: {\n          id\n        }\n      } of this.#elements) {\n        const annotationId = contentElement.id = `${AnnotationPrefix}${id}`;\n        promises.push(this.#structTreeLayer?.getAriaAttributes(annotationId).then(ariaAttributes => {\n          if (ariaAttributes) {\n            for (const [key, value] of ariaAttributes) {\n              contentElement.setAttribute(key, value);\n            }\n          }\n        }));\n      }\n    }\n    this.#elements.sort(({\n      data: {\n        rect: [a0, a1, a2, a3]\n      }\n    }, {\n      data: {\n        rect: [b0, b1, b2, b3]\n      }\n    }) => {\n      if (a0 === a2 && a1 === a3) {\n        return +1;\n      }\n      if (b0 === b2 && b1 === b3) {\n        return -1;\n      }\n      const top1 = a3;\n      const bot1 = a1;\n      const mid1 = (a1 + a3) / 2;\n      const top2 = b3;\n      const bot2 = b1;\n      const mid2 = (b1 + b3) / 2;\n      if (mid1 >= top2 && mid2 <= bot1) {\n        return -1;\n      }\n      if (mid2 >= top1 && mid1 <= bot2) {\n        return +1;\n      }\n      const centerX1 = (a0 + a2) / 2;\n      const centerX2 = (b0 + b2) / 2;\n      return centerX1 - centerX2;\n    });\n    const fragment = document.createDocumentFragment();\n    for (const element of this.#elements) {\n      fragment.append(element.container);\n      if (this._commentManager) {\n        (element.extraPopupElement?.popup || element.popup)?.renderCommentButton();\n      } else if (element.extraPopupElement) {\n        fragment.append(element.extraPopupElement.render());\n      }\n    }\n    this.div.append(fragment);\n    await Promise.all(promises);\n    if (this.#accessibilityManager) {\n      for (const element of this.#elements) {\n        this.#accessibilityManager.addPointerInTextLayer(element.contentElement, false);\n      }\n    }\n  }\n  async addLinkAnnotations(annotations) {\n    const elementParams = {\n      data: null,\n      layer: this.div,\n      linkService: this.#linkService,\n      svgFactory: new DOMSVGFactory(),\n      parent: this\n    };\n    for (const data of annotations) {\n      data.borderStyle ||= AnnotationLayer._defaultBorderStyle;\n      elementParams.data = data;\n      const element = AnnotationElementFactory.create(elementParams);\n      if (!element.isRenderable) {\n        continue;\n      }\n      element.render();\n      element.contentElement.id = `${AnnotationPrefix}${data.id}`;\n      this.#elements.push(element);\n    }\n    await this.#addElementsToDOM();\n  }\n  update({\n    viewport,\n    optionalContentConfig\n  }) {\n    const layer = this.div;\n    this.viewport = viewport;\n    setLayerDimensions(layer, {\n      rotation: viewport.rotation\n    });\n    for (const element of this.#elements) {\n      element.updateOC(optionalContentConfig);\n    }\n    this.#setAnnotationCanvasMap();\n    layer.hidden = false;\n  }\n  destroy() {\n    for (const element of this.#elements) {\n      element.destroy?.();\n      this.#accessibilityManager?.removePointerInTextLayer(element.contentElement);\n    }\n    this.#elements.length = 0;\n    this.#editableAnnotations.clear();\n    this.div.replaceChildren();\n  }\n  #setAnnotationCanvasMap() {\n    if (!this.#annotationCanvasMap) {\n      return;\n    }\n    const layer = this.div;\n    for (const [id, canvas] of this.#annotationCanvasMap) {\n      const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n      if (!element) {\n        continue;\n      }\n      if (Array.isArray(canvas)) {\n        for (const cvs of canvas) {\n          cvs.className = \"annotationContent\";\n          cvs.ariaHidden = true;\n        }\n      } else {\n        canvas.className = \"annotationContent\";\n        canvas.ariaHidden = true;\n      }\n      const toRemove = [];\n      for (const child of element.children) {\n        if (child.nodeName === \"CANVAS\") {\n          toRemove.push(child);\n        }\n      }\n      for (const child of toRemove) {\n        child.remove();\n      }\n      const firstCanvas = Array.isArray(canvas) ? canvas[0] : canvas;\n      const {\n        firstChild\n      } = element;\n      if (!firstChild) {\n        element.append(firstCanvas);\n      } else if (!firstChild.classList.contains(\"annotationContent\")) {\n        firstChild.before(firstCanvas);\n      } else {\n        firstChild.after(firstCanvas);\n      }\n      if (Array.isArray(canvas)) {\n        let lastCanvas = firstCanvas;\n        for (let i = 1, ii = canvas.length; i < ii; i++) {\n          lastCanvas.after(canvas[i]);\n          lastCanvas = canvas[i];\n        }\n      }\n      this.#annotationCanvasMap.delete(id);\n      const editableAnnotation = this.#editableAnnotations.get(id);\n      if (!editableAnnotation) {\n        continue;\n      }\n      if (editableAnnotation._hasNoCanvas) {\n        this._annotationEditorUIManager?.setMissingCanvas(id, element.id, canvas);\n        editableAnnotation._hasNoCanvas = false;\n      } else {\n        editableAnnotation.canvas = canvas;\n      }\n    }\n  }\n  refreshCanvases() {\n    this.#setAnnotationCanvasMap();\n  }\n  getEditableAnnotations() {\n    return this.#editableAnnotations.values();\n  }\n  getEditableAnnotation(id) {\n    return this.#editableAnnotations.get(id);\n  }\n  addFakeAnnotation(editor) {\n    const {\n      div\n    } = this;\n    const {\n      id,\n      rotation\n    } = editor;\n    const element = new EditorAnnotationElement({\n      data: {\n        id,\n        rect: editor.getPDFRect(),\n        rotation\n      },\n      editor,\n      layer: div,\n      parent: this,\n      enableComment: !!this._commentManager,\n      linkService: this.#linkService,\n      annotationStorage: this.#annotationStorage\n    });\n    element.render();\n    element.contentElement.id = `${AnnotationPrefix}${id}`;\n    element.createOrUpdatePopup();\n    this.#elements.push(element);\n    return element;\n  }\n  removeAnnotation(id) {\n    const index = this.#elements.findIndex(el => el.data.id === id);\n    if (index < 0) {\n      return;\n    }\n    const [element] = this.#elements.splice(index, 1);\n    this.#accessibilityManager?.removePointerInTextLayer(element.contentElement);\n  }\n  updateFakeAnnotations(editors) {\n    if (editors.length === 0) {\n      return;\n    }\n    for (const editor of editors) {\n      editor.updateFakeAnnotationElement(this);\n    }\n    this.#addElementsToDOM();\n  }\n  togglePointerEvents(enabled = false) {\n    this.div.classList.toggle(\"disabled\", !enabled);\n  }\n  static get _defaultBorderStyle() {\n    return shadow(this, \"_defaultBorderStyle\", Object.freeze({\n      width: 1,\n      rawWidth: 1,\n      style: AnnotationBorderStyleType.SOLID,\n      dashArray: [3],\n      horizontalCornerRadius: 0,\n      verticalCornerRadius: 0\n    }));\n  }\n}\n\n;// ./src/display/editor/freetext.js\n\n\n\n\n\nconst EOL_PATTERN = /\\r\\n?|\\n/g;\nclass FreeTextEditor extends AnnotationEditor {\n  #content = \"\";\n  #editorDivId = `${this.id}-editor`;\n  #editModeAC = null;\n  #fontSize;\n  _colorPicker = null;\n  static _freeTextDefaultContent = \"\";\n  static _internalPadding = 0;\n  static _defaultColor = null;\n  static _defaultFontSize = 10;\n  static get _keyboardManager() {\n    const proto = FreeTextEditor.prototype;\n    const arrowChecker = self => self.isEmpty();\n    const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n    const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n    return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n      bubbles: true\n    }], [[\"ctrl+Enter\", \"mac+meta+Enter\"], proto.commitOrRemove], [[\"Escape\"], proto.commitOrRemove], [[\"ArrowLeft\"], proto._translateEmpty, {\n      args: [-small, 0],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n      args: [-big, 0],\n      checker: arrowChecker\n    }], [[\"ArrowRight\"], proto._translateEmpty, {\n      args: [small, 0],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n      args: [big, 0],\n      checker: arrowChecker\n    }], [[\"ArrowUp\"], proto._translateEmpty, {\n      args: [0, -small],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n      args: [0, -big],\n      checker: arrowChecker\n    }], [[\"ArrowDown\"], proto._translateEmpty, {\n      args: [0, small],\n      checker: arrowChecker\n    }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n      args: [0, big],\n      checker: arrowChecker\n    }]]));\n  }\n  static _type = \"freetext\";\n  static _editorType = AnnotationEditorType.FREETEXT;\n  constructor(params) {\n    super({\n      ...params,\n      name: \"freeTextEditor\"\n    });\n    this.color = params.color || FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor;\n    this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n    if (!this.annotationElementId) {\n      this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.freetext);\n    }\n    this.canAddComment = false;\n  }\n  static initialize(l10n, uiManager) {\n    AnnotationEditor.initialize(l10n, uiManager);\n    const style = getComputedStyle(document.documentElement);\n    this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n  }\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.FREETEXT_SIZE:\n        FreeTextEditor._defaultFontSize = value;\n        break;\n      case AnnotationEditorParamsType.FREETEXT_COLOR:\n        FreeTextEditor._defaultColor = value;\n        break;\n    }\n  }\n  updateParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.FREETEXT_SIZE:\n        this.#updateFontSize(value);\n        break;\n      case AnnotationEditorParamsType.FREETEXT_COLOR:\n        this.#updateColor(value);\n        break;\n    }\n  }\n  static get defaultPropertiesToUpdate() {\n    return [[AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor]];\n  }\n  get propertiesToUpdate() {\n    return [[AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, this.color]];\n  }\n  get toolbarButtons() {\n    this._colorPicker ||= new BasicColorPicker(this);\n    return [[\"colorPicker\", this._colorPicker]];\n  }\n  get colorType() {\n    return AnnotationEditorParamsType.FREETEXT_COLOR;\n  }\n  #updateFontSize(fontSize) {\n    const setFontsize = size => {\n      this.editorDiv.style.fontSize = `calc(${size}px * var(--total-scale-factor))`;\n      this.translate(0, -(size - this.#fontSize) * this.parentScale);\n      this.#fontSize = size;\n      this.#setEditorDimensions();\n    };\n    const savedFontsize = this.#fontSize;\n    this.addCommands({\n      cmd: setFontsize.bind(this, fontSize),\n      undo: setFontsize.bind(this, savedFontsize),\n      post: this._uiManager.updateUI.bind(this._uiManager, this),\n      mustExec: true,\n      type: AnnotationEditorParamsType.FREETEXT_SIZE,\n      overwriteIfSameType: true,\n      keepUndo: true\n    });\n  }\n  onUpdatedColor() {\n    this.editorDiv.style.color = this.color;\n    this._colorPicker?.update(this.color);\n    super.onUpdatedColor();\n  }\n  #updateColor(color) {\n    const setColor = col => {\n      this.color = col;\n      this.onUpdatedColor();\n    };\n    const savedColor = this.color;\n    this.addCommands({\n      cmd: setColor.bind(this, color),\n      undo: setColor.bind(this, savedColor),\n      post: this._uiManager.updateUI.bind(this._uiManager, this),\n      mustExec: true,\n      type: AnnotationEditorParamsType.FREETEXT_COLOR,\n      overwriteIfSameType: true,\n      keepUndo: true\n    });\n  }\n  _translateEmpty(x, y) {\n    this._uiManager.translateSelectedEditors(x, y, true);\n  }\n  getInitialTranslation() {\n    const scale = this.parentScale;\n    return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n  }\n  rebuild() {\n    if (!this.parent) {\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n    if (!this.isAttachedToDOM) {\n      this.parent.add(this);\n    }\n  }\n  enableEditMode() {\n    if (!super.enableEditMode()) {\n      return false;\n    }\n    this.overlayDiv.classList.remove(\"enabled\");\n    this.editorDiv.contentEditable = true;\n    this._isDraggable = false;\n    this.div.removeAttribute(\"aria-activedescendant\");\n    this.#editModeAC = new AbortController();\n    const signal = this._uiManager.combinedSignal(this.#editModeAC);\n    this.editorDiv.addEventListener(\"keydown\", this.editorDivKeydown.bind(this), {\n      signal\n    });\n    this.editorDiv.addEventListener(\"focus\", this.editorDivFocus.bind(this), {\n      signal\n    });\n    this.editorDiv.addEventListener(\"blur\", this.editorDivBlur.bind(this), {\n      signal\n    });\n    this.editorDiv.addEventListener(\"input\", this.editorDivInput.bind(this), {\n      signal\n    });\n    this.editorDiv.addEventListener(\"paste\", this.editorDivPaste.bind(this), {\n      signal\n    });\n    return true;\n  }\n  disableEditMode() {\n    if (!super.disableEditMode()) {\n      return false;\n    }\n    this.overlayDiv.classList.add(\"enabled\");\n    this.editorDiv.contentEditable = false;\n    this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n    this._isDraggable = true;\n    this.#editModeAC?.abort();\n    this.#editModeAC = null;\n    this.div.focus({\n      preventScroll: true\n    });\n    this.isEditing = false;\n    this.parent.div.classList.add(\"freetextEditing\");\n    return true;\n  }\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    super.focusin(event);\n    if (event.target !== this.editorDiv) {\n      this.editorDiv.focus();\n    }\n  }\n  onceAdded(focus) {\n    if (this.width) {\n      return;\n    }\n    this.enableEditMode();\n    if (focus) {\n      this.editorDiv.focus();\n    }\n    if (this._initialOptions?.isCentered) {\n      this.center();\n    }\n    this._initialOptions = null;\n  }\n  isEmpty() {\n    return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n  }\n  remove() {\n    this.isEditing = false;\n    if (this.parent) {\n      this.parent.setEditingState(true);\n      this.parent.div.classList.add(\"freetextEditing\");\n    }\n    super.remove();\n  }\n  #extractText() {\n    const buffer = [];\n    this.editorDiv.normalize();\n    let prevChild = null;\n    for (const child of this.editorDiv.childNodes) {\n      if (prevChild?.nodeType === Node.TEXT_NODE && child.nodeName === \"BR\") {\n        continue;\n      }\n      buffer.push(FreeTextEditor.#getNodeContent(child));\n      prevChild = child;\n    }\n    return buffer.join(\"\\n\");\n  }\n  #setEditorDimensions() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    let rect;\n    if (this.isAttachedToDOM) {\n      rect = this.div.getBoundingClientRect();\n    } else {\n      const {\n        currentLayer,\n        div\n      } = this;\n      const savedDisplay = div.style.display;\n      const savedVisibility = div.classList.contains(\"hidden\");\n      div.classList.remove(\"hidden\");\n      div.style.display = \"hidden\";\n      currentLayer.div.append(this.div);\n      rect = div.getBoundingClientRect();\n      div.remove();\n      div.style.display = savedDisplay;\n      div.classList.toggle(\"hidden\", savedVisibility);\n    }\n    if (this.rotation % 180 === this.parentRotation % 180) {\n      this.width = rect.width / parentWidth;\n      this.height = rect.height / parentHeight;\n    } else {\n      this.width = rect.height / parentWidth;\n      this.height = rect.width / parentHeight;\n    }\n    this.fixAndSetPosition();\n  }\n  commit() {\n    if (!this.isInEditMode()) {\n      return;\n    }\n    super.commit();\n    this.disableEditMode();\n    const savedText = this.#content;\n    const newText = this.#content = this.#extractText().trimEnd();\n    if (savedText === newText) {\n      return;\n    }\n    const setText = text => {\n      this.#content = text;\n      if (!text) {\n        this.remove();\n        return;\n      }\n      this.#setContent();\n      this._uiManager.rebuild(this);\n      this.#setEditorDimensions();\n    };\n    this.addCommands({\n      cmd: () => {\n        setText(newText);\n      },\n      undo: () => {\n        setText(savedText);\n      },\n      mustExec: false\n    });\n    this.#setEditorDimensions();\n  }\n  shouldGetKeyboardEvents() {\n    return this.isInEditMode();\n  }\n  enterInEditMode() {\n    this.enableEditMode();\n    this.editorDiv.focus();\n  }\n  keydown(event) {\n    if (event.target === this.div && event.key === \"Enter\") {\n      this.enterInEditMode();\n      event.preventDefault();\n    }\n  }\n  editorDivKeydown(event) {\n    FreeTextEditor._keyboardManager.exec(this, event);\n  }\n  editorDivFocus(event) {\n    this.isEditing = true;\n  }\n  editorDivBlur(event) {\n    this.isEditing = false;\n  }\n  editorDivInput(event) {\n    this.parent.div.classList.toggle(\"freetextEditing\", this.isEmpty());\n  }\n  disableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"comment\");\n    this.editorDiv.removeAttribute(\"aria-multiline\");\n  }\n  enableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"textbox\");\n    this.editorDiv.setAttribute(\"aria-multiline\", true);\n  }\n  get canChangeContent() {\n    return true;\n  }\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n    let baseX, baseY;\n    if (this._isCopy || this.annotationElementId) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n    super.render();\n    this.editorDiv = document.createElement(\"div\");\n    this.editorDiv.className = \"internal\";\n    this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n    this.editorDiv.setAttribute(\"data-l10n-id\", \"pdfjs-free-text2\");\n    this.editorDiv.setAttribute(\"data-l10n-attrs\", \"default-content\");\n    this.enableEditing();\n    this.editorDiv.contentEditable = true;\n    const {\n      style\n    } = this.editorDiv;\n    style.fontSize = `calc(${this.#fontSize}px * var(--total-scale-factor))`;\n    style.color = this.color;\n    this.div.append(this.editorDiv);\n    this.overlayDiv = document.createElement(\"div\");\n    this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n    this.div.append(this.overlayDiv);\n    if (this._isCopy || this.annotationElementId) {\n      const [parentWidth, parentHeight] = this.parentDimensions;\n      if (this.annotationElementId) {\n        const {\n          position\n        } = this._initialData;\n        let [tx, ty] = this.getInitialTranslation();\n        [tx, ty] = this.pageTranslationToScreen(tx, ty);\n        const [pageWidth, pageHeight] = this.pageDimensions;\n        const [pageX, pageY] = this.pageTranslation;\n        let posX, posY;\n        switch (this.rotation) {\n          case 0:\n            posX = baseX + (position[0] - pageX) / pageWidth;\n            posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n            break;\n          case 90:\n            posX = baseX + (position[0] - pageX) / pageWidth;\n            posY = baseY - (position[1] - pageY) / pageHeight;\n            [tx, ty] = [ty, -tx];\n            break;\n          case 180:\n            posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n            posY = baseY - (position[1] - pageY) / pageHeight;\n            [tx, ty] = [-tx, -ty];\n            break;\n          case 270:\n            posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n            posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n            [tx, ty] = [-ty, tx];\n            break;\n        }\n        this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n      } else {\n        this._moveAfterPaste(baseX, baseY);\n      }\n      this.#setContent();\n      this._isDraggable = true;\n      this.editorDiv.contentEditable = false;\n    } else {\n      this._isDraggable = false;\n      this.editorDiv.contentEditable = true;\n    }\n    return this.div;\n  }\n  static #getNodeContent(node) {\n    return (node.nodeType === Node.TEXT_NODE ? node.nodeValue : node.innerText).replaceAll(EOL_PATTERN, \"\");\n  }\n  editorDivPaste(event) {\n    const clipboardData = event.clipboardData || window.clipboardData;\n    const {\n      types\n    } = clipboardData;\n    if (types.length === 1 && types[0] === \"text/plain\") {\n      return;\n    }\n    event.preventDefault();\n    const paste = FreeTextEditor.#deserializeContent(clipboardData.getData(\"text\") || \"\").replaceAll(EOL_PATTERN, \"\\n\");\n    if (!paste) {\n      return;\n    }\n    const selection = window.getSelection();\n    if (!selection.rangeCount) {\n      return;\n    }\n    this.editorDiv.normalize();\n    selection.deleteFromDocument();\n    const range = selection.getRangeAt(0);\n    if (!paste.includes(\"\\n\")) {\n      range.insertNode(document.createTextNode(paste));\n      this.editorDiv.normalize();\n      selection.collapseToStart();\n      return;\n    }\n    const {\n      startContainer,\n      startOffset\n    } = range;\n    const bufferBefore = [];\n    const bufferAfter = [];\n    if (startContainer.nodeType === Node.TEXT_NODE) {\n      const parent = startContainer.parentElement;\n      bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN, \"\"));\n      if (parent !== this.editorDiv) {\n        let buffer = bufferBefore;\n        for (const child of this.editorDiv.childNodes) {\n          if (child === parent) {\n            buffer = bufferAfter;\n            continue;\n          }\n          buffer.push(FreeTextEditor.#getNodeContent(child));\n        }\n      }\n      bufferBefore.push(startContainer.nodeValue.slice(0, startOffset).replaceAll(EOL_PATTERN, \"\"));\n    } else if (startContainer === this.editorDiv) {\n      let buffer = bufferBefore;\n      let i = 0;\n      for (const child of this.editorDiv.childNodes) {\n        if (i++ === startOffset) {\n          buffer = bufferAfter;\n        }\n        buffer.push(FreeTextEditor.#getNodeContent(child));\n      }\n    }\n    this.#content = `${bufferBefore.join(\"\\n\")}${paste}${bufferAfter.join(\"\\n\")}`;\n    this.#setContent();\n    const newRange = new Range();\n    let beforeLength = Math.sumPrecise(bufferBefore.map(line => line.length));\n    for (const {\n      firstChild\n    } of this.editorDiv.childNodes) {\n      if (firstChild.nodeType === Node.TEXT_NODE) {\n        const length = firstChild.nodeValue.length;\n        if (beforeLength <= length) {\n          newRange.setStart(firstChild, beforeLength);\n          newRange.setEnd(firstChild, beforeLength);\n          break;\n        }\n        beforeLength -= length;\n      }\n    }\n    selection.removeAllRanges();\n    selection.addRange(newRange);\n  }\n  #setContent() {\n    this.editorDiv.replaceChildren();\n    if (!this.#content) {\n      return;\n    }\n    for (const line of this.#content.split(\"\\n\")) {\n      const div = document.createElement(\"div\");\n      div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n      this.editorDiv.append(div);\n    }\n  }\n  #serializeContent() {\n    return this.#content.replaceAll(\"\\xa0\", \" \");\n  }\n  static #deserializeContent(content) {\n    return content.replaceAll(\" \", \"\\xa0\");\n  }\n  get contentDiv() {\n    return this.editorDiv;\n  }\n  getPDFRect() {\n    const padding = FreeTextEditor._internalPadding * this.parentScale;\n    return this.getRect(padding, padding);\n  }\n  static async deserialize(data, parent, uiManager) {\n    let initialData = null;\n    if (data instanceof FreeTextAnnotationElement) {\n      const {\n        data: {\n          defaultAppearanceData: {\n            fontSize,\n            fontColor\n          },\n          rect,\n          rotation,\n          id,\n          popupRef,\n          richText,\n          contentsObj,\n          creationDate,\n          modificationDate\n        },\n        textContent,\n        textPosition,\n        parent: {\n          page: {\n            pageNumber\n          }\n        }\n      } = data;\n      if (!textContent?.length) {\n        return null;\n      }\n      initialData = data = {\n        annotationType: AnnotationEditorType.FREETEXT,\n        color: Array.from(fontColor),\n        fontSize,\n        value: textContent.join(\"\\n\"),\n        position: textPosition,\n        pageIndex: pageNumber - 1,\n        rect: rect.slice(0),\n        rotation,\n        annotationElementId: id,\n        id,\n        deleted: false,\n        popupRef,\n        comment: contentsObj?.str || null,\n        richText,\n        creationDate,\n        modificationDate\n      };\n    }\n    const editor = await super.deserialize(data, parent, uiManager);\n    editor.#fontSize = data.fontSize;\n    editor.color = Util.makeHexColor(...data.color);\n    editor.#content = FreeTextEditor.#deserializeContent(data.value);\n    editor._initialData = initialData;\n    if (data.comment) {\n      editor.setCommentData(data);\n    }\n    return editor;\n  }\n  serialize(isForCopying = false) {\n    if (this.isEmpty()) {\n      return null;\n    }\n    if (this.deleted) {\n      return this.serializeDeleted();\n    }\n    const color = AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.color);\n    const serialized = Object.assign(super.serialize(isForCopying), {\n      color,\n      fontSize: this.#fontSize,\n      value: this.#serializeContent()\n    });\n    this.addComment(serialized);\n    if (isForCopying) {\n      serialized.isCopy = true;\n      return serialized;\n    }\n    if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n      return null;\n    }\n    serialized.id = this.annotationElementId;\n    return serialized;\n  }\n  #hasElementChanged(serialized) {\n    const {\n      value,\n      fontSize,\n      color,\n      pageIndex\n    } = this._initialData;\n    return this.hasEditedComment || this._hasBeenMoved || serialized.value !== value || serialized.fontSize !== fontSize || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n  }\n  renderAnnotationElement(annotation) {\n    const content = super.renderAnnotationElement(annotation);\n    if (!content) {\n      return null;\n    }\n    const {\n      style\n    } = content;\n    style.fontSize = `calc(${this.#fontSize}px * var(--total-scale-factor))`;\n    style.color = this.color;\n    content.replaceChildren();\n    for (const line of this.#content.split(\"\\n\")) {\n      const div = document.createElement(\"div\");\n      div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n      content.append(div);\n    }\n    annotation.updateEdited({\n      rect: this.getPDFRect(),\n      popup: this._uiManager.hasCommentManager() || this.hasEditedComment ? this.comment : {\n        text: this.#content\n      }\n    });\n    return content;\n  }\n  resetAnnotationElement(annotation) {\n    super.resetAnnotationElement(annotation);\n    annotation.resetEdited();\n  }\n}\n\n;// ./src/display/editor/drawers/outline.js\n\nclass Outline {\n  static PRECISION = 1e-4;\n  toSVGPath() {\n    unreachable(\"Abstract method `toSVGPath` must be implemented.\");\n  }\n  get box() {\n    unreachable(\"Abstract getter `box` must be implemented.\");\n  }\n  serialize(_bbox, _rotation) {\n    unreachable(\"Abstract method `serialize` must be implemented.\");\n  }\n  static _rescale(src, tx, ty, sx, sy, dest) {\n    dest ||= new Float32Array(src.length);\n    for (let i = 0, ii = src.length; i < ii; i += 2) {\n      dest[i] = tx + src[i] * sx;\n      dest[i + 1] = ty + src[i + 1] * sy;\n    }\n    return dest;\n  }\n  static _rescaleAndSwap(src, tx, ty, sx, sy, dest) {\n    dest ||= new Float32Array(src.length);\n    for (let i = 0, ii = src.length; i < ii; i += 2) {\n      dest[i] = tx + src[i + 1] * sx;\n      dest[i + 1] = ty + src[i] * sy;\n    }\n    return dest;\n  }\n  static _translate(src, tx, ty, dest) {\n    dest ||= new Float32Array(src.length);\n    for (let i = 0, ii = src.length; i < ii; i += 2) {\n      dest[i] = tx + src[i];\n      dest[i + 1] = ty + src[i + 1];\n    }\n    return dest;\n  }\n  static svgRound(x) {\n    return Math.round(x * 10000);\n  }\n  static _normalizePoint(x, y, parentWidth, parentHeight, rotation) {\n    switch (rotation) {\n      case 90:\n        return [1 - y / parentWidth, x / parentHeight];\n      case 180:\n        return [1 - x / parentWidth, 1 - y / parentHeight];\n      case 270:\n        return [y / parentWidth, 1 - x / parentHeight];\n      default:\n        return [x / parentWidth, y / parentHeight];\n    }\n  }\n  static createBezierPoints(x1, y1, x2, y2, x3, y3) {\n    return [(x1 + 5 * x2) / 6, (y1 + 5 * y2) / 6, (5 * x2 + x3) / 6, (5 * y2 + y3) / 6, (x2 + x3) / 2, (y2 + y3) / 2];\n  }\n}\n\n;// ./src/display/editor/drawers/freedraw.js\n\n\nclass FreeDrawOutliner {\n  #box;\n  #bottom = [];\n  #innerMargin;\n  #isLTR;\n  #top = [];\n  #last = new Float32Array(18);\n  #lastX;\n  #lastY;\n  #min;\n  #min_dist;\n  #scaleFactor;\n  #thickness;\n  #points = [];\n  static #MIN_DIST = 8;\n  static #MIN_DIFF = 2;\n  static #MIN = FreeDrawOutliner.#MIN_DIST + FreeDrawOutliner.#MIN_DIFF;\n  constructor({\n    x,\n    y\n  }, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n    this.#box = box;\n    this.#thickness = thickness * scaleFactor;\n    this.#isLTR = isLTR;\n    this.#last.set([NaN, NaN, NaN, NaN, x, y], 6);\n    this.#innerMargin = innerMargin;\n    this.#min_dist = FreeDrawOutliner.#MIN_DIST * scaleFactor;\n    this.#min = FreeDrawOutliner.#MIN * scaleFactor;\n    this.#scaleFactor = scaleFactor;\n    this.#points.push(x, y);\n  }\n  isEmpty() {\n    return isNaN(this.#last[8]);\n  }\n  #getLastCoords() {\n    const lastTop = this.#last.subarray(4, 6);\n    const lastBottom = this.#last.subarray(16, 18);\n    const [x, y, width, height] = this.#box;\n    return [(this.#lastX + (lastTop[0] - lastBottom[0]) / 2 - x) / width, (this.#lastY + (lastTop[1] - lastBottom[1]) / 2 - y) / height, (this.#lastX + (lastBottom[0] - lastTop[0]) / 2 - x) / width, (this.#lastY + (lastBottom[1] - lastTop[1]) / 2 - y) / height];\n  }\n  add({\n    x,\n    y\n  }) {\n    this.#lastX = x;\n    this.#lastY = y;\n    const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n    let [x1, y1, x2, y2] = this.#last.subarray(8, 12);\n    const diffX = x - x2;\n    const diffY = y - y2;\n    const d = Math.hypot(diffX, diffY);\n    if (d < this.#min) {\n      return false;\n    }\n    const diffD = d - this.#min_dist;\n    const K = diffD / d;\n    const shiftX = K * diffX;\n    const shiftY = K * diffY;\n    let x0 = x1;\n    let y0 = y1;\n    x1 = x2;\n    y1 = y2;\n    x2 += shiftX;\n    y2 += shiftY;\n    this.#points?.push(x, y);\n    const nX = -shiftY / diffD;\n    const nY = shiftX / diffD;\n    const thX = nX * this.#thickness;\n    const thY = nY * this.#thickness;\n    this.#last.set(this.#last.subarray(2, 8), 0);\n    this.#last.set([x2 + thX, y2 + thY], 4);\n    this.#last.set(this.#last.subarray(14, 18), 12);\n    this.#last.set([x2 - thX, y2 - thY], 16);\n    if (isNaN(this.#last[6])) {\n      if (this.#top.length === 0) {\n        this.#last.set([x1 + thX, y1 + thY], 2);\n        this.#top.push(NaN, NaN, NaN, NaN, (x1 + thX - layerX) / layerWidth, (y1 + thY - layerY) / layerHeight);\n        this.#last.set([x1 - thX, y1 - thY], 14);\n        this.#bottom.push(NaN, NaN, NaN, NaN, (x1 - thX - layerX) / layerWidth, (y1 - thY - layerY) / layerHeight);\n      }\n      this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n      return !this.isEmpty();\n    }\n    this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n    const angle = Math.abs(Math.atan2(y0 - y1, x0 - x1) - Math.atan2(shiftY, shiftX));\n    if (angle < Math.PI / 2) {\n      [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n      this.#top.push(NaN, NaN, NaN, NaN, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n      [x1, y1, x0, y0] = this.#last.subarray(14, 18);\n      this.#bottom.push(NaN, NaN, NaN, NaN, ((x0 + x1) / 2 - layerX) / layerWidth, ((y0 + y1) / 2 - layerY) / layerHeight);\n      return true;\n    }\n    [x0, y0, x1, y1, x2, y2] = this.#last.subarray(0, 6);\n    this.#top.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n    [x2, y2, x1, y1, x0, y0] = this.#last.subarray(12, 18);\n    this.#bottom.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n    return true;\n  }\n  toSVGPath() {\n    if (this.isEmpty()) {\n      return \"\";\n    }\n    const top = this.#top;\n    const bottom = this.#bottom;\n    if (isNaN(this.#last[6]) && !this.isEmpty()) {\n      return this.#toSVGPathTwoPoints();\n    }\n    const buffer = [];\n    buffer.push(`M${top[4]} ${top[5]}`);\n    for (let i = 6; i < top.length; i += 6) {\n      if (isNaN(top[i])) {\n        buffer.push(`L${top[i + 4]} ${top[i + 5]}`);\n      } else {\n        buffer.push(`C${top[i]} ${top[i + 1]} ${top[i + 2]} ${top[i + 3]} ${top[i + 4]} ${top[i + 5]}`);\n      }\n    }\n    this.#toSVGPathEnd(buffer);\n    for (let i = bottom.length - 6; i >= 6; i -= 6) {\n      if (isNaN(bottom[i])) {\n        buffer.push(`L${bottom[i + 4]} ${bottom[i + 5]}`);\n      } else {\n        buffer.push(`C${bottom[i]} ${bottom[i + 1]} ${bottom[i + 2]} ${bottom[i + 3]} ${bottom[i + 4]} ${bottom[i + 5]}`);\n      }\n    }\n    this.#toSVGPathStart(buffer);\n    return buffer.join(\" \");\n  }\n  #toSVGPathTwoPoints() {\n    const [x, y, width, height] = this.#box;\n    const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n    return `M${(this.#last[2] - x) / width} ${(this.#last[3] - y) / height} L${(this.#last[4] - x) / width} ${(this.#last[5] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(this.#last[16] - x) / width} ${(this.#last[17] - y) / height} L${(this.#last[14] - x) / width} ${(this.#last[15] - y) / height} Z`;\n  }\n  #toSVGPathStart(buffer) {\n    const bottom = this.#bottom;\n    buffer.push(`L${bottom[4]} ${bottom[5]} Z`);\n  }\n  #toSVGPathEnd(buffer) {\n    const [x, y, width, height] = this.#box;\n    const lastTop = this.#last.subarray(4, 6);\n    const lastBottom = this.#last.subarray(16, 18);\n    const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n    buffer.push(`L${(lastTop[0] - x) / width} ${(lastTop[1] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(lastBottom[0] - x) / width} ${(lastBottom[1] - y) / height}`);\n  }\n  newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n    return new FreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n  }\n  getOutlines() {\n    const top = this.#top;\n    const bottom = this.#bottom;\n    const last = this.#last;\n    const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n    const points = new Float32Array((this.#points?.length ?? 0) + 2);\n    for (let i = 0, ii = points.length - 2; i < ii; i += 2) {\n      points[i] = (this.#points[i] - layerX) / layerWidth;\n      points[i + 1] = (this.#points[i + 1] - layerY) / layerHeight;\n    }\n    points[points.length - 2] = (this.#lastX - layerX) / layerWidth;\n    points[points.length - 1] = (this.#lastY - layerY) / layerHeight;\n    if (isNaN(last[6]) && !this.isEmpty()) {\n      return this.#getOutlineTwoPoints(points);\n    }\n    const outline = new Float32Array(this.#top.length + 24 + this.#bottom.length);\n    let N = top.length;\n    for (let i = 0; i < N; i += 2) {\n      if (isNaN(top[i])) {\n        outline[i] = outline[i + 1] = NaN;\n        continue;\n      }\n      outline[i] = top[i];\n      outline[i + 1] = top[i + 1];\n    }\n    N = this.#getOutlineEnd(outline, N);\n    for (let i = bottom.length - 6; i >= 6; i -= 6) {\n      for (let j = 0; j < 6; j += 2) {\n        if (isNaN(bottom[i + j])) {\n          outline[N] = outline[N + 1] = NaN;\n          N += 2;\n          continue;\n        }\n        outline[N] = bottom[i + j];\n        outline[N + 1] = bottom[i + j + 1];\n        N += 2;\n      }\n    }\n    this.#getOutlineStart(outline, N);\n    return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n  }\n  #getOutlineTwoPoints(points) {\n    const last = this.#last;\n    const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n    const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n    const outline = new Float32Array(36);\n    outline.set([NaN, NaN, NaN, NaN, (last[2] - layerX) / layerWidth, (last[3] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[4] - layerX) / layerWidth, (last[5] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (last[16] - layerX) / layerWidth, (last[17] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[14] - layerX) / layerWidth, (last[15] - layerY) / layerHeight], 0);\n    return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n  }\n  #getOutlineStart(outline, pos) {\n    const bottom = this.#bottom;\n    outline.set([NaN, NaN, NaN, NaN, bottom[4], bottom[5]], pos);\n    return pos += 6;\n  }\n  #getOutlineEnd(outline, pos) {\n    const lastTop = this.#last.subarray(4, 6);\n    const lastBottom = this.#last.subarray(16, 18);\n    const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n    const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n    outline.set([NaN, NaN, NaN, NaN, (lastTop[0] - layerX) / layerWidth, (lastTop[1] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (lastBottom[0] - layerX) / layerWidth, (lastBottom[1] - layerY) / layerHeight], pos);\n    return pos += 24;\n  }\n}\nclass FreeDrawOutline extends Outline {\n  #box;\n  #bbox = new Float32Array(4);\n  #innerMargin;\n  #isLTR;\n  #points;\n  #scaleFactor;\n  #outline;\n  constructor(outline, points, box, scaleFactor, innerMargin, isLTR) {\n    super();\n    this.#outline = outline;\n    this.#points = points;\n    this.#box = box;\n    this.#scaleFactor = scaleFactor;\n    this.#innerMargin = innerMargin;\n    this.#isLTR = isLTR;\n    this.firstPoint = [NaN, NaN];\n    this.lastPoint = [NaN, NaN];\n    this.#computeMinMax(isLTR);\n    const [x, y, width, height] = this.#bbox;\n    for (let i = 0, ii = outline.length; i < ii; i += 2) {\n      outline[i] = (outline[i] - x) / width;\n      outline[i + 1] = (outline[i + 1] - y) / height;\n    }\n    for (let i = 0, ii = points.length; i < ii; i += 2) {\n      points[i] = (points[i] - x) / width;\n      points[i + 1] = (points[i + 1] - y) / height;\n    }\n  }\n  toSVGPath() {\n    const buffer = [`M${this.#outline[4]} ${this.#outline[5]}`];\n    for (let i = 6, ii = this.#outline.length; i < ii; i += 6) {\n      if (isNaN(this.#outline[i])) {\n        buffer.push(`L${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n        continue;\n      }\n      buffer.push(`C${this.#outline[i]} ${this.#outline[i + 1]} ${this.#outline[i + 2]} ${this.#outline[i + 3]} ${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n    }\n    buffer.push(\"Z\");\n    return buffer.join(\" \");\n  }\n  serialize([blX, blY, trX, trY], rotation) {\n    const width = trX - blX;\n    const height = trY - blY;\n    let outline;\n    let points;\n    switch (rotation) {\n      case 0:\n        outline = Outline._rescale(this.#outline, blX, trY, width, -height);\n        points = Outline._rescale(this.#points, blX, trY, width, -height);\n        break;\n      case 90:\n        outline = Outline._rescaleAndSwap(this.#outline, blX, blY, width, height);\n        points = Outline._rescaleAndSwap(this.#points, blX, blY, width, height);\n        break;\n      case 180:\n        outline = Outline._rescale(this.#outline, trX, blY, -width, height);\n        points = Outline._rescale(this.#points, trX, blY, -width, height);\n        break;\n      case 270:\n        outline = Outline._rescaleAndSwap(this.#outline, trX, trY, -width, -height);\n        points = Outline._rescaleAndSwap(this.#points, trX, trY, -width, -height);\n        break;\n    }\n    return {\n      outline: Array.from(outline),\n      points: [Array.from(points)]\n    };\n  }\n  #computeMinMax(isLTR) {\n    const outline = this.#outline;\n    let lastX = outline[4];\n    let lastY = outline[5];\n    const minMax = [lastX, lastY, lastX, lastY];\n    let firstPointX = lastX;\n    let firstPointY = lastY;\n    let lastPointX = lastX;\n    let lastPointY = lastY;\n    const ltrCallback = isLTR ? Math.max : Math.min;\n    const bezierBbox = new Float32Array(4);\n    for (let i = 6, ii = outline.length; i < ii; i += 6) {\n      const x = outline[i + 4],\n        y = outline[i + 5];\n      if (isNaN(outline[i])) {\n        Util.pointBoundingBox(x, y, minMax);\n        if (firstPointY > y) {\n          firstPointX = x;\n          firstPointY = y;\n        } else if (firstPointY === y) {\n          firstPointX = ltrCallback(firstPointX, x);\n        }\n        if (lastPointY < y) {\n          lastPointX = x;\n          lastPointY = y;\n        } else if (lastPointY === y) {\n          lastPointX = ltrCallback(lastPointX, x);\n        }\n      } else {\n        bezierBbox.set(BBOX_INIT, 0);\n        Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i, i + 6), bezierBbox);\n        Util.rectBoundingBox(...bezierBbox, minMax);\n        if (firstPointY > bezierBbox[1]) {\n          firstPointX = bezierBbox[0];\n          firstPointY = bezierBbox[1];\n        } else if (firstPointY === bezierBbox[1]) {\n          firstPointX = ltrCallback(firstPointX, bezierBbox[0]);\n        }\n        if (lastPointY < bezierBbox[3]) {\n          lastPointX = bezierBbox[2];\n          lastPointY = bezierBbox[3];\n        } else if (lastPointY === bezierBbox[3]) {\n          lastPointX = ltrCallback(lastPointX, bezierBbox[2]);\n        }\n      }\n      lastX = x;\n      lastY = y;\n    }\n    const bbox = this.#bbox;\n    bbox[0] = minMax[0] - this.#innerMargin;\n    bbox[1] = minMax[1] - this.#innerMargin;\n    bbox[2] = minMax[2] - minMax[0] + 2 * this.#innerMargin;\n    bbox[3] = minMax[3] - minMax[1] + 2 * this.#innerMargin;\n    this.firstPoint = [firstPointX, firstPointY];\n    this.lastPoint = [lastPointX, lastPointY];\n  }\n  get box() {\n    return this.#bbox;\n  }\n  newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n    return new FreeDrawOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n  }\n  getNewOutline(thickness, innerMargin) {\n    const [x, y, width, height] = this.#bbox;\n    const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n    const sx = width * layerWidth;\n    const sy = height * layerHeight;\n    const tx = x * layerWidth + layerX;\n    const ty = y * layerHeight + layerY;\n    const outliner = this.newOutliner({\n      x: this.#points[0] * sx + tx,\n      y: this.#points[1] * sy + ty\n    }, this.#box, this.#scaleFactor, thickness, this.#isLTR, innerMargin ?? this.#innerMargin);\n    for (let i = 2; i < this.#points.length; i += 2) {\n      outliner.add({\n        x: this.#points[i] * sx + tx,\n        y: this.#points[i + 1] * sy + ty\n      });\n    }\n    return outliner.getOutlines();\n  }\n}\n\n;// ./src/display/editor/drawers/highlight.js\n\n\n\nclass HighlightOutliner {\n  #box;\n  #firstPoint;\n  #lastPoint;\n  #verticalEdges = [];\n  #intervals = [];\n  constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {\n    const minMax = BBOX_INIT.slice();\n    const NUMBER_OF_DIGITS = 4;\n    const EPSILON = 10 ** -NUMBER_OF_DIGITS;\n    for (const {\n      x,\n      y,\n      width,\n      height\n    } of boxes) {\n      const x1 = Math.floor((x - borderWidth) / EPSILON) * EPSILON;\n      const x2 = Math.ceil((x + width + borderWidth) / EPSILON) * EPSILON;\n      const y1 = Math.floor((y - borderWidth) / EPSILON) * EPSILON;\n      const y2 = Math.ceil((y + height + borderWidth) / EPSILON) * EPSILON;\n      const left = [x1, y1, y2, true];\n      const right = [x2, y1, y2, false];\n      this.#verticalEdges.push(left, right);\n      Util.rectBoundingBox(x1, y1, x2, y2, minMax);\n    }\n    const bboxWidth = minMax[2] - minMax[0] + 2 * innerMargin;\n    const bboxHeight = minMax[3] - minMax[1] + 2 * innerMargin;\n    const shiftedMinX = minMax[0] - innerMargin;\n    const shiftedMinY = minMax[1] - innerMargin;\n    let firstPointX = isLTR ? -Infinity : Infinity;\n    let firstPointY = Infinity;\n    const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2);\n    const lastPoint = [lastEdge[0], lastEdge[2]];\n    for (const edge of this.#verticalEdges) {\n      const [x, y1, y2, left] = edge;\n      if (!left && isLTR) {\n        if (y1 < firstPointY) {\n          firstPointY = y1;\n          firstPointX = x;\n        } else if (y1 === firstPointY) {\n          firstPointX = Math.max(firstPointX, x);\n        }\n      } else if (left && !isLTR) {\n        if (y1 < firstPointY) {\n          firstPointY = y1;\n          firstPointX = x;\n        } else if (y1 === firstPointY) {\n          firstPointX = Math.min(firstPointX, x);\n        }\n      }\n      edge[0] = (x - shiftedMinX) / bboxWidth;\n      edge[1] = (y1 - shiftedMinY) / bboxHeight;\n      edge[2] = (y2 - shiftedMinY) / bboxHeight;\n    }\n    this.#box = new Float32Array([shiftedMinX, shiftedMinY, bboxWidth, bboxHeight]);\n    this.#firstPoint = [firstPointX, firstPointY];\n    this.#lastPoint = lastPoint;\n  }\n  getOutlines() {\n    this.#verticalEdges.sort((a, b) => a[0] - b[0] || a[1] - b[1] || a[2] - b[2]);\n    const outlineVerticalEdges = [];\n    for (const edge of this.#verticalEdges) {\n      if (edge[3]) {\n        outlineVerticalEdges.push(...this.#breakEdge(edge));\n        this.#insert(edge);\n      } else {\n        this.#remove(edge);\n        outlineVerticalEdges.push(...this.#breakEdge(edge));\n      }\n    }\n    return this.#getOutlines(outlineVerticalEdges);\n  }\n  #getOutlines(outlineVerticalEdges) {\n    const edges = [];\n    const allEdges = new Set();\n    for (const edge of outlineVerticalEdges) {\n      const [x, y1, y2] = edge;\n      edges.push([x, y1, edge], [x, y2, edge]);\n    }\n    edges.sort((a, b) => a[1] - b[1] || a[0] - b[0]);\n    for (let i = 0, ii = edges.length; i < ii; i += 2) {\n      const edge1 = edges[i][2];\n      const edge2 = edges[i + 1][2];\n      edge1.push(edge2);\n      edge2.push(edge1);\n      allEdges.add(edge1);\n      allEdges.add(edge2);\n    }\n    const outlines = [];\n    let outline;\n    while (allEdges.size > 0) {\n      const edge = allEdges.values().next().value;\n      let [x, y1, y2, edge1, edge2] = edge;\n      allEdges.delete(edge);\n      let lastPointX = x;\n      let lastPointY = y1;\n      outline = [x, y2];\n      outlines.push(outline);\n      while (true) {\n        let e;\n        if (allEdges.has(edge1)) {\n          e = edge1;\n        } else if (allEdges.has(edge2)) {\n          e = edge2;\n        } else {\n          break;\n        }\n        allEdges.delete(e);\n        [x, y1, y2, edge1, edge2] = e;\n        if (lastPointX !== x) {\n          outline.push(lastPointX, lastPointY, x, lastPointY === y1 ? y1 : y2);\n          lastPointX = x;\n        }\n        lastPointY = lastPointY === y1 ? y2 : y1;\n      }\n      outline.push(lastPointX, lastPointY);\n    }\n    return new HighlightOutline(outlines, this.#box, this.#firstPoint, this.#lastPoint);\n  }\n  #binarySearch(y) {\n    const array = this.#intervals;\n    let start = 0;\n    let end = array.length - 1;\n    while (start <= end) {\n      const middle = start + end >> 1;\n      const y1 = array[middle][0];\n      if (y1 === y) {\n        return middle;\n      }\n      if (y1 < y) {\n        start = middle + 1;\n      } else {\n        end = middle - 1;\n      }\n    }\n    return end + 1;\n  }\n  #insert([, y1, y2]) {\n    const index = this.#binarySearch(y1);\n    this.#intervals.splice(index, 0, [y1, y2]);\n  }\n  #remove([, y1, y2]) {\n    const index = this.#binarySearch(y1);\n    for (let i = index; i < this.#intervals.length; i++) {\n      const [start, end] = this.#intervals[i];\n      if (start !== y1) {\n        break;\n      }\n      if (start === y1 && end === y2) {\n        this.#intervals.splice(i, 1);\n        return;\n      }\n    }\n    for (let i = index - 1; i >= 0; i--) {\n      const [start, end] = this.#intervals[i];\n      if (start !== y1) {\n        break;\n      }\n      if (start === y1 && end === y2) {\n        this.#intervals.splice(i, 1);\n        return;\n      }\n    }\n  }\n  #breakEdge(edge) {\n    const [x, y1, y2] = edge;\n    const results = [[x, y1, y2]];\n    const index = this.#binarySearch(y2);\n    for (let i = 0; i < index; i++) {\n      const [start, end] = this.#intervals[i];\n      for (let j = 0, jj = results.length; j < jj; j++) {\n        const [, y3, y4] = results[j];\n        if (end <= y3 || y4 <= start) {\n          continue;\n        }\n        if (y3 >= start) {\n          if (y4 > end) {\n            results[j][1] = end;\n          } else {\n            if (jj === 1) {\n              return [];\n            }\n            results.splice(j, 1);\n            j--;\n            jj--;\n          }\n          continue;\n        }\n        results[j][2] = start;\n        if (y4 > end) {\n          results.push([x, end, y4]);\n        }\n      }\n    }\n    return results;\n  }\n}\nclass HighlightOutline extends Outline {\n  #box;\n  #outlines;\n  constructor(outlines, box, firstPoint, lastPoint) {\n    super();\n    this.#outlines = outlines;\n    this.#box = box;\n    this.firstPoint = firstPoint;\n    this.lastPoint = lastPoint;\n  }\n  toSVGPath() {\n    const buffer = [];\n    for (const polygon of this.#outlines) {\n      let [prevX, prevY] = polygon;\n      buffer.push(`M${prevX} ${prevY}`);\n      for (let i = 2; i < polygon.length; i += 2) {\n        const x = polygon[i];\n        const y = polygon[i + 1];\n        if (x === prevX) {\n          buffer.push(`V${y}`);\n          prevY = y;\n        } else if (y === prevY) {\n          buffer.push(`H${x}`);\n          prevX = x;\n        }\n      }\n      buffer.push(\"Z\");\n    }\n    return buffer.join(\" \");\n  }\n  serialize([blX, blY, trX, trY], _rotation) {\n    const outlines = [];\n    const width = trX - blX;\n    const height = trY - blY;\n    for (const outline of this.#outlines) {\n      const points = new Array(outline.length);\n      for (let i = 0; i < outline.length; i += 2) {\n        points[i] = blX + outline[i] * width;\n        points[i + 1] = trY - outline[i + 1] * height;\n      }\n      outlines.push(points);\n    }\n    return outlines;\n  }\n  get box() {\n    return this.#box;\n  }\n}\nclass FreeHighlightOutliner extends FreeDrawOutliner {\n  newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n    return new FreeHighlightOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n  }\n}\nclass FreeHighlightOutline extends FreeDrawOutline {\n  newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n    return new FreeHighlightOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n  }\n}\n\n;// ./src/display/editor/highlight.js\n\n\n\n\n\n\n\nclass HighlightEditor extends AnnotationEditor {\n  #anchorNode = null;\n  #anchorOffset = 0;\n  #boxes;\n  #clipPathId = null;\n  #colorPicker = null;\n  #focusOutlines = null;\n  #focusNode = null;\n  #focusOffset = 0;\n  #highlightDiv = null;\n  #highlightOutlines = null;\n  #id = null;\n  #isFreeHighlight = false;\n  #firstPoint = null;\n  #lastPoint = null;\n  #outlineId = null;\n  #text = \"\";\n  #thickness;\n  #methodOfCreation = \"\";\n  static _defaultColor = null;\n  static _defaultOpacity = 1;\n  static _defaultThickness = 12;\n  static _type = \"highlight\";\n  static _editorType = AnnotationEditorType.HIGHLIGHT;\n  static _freeHighlightId = -1;\n  static _freeHighlight = null;\n  static _freeHighlightClipId = \"\";\n  static get _keyboardManager() {\n    const proto = HighlightEditor.prototype;\n    return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ArrowLeft\"], proto._moveCaret, {\n      args: [0]\n    }], [[\"ArrowRight\"], proto._moveCaret, {\n      args: [1]\n    }], [[\"ArrowUp\"], proto._moveCaret, {\n      args: [2]\n    }], [[\"ArrowDown\"], proto._moveCaret, {\n      args: [3]\n    }]]));\n  }\n  constructor(params) {\n    super({\n      ...params,\n      name: \"highlightEditor\"\n    });\n    this.color = params.color || HighlightEditor._defaultColor;\n    this.#thickness = params.thickness || HighlightEditor._defaultThickness;\n    this.opacity = params.opacity || HighlightEditor._defaultOpacity;\n    this.#boxes = params.boxes || null;\n    this.#methodOfCreation = params.methodOfCreation || \"\";\n    this.#text = params.text || \"\";\n    this._isDraggable = false;\n    this.defaultL10nId = \"pdfjs-editor-highlight-editor\";\n    if (params.highlightId > -1) {\n      this.#isFreeHighlight = true;\n      this.#createFreeOutlines(params);\n      this.#addToDrawLayer();\n    } else if (this.#boxes) {\n      this.#anchorNode = params.anchorNode;\n      this.#anchorOffset = params.anchorOffset;\n      this.#focusNode = params.focusNode;\n      this.#focusOffset = params.focusOffset;\n      this.#createOutlines();\n      this.#addToDrawLayer();\n      this.rotate(this.rotation);\n    }\n    if (!this.annotationElementId) {\n      this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.highlight);\n    }\n  }\n  get telemetryInitialData() {\n    return {\n      action: \"added\",\n      type: this.#isFreeHighlight ? \"free_highlight\" : \"highlight\",\n      color: this._uiManager.getNonHCMColorName(this.color),\n      thickness: this.#thickness,\n      methodOfCreation: this.#methodOfCreation\n    };\n  }\n  get telemetryFinalData() {\n    return {\n      type: \"highlight\",\n      color: this._uiManager.getNonHCMColorName(this.color)\n    };\n  }\n  static computeTelemetryFinalData(data) {\n    return {\n      numberOfColors: data.get(\"color\").size\n    };\n  }\n  #createOutlines() {\n    const outliner = new HighlightOutliner(this.#boxes, 0.001);\n    this.#highlightOutlines = outliner.getOutlines();\n    [this.x, this.y, this.width, this.height] = this.#highlightOutlines.box;\n    const outlinerForOutline = new HighlightOutliner(this.#boxes, 0.0025, 0.001, this._uiManager.direction === \"ltr\");\n    this.#focusOutlines = outlinerForOutline.getOutlines();\n    const {\n      firstPoint\n    } = this.#highlightOutlines;\n    this.#firstPoint = [(firstPoint[0] - this.x) / this.width, (firstPoint[1] - this.y) / this.height];\n    const {\n      lastPoint\n    } = this.#focusOutlines;\n    this.#lastPoint = [(lastPoint[0] - this.x) / this.width, (lastPoint[1] - this.y) / this.height];\n  }\n  #createFreeOutlines({\n    highlightOutlines,\n    highlightId,\n    clipPathId\n  }) {\n    this.#highlightOutlines = highlightOutlines;\n    const extraThickness = 1.5;\n    this.#focusOutlines = highlightOutlines.getNewOutline(this.#thickness / 2 + extraThickness, 0.0025);\n    if (highlightId >= 0) {\n      this.#id = highlightId;\n      this.#clipPathId = clipPathId;\n      this.parent.drawLayer.finalizeDraw(highlightId, {\n        bbox: highlightOutlines.box,\n        path: {\n          d: highlightOutlines.toSVGPath()\n        }\n      });\n      this.#outlineId = this.parent.drawLayer.drawOutline({\n        rootClass: {\n          highlightOutline: true,\n          free: true\n        },\n        bbox: this.#focusOutlines.box,\n        path: {\n          d: this.#focusOutlines.toSVGPath()\n        }\n      }, true);\n    } else if (this.parent) {\n      const angle = this.parent.viewport.rotation;\n      this.parent.drawLayer.updateProperties(this.#id, {\n        bbox: HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360),\n        path: {\n          d: highlightOutlines.toSVGPath()\n        }\n      });\n      this.parent.drawLayer.updateProperties(this.#outlineId, {\n        bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),\n        path: {\n          d: this.#focusOutlines.toSVGPath()\n        }\n      });\n    }\n    const [x, y, width, height] = highlightOutlines.box;\n    switch (this.rotation) {\n      case 0:\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n        break;\n      case 90:\n        {\n          const [pageWidth, pageHeight] = this.parentDimensions;\n          this.x = y;\n          this.y = 1 - x;\n          this.width = width * pageHeight / pageWidth;\n          this.height = height * pageWidth / pageHeight;\n          break;\n        }\n      case 180:\n        this.x = 1 - x;\n        this.y = 1 - y;\n        this.width = width;\n        this.height = height;\n        break;\n      case 270:\n        {\n          const [pageWidth, pageHeight] = this.parentDimensions;\n          this.x = 1 - y;\n          this.y = x;\n          this.width = width * pageHeight / pageWidth;\n          this.height = height * pageWidth / pageHeight;\n          break;\n        }\n    }\n    const {\n      firstPoint\n    } = highlightOutlines;\n    this.#firstPoint = [(firstPoint[0] - x) / width, (firstPoint[1] - y) / height];\n    const {\n      lastPoint\n    } = this.#focusOutlines;\n    this.#lastPoint = [(lastPoint[0] - x) / width, (lastPoint[1] - y) / height];\n  }\n  static initialize(l10n, uiManager) {\n    AnnotationEditor.initialize(l10n, uiManager);\n    HighlightEditor._defaultColor ||= uiManager.highlightColors?.values().next().value || \"#fff066\";\n  }\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n        HighlightEditor._defaultColor = value;\n        break;\n      case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n        HighlightEditor._defaultThickness = value;\n        break;\n    }\n  }\n  translateInPage(x, y) {}\n  get toolbarPosition() {\n    return this.#lastPoint;\n  }\n  get commentButtonPosition() {\n    return this.#firstPoint;\n  }\n  updateParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n        this.#updateColor(value);\n        break;\n      case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n        this.#updateThickness(value);\n        break;\n    }\n  }\n  static get defaultPropertiesToUpdate() {\n    return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, HighlightEditor._defaultThickness]];\n  }\n  get propertiesToUpdate() {\n    return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, this.color || HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, this.#thickness || HighlightEditor._defaultThickness], [AnnotationEditorParamsType.HIGHLIGHT_FREE, this.#isFreeHighlight]];\n  }\n  onUpdatedColor() {\n    this.parent?.drawLayer.updateProperties(this.#id, {\n      root: {\n        fill: this.color,\n        \"fill-opacity\": this.opacity\n      }\n    });\n    this.#colorPicker?.updateColor(this.color);\n    super.onUpdatedColor();\n  }\n  #updateColor(color) {\n    const setColorAndOpacity = (col, opa) => {\n      this.color = col;\n      this.opacity = opa;\n      this.onUpdatedColor();\n    };\n    const savedColor = this.color;\n    const savedOpacity = this.opacity;\n    this.addCommands({\n      cmd: setColorAndOpacity.bind(this, color, HighlightEditor._defaultOpacity),\n      undo: setColorAndOpacity.bind(this, savedColor, savedOpacity),\n      post: this._uiManager.updateUI.bind(this._uiManager, this),\n      mustExec: true,\n      type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n      overwriteIfSameType: true,\n      keepUndo: true\n    });\n    this._reportTelemetry({\n      action: \"color_changed\",\n      color: this._uiManager.getNonHCMColorName(color)\n    }, true);\n  }\n  #updateThickness(thickness) {\n    const savedThickness = this.#thickness;\n    const setThickness = th => {\n      this.#thickness = th;\n      this.#changeThickness(th);\n    };\n    this.addCommands({\n      cmd: setThickness.bind(this, thickness),\n      undo: setThickness.bind(this, savedThickness),\n      post: this._uiManager.updateUI.bind(this._uiManager, this),\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_THICKNESS,\n      overwriteIfSameType: true,\n      keepUndo: true\n    });\n    this._reportTelemetry({\n      action: \"thickness_changed\",\n      thickness\n    }, true);\n  }\n  get toolbarButtons() {\n    if (this._uiManager.highlightColors) {\n      const colorPicker = this.#colorPicker = new ColorPicker({\n        editor: this\n      });\n      return [[\"colorPicker\", colorPicker]];\n    }\n    return super.toolbarButtons;\n  }\n  disableEditing() {\n    super.disableEditing();\n    this.div.classList.toggle(\"disabled\", true);\n  }\n  enableEditing() {\n    super.enableEditing();\n    this.div.classList.toggle(\"disabled\", false);\n  }\n  fixAndSetPosition() {\n    return super.fixAndSetPosition(this.#getRotation());\n  }\n  getBaseTranslation() {\n    return [0, 0];\n  }\n  getRect(tx, ty) {\n    return super.getRect(tx, ty, this.#getRotation());\n  }\n  onceAdded(focus) {\n    if (!this.annotationElementId) {\n      this.parent.addUndoableEditor(this);\n    }\n    if (focus) {\n      this.div.focus();\n    }\n  }\n  remove() {\n    this.#cleanDrawLayer();\n    this._reportTelemetry({\n      action: \"deleted\"\n    });\n    super.remove();\n  }\n  rebuild() {\n    if (!this.parent) {\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n    this.#addToDrawLayer();\n    if (!this.isAttachedToDOM) {\n      this.parent.add(this);\n    }\n  }\n  setParent(parent) {\n    let mustBeSelected = false;\n    if (this.parent && !parent) {\n      this.#cleanDrawLayer();\n    } else if (parent) {\n      this.#addToDrawLayer(parent);\n      mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n    }\n    super.setParent(parent);\n    this.show(this._isVisible);\n    if (mustBeSelected) {\n      this.select();\n    }\n  }\n  #changeThickness(thickness) {\n    if (!this.#isFreeHighlight) {\n      return;\n    }\n    this.#createFreeOutlines({\n      highlightOutlines: this.#highlightOutlines.getNewOutline(thickness / 2)\n    });\n    this.fixAndSetPosition();\n    this.setDims();\n  }\n  #cleanDrawLayer() {\n    if (this.#id === null || !this.parent) {\n      return;\n    }\n    this.parent.drawLayer.remove(this.#id);\n    this.#id = null;\n    this.parent.drawLayer.remove(this.#outlineId);\n    this.#outlineId = null;\n  }\n  #addToDrawLayer(parent = this.parent) {\n    if (this.#id !== null) {\n      return;\n    }\n    ({\n      id: this.#id,\n      clipPathId: this.#clipPathId\n    } = parent.drawLayer.draw({\n      bbox: this.#highlightOutlines.box,\n      root: {\n        viewBox: \"0 0 1 1\",\n        fill: this.color,\n        \"fill-opacity\": this.opacity\n      },\n      rootClass: {\n        highlight: true,\n        free: this.#isFreeHighlight\n      },\n      path: {\n        d: this.#highlightOutlines.toSVGPath()\n      }\n    }, false, true));\n    this.#outlineId = parent.drawLayer.drawOutline({\n      rootClass: {\n        highlightOutline: true,\n        free: this.#isFreeHighlight\n      },\n      bbox: this.#focusOutlines.box,\n      path: {\n        d: this.#focusOutlines.toSVGPath()\n      }\n    }, this.#isFreeHighlight);\n    if (this.#highlightDiv) {\n      this.#highlightDiv.style.clipPath = this.#clipPathId;\n    }\n  }\n  static #rotateBbox([x, y, width, height], angle) {\n    switch (angle) {\n      case 90:\n        return [1 - y - height, x, height, width];\n      case 180:\n        return [1 - x - width, 1 - y - height, width, height];\n      case 270:\n        return [y, 1 - x - width, height, width];\n    }\n    return [x, y, width, height];\n  }\n  rotate(angle) {\n    const {\n      drawLayer\n    } = this.parent;\n    let box;\n    if (this.#isFreeHighlight) {\n      angle = (angle - this.rotation + 360) % 360;\n      box = HighlightEditor.#rotateBbox(this.#highlightOutlines.box, angle);\n    } else {\n      box = HighlightEditor.#rotateBbox([this.x, this.y, this.width, this.height], angle);\n    }\n    drawLayer.updateProperties(this.#id, {\n      bbox: box,\n      root: {\n        \"data-main-rotation\": angle\n      }\n    });\n    drawLayer.updateProperties(this.#outlineId, {\n      bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),\n      root: {\n        \"data-main-rotation\": angle\n      }\n    });\n  }\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n    const div = super.render();\n    if (this.#text) {\n      div.setAttribute(\"aria-label\", this.#text);\n      div.setAttribute(\"role\", \"mark\");\n    }\n    if (this.#isFreeHighlight) {\n      div.classList.add(\"free\");\n    } else {\n      this.div.addEventListener(\"keydown\", this.#keydown.bind(this), {\n        signal: this._uiManager._signal\n      });\n    }\n    const highlightDiv = this.#highlightDiv = document.createElement(\"div\");\n    div.append(highlightDiv);\n    highlightDiv.setAttribute(\"aria-hidden\", \"true\");\n    highlightDiv.className = \"internal\";\n    highlightDiv.style.clipPath = this.#clipPathId;\n    this.setDims();\n    bindEvents(this, this.#highlightDiv, [\"pointerover\", \"pointerleave\"]);\n    this.enableEditing();\n    return div;\n  }\n  pointerover() {\n    if (!this.isSelected) {\n      this.parent?.drawLayer.updateProperties(this.#outlineId, {\n        rootClass: {\n          hovered: true\n        }\n      });\n    }\n  }\n  pointerleave() {\n    if (!this.isSelected) {\n      this.parent?.drawLayer.updateProperties(this.#outlineId, {\n        rootClass: {\n          hovered: false\n        }\n      });\n    }\n  }\n  #keydown(event) {\n    HighlightEditor._keyboardManager.exec(this, event);\n  }\n  _moveCaret(direction) {\n    this.parent.unselect(this);\n    switch (direction) {\n      case 0:\n      case 2:\n        this.#setCaret(true);\n        break;\n      case 1:\n      case 3:\n        this.#setCaret(false);\n        break;\n    }\n  }\n  #setCaret(start) {\n    if (!this.#anchorNode) {\n      return;\n    }\n    const selection = window.getSelection();\n    if (start) {\n      selection.setPosition(this.#anchorNode, this.#anchorOffset);\n    } else {\n      selection.setPosition(this.#focusNode, this.#focusOffset);\n    }\n  }\n  select() {\n    super.select();\n    if (!this.#outlineId) {\n      return;\n    }\n    this.parent?.drawLayer.updateProperties(this.#outlineId, {\n      rootClass: {\n        hovered: false,\n        selected: true\n      }\n    });\n  }\n  unselect() {\n    super.unselect();\n    if (!this.#outlineId) {\n      return;\n    }\n    this.parent?.drawLayer.updateProperties(this.#outlineId, {\n      rootClass: {\n        selected: false\n      }\n    });\n    if (!this.#isFreeHighlight) {\n      this.#setCaret(false);\n    }\n  }\n  get _mustFixPosition() {\n    return !this.#isFreeHighlight;\n  }\n  show(visible = this._isVisible) {\n    super.show(visible);\n    if (this.parent) {\n      this.parent.drawLayer.updateProperties(this.#id, {\n        rootClass: {\n          hidden: !visible\n        }\n      });\n      this.parent.drawLayer.updateProperties(this.#outlineId, {\n        rootClass: {\n          hidden: !visible\n        }\n      });\n    }\n  }\n  #getRotation() {\n    return this.#isFreeHighlight ? this.rotation : 0;\n  }\n  #serializeBoxes() {\n    if (this.#isFreeHighlight) {\n      return null;\n    }\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    const [pageX, pageY] = this.pageTranslation;\n    const boxes = this.#boxes;\n    const quadPoints = new Float32Array(boxes.length * 8);\n    let i = 0;\n    for (const {\n      x,\n      y,\n      width,\n      height\n    } of boxes) {\n      const sx = x * pageWidth + pageX;\n      const sy = (1 - y) * pageHeight + pageY;\n      quadPoints[i] = quadPoints[i + 4] = sx;\n      quadPoints[i + 1] = quadPoints[i + 3] = sy;\n      quadPoints[i + 2] = quadPoints[i + 6] = sx + width * pageWidth;\n      quadPoints[i + 5] = quadPoints[i + 7] = sy - height * pageHeight;\n      i += 8;\n    }\n    return quadPoints;\n  }\n  #serializeOutlines(rect) {\n    return this.#highlightOutlines.serialize(rect, this.#getRotation());\n  }\n  static startHighlighting(parent, isLTR, {\n    target: textLayer,\n    x,\n    y\n  }) {\n    const {\n      x: layerX,\n      y: layerY,\n      width: parentWidth,\n      height: parentHeight\n    } = textLayer.getBoundingClientRect();\n    const ac = new AbortController();\n    const signal = parent.combinedSignal(ac);\n    const pointerUpCallback = e => {\n      ac.abort();\n      this.#endHighlight(parent, e);\n    };\n    window.addEventListener(\"blur\", pointerUpCallback, {\n      signal\n    });\n    window.addEventListener(\"pointerup\", pointerUpCallback, {\n      signal\n    });\n    window.addEventListener(\"pointerdown\", stopEvent, {\n      capture: true,\n      passive: false,\n      signal\n    });\n    window.addEventListener(\"contextmenu\", noContextMenu, {\n      signal\n    });\n    textLayer.addEventListener(\"pointermove\", this.#highlightMove.bind(this, parent), {\n      signal\n    });\n    this._freeHighlight = new FreeHighlightOutliner({\n      x,\n      y\n    }, [layerX, layerY, parentWidth, parentHeight], parent.scale, this._defaultThickness / 2, isLTR, 0.001);\n    ({\n      id: this._freeHighlightId,\n      clipPathId: this._freeHighlightClipId\n    } = parent.drawLayer.draw({\n      bbox: [0, 0, 1, 1],\n      root: {\n        viewBox: \"0 0 1 1\",\n        fill: this._defaultColor,\n        \"fill-opacity\": this._defaultOpacity\n      },\n      rootClass: {\n        highlight: true,\n        free: true\n      },\n      path: {\n        d: this._freeHighlight.toSVGPath()\n      }\n    }, true, true));\n  }\n  static #highlightMove(parent, event) {\n    if (this._freeHighlight.add(event)) {\n      parent.drawLayer.updateProperties(this._freeHighlightId, {\n        path: {\n          d: this._freeHighlight.toSVGPath()\n        }\n      });\n    }\n  }\n  static #endHighlight(parent, event) {\n    if (!this._freeHighlight.isEmpty()) {\n      parent.createAndAddNewEditor(event, false, {\n        highlightId: this._freeHighlightId,\n        highlightOutlines: this._freeHighlight.getOutlines(),\n        clipPathId: this._freeHighlightClipId,\n        methodOfCreation: \"main_toolbar\"\n      });\n    } else {\n      parent.drawLayer.remove(this._freeHighlightId);\n    }\n    this._freeHighlightId = -1;\n    this._freeHighlight = null;\n    this._freeHighlightClipId = \"\";\n  }\n  static async deserialize(data, parent, uiManager) {\n    let initialData = null;\n    if (data instanceof HighlightAnnotationElement) {\n      const {\n        data: {\n          quadPoints,\n          rect,\n          rotation,\n          id,\n          color,\n          opacity,\n          popupRef,\n          richText,\n          contentsObj,\n          creationDate,\n          modificationDate\n        },\n        parent: {\n          page: {\n            pageNumber\n          }\n        }\n      } = data;\n      initialData = data = {\n        annotationType: AnnotationEditorType.HIGHLIGHT,\n        color: Array.from(color),\n        opacity,\n        quadPoints,\n        boxes: null,\n        pageIndex: pageNumber - 1,\n        rect: rect.slice(0),\n        rotation,\n        annotationElementId: id,\n        id,\n        deleted: false,\n        popupRef,\n        richText,\n        comment: contentsObj?.str || null,\n        creationDate,\n        modificationDate\n      };\n    } else if (data instanceof InkAnnotationElement) {\n      const {\n        data: {\n          inkLists,\n          rect,\n          rotation,\n          id,\n          color,\n          borderStyle: {\n            rawWidth: thickness\n          },\n          popupRef,\n          richText,\n          contentsObj,\n          creationDate,\n          modificationDate\n        },\n        parent: {\n          page: {\n            pageNumber\n          }\n        }\n      } = data;\n      initialData = data = {\n        annotationType: AnnotationEditorType.HIGHLIGHT,\n        color: Array.from(color),\n        thickness,\n        inkLists,\n        boxes: null,\n        pageIndex: pageNumber - 1,\n        rect: rect.slice(0),\n        rotation,\n        annotationElementId: id,\n        id,\n        deleted: false,\n        popupRef,\n        richText,\n        comment: contentsObj?.str || null,\n        creationDate,\n        modificationDate\n      };\n    }\n    const {\n      color,\n      quadPoints,\n      inkLists,\n      outlines,\n      opacity\n    } = data;\n    const editor = await super.deserialize(data, parent, uiManager);\n    editor.color = Util.makeHexColor(...color);\n    editor.opacity = opacity || 1;\n    if (inkLists) {\n      editor.#thickness = data.thickness;\n    }\n    editor._initialData = initialData;\n    if (data.comment) {\n      editor.setCommentData(data);\n    }\n    const [pageWidth, pageHeight] = editor.pageDimensions;\n    const [pageX, pageY] = editor.pageTranslation;\n    if (quadPoints) {\n      const boxes = editor.#boxes = [];\n      for (let i = 0; i < quadPoints.length; i += 8) {\n        boxes.push({\n          x: (quadPoints[i] - pageX) / pageWidth,\n          y: 1 - (quadPoints[i + 1] - pageY) / pageHeight,\n          width: (quadPoints[i + 2] - quadPoints[i]) / pageWidth,\n          height: (quadPoints[i + 1] - quadPoints[i + 5]) / pageHeight\n        });\n      }\n      editor.#createOutlines();\n      editor.#addToDrawLayer();\n      editor.rotate(editor.rotation);\n    } else if (inkLists || outlines) {\n      editor.#isFreeHighlight = true;\n      const points = (inkLists || outlines.points)[0];\n      const point = {\n        x: points[0] - pageX,\n        y: pageHeight - (points[1] - pageY)\n      };\n      const outliner = new FreeHighlightOutliner(point, [0, 0, pageWidth, pageHeight], 1, editor.#thickness / 2, true, 0.001);\n      for (let i = 0, ii = points.length; i < ii; i += 2) {\n        point.x = points[i] - pageX;\n        point.y = pageHeight - (points[i + 1] - pageY);\n        outliner.add(point);\n      }\n      const {\n        id,\n        clipPathId\n      } = parent.drawLayer.draw({\n        bbox: [0, 0, 1, 1],\n        root: {\n          viewBox: \"0 0 1 1\",\n          fill: editor.color,\n          \"fill-opacity\": editor._defaultOpacity\n        },\n        rootClass: {\n          highlight: true,\n          free: true\n        },\n        path: {\n          d: outliner.toSVGPath()\n        }\n      }, true, true);\n      editor.#createFreeOutlines({\n        highlightOutlines: outliner.getOutlines(),\n        highlightId: id,\n        clipPathId\n      });\n      editor.#addToDrawLayer();\n      editor.rotate(editor.parentRotation);\n    }\n    return editor;\n  }\n  serialize(isForCopying = false) {\n    if (this.isEmpty() || isForCopying) {\n      return null;\n    }\n    if (this.deleted) {\n      return this.serializeDeleted();\n    }\n    const color = AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));\n    const serialized = super.serialize(isForCopying);\n    Object.assign(serialized, {\n      color,\n      opacity: this.opacity,\n      thickness: this.#thickness,\n      quadPoints: this.#serializeBoxes(),\n      outlines: this.#serializeOutlines(serialized.rect)\n    });\n    this.addComment(serialized);\n    if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n      return null;\n    }\n    serialized.id = this.annotationElementId;\n    return serialized;\n  }\n  #hasElementChanged(serialized) {\n    const {\n      color\n    } = this._initialData;\n    return this.hasEditedComment || serialized.color.some((c, i) => c !== color[i]);\n  }\n  renderAnnotationElement(annotation) {\n    if (this.deleted) {\n      annotation.hide();\n      return null;\n    }\n    annotation.updateEdited({\n      rect: this.getPDFRect(),\n      popup: this.comment\n    });\n    return null;\n  }\n  static canCreateNewEmptyEditor() {\n    return false;\n  }\n}\n\n;// ./src/display/editor/draw.js\n\n\n\n\nclass DrawingOptions {\n  #svgProperties = Object.create(null);\n  updateProperty(name, value) {\n    this[name] = value;\n    this.updateSVGProperty(name, value);\n  }\n  updateProperties(properties) {\n    if (!properties) {\n      return;\n    }\n    for (const [name, value] of Object.entries(properties)) {\n      if (!name.startsWith(\"_\")) {\n        this.updateProperty(name, value);\n      }\n    }\n  }\n  updateSVGProperty(name, value) {\n    this.#svgProperties[name] = value;\n  }\n  toSVGProperties() {\n    const root = this.#svgProperties;\n    this.#svgProperties = Object.create(null);\n    return {\n      root\n    };\n  }\n  reset() {\n    this.#svgProperties = Object.create(null);\n  }\n  updateAll(options = this) {\n    this.updateProperties(options);\n  }\n  clone() {\n    unreachable(\"Not implemented\");\n  }\n}\nclass DrawingEditor extends AnnotationEditor {\n  #drawOutlines = null;\n  #mustBeCommitted;\n  _colorPicker = null;\n  _drawId = null;\n  static _currentDrawId = -1;\n  static _currentParent = null;\n  static #currentDraw = null;\n  static #currentDrawingAC = null;\n  static #currentDrawingOptions = null;\n  static _INNER_MARGIN = 3;\n  constructor(params) {\n    super(params);\n    this.#mustBeCommitted = params.mustBeCommitted || false;\n    this._addOutlines(params);\n  }\n  onUpdatedColor() {\n    this._colorPicker?.update(this.color);\n    super.onUpdatedColor();\n  }\n  onUpdatedOpacity() {\n    this._colorPicker?.updateOpacity?.(this.opacity);\n  }\n  _addOutlines(params) {\n    if (params.drawOutlines) {\n      this.#createDrawOutlines(params);\n      this.#addToDrawLayer();\n    }\n  }\n  #createDrawOutlines({\n    drawOutlines,\n    drawId,\n    drawingOptions\n  }) {\n    this.#drawOutlines = drawOutlines;\n    this._drawingOptions ||= drawingOptions;\n    if (!this.annotationElementId) {\n      this._uiManager.a11yAlert(AnnotationEditor._l10nAlert[this.editorType]);\n    }\n    if (drawId >= 0) {\n      this._drawId = drawId;\n      this.parent.drawLayer.finalizeDraw(drawId, drawOutlines.defaultProperties);\n    } else {\n      this._drawId = this.#createDrawing(drawOutlines, this.parent);\n    }\n    this.#updateBbox(drawOutlines.box);\n  }\n  #createDrawing(drawOutlines, parent) {\n    const {\n      id\n    } = parent.drawLayer.draw(DrawingEditor._mergeSVGProperties(this._drawingOptions.toSVGProperties(), drawOutlines.defaultSVGProperties), false, false);\n    return id;\n  }\n  static _mergeSVGProperties(p1, p2) {\n    const p1Keys = new Set(Object.keys(p1));\n    for (const [key, value] of Object.entries(p2)) {\n      if (p1Keys.has(key)) {\n        Object.assign(p1[key], value);\n      } else {\n        p1[key] = value;\n      }\n    }\n    return p1;\n  }\n  static getDefaultDrawingOptions(_options) {\n    unreachable(\"Not implemented\");\n  }\n  static get typesMap() {\n    unreachable(\"Not implemented\");\n  }\n  static get isDrawer() {\n    return true;\n  }\n  static get supportMultipleDrawings() {\n    return false;\n  }\n  static updateDefaultParams(type, value) {\n    const propertyName = this.typesMap.get(type);\n    if (propertyName) {\n      this._defaultDrawingOptions.updateProperty(propertyName, value);\n    }\n    if (this._currentParent) {\n      DrawingEditor.#currentDraw.updateProperty(propertyName, value);\n      this._currentParent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());\n    }\n  }\n  updateParams(type, value) {\n    const propertyName = this.constructor.typesMap.get(type);\n    if (propertyName) {\n      this._updateProperty(type, propertyName, value);\n    }\n  }\n  static get defaultPropertiesToUpdate() {\n    const properties = [];\n    const options = this._defaultDrawingOptions;\n    for (const [type, name] of this.typesMap) {\n      properties.push([type, options[name]]);\n    }\n    return properties;\n  }\n  get propertiesToUpdate() {\n    const properties = [];\n    const {\n      _drawingOptions\n    } = this;\n    for (const [type, name] of this.constructor.typesMap) {\n      properties.push([type, _drawingOptions[name]]);\n    }\n    return properties;\n  }\n  _updateProperty(type, name, value) {\n    const options = this._drawingOptions;\n    const savedValue = options[name];\n    const setter = val => {\n      options.updateProperty(name, val);\n      const bbox = this.#drawOutlines.updateProperty(name, val);\n      if (bbox) {\n        this.#updateBbox(bbox);\n      }\n      this.parent?.drawLayer.updateProperties(this._drawId, options.toSVGProperties());\n      if (type === this.colorType) {\n        this.onUpdatedColor();\n      } else if (type === this.opacityType) {\n        this.onUpdatedOpacity();\n      }\n    };\n    this.addCommands({\n      cmd: setter.bind(this, value),\n      undo: setter.bind(this, savedValue),\n      post: this._uiManager.updateUI.bind(this._uiManager, this),\n      mustExec: true,\n      type,\n      overwriteIfSameType: true,\n      keepUndo: true\n    });\n  }\n  _updateColorAndOpacity(color, opacity) {\n    const colorName = this.constructor.typesMap.get(this.colorType);\n    const opacityName = this.constructor.typesMap.get(this.opacityType);\n    const options = this._drawingOptions;\n    const savedColor = options[colorName];\n    const savedOpacity = options[opacityName];\n    const setter = (c, op) => {\n      options.updateProperty(colorName, c);\n      options.updateProperty(opacityName, op);\n      this.#drawOutlines.updateProperty(colorName, c);\n      this.#drawOutlines.updateProperty(opacityName, op);\n      this.parent?.drawLayer.updateProperties(this._drawId, options.toSVGProperties());\n      this.onUpdatedColor();\n      this.onUpdatedOpacity();\n    };\n    this.addCommands({\n      cmd: setter.bind(this, color, opacity),\n      undo: setter.bind(this, savedColor, savedOpacity),\n      post: this._uiManager.updateUI.bind(this._uiManager, this),\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_COLOR_AND_OPACITY,\n      overwriteIfSameType: true,\n      keepUndo: true\n    });\n  }\n  _onResizing() {\n    this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizingSVGProperties(this.#convertToDrawSpace()), {\n      bbox: this.#rotateBox()\n    }));\n  }\n  _onResized() {\n    this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizedSVGProperties(this.#convertToDrawSpace()), {\n      bbox: this.#rotateBox()\n    }));\n  }\n  _onTranslating(_x, _y) {\n    this.parent?.drawLayer.updateProperties(this._drawId, {\n      bbox: this.#rotateBox()\n    });\n  }\n  _onTranslated() {\n    this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathTranslatedSVGProperties(this.#convertToDrawSpace(), this.parentDimensions), {\n      bbox: this.#rotateBox()\n    }));\n  }\n  _onStartDragging() {\n    this.parent?.drawLayer.updateProperties(this._drawId, {\n      rootClass: {\n        moving: true\n      }\n    });\n  }\n  _onStopDragging() {\n    this.parent?.drawLayer.updateProperties(this._drawId, {\n      rootClass: {\n        moving: false\n      }\n    });\n  }\n  commit() {\n    super.commit();\n    this.disableEditMode();\n    this.disableEditing();\n  }\n  disableEditing() {\n    super.disableEditing();\n    this.div.classList.toggle(\"disabled\", true);\n  }\n  enableEditing() {\n    super.enableEditing();\n    this.div.classList.toggle(\"disabled\", false);\n  }\n  getBaseTranslation() {\n    return [0, 0];\n  }\n  get isResizable() {\n    return true;\n  }\n  onceAdded(focus) {\n    if (!this.annotationElementId) {\n      this.parent.addUndoableEditor(this);\n    }\n    this._isDraggable = true;\n    if (this.#mustBeCommitted) {\n      this.#mustBeCommitted = false;\n      this.commit();\n      this.parent.setSelected(this);\n      if (focus && this.isOnScreen) {\n        this.div.focus();\n      }\n    }\n  }\n  remove() {\n    this.#cleanDrawLayer();\n    super.remove();\n  }\n  rebuild() {\n    if (!this.parent) {\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n    this.#addToDrawLayer();\n    this.#updateBbox(this.#drawOutlines.box);\n    if (!this.isAttachedToDOM) {\n      this.parent.add(this);\n    }\n  }\n  setParent(parent) {\n    let mustBeSelected = false;\n    if (this.parent && !parent) {\n      this._uiManager.removeShouldRescale(this);\n      this.#cleanDrawLayer();\n    } else if (parent) {\n      this._uiManager.addShouldRescale(this);\n      this.#addToDrawLayer(parent);\n      mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n    }\n    super.setParent(parent);\n    if (mustBeSelected) {\n      this.select();\n    }\n  }\n  #cleanDrawLayer() {\n    if (this._drawId === null || !this.parent) {\n      return;\n    }\n    this.parent.drawLayer.remove(this._drawId);\n    this._drawId = null;\n    this._drawingOptions.reset();\n  }\n  #addToDrawLayer(parent = this.parent) {\n    if (this._drawId !== null && this.parent === parent) {\n      return;\n    }\n    if (this._drawId !== null) {\n      this.parent.drawLayer.updateParent(this._drawId, parent.drawLayer);\n      return;\n    }\n    this._drawingOptions.updateAll();\n    this._drawId = this.#createDrawing(this.#drawOutlines, parent);\n  }\n  #convertToParentSpace([x, y, width, height]) {\n    const {\n      parentDimensions: [pW, pH],\n      rotation\n    } = this;\n    switch (rotation) {\n      case 90:\n        return [y, 1 - x, width * (pH / pW), height * (pW / pH)];\n      case 180:\n        return [1 - x, 1 - y, width, height];\n      case 270:\n        return [1 - y, x, width * (pH / pW), height * (pW / pH)];\n      default:\n        return [x, y, width, height];\n    }\n  }\n  #convertToDrawSpace() {\n    const {\n      x,\n      y,\n      width,\n      height,\n      parentDimensions: [pW, pH],\n      rotation\n    } = this;\n    switch (rotation) {\n      case 90:\n        return [1 - y, x, width * (pW / pH), height * (pH / pW)];\n      case 180:\n        return [1 - x, 1 - y, width, height];\n      case 270:\n        return [y, 1 - x, width * (pW / pH), height * (pH / pW)];\n      default:\n        return [x, y, width, height];\n    }\n  }\n  #updateBbox(bbox) {\n    [this.x, this.y, this.width, this.height] = this.#convertToParentSpace(bbox);\n    if (this.div) {\n      this.fixAndSetPosition();\n      this.setDims();\n    }\n    this._onResized();\n  }\n  #rotateBox() {\n    const {\n      x,\n      y,\n      width,\n      height,\n      rotation,\n      parentRotation,\n      parentDimensions: [pW, pH]\n    } = this;\n    switch ((rotation * 4 + parentRotation) / 90) {\n      case 1:\n        return [1 - y - height, x, height, width];\n      case 2:\n        return [1 - x - width, 1 - y - height, width, height];\n      case 3:\n        return [y, 1 - x - width, height, width];\n      case 4:\n        return [x, y - width * (pW / pH), height * (pH / pW), width * (pW / pH)];\n      case 5:\n        return [1 - y, x, width * (pW / pH), height * (pH / pW)];\n      case 6:\n        return [1 - x - height * (pH / pW), 1 - y, height * (pH / pW), width * (pW / pH)];\n      case 7:\n        return [y - width * (pW / pH), 1 - x - height * (pH / pW), width * (pW / pH), height * (pH / pW)];\n      case 8:\n        return [x - width, y - height, width, height];\n      case 9:\n        return [1 - y, x - width, height, width];\n      case 10:\n        return [1 - x, 1 - y, width, height];\n      case 11:\n        return [y - height, 1 - x, height, width];\n      case 12:\n        return [x - height * (pH / pW), y, height * (pH / pW), width * (pW / pH)];\n      case 13:\n        return [1 - y - width * (pW / pH), x - height * (pH / pW), width * (pW / pH), height * (pH / pW)];\n      case 14:\n        return [1 - x, 1 - y - width * (pW / pH), height * (pH / pW), width * (pW / pH)];\n      case 15:\n        return [y, 1 - x, width * (pW / pH), height * (pH / pW)];\n      default:\n        return [x, y, width, height];\n    }\n  }\n  rotate() {\n    if (!this.parent) {\n      return;\n    }\n    this.parent.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties({\n      bbox: this.#rotateBox()\n    }, this.#drawOutlines.updateRotation((this.parentRotation - this.rotation + 360) % 360)));\n  }\n  onScaleChanging() {\n    if (!this.parent) {\n      return;\n    }\n    this.#updateBbox(this.#drawOutlines.updateParentDimensions(this.parentDimensions, this.parent.scale));\n  }\n  static onScaleChangingWhenDrawing() {}\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n    let baseX, baseY;\n    if (this._isCopy) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n    const div = super.render();\n    div.classList.add(\"draw\");\n    const drawDiv = document.createElement(\"div\");\n    div.append(drawDiv);\n    drawDiv.setAttribute(\"aria-hidden\", \"true\");\n    drawDiv.className = \"internal\";\n    this.setDims();\n    this._uiManager.addShouldRescale(this);\n    this.disableEditing();\n    if (this._isCopy) {\n      this._moveAfterPaste(baseX, baseY);\n    }\n    return div;\n  }\n  static createDrawerInstance(_x, _y, _parentWidth, _parentHeight, _rotation) {\n    unreachable(\"Not implemented\");\n  }\n  static startDrawing(parent, uiManager, _isLTR, event) {\n    const {\n      target,\n      offsetX: x,\n      offsetY: y,\n      pointerId,\n      pointerType\n    } = event;\n    if (CurrentPointers.isInitializedAndDifferentPointerType(pointerType)) {\n      return;\n    }\n    const {\n      viewport: {\n        rotation\n      }\n    } = parent;\n    const {\n      width: parentWidth,\n      height: parentHeight\n    } = target.getBoundingClientRect();\n    const ac = DrawingEditor.#currentDrawingAC = new AbortController();\n    const signal = parent.combinedSignal(ac);\n    CurrentPointers.setPointer(pointerType, pointerId);\n    window.addEventListener(\"pointerup\", e => {\n      if (CurrentPointers.isSamePointerIdOrRemove(e.pointerId)) {\n        this._endDraw(e);\n      }\n    }, {\n      signal\n    });\n    window.addEventListener(\"pointercancel\", e => {\n      if (CurrentPointers.isSamePointerIdOrRemove(e.pointerId)) {\n        this._currentParent.endDrawingSession();\n      }\n    }, {\n      signal\n    });\n    window.addEventListener(\"pointerdown\", e => {\n      if (!CurrentPointers.isSamePointerType(e.pointerType)) {\n        return;\n      }\n      CurrentPointers.initializeAndAddPointerId(e.pointerId);\n      if (DrawingEditor.#currentDraw.isCancellable()) {\n        DrawingEditor.#currentDraw.removeLastElement();\n        if (DrawingEditor.#currentDraw.isEmpty()) {\n          this._currentParent.endDrawingSession(true);\n        } else {\n          this._endDraw(null);\n        }\n      }\n    }, {\n      capture: true,\n      passive: false,\n      signal\n    });\n    window.addEventListener(\"contextmenu\", noContextMenu, {\n      signal\n    });\n    target.addEventListener(\"pointermove\", this._drawMove.bind(this), {\n      signal\n    });\n    target.addEventListener(\"touchmove\", e => {\n      if (CurrentPointers.isSameTimeStamp(e.timeStamp)) {\n        stopEvent(e);\n      }\n    }, {\n      signal\n    });\n    parent.toggleDrawing();\n    uiManager._editorUndoBar?.hide();\n    if (DrawingEditor.#currentDraw) {\n      parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.startNew(x, y, parentWidth, parentHeight, rotation));\n      return;\n    }\n    uiManager.updateUIForDefaultProperties(this);\n    DrawingEditor.#currentDraw = this.createDrawerInstance(x, y, parentWidth, parentHeight, rotation);\n    DrawingEditor.#currentDrawingOptions = this.getDefaultDrawingOptions();\n    this._currentParent = parent;\n    ({\n      id: this._currentDrawId\n    } = parent.drawLayer.draw(this._mergeSVGProperties(DrawingEditor.#currentDrawingOptions.toSVGProperties(), DrawingEditor.#currentDraw.defaultSVGProperties), true, false));\n  }\n  static _drawMove(event) {\n    CurrentPointers.isSameTimeStamp(event.timeStamp);\n    if (!DrawingEditor.#currentDraw) {\n      return;\n    }\n    const {\n      offsetX,\n      offsetY,\n      pointerId\n    } = event;\n    if (!CurrentPointers.isSamePointerId(pointerId)) {\n      return;\n    }\n    if (CurrentPointers.isUsingMultiplePointers()) {\n      this._endDraw(event);\n      return;\n    }\n    this._currentParent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.add(offsetX, offsetY));\n    CurrentPointers.setTimeStamp(event.timeStamp);\n    stopEvent(event);\n  }\n  static _cleanup(all) {\n    if (all) {\n      this._currentDrawId = -1;\n      this._currentParent = null;\n      DrawingEditor.#currentDraw = null;\n      DrawingEditor.#currentDrawingOptions = null;\n      CurrentPointers.clearTimeStamp();\n    }\n    if (DrawingEditor.#currentDrawingAC) {\n      DrawingEditor.#currentDrawingAC.abort();\n      DrawingEditor.#currentDrawingAC = null;\n      CurrentPointers.clearPointerIds();\n    }\n  }\n  static _endDraw(event) {\n    const parent = this._currentParent;\n    if (!parent) {\n      return;\n    }\n    parent.toggleDrawing(true);\n    this._cleanup(false);\n    if (event?.target === parent.div) {\n      parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.end(event.offsetX, event.offsetY));\n    }\n    if (this.supportMultipleDrawings) {\n      const draw = DrawingEditor.#currentDraw;\n      const drawId = this._currentDrawId;\n      const lastElement = draw.getLastElement();\n      parent.addCommands({\n        cmd: () => {\n          parent.drawLayer.updateProperties(drawId, draw.setLastElement(lastElement));\n        },\n        undo: () => {\n          parent.drawLayer.updateProperties(drawId, draw.removeLastElement());\n        },\n        mustExec: false,\n        type: AnnotationEditorParamsType.DRAW_STEP\n      });\n      return;\n    }\n    this.endDrawing(false);\n  }\n  static endDrawing(isAborted) {\n    const parent = this._currentParent;\n    if (!parent) {\n      return null;\n    }\n    parent.toggleDrawing(true);\n    parent.cleanUndoStack(AnnotationEditorParamsType.DRAW_STEP);\n    if (!DrawingEditor.#currentDraw.isEmpty()) {\n      const {\n        pageDimensions: [pageWidth, pageHeight],\n        scale\n      } = parent;\n      const editor = parent.createAndAddNewEditor({\n        offsetX: 0,\n        offsetY: 0\n      }, false, {\n        drawId: this._currentDrawId,\n        drawOutlines: DrawingEditor.#currentDraw.getOutlines(pageWidth * scale, pageHeight * scale, scale, this._INNER_MARGIN),\n        drawingOptions: DrawingEditor.#currentDrawingOptions,\n        mustBeCommitted: !isAborted\n      });\n      this._cleanup(true);\n      return editor;\n    }\n    parent.drawLayer.remove(this._currentDrawId);\n    this._cleanup(true);\n    return null;\n  }\n  createDrawingOptions(_data) {}\n  static deserializeDraw(_pageX, _pageY, _pageWidth, _pageHeight, _innerWidth, _data) {\n    unreachable(\"Not implemented\");\n  }\n  static async deserialize(data, parent, uiManager) {\n    const {\n      rawDims: {\n        pageWidth,\n        pageHeight,\n        pageX,\n        pageY\n      }\n    } = parent.viewport;\n    const drawOutlines = this.deserializeDraw(pageX, pageY, pageWidth, pageHeight, this._INNER_MARGIN, data);\n    const editor = await super.deserialize(data, parent, uiManager);\n    editor.createDrawingOptions(data);\n    editor.#createDrawOutlines({\n      drawOutlines\n    });\n    editor.#addToDrawLayer();\n    editor.onScaleChanging();\n    editor.rotate();\n    return editor;\n  }\n  serializeDraw(isForCopying) {\n    const [pageX, pageY] = this.pageTranslation;\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    return this.#drawOutlines.serialize([pageX, pageY, pageWidth, pageHeight], isForCopying);\n  }\n  renderAnnotationElement(annotation) {\n    annotation.updateEdited({\n      rect: this.getPDFRect()\n    });\n    return null;\n  }\n  static canCreateNewEmptyEditor() {\n    return false;\n  }\n}\n\n;// ./src/display/editor/drawers/inkdraw.js\n\n\n\nclass InkDrawOutliner {\n  #last = new Float64Array(6);\n  #line;\n  #lines;\n  #rotation;\n  #thickness;\n  #points;\n  #lastSVGPath = \"\";\n  #lastIndex = 0;\n  #outlines = new InkDrawOutline();\n  #parentWidth;\n  #parentHeight;\n  constructor(x, y, parentWidth, parentHeight, rotation, thickness) {\n    this.#parentWidth = parentWidth;\n    this.#parentHeight = parentHeight;\n    this.#rotation = rotation;\n    this.#thickness = thickness;\n    [x, y] = this.#normalizePoint(x, y);\n    const line = this.#line = [NaN, NaN, NaN, NaN, x, y];\n    this.#points = [x, y];\n    this.#lines = [{\n      line,\n      points: this.#points\n    }];\n    this.#last.set(line, 0);\n  }\n  updateProperty(name, value) {\n    if (name === \"stroke-width\") {\n      this.#thickness = value;\n    }\n  }\n  #normalizePoint(x, y) {\n    return Outline._normalizePoint(x, y, this.#parentWidth, this.#parentHeight, this.#rotation);\n  }\n  isEmpty() {\n    return !this.#lines?.length;\n  }\n  isCancellable() {\n    return this.#points.length <= 10;\n  }\n  add(x, y) {\n    [x, y] = this.#normalizePoint(x, y);\n    const [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n    const diffX = x - x2;\n    const diffY = y - y2;\n    const d = Math.hypot(this.#parentWidth * diffX, this.#parentHeight * diffY);\n    if (d <= 2) {\n      return null;\n    }\n    this.#points.push(x, y);\n    if (isNaN(x1)) {\n      this.#last.set([x2, y2, x, y], 2);\n      this.#line.push(NaN, NaN, NaN, NaN, x, y);\n      return {\n        path: {\n          d: this.toSVGPath()\n        }\n      };\n    }\n    if (isNaN(this.#last[0])) {\n      this.#line.splice(6, 6);\n    }\n    this.#last.set([x1, y1, x2, y2, x, y], 0);\n    this.#line.push(...Outline.createBezierPoints(x1, y1, x2, y2, x, y));\n    return {\n      path: {\n        d: this.toSVGPath()\n      }\n    };\n  }\n  end(x, y) {\n    const change = this.add(x, y);\n    if (change) {\n      return change;\n    }\n    if (this.#points.length === 2) {\n      return {\n        path: {\n          d: this.toSVGPath()\n        }\n      };\n    }\n    return null;\n  }\n  startNew(x, y, parentWidth, parentHeight, rotation) {\n    this.#parentWidth = parentWidth;\n    this.#parentHeight = parentHeight;\n    this.#rotation = rotation;\n    [x, y] = this.#normalizePoint(x, y);\n    const line = this.#line = [NaN, NaN, NaN, NaN, x, y];\n    this.#points = [x, y];\n    const last = this.#lines.at(-1);\n    if (last) {\n      last.line = new Float32Array(last.line);\n      last.points = new Float32Array(last.points);\n    }\n    this.#lines.push({\n      line,\n      points: this.#points\n    });\n    this.#last.set(line, 0);\n    this.#lastIndex = 0;\n    this.toSVGPath();\n    return null;\n  }\n  getLastElement() {\n    return this.#lines.at(-1);\n  }\n  setLastElement(element) {\n    if (!this.#lines) {\n      return this.#outlines.setLastElement(element);\n    }\n    this.#lines.push(element);\n    this.#line = element.line;\n    this.#points = element.points;\n    this.#lastIndex = 0;\n    return {\n      path: {\n        d: this.toSVGPath()\n      }\n    };\n  }\n  removeLastElement() {\n    if (!this.#lines) {\n      return this.#outlines.removeLastElement();\n    }\n    this.#lines.pop();\n    this.#lastSVGPath = \"\";\n    for (let i = 0, ii = this.#lines.length; i < ii; i++) {\n      const {\n        line,\n        points\n      } = this.#lines[i];\n      this.#line = line;\n      this.#points = points;\n      this.#lastIndex = 0;\n      this.toSVGPath();\n    }\n    return {\n      path: {\n        d: this.#lastSVGPath\n      }\n    };\n  }\n  toSVGPath() {\n    const firstX = Outline.svgRound(this.#line[4]);\n    const firstY = Outline.svgRound(this.#line[5]);\n    if (this.#points.length === 2) {\n      this.#lastSVGPath = `${this.#lastSVGPath} M ${firstX} ${firstY} Z`;\n      return this.#lastSVGPath;\n    }\n    if (this.#points.length <= 6) {\n      const i = this.#lastSVGPath.lastIndexOf(\"M\");\n      this.#lastSVGPath = `${this.#lastSVGPath.slice(0, i)} M ${firstX} ${firstY}`;\n      this.#lastIndex = 6;\n    }\n    if (this.#points.length === 4) {\n      const secondX = Outline.svgRound(this.#line[10]);\n      const secondY = Outline.svgRound(this.#line[11]);\n      this.#lastSVGPath = `${this.#lastSVGPath} L ${secondX} ${secondY}`;\n      this.#lastIndex = 12;\n      return this.#lastSVGPath;\n    }\n    const buffer = [];\n    if (this.#lastIndex === 0) {\n      buffer.push(`M ${firstX} ${firstY}`);\n      this.#lastIndex = 6;\n    }\n    for (let i = this.#lastIndex, ii = this.#line.length; i < ii; i += 6) {\n      const [c1x, c1y, c2x, c2y, x, y] = this.#line.slice(i, i + 6).map(Outline.svgRound);\n      buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`);\n    }\n    this.#lastSVGPath += buffer.join(\" \");\n    this.#lastIndex = this.#line.length;\n    return this.#lastSVGPath;\n  }\n  getOutlines(parentWidth, parentHeight, scale, innerMargin) {\n    const last = this.#lines.at(-1);\n    last.line = new Float32Array(last.line);\n    last.points = new Float32Array(last.points);\n    this.#outlines.build(this.#lines, parentWidth, parentHeight, scale, this.#rotation, this.#thickness, innerMargin);\n    this.#last = null;\n    this.#line = null;\n    this.#lines = null;\n    this.#lastSVGPath = null;\n    return this.#outlines;\n  }\n  get defaultSVGProperties() {\n    return {\n      root: {\n        viewBox: \"0 0 10000 10000\"\n      },\n      rootClass: {\n        draw: true\n      },\n      bbox: [0, 0, 1, 1]\n    };\n  }\n}\nclass InkDrawOutline extends Outline {\n  #bbox;\n  #currentRotation = 0;\n  #innerMargin;\n  #lines;\n  #parentWidth;\n  #parentHeight;\n  #parentScale;\n  #rotation;\n  #thickness;\n  build(lines, parentWidth, parentHeight, parentScale, rotation, thickness, innerMargin) {\n    this.#parentWidth = parentWidth;\n    this.#parentHeight = parentHeight;\n    this.#parentScale = parentScale;\n    this.#rotation = rotation;\n    this.#thickness = thickness;\n    this.#innerMargin = innerMargin ?? 0;\n    this.#lines = lines;\n    this.#computeBbox();\n  }\n  get thickness() {\n    return this.#thickness;\n  }\n  setLastElement(element) {\n    this.#lines.push(element);\n    return {\n      path: {\n        d: this.toSVGPath()\n      }\n    };\n  }\n  removeLastElement() {\n    this.#lines.pop();\n    return {\n      path: {\n        d: this.toSVGPath()\n      }\n    };\n  }\n  toSVGPath() {\n    const buffer = [];\n    for (const {\n      line\n    } of this.#lines) {\n      buffer.push(`M${Outline.svgRound(line[4])} ${Outline.svgRound(line[5])}`);\n      if (line.length === 6) {\n        buffer.push(\"Z\");\n        continue;\n      }\n      if (line.length === 12 && isNaN(line[6])) {\n        buffer.push(`L${Outline.svgRound(line[10])} ${Outline.svgRound(line[11])}`);\n        continue;\n      }\n      for (let i = 6, ii = line.length; i < ii; i += 6) {\n        const [c1x, c1y, c2x, c2y, x, y] = line.subarray(i, i + 6).map(Outline.svgRound);\n        buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`);\n      }\n    }\n    return buffer.join(\"\");\n  }\n  serialize([pageX, pageY, pageWidth, pageHeight], isForCopying) {\n    const serializedLines = [];\n    const serializedPoints = [];\n    const [x, y, width, height] = this.#getBBoxWithNoMargin();\n    let tx, ty, sx, sy, x1, y1, x2, y2, rescaleFn;\n    switch (this.#rotation) {\n      case 0:\n        rescaleFn = Outline._rescale;\n        tx = pageX;\n        ty = pageY + pageHeight;\n        sx = pageWidth;\n        sy = -pageHeight;\n        x1 = pageX + x * pageWidth;\n        y1 = pageY + (1 - y - height) * pageHeight;\n        x2 = pageX + (x + width) * pageWidth;\n        y2 = pageY + (1 - y) * pageHeight;\n        break;\n      case 90:\n        rescaleFn = Outline._rescaleAndSwap;\n        tx = pageX;\n        ty = pageY;\n        sx = pageWidth;\n        sy = pageHeight;\n        x1 = pageX + y * pageWidth;\n        y1 = pageY + x * pageHeight;\n        x2 = pageX + (y + height) * pageWidth;\n        y2 = pageY + (x + width) * pageHeight;\n        break;\n      case 180:\n        rescaleFn = Outline._rescale;\n        tx = pageX + pageWidth;\n        ty = pageY;\n        sx = -pageWidth;\n        sy = pageHeight;\n        x1 = pageX + (1 - x - width) * pageWidth;\n        y1 = pageY + y * pageHeight;\n        x2 = pageX + (1 - x) * pageWidth;\n        y2 = pageY + (y + height) * pageHeight;\n        break;\n      case 270:\n        rescaleFn = Outline._rescaleAndSwap;\n        tx = pageX + pageWidth;\n        ty = pageY + pageHeight;\n        sx = -pageWidth;\n        sy = -pageHeight;\n        x1 = pageX + (1 - y - height) * pageWidth;\n        y1 = pageY + (1 - x - width) * pageHeight;\n        x2 = pageX + (1 - y) * pageWidth;\n        y2 = pageY + (1 - x) * pageHeight;\n        break;\n    }\n    for (const {\n      line,\n      points\n    } of this.#lines) {\n      serializedLines.push(rescaleFn(line, tx, ty, sx, sy, isForCopying ? new Array(line.length) : null));\n      serializedPoints.push(rescaleFn(points, tx, ty, sx, sy, isForCopying ? new Array(points.length) : null));\n    }\n    return {\n      lines: serializedLines,\n      points: serializedPoints,\n      rect: [x1, y1, x2, y2]\n    };\n  }\n  static deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, {\n    paths: {\n      lines,\n      points\n    },\n    rotation,\n    thickness\n  }) {\n    const newLines = [];\n    let tx, ty, sx, sy, rescaleFn;\n    switch (rotation) {\n      case 0:\n        rescaleFn = Outline._rescale;\n        tx = -pageX / pageWidth;\n        ty = pageY / pageHeight + 1;\n        sx = 1 / pageWidth;\n        sy = -1 / pageHeight;\n        break;\n      case 90:\n        rescaleFn = Outline._rescaleAndSwap;\n        tx = -pageY / pageHeight;\n        ty = -pageX / pageWidth;\n        sx = 1 / pageHeight;\n        sy = 1 / pageWidth;\n        break;\n      case 180:\n        rescaleFn = Outline._rescale;\n        tx = pageX / pageWidth + 1;\n        ty = -pageY / pageHeight;\n        sx = -1 / pageWidth;\n        sy = 1 / pageHeight;\n        break;\n      case 270:\n        rescaleFn = Outline._rescaleAndSwap;\n        tx = pageY / pageHeight + 1;\n        ty = pageX / pageWidth + 1;\n        sx = -1 / pageHeight;\n        sy = -1 / pageWidth;\n        break;\n    }\n    if (!lines) {\n      lines = [];\n      for (const point of points) {\n        const len = point.length;\n        if (len === 2) {\n          lines.push(new Float32Array([NaN, NaN, NaN, NaN, point[0], point[1]]));\n          continue;\n        }\n        if (len === 4) {\n          lines.push(new Float32Array([NaN, NaN, NaN, NaN, point[0], point[1], NaN, NaN, NaN, NaN, point[2], point[3]]));\n          continue;\n        }\n        const line = new Float32Array(3 * (len - 2));\n        lines.push(line);\n        let [x1, y1, x2, y2] = point.subarray(0, 4);\n        line.set([NaN, NaN, NaN, NaN, x1, y1], 0);\n        for (let i = 4; i < len; i += 2) {\n          const x = point[i];\n          const y = point[i + 1];\n          line.set(Outline.createBezierPoints(x1, y1, x2, y2, x, y), (i - 2) * 3);\n          [x1, y1, x2, y2] = [x2, y2, x, y];\n        }\n      }\n    }\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      newLines.push({\n        line: rescaleFn(lines[i].map(x => x ?? NaN), tx, ty, sx, sy),\n        points: rescaleFn(points[i].map(x => x ?? NaN), tx, ty, sx, sy)\n      });\n    }\n    const outlines = new this.prototype.constructor();\n    outlines.build(newLines, pageWidth, pageHeight, 1, rotation, thickness, innerMargin);\n    return outlines;\n  }\n  #getMarginComponents(thickness = this.#thickness) {\n    const margin = this.#innerMargin + thickness / 2 * this.#parentScale;\n    return this.#rotation % 180 === 0 ? [margin / this.#parentWidth, margin / this.#parentHeight] : [margin / this.#parentHeight, margin / this.#parentWidth];\n  }\n  #getBBoxWithNoMargin() {\n    const [x, y, width, height] = this.#bbox;\n    const [marginX, marginY] = this.#getMarginComponents(0);\n    return [x + marginX, y + marginY, width - 2 * marginX, height - 2 * marginY];\n  }\n  #computeBbox() {\n    const bbox = this.#bbox = F32_BBOX_INIT.slice();\n    for (const {\n      line\n    } of this.#lines) {\n      if (line.length <= 12) {\n        for (let i = 4, ii = line.length; i < ii; i += 6) {\n          Util.pointBoundingBox(line[i], line[i + 1], bbox);\n        }\n        continue;\n      }\n      let lastX = line[4],\n        lastY = line[5];\n      for (let i = 6, ii = line.length; i < ii; i += 6) {\n        const [c1x, c1y, c2x, c2y, x, y] = line.subarray(i, i + 6);\n        Util.bezierBoundingBox(lastX, lastY, c1x, c1y, c2x, c2y, x, y, bbox);\n        lastX = x;\n        lastY = y;\n      }\n    }\n    const [marginX, marginY] = this.#getMarginComponents();\n    bbox[0] = MathClamp(bbox[0] - marginX, 0, 1);\n    bbox[1] = MathClamp(bbox[1] - marginY, 0, 1);\n    bbox[2] = MathClamp(bbox[2] + marginX, 0, 1);\n    bbox[3] = MathClamp(bbox[3] + marginY, 0, 1);\n    bbox[2] -= bbox[0];\n    bbox[3] -= bbox[1];\n  }\n  get box() {\n    return this.#bbox;\n  }\n  updateProperty(name, value) {\n    if (name === \"stroke-width\") {\n      return this.#updateThickness(value);\n    }\n    return null;\n  }\n  #updateThickness(thickness) {\n    const [oldMarginX, oldMarginY] = this.#getMarginComponents();\n    this.#thickness = thickness;\n    const [newMarginX, newMarginY] = this.#getMarginComponents();\n    const [diffMarginX, diffMarginY] = [newMarginX - oldMarginX, newMarginY - oldMarginY];\n    const bbox = this.#bbox;\n    bbox[0] -= diffMarginX;\n    bbox[1] -= diffMarginY;\n    bbox[2] += 2 * diffMarginX;\n    bbox[3] += 2 * diffMarginY;\n    return bbox;\n  }\n  updateParentDimensions([width, height], scale) {\n    const [oldMarginX, oldMarginY] = this.#getMarginComponents();\n    this.#parentWidth = width;\n    this.#parentHeight = height;\n    this.#parentScale = scale;\n    const [newMarginX, newMarginY] = this.#getMarginComponents();\n    const diffMarginX = newMarginX - oldMarginX;\n    const diffMarginY = newMarginY - oldMarginY;\n    const bbox = this.#bbox;\n    bbox[0] -= diffMarginX;\n    bbox[1] -= diffMarginY;\n    bbox[2] += 2 * diffMarginX;\n    bbox[3] += 2 * diffMarginY;\n    return bbox;\n  }\n  updateRotation(rotation) {\n    this.#currentRotation = rotation;\n    return {\n      path: {\n        transform: this.rotationTransform\n      }\n    };\n  }\n  get viewBox() {\n    return this.#bbox.map(Outline.svgRound).join(\" \");\n  }\n  get defaultProperties() {\n    const [x, y] = this.#bbox;\n    return {\n      root: {\n        viewBox: this.viewBox\n      },\n      path: {\n        \"transform-origin\": `${Outline.svgRound(x)} ${Outline.svgRound(y)}`\n      }\n    };\n  }\n  get rotationTransform() {\n    const [,, width, height] = this.#bbox;\n    let a = 0,\n      b = 0,\n      c = 0,\n      d = 0,\n      e = 0,\n      f = 0;\n    switch (this.#currentRotation) {\n      case 90:\n        b = height / width;\n        c = -width / height;\n        e = width;\n        break;\n      case 180:\n        a = -1;\n        d = -1;\n        e = width;\n        f = height;\n        break;\n      case 270:\n        b = -height / width;\n        c = width / height;\n        f = height;\n        break;\n      default:\n        return \"\";\n    }\n    return `matrix(${a} ${b} ${c} ${d} ${Outline.svgRound(e)} ${Outline.svgRound(f)})`;\n  }\n  getPathResizingSVGProperties([newX, newY, newWidth, newHeight]) {\n    const [marginX, marginY] = this.#getMarginComponents();\n    const [x, y, width, height] = this.#bbox;\n    if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {\n      const tx = newX + newWidth / 2 - (x + width / 2);\n      const ty = newY + newHeight / 2 - (y + height / 2);\n      return {\n        path: {\n          \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n          transform: `${this.rotationTransform} translate(${tx} ${ty})`\n        }\n      };\n    }\n    const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);\n    const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);\n    const s2x = width / newWidth;\n    const s2y = height / newHeight;\n    return {\n      path: {\n        \"transform-origin\": `${Outline.svgRound(x)} ${Outline.svgRound(y)}`,\n        transform: `${this.rotationTransform} scale(${s2x} ${s2y}) ` + `translate(${Outline.svgRound(marginX)} ${Outline.svgRound(marginY)}) scale(${s1x} ${s1y}) ` + `translate(${Outline.svgRound(-marginX)} ${Outline.svgRound(-marginY)})`\n      }\n    };\n  }\n  getPathResizedSVGProperties([newX, newY, newWidth, newHeight]) {\n    const [marginX, marginY] = this.#getMarginComponents();\n    const bbox = this.#bbox;\n    const [x, y, width, height] = bbox;\n    bbox[0] = newX;\n    bbox[1] = newY;\n    bbox[2] = newWidth;\n    bbox[3] = newHeight;\n    if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {\n      const tx = newX + newWidth / 2 - (x + width / 2);\n      const ty = newY + newHeight / 2 - (y + height / 2);\n      for (const {\n        line,\n        points\n      } of this.#lines) {\n        Outline._translate(line, tx, ty, line);\n        Outline._translate(points, tx, ty, points);\n      }\n      return {\n        root: {\n          viewBox: this.viewBox\n        },\n        path: {\n          \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n          transform: this.rotationTransform || null,\n          d: this.toSVGPath()\n        }\n      };\n    }\n    const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);\n    const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);\n    const tx = -s1x * (x + marginX) + newX + marginX;\n    const ty = -s1y * (y + marginY) + newY + marginY;\n    if (s1x !== 1 || s1y !== 1 || tx !== 0 || ty !== 0) {\n      for (const {\n        line,\n        points\n      } of this.#lines) {\n        Outline._rescale(line, tx, ty, s1x, s1y, line);\n        Outline._rescale(points, tx, ty, s1x, s1y, points);\n      }\n    }\n    return {\n      root: {\n        viewBox: this.viewBox\n      },\n      path: {\n        \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n        transform: this.rotationTransform || null,\n        d: this.toSVGPath()\n      }\n    };\n  }\n  getPathTranslatedSVGProperties([newX, newY], parentDimensions) {\n    const [newParentWidth, newParentHeight] = parentDimensions;\n    const bbox = this.#bbox;\n    const tx = newX - bbox[0];\n    const ty = newY - bbox[1];\n    if (this.#parentWidth === newParentWidth && this.#parentHeight === newParentHeight) {\n      for (const {\n        line,\n        points\n      } of this.#lines) {\n        Outline._translate(line, tx, ty, line);\n        Outline._translate(points, tx, ty, points);\n      }\n    } else {\n      const sx = this.#parentWidth / newParentWidth;\n      const sy = this.#parentHeight / newParentHeight;\n      this.#parentWidth = newParentWidth;\n      this.#parentHeight = newParentHeight;\n      for (const {\n        line,\n        points\n      } of this.#lines) {\n        Outline._rescale(line, tx, ty, sx, sy, line);\n        Outline._rescale(points, tx, ty, sx, sy, points);\n      }\n      bbox[2] *= sx;\n      bbox[3] *= sy;\n    }\n    bbox[0] = newX;\n    bbox[1] = newY;\n    return {\n      root: {\n        viewBox: this.viewBox\n      },\n      path: {\n        d: this.toSVGPath(),\n        \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`\n      }\n    };\n  }\n  get defaultSVGProperties() {\n    const bbox = this.#bbox;\n    return {\n      root: {\n        viewBox: this.viewBox\n      },\n      rootClass: {\n        draw: true\n      },\n      path: {\n        d: this.toSVGPath(),\n        \"transform-origin\": `${Outline.svgRound(bbox[0])} ${Outline.svgRound(bbox[1])}`,\n        transform: this.rotationTransform || null\n      },\n      bbox\n    };\n  }\n}\n\n;// ./src/display/editor/ink.js\n\n\n\n\n\n\nclass InkDrawingOptions extends DrawingOptions {\n  constructor(viewerParameters) {\n    super();\n    this._viewParameters = viewerParameters;\n    super.updateProperties({\n      fill: \"none\",\n      stroke: AnnotationEditor._defaultLineColor,\n      \"stroke-opacity\": 1,\n      \"stroke-width\": 1,\n      \"stroke-linecap\": \"round\",\n      \"stroke-linejoin\": \"round\",\n      \"stroke-miterlimit\": 10\n    });\n  }\n  updateSVGProperty(name, value) {\n    if (name === \"stroke-width\") {\n      value ??= this[\"stroke-width\"];\n      value *= this._viewParameters.realScale;\n    }\n    super.updateSVGProperty(name, value);\n  }\n  clone() {\n    const clone = new InkDrawingOptions(this._viewParameters);\n    clone.updateAll(this);\n    return clone;\n  }\n}\nclass InkEditor extends DrawingEditor {\n  static _type = \"ink\";\n  static _editorType = AnnotationEditorType.INK;\n  static _defaultDrawingOptions = null;\n  constructor(params) {\n    super({\n      ...params,\n      name: \"inkEditor\"\n    });\n    this._willKeepAspectRatio = true;\n    this.defaultL10nId = \"pdfjs-editor-ink-editor\";\n  }\n  static initialize(l10n, uiManager) {\n    AnnotationEditor.initialize(l10n, uiManager);\n    this._defaultDrawingOptions = new InkDrawingOptions(uiManager.viewParameters);\n  }\n  static getDefaultDrawingOptions(options) {\n    const clone = this._defaultDrawingOptions.clone();\n    clone.updateProperties(options);\n    return clone;\n  }\n  static get supportMultipleDrawings() {\n    return true;\n  }\n  static get typesMap() {\n    return shadow(this, \"typesMap\", new Map([[AnnotationEditorParamsType.INK_THICKNESS, \"stroke-width\"], [AnnotationEditorParamsType.INK_COLOR, \"stroke\"], [AnnotationEditorParamsType.INK_OPACITY, \"stroke-opacity\"]]));\n  }\n  static createDrawerInstance(x, y, parentWidth, parentHeight, rotation) {\n    return new InkDrawOutliner(x, y, parentWidth, parentHeight, rotation, this._defaultDrawingOptions[\"stroke-width\"]);\n  }\n  static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {\n    return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n  }\n  static async deserialize(data, parent, uiManager) {\n    let initialData = null;\n    if (data instanceof InkAnnotationElement) {\n      const {\n        data: {\n          inkLists,\n          rect,\n          rotation,\n          id,\n          color,\n          opacity,\n          borderStyle: {\n            rawWidth: thickness\n          },\n          popupRef,\n          richText,\n          contentsObj,\n          creationDate,\n          modificationDate\n        },\n        parent: {\n          page: {\n            pageNumber\n          }\n        }\n      } = data;\n      initialData = data = {\n        annotationType: AnnotationEditorType.INK,\n        color: Array.from(color),\n        thickness,\n        opacity,\n        paths: {\n          points: inkLists\n        },\n        boxes: null,\n        pageIndex: pageNumber - 1,\n        rect: rect.slice(0),\n        rotation,\n        annotationElementId: id,\n        id,\n        deleted: false,\n        popupRef,\n        richText,\n        comment: contentsObj?.str || null,\n        creationDate,\n        modificationDate\n      };\n    }\n    const editor = await super.deserialize(data, parent, uiManager);\n    editor._initialData = initialData;\n    if (data.comment) {\n      editor.setCommentData(data);\n    }\n    return editor;\n  }\n  get toolbarButtons() {\n    this._colorPicker ||= new BasicColorPicker(this);\n    return [[\"colorPicker\", this._colorPicker]];\n  }\n  get colorType() {\n    return AnnotationEditorParamsType.INK_COLOR;\n  }\n  get colorAndOpacityType() {\n    return AnnotationEditorParamsType.INK_COLOR_AND_OPACITY;\n  }\n  get opacityType() {\n    return AnnotationEditorParamsType.INK_OPACITY;\n  }\n  updateParams(type, value) {\n    if (type === AnnotationEditorParamsType.INK_COLOR_AND_OPACITY) {\n      this._updateColorAndOpacity(value.color, value.opacity);\n      return;\n    }\n    super.updateParams(type, value);\n  }\n  static updateDefaultParams(type, value) {\n    if (type === AnnotationEditorParamsType.INK_COLOR_AND_OPACITY) {\n      super.updateDefaultParams(AnnotationEditorParamsType.INK_COLOR, value.color);\n      super.updateDefaultParams(AnnotationEditorParamsType.INK_OPACITY, value.opacity);\n      return;\n    }\n    super.updateDefaultParams(type, value);\n  }\n  get color() {\n    return this._drawingOptions.stroke;\n  }\n  get opacity() {\n    return this._drawingOptions[\"stroke-opacity\"];\n  }\n  onScaleChanging() {\n    if (!this.parent) {\n      return;\n    }\n    super.onScaleChanging();\n    const {\n      _drawId,\n      _drawingOptions,\n      parent\n    } = this;\n    _drawingOptions.updateSVGProperty(\"stroke-width\");\n    parent.drawLayer.updateProperties(_drawId, _drawingOptions.toSVGProperties());\n  }\n  static onScaleChangingWhenDrawing() {\n    const parent = this._currentParent;\n    if (!parent) {\n      return;\n    }\n    super.onScaleChangingWhenDrawing();\n    this._defaultDrawingOptions.updateSVGProperty(\"stroke-width\");\n    parent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());\n  }\n  createDrawingOptions({\n    color,\n    thickness,\n    opacity\n  }) {\n    this._drawingOptions = InkEditor.getDefaultDrawingOptions({\n      stroke: Util.makeHexColor(...color),\n      \"stroke-width\": thickness,\n      \"stroke-opacity\": opacity\n    });\n  }\n  serialize(isForCopying = false) {\n    if (this.isEmpty()) {\n      return null;\n    }\n    if (this.deleted) {\n      return this.serializeDeleted();\n    }\n    const {\n      lines,\n      points\n    } = this.serializeDraw(isForCopying);\n    const {\n      _drawingOptions: {\n        stroke,\n        \"stroke-opacity\": opacity,\n        \"stroke-width\": thickness\n      }\n    } = this;\n    const serialized = Object.assign(super.serialize(isForCopying), {\n      color: AnnotationEditor._colorManager.convert(stroke),\n      opacity,\n      thickness,\n      paths: {\n        lines,\n        points\n      }\n    });\n    this.addComment(serialized);\n    if (isForCopying) {\n      serialized.isCopy = true;\n      return serialized;\n    }\n    if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n      return null;\n    }\n    serialized.id = this.annotationElementId;\n    return serialized;\n  }\n  #hasElementChanged(serialized) {\n    const {\n      color,\n      thickness,\n      opacity,\n      pageIndex\n    } = this._initialData;\n    return this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized || serialized.color.some((c, i) => c !== color[i]) || serialized.thickness !== thickness || serialized.opacity !== opacity || serialized.pageIndex !== pageIndex;\n  }\n  renderAnnotationElement(annotation) {\n    if (this.deleted) {\n      annotation.hide();\n      return null;\n    }\n    const {\n      points,\n      rect\n    } = this.serializeDraw(false);\n    annotation.updateEdited({\n      rect,\n      thickness: this._drawingOptions[\"stroke-width\"],\n      points,\n      popup: this.comment\n    });\n    return null;\n  }\n}\n\n;// ./src/display/editor/drawers/contour.js\n\nclass ContourDrawOutline extends InkDrawOutline {\n  toSVGPath() {\n    let path = super.toSVGPath();\n    if (!path.endsWith(\"Z\")) {\n      path += \"Z\";\n    }\n    return path;\n  }\n}\n\n;// ./src/display/editor/drawers/signaturedraw.js\n\n\n\n\nconst BASE_HEADER_LENGTH = 8;\nconst POINTS_PROPERTIES_NUMBER = 3;\nclass SignatureExtractor {\n  static #PARAMETERS = {\n    maxDim: 512,\n    sigmaSFactor: 0.02,\n    sigmaR: 25,\n    kernelSize: 16\n  };\n  static #neighborIndexToId(i0, j0, i, j) {\n    i -= i0;\n    j -= j0;\n    if (i === 0) {\n      return j > 0 ? 0 : 4;\n    }\n    if (i === 1) {\n      return j + 6;\n    }\n    return 2 - j;\n  }\n  static #neighborIdToIndex = new Int32Array([0, 1, -1, 1, -1, 0, -1, -1, 0, -1, 1, -1, 1, 0, 1, 1]);\n  static #clockwiseNonZero(buf, width, i0, j0, i, j, offset) {\n    const id = this.#neighborIndexToId(i0, j0, i, j);\n    for (let k = 0; k < 8; k++) {\n      const kk = (-k + id - offset + 16) % 8;\n      const shiftI = this.#neighborIdToIndex[2 * kk];\n      const shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n      if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {\n        return kk;\n      }\n    }\n    return -1;\n  }\n  static #counterClockwiseNonZero(buf, width, i0, j0, i, j, offset) {\n    const id = this.#neighborIndexToId(i0, j0, i, j);\n    for (let k = 0; k < 8; k++) {\n      const kk = (k + id + offset + 16) % 8;\n      const shiftI = this.#neighborIdToIndex[2 * kk];\n      const shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n      if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {\n        return kk;\n      }\n    }\n    return -1;\n  }\n  static #findContours(buf, width, height, threshold) {\n    const N = buf.length;\n    const types = new Int32Array(N);\n    for (let i = 0; i < N; i++) {\n      types[i] = buf[i] <= threshold ? 1 : 0;\n    }\n    for (let i = 1; i < height - 1; i++) {\n      types[i * width] = types[i * width + width - 1] = 0;\n    }\n    for (let i = 0; i < width; i++) {\n      types[i] = types[width * height - 1 - i] = 0;\n    }\n    let nbd = 1;\n    let lnbd;\n    const contours = [];\n    for (let i = 1; i < height - 1; i++) {\n      lnbd = 1;\n      for (let j = 1; j < width - 1; j++) {\n        const ij = i * width + j;\n        const pix = types[ij];\n        if (pix === 0) {\n          continue;\n        }\n        let i2 = i;\n        let j2 = j;\n        if (pix === 1 && types[ij - 1] === 0) {\n          nbd += 1;\n          j2 -= 1;\n        } else if (pix >= 1 && types[ij + 1] === 0) {\n          nbd += 1;\n          j2 += 1;\n          if (pix > 1) {\n            lnbd = pix;\n          }\n        } else {\n          if (pix !== 1) {\n            lnbd = Math.abs(pix);\n          }\n          continue;\n        }\n        const points = [j, i];\n        const isHole = j2 === j + 1;\n        const contour = {\n          isHole,\n          points,\n          id: nbd,\n          parent: 0\n        };\n        contours.push(contour);\n        let contour0;\n        for (const c of contours) {\n          if (c.id === lnbd) {\n            contour0 = c;\n            break;\n          }\n        }\n        if (!contour0) {\n          contour.parent = isHole ? lnbd : 0;\n        } else if (contour0.isHole) {\n          contour.parent = isHole ? contour0.parent : lnbd;\n        } else {\n          contour.parent = isHole ? lnbd : contour0.parent;\n        }\n        const k = this.#clockwiseNonZero(types, width, i, j, i2, j2, 0);\n        if (k === -1) {\n          types[ij] = -nbd;\n          if (types[ij] !== 1) {\n            lnbd = Math.abs(types[ij]);\n          }\n          continue;\n        }\n        let shiftI = this.#neighborIdToIndex[2 * k];\n        let shiftJ = this.#neighborIdToIndex[2 * k + 1];\n        const i1 = i + shiftI;\n        const j1 = j + shiftJ;\n        i2 = i1;\n        j2 = j1;\n        let i3 = i;\n        let j3 = j;\n        while (true) {\n          const kk = this.#counterClockwiseNonZero(types, width, i3, j3, i2, j2, 1);\n          shiftI = this.#neighborIdToIndex[2 * kk];\n          shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n          const i4 = i3 + shiftI;\n          const j4 = j3 + shiftJ;\n          points.push(j4, i4);\n          const ij3 = i3 * width + j3;\n          if (types[ij3 + 1] === 0) {\n            types[ij3] = -nbd;\n          } else if (types[ij3] === 1) {\n            types[ij3] = nbd;\n          }\n          if (i4 === i && j4 === j && i3 === i1 && j3 === j1) {\n            if (types[ij] !== 1) {\n              lnbd = Math.abs(types[ij]);\n            }\n            break;\n          } else {\n            i2 = i3;\n            j2 = j3;\n            i3 = i4;\n            j3 = j4;\n          }\n        }\n      }\n    }\n    return contours;\n  }\n  static #douglasPeuckerHelper(points, start, end, output) {\n    if (end - start <= 4) {\n      for (let i = start; i < end - 2; i += 2) {\n        output.push(points[i], points[i + 1]);\n      }\n      return;\n    }\n    const ax = points[start];\n    const ay = points[start + 1];\n    const abx = points[end - 4] - ax;\n    const aby = points[end - 3] - ay;\n    const dist = Math.hypot(abx, aby);\n    const nabx = abx / dist;\n    const naby = aby / dist;\n    const aa = nabx * ay - naby * ax;\n    const m = aby / abx;\n    const invS = 1 / dist;\n    const phi = Math.atan(m);\n    const cosPhi = Math.cos(phi);\n    const sinPhi = Math.sin(phi);\n    const tmax = invS * (Math.abs(cosPhi) + Math.abs(sinPhi));\n    const poly = invS * (1 - tmax + tmax ** 2);\n    const partialPhi = Math.max(Math.atan(Math.abs(sinPhi + cosPhi) * poly), Math.atan(Math.abs(sinPhi - cosPhi) * poly));\n    let dmax = 0;\n    let index = start;\n    for (let i = start + 2; i < end - 2; i += 2) {\n      const d = Math.abs(aa - nabx * points[i + 1] + naby * points[i]);\n      if (d > dmax) {\n        index = i;\n        dmax = d;\n      }\n    }\n    if (dmax > (dist * partialPhi) ** 2) {\n      this.#douglasPeuckerHelper(points, start, index + 2, output);\n      this.#douglasPeuckerHelper(points, index, end, output);\n    } else {\n      output.push(ax, ay);\n    }\n  }\n  static #douglasPeucker(points) {\n    const output = [];\n    const len = points.length;\n    this.#douglasPeuckerHelper(points, 0, len, output);\n    output.push(points[len - 2], points[len - 1]);\n    return output.length <= 4 ? null : output;\n  }\n  static #bilateralFilter(buf, width, height, sigmaS, sigmaR, kernelSize) {\n    const kernel = new Float32Array(kernelSize ** 2);\n    const sigmaS2 = -2 * sigmaS ** 2;\n    const halfSize = kernelSize >> 1;\n    for (let i = 0; i < kernelSize; i++) {\n      const x = (i - halfSize) ** 2;\n      for (let j = 0; j < kernelSize; j++) {\n        kernel[i * kernelSize + j] = Math.exp((x + (j - halfSize) ** 2) / sigmaS2);\n      }\n    }\n    const rangeValues = new Float32Array(256);\n    const sigmaR2 = -2 * sigmaR ** 2;\n    for (let i = 0; i < 256; i++) {\n      rangeValues[i] = Math.exp(i ** 2 / sigmaR2);\n    }\n    const N = buf.length;\n    const out = new Uint8Array(N);\n    const histogram = new Uint32Array(256);\n    for (let i = 0; i < height; i++) {\n      for (let j = 0; j < width; j++) {\n        const ij = i * width + j;\n        const center = buf[ij];\n        let sum = 0;\n        let norm = 0;\n        for (let k = 0; k < kernelSize; k++) {\n          const y = i + k - halfSize;\n          if (y < 0 || y >= height) {\n            continue;\n          }\n          for (let l = 0; l < kernelSize; l++) {\n            const x = j + l - halfSize;\n            if (x < 0 || x >= width) {\n              continue;\n            }\n            const neighbour = buf[y * width + x];\n            const w = kernel[k * kernelSize + l] * rangeValues[Math.abs(neighbour - center)];\n            sum += neighbour * w;\n            norm += w;\n          }\n        }\n        const pix = out[ij] = Math.round(sum / norm);\n        histogram[pix]++;\n      }\n    }\n    return [out, histogram];\n  }\n  static #getHistogram(buf) {\n    const histogram = new Uint32Array(256);\n    for (const g of buf) {\n      histogram[g]++;\n    }\n    return histogram;\n  }\n  static #toUint8(buf) {\n    const N = buf.length;\n    const out = new Uint8ClampedArray(N >> 2);\n    let max = -Infinity;\n    let min = Infinity;\n    for (let i = 0, ii = out.length; i < ii; i++) {\n      const pix = out[i] = buf[i << 2];\n      max = Math.max(max, pix);\n      min = Math.min(min, pix);\n    }\n    const ratio = 255 / (max - min);\n    for (let i = 0, ii = out.length; i < ii; i++) {\n      out[i] = (out[i] - min) * ratio;\n    }\n    return out;\n  }\n  static #guessThreshold(histogram) {\n    let i;\n    let M = -Infinity;\n    let L = -Infinity;\n    const min = histogram.findIndex(v => v !== 0);\n    let pos = min;\n    let spos = min;\n    for (i = min; i < 256; i++) {\n      const v = histogram[i];\n      if (v > M) {\n        if (i - pos > L) {\n          L = i - pos;\n          spos = i - 1;\n        }\n        M = v;\n        pos = i;\n      }\n    }\n    for (i = spos - 1; i >= 0; i--) {\n      if (histogram[i] > histogram[i + 1]) {\n        break;\n      }\n    }\n    return i;\n  }\n  static #getGrayPixels(bitmap) {\n    const originalBitmap = bitmap;\n    const {\n      width,\n      height\n    } = bitmap;\n    const {\n      maxDim\n    } = this.#PARAMETERS;\n    let newWidth = width;\n    let newHeight = height;\n    if (width > maxDim || height > maxDim) {\n      let prevWidth = width;\n      let prevHeight = height;\n      let steps = Math.log2(Math.max(width, height) / maxDim);\n      const isteps = Math.floor(steps);\n      steps = steps === isteps ? isteps - 1 : isteps;\n      for (let i = 0; i < steps; i++) {\n        newWidth = Math.ceil(prevWidth / 2);\n        newHeight = Math.ceil(prevHeight / 2);\n        const offscreen = new OffscreenCanvas(newWidth, newHeight);\n        const ctx = offscreen.getContext(\"2d\");\n        ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n        prevWidth = newWidth;\n        prevHeight = newHeight;\n        if (bitmap !== originalBitmap) {\n          bitmap.close();\n        }\n        bitmap = offscreen.transferToImageBitmap();\n      }\n      const ratio = Math.min(maxDim / newWidth, maxDim / newHeight);\n      newWidth = Math.round(newWidth * ratio);\n      newHeight = Math.round(newHeight * ratio);\n    }\n    const offscreen = new OffscreenCanvas(newWidth, newHeight);\n    const ctx = offscreen.getContext(\"2d\", {\n      willReadFrequently: true\n    });\n    ctx.fillStyle = \"white\";\n    ctx.fillRect(0, 0, newWidth, newHeight);\n    ctx.filter = \"grayscale(1)\";\n    ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, newWidth, newHeight);\n    const grayImage = ctx.getImageData(0, 0, newWidth, newHeight).data;\n    const uint8Buf = this.#toUint8(grayImage);\n    return [uint8Buf, newWidth, newHeight];\n  }\n  static extractContoursFromText(text, {\n    fontFamily,\n    fontStyle,\n    fontWeight\n  }, pageWidth, pageHeight, rotation, innerMargin) {\n    let canvas = new OffscreenCanvas(1, 1);\n    let ctx = canvas.getContext(\"2d\", {\n      alpha: false\n    });\n    const fontSize = 200;\n    const font = ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;\n    const {\n      actualBoundingBoxLeft,\n      actualBoundingBoxRight,\n      actualBoundingBoxAscent,\n      actualBoundingBoxDescent,\n      fontBoundingBoxAscent,\n      fontBoundingBoxDescent,\n      width\n    } = ctx.measureText(text);\n    const SCALE = 1.5;\n    const canvasWidth = Math.ceil(Math.max(Math.abs(actualBoundingBoxLeft) + Math.abs(actualBoundingBoxRight) || 0, width) * SCALE);\n    const canvasHeight = Math.ceil(Math.max(Math.abs(actualBoundingBoxAscent) + Math.abs(actualBoundingBoxDescent) || fontSize, Math.abs(fontBoundingBoxAscent) + Math.abs(fontBoundingBoxDescent) || fontSize) * SCALE);\n    canvas = new OffscreenCanvas(canvasWidth, canvasHeight);\n    ctx = canvas.getContext(\"2d\", {\n      alpha: true,\n      willReadFrequently: true\n    });\n    ctx.font = font;\n    ctx.filter = \"grayscale(1)\";\n    ctx.fillStyle = \"white\";\n    ctx.fillRect(0, 0, canvasWidth, canvasHeight);\n    ctx.fillStyle = \"black\";\n    ctx.fillText(text, canvasWidth * (SCALE - 1) / 2, canvasHeight * (3 - SCALE) / 2);\n    const uint8Buf = this.#toUint8(ctx.getImageData(0, 0, canvasWidth, canvasHeight).data);\n    const histogram = this.#getHistogram(uint8Buf);\n    const threshold = this.#guessThreshold(histogram);\n    const contourList = this.#findContours(uint8Buf, canvasWidth, canvasHeight, threshold);\n    return this.processDrawnLines({\n      lines: {\n        curves: contourList,\n        width: canvasWidth,\n        height: canvasHeight\n      },\n      pageWidth,\n      pageHeight,\n      rotation,\n      innerMargin,\n      mustSmooth: true,\n      areContours: true\n    });\n  }\n  static process(bitmap, pageWidth, pageHeight, rotation, innerMargin) {\n    const [uint8Buf, width, height] = this.#getGrayPixels(bitmap);\n    const [buffer, histogram] = this.#bilateralFilter(uint8Buf, width, height, Math.hypot(width, height) * this.#PARAMETERS.sigmaSFactor, this.#PARAMETERS.sigmaR, this.#PARAMETERS.kernelSize);\n    const threshold = this.#guessThreshold(histogram);\n    const contourList = this.#findContours(buffer, width, height, threshold);\n    return this.processDrawnLines({\n      lines: {\n        curves: contourList,\n        width,\n        height\n      },\n      pageWidth,\n      pageHeight,\n      rotation,\n      innerMargin,\n      mustSmooth: true,\n      areContours: true\n    });\n  }\n  static processDrawnLines({\n    lines,\n    pageWidth,\n    pageHeight,\n    rotation,\n    innerMargin,\n    mustSmooth,\n    areContours\n  }) {\n    if (rotation % 180 !== 0) {\n      [pageWidth, pageHeight] = [pageHeight, pageWidth];\n    }\n    const {\n      curves,\n      width,\n      height\n    } = lines;\n    const thickness = lines.thickness ?? 0;\n    const linesAndPoints = [];\n    const ratio = Math.min(pageWidth / width, pageHeight / height);\n    const xScale = ratio / pageWidth;\n    const yScale = ratio / pageHeight;\n    const newCurves = [];\n    for (const {\n      points\n    } of curves) {\n      const reducedPoints = mustSmooth ? this.#douglasPeucker(points) : points;\n      if (!reducedPoints) {\n        continue;\n      }\n      newCurves.push(reducedPoints);\n      const len = reducedPoints.length;\n      const newPoints = new Float32Array(len);\n      const line = new Float32Array(3 * (len === 2 ? 2 : len - 2));\n      linesAndPoints.push({\n        line,\n        points: newPoints\n      });\n      if (len === 2) {\n        newPoints[0] = reducedPoints[0] * xScale;\n        newPoints[1] = reducedPoints[1] * yScale;\n        line.set([NaN, NaN, NaN, NaN, newPoints[0], newPoints[1]], 0);\n        continue;\n      }\n      let [x1, y1, x2, y2] = reducedPoints;\n      x1 *= xScale;\n      y1 *= yScale;\n      x2 *= xScale;\n      y2 *= yScale;\n      newPoints.set([x1, y1, x2, y2], 0);\n      line.set([NaN, NaN, NaN, NaN, x1, y1], 0);\n      for (let i = 4; i < len; i += 2) {\n        const x = newPoints[i] = reducedPoints[i] * xScale;\n        const y = newPoints[i + 1] = reducedPoints[i + 1] * yScale;\n        line.set(Outline.createBezierPoints(x1, y1, x2, y2, x, y), (i - 2) * 3);\n        [x1, y1, x2, y2] = [x2, y2, x, y];\n      }\n    }\n    if (linesAndPoints.length === 0) {\n      return null;\n    }\n    const outline = areContours ? new ContourDrawOutline() : new InkDrawOutline();\n    outline.build(linesAndPoints, pageWidth, pageHeight, 1, rotation, areContours ? 0 : thickness, innerMargin);\n    return {\n      outline,\n      newCurves,\n      areContours,\n      thickness,\n      width,\n      height\n    };\n  }\n  static async compressSignature({\n    outlines,\n    areContours,\n    thickness,\n    width,\n    height\n  }) {\n    let minDiff = Infinity;\n    let maxDiff = -Infinity;\n    let outlinesLength = 0;\n    for (const points of outlines) {\n      outlinesLength += points.length;\n      for (let i = 2, ii = points.length; i < ii; i++) {\n        const dx = points[i] - points[i - 2];\n        minDiff = Math.min(minDiff, dx);\n        maxDiff = Math.max(maxDiff, dx);\n      }\n    }\n    let bufferType;\n    if (minDiff >= -128 && maxDiff <= 127) {\n      bufferType = Int8Array;\n    } else if (minDiff >= -32768 && maxDiff <= 32767) {\n      bufferType = Int16Array;\n    } else {\n      bufferType = Int32Array;\n    }\n    const len = outlines.length;\n    const headerLength = BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * len;\n    const header = new Uint32Array(headerLength);\n    let offset = 0;\n    header[offset++] = headerLength * Uint32Array.BYTES_PER_ELEMENT + (outlinesLength - 2 * len) * bufferType.BYTES_PER_ELEMENT;\n    header[offset++] = 0;\n    header[offset++] = width;\n    header[offset++] = height;\n    header[offset++] = areContours ? 0 : 1;\n    header[offset++] = Math.max(0, Math.floor(thickness ?? 0));\n    header[offset++] = len;\n    header[offset++] = bufferType.BYTES_PER_ELEMENT;\n    for (const points of outlines) {\n      header[offset++] = points.length - 2;\n      header[offset++] = points[0];\n      header[offset++] = points[1];\n    }\n    const cs = new CompressionStream(\"deflate-raw\");\n    const writer = cs.writable.getWriter();\n    await writer.ready;\n    writer.write(header);\n    const BufferCtor = bufferType.prototype.constructor;\n    for (const points of outlines) {\n      const diffs = new BufferCtor(points.length - 2);\n      for (let i = 2, ii = points.length; i < ii; i++) {\n        diffs[i - 2] = points[i] - points[i - 2];\n      }\n      writer.write(diffs);\n    }\n    writer.close();\n    const bytes = await new Response(cs.readable).bytes();\n    return bytes.toBase64();\n  }\n  static async decompressSignature(signatureData) {\n    try {\n      const bytes = Uint8Array.fromBase64(signatureData);\n      const {\n        readable,\n        writable\n      } = new DecompressionStream(\"deflate-raw\");\n      const writer = writable.getWriter();\n      await writer.ready;\n      writer.write(bytes).then(async () => {\n        await writer.ready;\n        await writer.close();\n      }).catch(() => {});\n      let data = null;\n      let offset = 0;\n      for await (const chunk of readable) {\n        data ||= new Uint8Array(new Uint32Array(chunk.buffer, 0, 4)[0]);\n        data.set(chunk, offset);\n        offset += chunk.length;\n      }\n      const header = new Uint32Array(data.buffer, 0, data.length >> 2);\n      const version = header[1];\n      if (version !== 0) {\n        throw new Error(`Invalid version: ${version}`);\n      }\n      const width = header[2];\n      const height = header[3];\n      const areContours = header[4] === 0;\n      const thickness = header[5];\n      const numberOfDrawings = header[6];\n      const bufferType = header[7];\n      const outlines = [];\n      const diffsOffset = (BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * numberOfDrawings) * Uint32Array.BYTES_PER_ELEMENT;\n      let diffs;\n      switch (bufferType) {\n        case Int8Array.BYTES_PER_ELEMENT:\n          diffs = new Int8Array(data.buffer, diffsOffset);\n          break;\n        case Int16Array.BYTES_PER_ELEMENT:\n          diffs = new Int16Array(data.buffer, diffsOffset);\n          break;\n        case Int32Array.BYTES_PER_ELEMENT:\n          diffs = new Int32Array(data.buffer, diffsOffset);\n          break;\n      }\n      offset = 0;\n      for (let i = 0; i < numberOfDrawings; i++) {\n        const len = header[POINTS_PROPERTIES_NUMBER * i + BASE_HEADER_LENGTH];\n        const points = new Float32Array(len + 2);\n        outlines.push(points);\n        for (let j = 0; j < POINTS_PROPERTIES_NUMBER - 1; j++) {\n          points[j] = header[POINTS_PROPERTIES_NUMBER * i + BASE_HEADER_LENGTH + j + 1];\n        }\n        for (let j = 0; j < len; j++) {\n          points[j + 2] = points[j] + diffs[offset++];\n        }\n      }\n      return {\n        areContours,\n        thickness,\n        outlines,\n        width,\n        height\n      };\n    } catch (e) {\n      warn(`decompressSignature: ${e}`);\n      return null;\n    }\n  }\n}\n\n;// ./src/display/editor/signature.js\n\n\n\n\n\n\n\nclass SignatureOptions extends DrawingOptions {\n  constructor() {\n    super();\n    super.updateProperties({\n      fill: AnnotationEditor._defaultLineColor,\n      \"stroke-width\": 0\n    });\n  }\n  clone() {\n    const clone = new SignatureOptions();\n    clone.updateAll(this);\n    return clone;\n  }\n}\nclass DrawnSignatureOptions extends InkDrawingOptions {\n  constructor(viewerParameters) {\n    super(viewerParameters);\n    super.updateProperties({\n      stroke: AnnotationEditor._defaultLineColor,\n      \"stroke-width\": 1\n    });\n  }\n  clone() {\n    const clone = new DrawnSignatureOptions(this._viewParameters);\n    clone.updateAll(this);\n    return clone;\n  }\n}\nclass SignatureEditor extends DrawingEditor {\n  #isExtracted = false;\n  #description = null;\n  #signatureData = null;\n  #signatureUUID = null;\n  static _type = \"signature\";\n  static _editorType = AnnotationEditorType.SIGNATURE;\n  static _defaultDrawingOptions = null;\n  constructor(params) {\n    super({\n      ...params,\n      mustBeCommitted: true,\n      name: \"signatureEditor\"\n    });\n    this._willKeepAspectRatio = true;\n    this.#signatureData = params.signatureData || null;\n    this.#description = null;\n    this.defaultL10nId = \"pdfjs-editor-signature-editor1\";\n  }\n  static initialize(l10n, uiManager) {\n    AnnotationEditor.initialize(l10n, uiManager);\n    this._defaultDrawingOptions = new SignatureOptions();\n    this._defaultDrawnSignatureOptions = new DrawnSignatureOptions(uiManager.viewParameters);\n  }\n  static getDefaultDrawingOptions(options) {\n    const clone = this._defaultDrawingOptions.clone();\n    clone.updateProperties(options);\n    return clone;\n  }\n  static get supportMultipleDrawings() {\n    return false;\n  }\n  static get typesMap() {\n    return shadow(this, \"typesMap\", new Map());\n  }\n  static get isDrawer() {\n    return false;\n  }\n  get telemetryFinalData() {\n    return {\n      type: \"signature\",\n      hasDescription: !!this.#description\n    };\n  }\n  static computeTelemetryFinalData(data) {\n    const hasDescriptionStats = data.get(\"hasDescription\");\n    return {\n      hasAltText: hasDescriptionStats.get(true) ?? 0,\n      hasNoAltText: hasDescriptionStats.get(false) ?? 0\n    };\n  }\n  get isResizable() {\n    return true;\n  }\n  onScaleChanging() {\n    if (this._drawId === null) {\n      return;\n    }\n    super.onScaleChanging();\n  }\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n    let baseX, baseY;\n    const {\n      _isCopy\n    } = this;\n    if (_isCopy) {\n      this._isCopy = false;\n      baseX = this.x;\n      baseY = this.y;\n    }\n    super.render();\n    if (this._drawId === null) {\n      if (this.#signatureData) {\n        const {\n          lines,\n          mustSmooth,\n          areContours,\n          description,\n          uuid,\n          heightInPage\n        } = this.#signatureData;\n        const {\n          rawDims: {\n            pageWidth,\n            pageHeight\n          },\n          rotation\n        } = this.parent.viewport;\n        const outline = SignatureExtractor.processDrawnLines({\n          lines,\n          pageWidth,\n          pageHeight,\n          rotation,\n          innerMargin: SignatureEditor._INNER_MARGIN,\n          mustSmooth,\n          areContours\n        });\n        this.addSignature(outline, heightInPage, description, uuid);\n      } else {\n        this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n          description: \"\"\n        }));\n        this.div.hidden = true;\n        this._uiManager.getSignature(this);\n      }\n    } else {\n      this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n        description: this.#description || \"\"\n      }));\n    }\n    if (_isCopy) {\n      this._isCopy = true;\n      this._moveAfterPaste(baseX, baseY);\n    }\n    return this.div;\n  }\n  setUuid(uuid) {\n    this.#signatureUUID = uuid;\n    this.addEditToolbar();\n  }\n  getUuid() {\n    return this.#signatureUUID;\n  }\n  get description() {\n    return this.#description;\n  }\n  set description(description) {\n    this.#description = description;\n    if (!this.div) {\n      return;\n    }\n    this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n      description\n    }));\n    super.addEditToolbar().then(toolbar => {\n      toolbar?.updateEditSignatureButton(description);\n    });\n  }\n  getSignaturePreview() {\n    const {\n      newCurves,\n      areContours,\n      thickness,\n      width,\n      height\n    } = this.#signatureData;\n    const maxDim = Math.max(width, height);\n    const outlineData = SignatureExtractor.processDrawnLines({\n      lines: {\n        curves: newCurves.map(points => ({\n          points\n        })),\n        thickness,\n        width,\n        height\n      },\n      pageWidth: maxDim,\n      pageHeight: maxDim,\n      rotation: 0,\n      innerMargin: 0,\n      mustSmooth: false,\n      areContours\n    });\n    return {\n      areContours,\n      outline: outlineData.outline\n    };\n  }\n  get toolbarButtons() {\n    if (this._uiManager.signatureManager) {\n      return [[\"editSignature\", this._uiManager.signatureManager]];\n    }\n    return super.toolbarButtons;\n  }\n  addSignature(data, heightInPage, description, uuid) {\n    const {\n      x: savedX,\n      y: savedY\n    } = this;\n    const {\n      outline\n    } = this.#signatureData = data;\n    this.#isExtracted = outline instanceof ContourDrawOutline;\n    this.description = description;\n    let drawingOptions;\n    if (this.#isExtracted) {\n      drawingOptions = SignatureEditor.getDefaultDrawingOptions();\n    } else {\n      drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();\n      drawingOptions.updateProperties({\n        \"stroke-width\": outline.thickness\n      });\n    }\n    this._addOutlines({\n      drawOutlines: outline,\n      drawingOptions\n    });\n    const [, pageHeight] = this.pageDimensions;\n    let newHeight = heightInPage / pageHeight;\n    newHeight = newHeight >= 1 ? 0.5 : newHeight;\n    this.width *= newHeight / this.height;\n    if (this.width >= 1) {\n      newHeight *= 0.9 / this.width;\n      this.width = 0.9;\n    }\n    this.height = newHeight;\n    this.setDims();\n    this.x = savedX;\n    this.y = savedY;\n    this.center();\n    this._onResized();\n    this.onScaleChanging();\n    this.rotate();\n    this._uiManager.addToAnnotationStorage(this);\n    this.setUuid(uuid);\n    this._reportTelemetry({\n      action: \"pdfjs.signature.inserted\",\n      data: {\n        hasBeenSaved: !!uuid,\n        hasDescription: !!description\n      }\n    });\n    this.div.hidden = false;\n  }\n  getFromImage(bitmap) {\n    const {\n      rawDims: {\n        pageWidth,\n        pageHeight\n      },\n      rotation\n    } = this.parent.viewport;\n    return SignatureExtractor.process(bitmap, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);\n  }\n  getFromText(text, fontInfo) {\n    const {\n      rawDims: {\n        pageWidth,\n        pageHeight\n      },\n      rotation\n    } = this.parent.viewport;\n    return SignatureExtractor.extractContoursFromText(text, fontInfo, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);\n  }\n  getDrawnSignature(curves) {\n    const {\n      rawDims: {\n        pageWidth,\n        pageHeight\n      },\n      rotation\n    } = this.parent.viewport;\n    return SignatureExtractor.processDrawnLines({\n      lines: curves,\n      pageWidth,\n      pageHeight,\n      rotation,\n      innerMargin: SignatureEditor._INNER_MARGIN,\n      mustSmooth: false,\n      areContours: false\n    });\n  }\n  createDrawingOptions({\n    areContours,\n    thickness\n  }) {\n    if (areContours) {\n      this._drawingOptions = SignatureEditor.getDefaultDrawingOptions();\n    } else {\n      this._drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();\n      this._drawingOptions.updateProperties({\n        \"stroke-width\": thickness\n      });\n    }\n  }\n  serialize(isForCopying = false) {\n    if (this.isEmpty()) {\n      return null;\n    }\n    const {\n      lines,\n      points\n    } = this.serializeDraw(isForCopying);\n    const {\n      _drawingOptions: {\n        \"stroke-width\": thickness\n      }\n    } = this;\n    const serialized = Object.assign(super.serialize(isForCopying), {\n      isSignature: true,\n      areContours: this.#isExtracted,\n      color: [0, 0, 0],\n      thickness: this.#isExtracted ? 0 : thickness\n    });\n    this.addComment(serialized);\n    if (isForCopying) {\n      serialized.paths = {\n        lines,\n        points\n      };\n      serialized.uuid = this.#signatureUUID;\n      serialized.isCopy = true;\n    } else {\n      serialized.lines = lines;\n    }\n    if (this.#description) {\n      serialized.accessibilityData = {\n        type: \"Figure\",\n        alt: this.#description\n      };\n    }\n    return serialized;\n  }\n  static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {\n    if (data.areContours) {\n      return ContourDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n    }\n    return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n  }\n  static async deserialize(data, parent, uiManager) {\n    const editor = await super.deserialize(data, parent, uiManager);\n    editor.#isExtracted = data.areContours;\n    editor.description = data.accessibilityData?.alt || \"\";\n    editor.#signatureUUID = data.uuid;\n    return editor;\n  }\n}\n\n;// ./src/display/editor/stamp.js\n\n\n\n\nclass StampEditor extends AnnotationEditor {\n  #bitmap = null;\n  #bitmapId = null;\n  #bitmapPromise = null;\n  #bitmapUrl = null;\n  #bitmapFile = null;\n  #bitmapFileName = \"\";\n  #canvas = null;\n  #missingCanvas = false;\n  #resizeTimeoutId = null;\n  #isSvg = false;\n  #hasBeenAddedInUndoStack = false;\n  static _type = \"stamp\";\n  static _editorType = AnnotationEditorType.STAMP;\n  constructor(params) {\n    super({\n      ...params,\n      name: \"stampEditor\"\n    });\n    this.#bitmapUrl = params.bitmapUrl;\n    this.#bitmapFile = params.bitmapFile;\n    this.defaultL10nId = \"pdfjs-editor-stamp-editor\";\n  }\n  static initialize(l10n, uiManager) {\n    AnnotationEditor.initialize(l10n, uiManager);\n  }\n  static isHandlingMimeForPasting(mime) {\n    return SupportedImageMimeTypes.includes(mime);\n  }\n  static paste(item, parent) {\n    parent.pasteEditor({\n      mode: AnnotationEditorType.STAMP\n    }, {\n      bitmapFile: item.getAsFile()\n    });\n  }\n  altTextFinish() {\n    if (this._uiManager.useNewAltTextFlow) {\n      this.div.hidden = false;\n    }\n    super.altTextFinish();\n  }\n  get telemetryFinalData() {\n    return {\n      type: \"stamp\",\n      hasAltText: !!this.altTextData?.altText\n    };\n  }\n  static computeTelemetryFinalData(data) {\n    const hasAltTextStats = data.get(\"hasAltText\");\n    return {\n      hasAltText: hasAltTextStats.get(true) ?? 0,\n      hasNoAltText: hasAltTextStats.get(false) ?? 0\n    };\n  }\n  #getBitmapFetched(data, fromId = false) {\n    if (!data) {\n      this.remove();\n      return;\n    }\n    this.#bitmap = data.bitmap;\n    if (!fromId) {\n      this.#bitmapId = data.id;\n      this.#isSvg = data.isSvg;\n    }\n    if (data.file) {\n      this.#bitmapFileName = data.file.name;\n    }\n    this.#createCanvas();\n  }\n  #getBitmapDone() {\n    this.#bitmapPromise = null;\n    this._uiManager.enableWaiting(false);\n    if (!this.#canvas) {\n      return;\n    }\n    if (this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n      this.addEditToolbar().then(() => {\n        this._editToolbar.hide();\n        this._uiManager.editAltText(this, true);\n      });\n      return;\n    }\n    if (!this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n      this._reportTelemetry({\n        action: \"pdfjs.image.image_added\",\n        data: {\n          alt_text_modal: false,\n          alt_text_type: \"empty\"\n        }\n      });\n      try {\n        this.mlGuessAltText();\n      } catch {}\n    }\n    this.div.focus();\n  }\n  async mlGuessAltText(imageData = null, updateAltTextData = true) {\n    if (this.hasAltTextData()) {\n      return null;\n    }\n    const {\n      mlManager\n    } = this._uiManager;\n    if (!mlManager) {\n      throw new Error(\"No ML.\");\n    }\n    if (!(await mlManager.isEnabledFor(\"altText\"))) {\n      throw new Error(\"ML isn't enabled for alt text.\");\n    }\n    const {\n      data,\n      width,\n      height\n    } = imageData || this.copyCanvas(null, null, true).imageData;\n    const response = await mlManager.guess({\n      name: \"altText\",\n      request: {\n        data,\n        width,\n        height,\n        channels: data.length / (width * height)\n      }\n    });\n    if (!response) {\n      throw new Error(\"No response from the AI service.\");\n    }\n    if (response.error) {\n      throw new Error(\"Error from the AI service.\");\n    }\n    if (response.cancel) {\n      return null;\n    }\n    if (!response.output) {\n      throw new Error(\"No valid response from the AI service.\");\n    }\n    const altText = response.output;\n    await this.setGuessedAltText(altText);\n    if (updateAltTextData && !this.hasAltTextData()) {\n      this.altTextData = {\n        alt: altText,\n        decorative: false\n      };\n    }\n    return altText;\n  }\n  #getBitmap() {\n    if (this.#bitmapId) {\n      this._uiManager.enableWaiting(true);\n      this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n      return;\n    }\n    if (this.#bitmapUrl) {\n      const url = this.#bitmapUrl;\n      this.#bitmapUrl = null;\n      this._uiManager.enableWaiting(true);\n      this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n      return;\n    }\n    if (this.#bitmapFile) {\n      const file = this.#bitmapFile;\n      this.#bitmapFile = null;\n      this._uiManager.enableWaiting(true);\n      this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n      return;\n    }\n    const input = document.createElement(\"input\");\n    input.type = \"file\";\n    input.accept = SupportedImageMimeTypes.join(\",\");\n    const signal = this._uiManager._signal;\n    this.#bitmapPromise = new Promise(resolve => {\n      input.addEventListener(\"change\", async () => {\n        if (!input.files || input.files.length === 0) {\n          this.remove();\n        } else {\n          this._uiManager.enableWaiting(true);\n          const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n          this._reportTelemetry({\n            action: \"pdfjs.image.image_selected\",\n            data: {\n              alt_text_modal: this._uiManager.useNewAltTextFlow\n            }\n          });\n          this.#getBitmapFetched(data);\n        }\n        resolve();\n      }, {\n        signal\n      });\n      input.addEventListener(\"cancel\", () => {\n        this.remove();\n        resolve();\n      }, {\n        signal\n      });\n    }).finally(() => this.#getBitmapDone());\n    input.click();\n  }\n  remove() {\n    if (this.#bitmapId) {\n      this.#bitmap = null;\n      this._uiManager.imageManager.deleteId(this.#bitmapId);\n      this.#canvas?.remove();\n      this.#canvas = null;\n      if (this.#resizeTimeoutId) {\n        clearTimeout(this.#resizeTimeoutId);\n        this.#resizeTimeoutId = null;\n      }\n    }\n    super.remove();\n  }\n  rebuild() {\n    if (!this.parent) {\n      if (this.#bitmapId) {\n        this.#getBitmap();\n      }\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n    if (this.#bitmapId && this.#canvas === null) {\n      this.#getBitmap();\n    }\n    if (!this.isAttachedToDOM) {\n      this.parent.add(this);\n    }\n  }\n  onceAdded(focus) {\n    this._isDraggable = true;\n    if (focus) {\n      this.div.focus();\n    }\n  }\n  isEmpty() {\n    return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId || this.#missingCanvas);\n  }\n  get toolbarButtons() {\n    return [[\"altText\", this.createAltText()]];\n  }\n  get isResizable() {\n    return true;\n  }\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n    let baseX, baseY;\n    if (this._isCopy) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n    super.render();\n    this.div.hidden = true;\n    this.createAltText();\n    if (!this.#missingCanvas) {\n      if (this.#bitmap) {\n        this.#createCanvas();\n      } else {\n        this.#getBitmap();\n      }\n    }\n    if (this._isCopy) {\n      this._moveAfterPaste(baseX, baseY);\n    }\n    this._uiManager.addShouldRescale(this);\n    return this.div;\n  }\n  setCanvas(annotationElementId, canvas) {\n    const {\n      id: bitmapId,\n      bitmap\n    } = this._uiManager.imageManager.getFromCanvas(annotationElementId, canvas);\n    canvas.remove();\n    if (bitmapId && this._uiManager.imageManager.isValidId(bitmapId)) {\n      this.#bitmapId = bitmapId;\n      if (bitmap) {\n        this.#bitmap = bitmap;\n      }\n      this.#missingCanvas = false;\n      this.#createCanvas();\n    }\n  }\n  _onResized() {\n    this.onScaleChanging();\n  }\n  onScaleChanging() {\n    if (!this.parent) {\n      return;\n    }\n    if (this.#resizeTimeoutId !== null) {\n      clearTimeout(this.#resizeTimeoutId);\n    }\n    const TIME_TO_WAIT = 200;\n    this.#resizeTimeoutId = setTimeout(() => {\n      this.#resizeTimeoutId = null;\n      this.#drawBitmap();\n    }, TIME_TO_WAIT);\n  }\n  #createCanvas() {\n    const {\n      div\n    } = this;\n    let {\n      width,\n      height\n    } = this.#bitmap;\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    const MAX_RATIO = 0.75;\n    if (this.width) {\n      width = this.width * pageWidth;\n      height = this.height * pageHeight;\n    } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n      const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n      width *= factor;\n      height *= factor;\n    }\n    this._uiManager.enableWaiting(false);\n    const canvas = this.#canvas = document.createElement(\"canvas\");\n    canvas.setAttribute(\"role\", \"img\");\n    this.addContainer(canvas);\n    this.width = width / pageWidth;\n    this.height = height / pageHeight;\n    this.setDims();\n    if (this._initialOptions?.isCentered) {\n      this.center();\n    } else {\n      this.fixAndSetPosition();\n    }\n    this._initialOptions = null;\n    if (!this._uiManager.useNewAltTextWhenAddingImage || !this._uiManager.useNewAltTextFlow || this.annotationElementId) {\n      div.hidden = false;\n    }\n    this.#drawBitmap();\n    if (!this.#hasBeenAddedInUndoStack) {\n      this.parent.addUndoableEditor(this);\n      this.#hasBeenAddedInUndoStack = true;\n    }\n    this._reportTelemetry({\n      action: \"inserted_image\"\n    });\n    if (this.#bitmapFileName) {\n      this.div.setAttribute(\"aria-description\", this.#bitmapFileName);\n    }\n    if (!this.annotationElementId) {\n      this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.stamp);\n    }\n  }\n  copyCanvas(maxDataDimension, maxPreviewDimension, createImageData = false) {\n    maxDataDimension ||= 224;\n    const {\n      width: bitmapWidth,\n      height: bitmapHeight\n    } = this.#bitmap;\n    const outputScale = new OutputScale();\n    let bitmap = this.#bitmap;\n    let width = bitmapWidth,\n      height = bitmapHeight;\n    let canvas = null;\n    if (maxPreviewDimension) {\n      if (bitmapWidth > maxPreviewDimension || bitmapHeight > maxPreviewDimension) {\n        const ratio = Math.min(maxPreviewDimension / bitmapWidth, maxPreviewDimension / bitmapHeight);\n        width = Math.floor(bitmapWidth * ratio);\n        height = Math.floor(bitmapHeight * ratio);\n      }\n      canvas = document.createElement(\"canvas\");\n      const scaledWidth = canvas.width = Math.ceil(width * outputScale.sx);\n      const scaledHeight = canvas.height = Math.ceil(height * outputScale.sy);\n      if (!this.#isSvg) {\n        bitmap = this.#scaleBitmap(scaledWidth, scaledHeight);\n      }\n      const ctx = canvas.getContext(\"2d\");\n      ctx.filter = this._uiManager.hcmFilter;\n      let white = \"white\",\n        black = \"#cfcfd8\";\n      if (this._uiManager.hcmFilter !== \"none\") {\n        black = \"black\";\n      } else if (ColorScheme.isDarkMode) {\n        white = \"#8f8f9d\";\n        black = \"#42414d\";\n      }\n      const boxDim = 15;\n      const boxDimWidth = boxDim * outputScale.sx;\n      const boxDimHeight = boxDim * outputScale.sy;\n      const pattern = new OffscreenCanvas(boxDimWidth * 2, boxDimHeight * 2);\n      const patternCtx = pattern.getContext(\"2d\");\n      patternCtx.fillStyle = white;\n      patternCtx.fillRect(0, 0, boxDimWidth * 2, boxDimHeight * 2);\n      patternCtx.fillStyle = black;\n      patternCtx.fillRect(0, 0, boxDimWidth, boxDimHeight);\n      patternCtx.fillRect(boxDimWidth, boxDimHeight, boxDimWidth, boxDimHeight);\n      ctx.fillStyle = ctx.createPattern(pattern, \"repeat\");\n      ctx.fillRect(0, 0, scaledWidth, scaledHeight);\n      ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\n    }\n    let imageData = null;\n    if (createImageData) {\n      let dataWidth, dataHeight;\n      if (outputScale.symmetric && bitmap.width < maxDataDimension && bitmap.height < maxDataDimension) {\n        dataWidth = bitmap.width;\n        dataHeight = bitmap.height;\n      } else {\n        bitmap = this.#bitmap;\n        if (bitmapWidth > maxDataDimension || bitmapHeight > maxDataDimension) {\n          const ratio = Math.min(maxDataDimension / bitmapWidth, maxDataDimension / bitmapHeight);\n          dataWidth = Math.floor(bitmapWidth * ratio);\n          dataHeight = Math.floor(bitmapHeight * ratio);\n          if (!this.#isSvg) {\n            bitmap = this.#scaleBitmap(dataWidth, dataHeight);\n          }\n        }\n      }\n      const offscreen = new OffscreenCanvas(dataWidth, dataHeight);\n      const offscreenCtx = offscreen.getContext(\"2d\", {\n        willReadFrequently: true\n      });\n      offscreenCtx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, dataWidth, dataHeight);\n      imageData = {\n        width: dataWidth,\n        height: dataHeight,\n        data: offscreenCtx.getImageData(0, 0, dataWidth, dataHeight).data\n      };\n    }\n    return {\n      canvas,\n      width,\n      height,\n      imageData\n    };\n  }\n  #scaleBitmap(width, height) {\n    const {\n      width: bitmapWidth,\n      height: bitmapHeight\n    } = this.#bitmap;\n    let newWidth = bitmapWidth;\n    let newHeight = bitmapHeight;\n    let bitmap = this.#bitmap;\n    while (newWidth > 2 * width || newHeight > 2 * height) {\n      const prevWidth = newWidth;\n      const prevHeight = newHeight;\n      if (newWidth > 2 * width) {\n        newWidth = Math.ceil(newWidth / 2);\n      }\n      if (newHeight > 2 * height) {\n        newHeight = Math.ceil(newHeight / 2);\n      }\n      const offscreen = new OffscreenCanvas(newWidth, newHeight);\n      const ctx = offscreen.getContext(\"2d\");\n      ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n      bitmap = offscreen.transferToImageBitmap();\n    }\n    return bitmap;\n  }\n  #drawBitmap() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const {\n      width,\n      height\n    } = this;\n    const outputScale = new OutputScale();\n    const scaledWidth = Math.ceil(width * parentWidth * outputScale.sx);\n    const scaledHeight = Math.ceil(height * parentHeight * outputScale.sy);\n    const canvas = this.#canvas;\n    if (!canvas || canvas.width === scaledWidth && canvas.height === scaledHeight) {\n      return;\n    }\n    canvas.width = scaledWidth;\n    canvas.height = scaledHeight;\n    const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(scaledWidth, scaledHeight);\n    const ctx = canvas.getContext(\"2d\");\n    ctx.filter = this._uiManager.hcmFilter;\n    ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\n  }\n  #serializeBitmap(toUrl) {\n    if (toUrl) {\n      if (this.#isSvg) {\n        const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n        if (url) {\n          return url;\n        }\n      }\n      const canvas = document.createElement(\"canvas\");\n      ({\n        width: canvas.width,\n        height: canvas.height\n      } = this.#bitmap);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.drawImage(this.#bitmap, 0, 0);\n      return canvas.toDataURL();\n    }\n    if (this.#isSvg) {\n      const [pageWidth, pageHeight] = this.pageDimensions;\n      const width = Math.round(this.width * pageWidth * PixelsPerInch.PDF_TO_CSS_UNITS);\n      const height = Math.round(this.height * pageHeight * PixelsPerInch.PDF_TO_CSS_UNITS);\n      const offscreen = new OffscreenCanvas(width, height);\n      const ctx = offscreen.getContext(\"2d\");\n      ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n      return offscreen.transferToImageBitmap();\n    }\n    return structuredClone(this.#bitmap);\n  }\n  static async deserialize(data, parent, uiManager) {\n    let initialData = null;\n    let missingCanvas = false;\n    if (data instanceof StampAnnotationElement) {\n      const {\n        data: {\n          rect,\n          rotation,\n          id,\n          structParent,\n          popupRef,\n          richText,\n          contentsObj,\n          creationDate,\n          modificationDate\n        },\n        container,\n        parent: {\n          page: {\n            pageNumber\n          }\n        },\n        canvas\n      } = data;\n      let bitmapId, bitmap;\n      if (canvas) {\n        delete data.canvas;\n        ({\n          id: bitmapId,\n          bitmap\n        } = uiManager.imageManager.getFromCanvas(container.id, canvas));\n        canvas.remove();\n      } else {\n        missingCanvas = true;\n        data._hasNoCanvas = true;\n      }\n      const altText = (await parent._structTree.getAriaAttributes(`${AnnotationPrefix}${id}`))?.get(\"aria-label\") || \"\";\n      initialData = data = {\n        annotationType: AnnotationEditorType.STAMP,\n        bitmapId,\n        bitmap,\n        pageIndex: pageNumber - 1,\n        rect: rect.slice(0),\n        rotation,\n        annotationElementId: id,\n        id,\n        deleted: false,\n        accessibilityData: {\n          decorative: false,\n          altText\n        },\n        isSvg: false,\n        structParent,\n        popupRef,\n        richText,\n        comment: contentsObj?.str || null,\n        creationDate,\n        modificationDate\n      };\n    }\n    const editor = await super.deserialize(data, parent, uiManager);\n    const {\n      rect,\n      bitmap,\n      bitmapUrl,\n      bitmapId,\n      isSvg,\n      accessibilityData\n    } = data;\n    if (missingCanvas) {\n      uiManager.addMissingCanvas(data.id, editor);\n      editor.#missingCanvas = true;\n    } else if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n      editor.#bitmapId = bitmapId;\n      if (bitmap) {\n        editor.#bitmap = bitmap;\n      }\n    } else {\n      editor.#bitmapUrl = bitmapUrl;\n    }\n    editor.#isSvg = isSvg;\n    const [parentWidth, parentHeight] = editor.pageDimensions;\n    editor.width = (rect[2] - rect[0]) / parentWidth;\n    editor.height = (rect[3] - rect[1]) / parentHeight;\n    if (accessibilityData) {\n      editor.altTextData = accessibilityData;\n    }\n    editor._initialData = initialData;\n    if (data.comment) {\n      editor.setCommentData(data);\n    }\n    editor.#hasBeenAddedInUndoStack = !!initialData;\n    return editor;\n  }\n  serialize(isForCopying = false, context = null) {\n    if (this.isEmpty()) {\n      return null;\n    }\n    if (this.deleted) {\n      return this.serializeDeleted();\n    }\n    const serialized = Object.assign(super.serialize(isForCopying), {\n      bitmapId: this.#bitmapId,\n      isSvg: this.#isSvg\n    });\n    this.addComment(serialized);\n    if (isForCopying) {\n      serialized.bitmapUrl = this.#serializeBitmap(true);\n      serialized.accessibilityData = this.serializeAltText(true);\n      serialized.isCopy = true;\n      return serialized;\n    }\n    const {\n      decorative,\n      altText\n    } = this.serializeAltText(false);\n    if (!decorative && altText) {\n      serialized.accessibilityData = {\n        type: \"Figure\",\n        alt: altText\n      };\n    }\n    if (this.annotationElementId) {\n      const changes = this.#hasElementChanged(serialized);\n      if (changes.isSame) {\n        return null;\n      }\n      if (changes.isSameAltText) {\n        delete serialized.accessibilityData;\n      } else {\n        serialized.accessibilityData.structParent = this._initialData.structParent ?? -1;\n      }\n      serialized.id = this.annotationElementId;\n      delete serialized.bitmapId;\n      return serialized;\n    }\n    if (context === null) {\n      return serialized;\n    }\n    context.stamps ||= new Map();\n    const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n    if (!context.stamps.has(this.#bitmapId)) {\n      context.stamps.set(this.#bitmapId, {\n        area,\n        serialized\n      });\n      serialized.bitmap = this.#serializeBitmap(false);\n    } else if (this.#isSvg) {\n      const prevData = context.stamps.get(this.#bitmapId);\n      if (area > prevData.area) {\n        prevData.area = area;\n        prevData.serialized.bitmap.close();\n        prevData.serialized.bitmap = this.#serializeBitmap(false);\n      }\n    }\n    return serialized;\n  }\n  #hasElementChanged(serialized) {\n    const {\n      pageIndex,\n      accessibilityData: {\n        altText\n      }\n    } = this._initialData;\n    const isSamePageIndex = serialized.pageIndex === pageIndex;\n    const isSameAltText = (serialized.accessibilityData?.alt || \"\") === altText;\n    return {\n      isSame: !this.hasEditedComment && !this._hasBeenMoved && !this._hasBeenResized && isSamePageIndex && isSameAltText,\n      isSameAltText\n    };\n  }\n  renderAnnotationElement(annotation) {\n    if (this.deleted) {\n      annotation.hide();\n      return null;\n    }\n    annotation.updateEdited({\n      rect: this.getPDFRect(),\n      popup: this.comment\n    });\n    return null;\n  }\n}\n\n;// ./src/display/editor/annotation_editor_layer.js\n\n\n\n\n\n\n\n\nclass AnnotationEditorLayer {\n  #accessibilityManager;\n  #allowClick = false;\n  #annotationLayer = null;\n  #clickAC = null;\n  #editorFocusTimeoutId = null;\n  #editors = new Map();\n  #hadPointerDown = false;\n  #isDisabling = false;\n  #isEnabling = false;\n  #drawingAC = null;\n  #focusedElement = null;\n  #textLayer = null;\n  #textSelectionAC = null;\n  #textLayerDblClickAC = null;\n  #lastPointerDownTimestamp = -1;\n  #uiManager;\n  static _initialized = false;\n  static #editorTypes = new Map([FreeTextEditor, InkEditor, StampEditor, HighlightEditor, SignatureEditor].map(type => [type._editorType, type]));\n  constructor({\n    uiManager,\n    pageIndex,\n    div,\n    structTreeLayer,\n    accessibilityManager,\n    annotationLayer,\n    drawLayer,\n    textLayer,\n    viewport,\n    l10n\n  }) {\n    const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()];\n    if (!AnnotationEditorLayer._initialized) {\n      AnnotationEditorLayer._initialized = true;\n      for (const editorType of editorTypes) {\n        editorType.initialize(l10n, uiManager);\n      }\n    }\n    uiManager.registerEditorTypes(editorTypes);\n    this.#uiManager = uiManager;\n    this.pageIndex = pageIndex;\n    this.div = div;\n    this.#accessibilityManager = accessibilityManager;\n    this.#annotationLayer = annotationLayer;\n    this.viewport = viewport;\n    this.#textLayer = textLayer;\n    this.drawLayer = drawLayer;\n    this._structTree = structTreeLayer;\n    this.#uiManager.addLayer(this);\n  }\n  get isEmpty() {\n    return this.#editors.size === 0;\n  }\n  get isInvisible() {\n    return this.isEmpty && this.#uiManager.getMode() === AnnotationEditorType.NONE;\n  }\n  updateToolbar(options) {\n    this.#uiManager.updateToolbar(options);\n  }\n  updateMode(mode = this.#uiManager.getMode()) {\n    this.#cleanup();\n    switch (mode) {\n      case AnnotationEditorType.NONE:\n        this.div.classList.toggle(\"nonEditing\", true);\n        this.disableTextSelection();\n        this.togglePointerEvents(false);\n        this.toggleAnnotationLayerPointerEvents(true);\n        this.disableClick();\n        return;\n      case AnnotationEditorType.INK:\n        this.disableTextSelection();\n        this.togglePointerEvents(true);\n        this.enableClick();\n        break;\n      case AnnotationEditorType.HIGHLIGHT:\n        this.enableTextSelection();\n        this.togglePointerEvents(false);\n        this.disableClick();\n        break;\n      default:\n        this.disableTextSelection();\n        this.togglePointerEvents(true);\n        this.enableClick();\n    }\n    this.toggleAnnotationLayerPointerEvents(false);\n    const {\n      classList\n    } = this.div;\n    classList.toggle(\"nonEditing\", false);\n    if (mode === AnnotationEditorType.POPUP) {\n      classList.toggle(\"commentEditing\", true);\n    } else {\n      classList.toggle(\"commentEditing\", false);\n      for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n        classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType);\n      }\n    }\n    this.div.hidden = false;\n  }\n  hasTextLayer(textLayer) {\n    return textLayer === this.#textLayer?.div;\n  }\n  setEditingState(isEditing) {\n    this.#uiManager.setEditingState(isEditing);\n  }\n  addCommands(params) {\n    this.#uiManager.addCommands(params);\n  }\n  cleanUndoStack(type) {\n    this.#uiManager.cleanUndoStack(type);\n  }\n  toggleDrawing(enabled = false) {\n    this.div.classList.toggle(\"drawing\", !enabled);\n  }\n  togglePointerEvents(enabled = false) {\n    this.div.classList.toggle(\"disabled\", !enabled);\n  }\n  toggleAnnotationLayerPointerEvents(enabled = false) {\n    this.#annotationLayer?.togglePointerEvents(enabled);\n  }\n  get #allEditorsIterator() {\n    return this.#editors.size !== 0 ? this.#editors.values() : this.#uiManager.getEditors(this.pageIndex);\n  }\n  async enable() {\n    this.#isEnabling = true;\n    this.div.tabIndex = 0;\n    this.togglePointerEvents(true);\n    this.div.classList.toggle(\"nonEditing\", false);\n    this.#textLayerDblClickAC?.abort();\n    this.#textLayerDblClickAC = null;\n    const annotationElementIds = new Set();\n    for (const editor of this.#allEditorsIterator) {\n      editor.enableEditing();\n      editor.show(true);\n      if (editor.annotationElementId) {\n        this.#uiManager.removeChangedExistingAnnotation(editor);\n        annotationElementIds.add(editor.annotationElementId);\n      }\n    }\n    const annotationLayer = this.#annotationLayer;\n    if (annotationLayer) {\n      for (const editable of annotationLayer.getEditableAnnotations()) {\n        editable.hide();\n        if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n          continue;\n        }\n        if (annotationElementIds.has(editable.data.id)) {\n          continue;\n        }\n        const editor = await this.deserialize(editable);\n        if (!editor) {\n          continue;\n        }\n        this.addOrRebuild(editor);\n        editor.enableEditing();\n      }\n    }\n    this.#isEnabling = false;\n    this.#uiManager._eventBus.dispatch(\"editorsrendered\", {\n      source: this,\n      pageNumber: this.pageIndex + 1\n    });\n  }\n  disable() {\n    this.#isDisabling = true;\n    this.div.tabIndex = -1;\n    this.togglePointerEvents(false);\n    this.div.classList.toggle(\"nonEditing\", true);\n    if (this.#textLayer && !this.#textLayerDblClickAC) {\n      this.#textLayerDblClickAC = new AbortController();\n      const signal = this.#uiManager.combinedSignal(this.#textLayerDblClickAC);\n      this.#textLayer.div.addEventListener(\"pointerdown\", e => {\n        const DBL_CLICK_THRESHOLD = 500;\n        const {\n          clientX,\n          clientY,\n          timeStamp\n        } = e;\n        const lastPointerDownTimestamp = this.#lastPointerDownTimestamp;\n        if (timeStamp - lastPointerDownTimestamp > DBL_CLICK_THRESHOLD) {\n          this.#lastPointerDownTimestamp = timeStamp;\n          return;\n        }\n        this.#lastPointerDownTimestamp = -1;\n        const {\n          classList\n        } = this.div;\n        classList.toggle(\"getElements\", true);\n        const elements = document.elementsFromPoint(clientX, clientY);\n        classList.toggle(\"getElements\", false);\n        if (!this.div.contains(elements[0])) {\n          return;\n        }\n        let id;\n        const regex = new RegExp(`^${AnnotationEditorPrefix}[0-9]+$`);\n        for (const element of elements) {\n          if (regex.test(element.id)) {\n            id = element.id;\n            break;\n          }\n        }\n        if (!id) {\n          return;\n        }\n        const editor = this.#editors.get(id);\n        if (editor?.annotationElementId === null) {\n          stopEvent(e);\n          editor.dblclick(e);\n        }\n      }, {\n        signal,\n        capture: true\n      });\n    }\n    const annotationLayer = this.#annotationLayer;\n    const needFakeAnnotation = [];\n    if (annotationLayer) {\n      const changedAnnotations = new Map();\n      const resetAnnotations = new Map();\n      for (const editor of this.#allEditorsIterator) {\n        editor.disableEditing();\n        if (!editor.annotationElementId) {\n          needFakeAnnotation.push(editor);\n          continue;\n        }\n        if (editor.serialize() !== null) {\n          changedAnnotations.set(editor.annotationElementId, editor);\n          continue;\n        } else {\n          resetAnnotations.set(editor.annotationElementId, editor);\n        }\n        this.getEditableAnnotation(editor.annotationElementId)?.show();\n        editor.remove();\n      }\n      for (const editable of annotationLayer.getEditableAnnotations()) {\n        const {\n          id\n        } = editable.data;\n        if (this.#uiManager.isDeletedAnnotationElement(id)) {\n          editable.updateEdited({\n            deleted: true\n          });\n          continue;\n        }\n        let editor = resetAnnotations.get(id);\n        if (editor) {\n          editor.resetAnnotationElement(editable);\n          editor.show(false);\n          editable.show();\n          continue;\n        }\n        editor = changedAnnotations.get(id);\n        if (editor) {\n          this.#uiManager.addChangedExistingAnnotation(editor);\n          if (editor.renderAnnotationElement(editable)) {\n            editor.show(false);\n          }\n        }\n        editable.show();\n      }\n    }\n    this.#cleanup();\n    if (this.isEmpty) {\n      this.div.hidden = true;\n    }\n    const {\n      classList\n    } = this.div;\n    for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n      classList.remove(`${editorType._type}Editing`);\n    }\n    this.disableTextSelection();\n    this.toggleAnnotationLayerPointerEvents(true);\n    annotationLayer?.updateFakeAnnotations(needFakeAnnotation);\n    this.#isDisabling = false;\n  }\n  getEditableAnnotation(id) {\n    return this.#annotationLayer?.getEditableAnnotation(id) || null;\n  }\n  setActiveEditor(editor) {\n    const currentActive = this.#uiManager.getActive();\n    if (currentActive === editor) {\n      return;\n    }\n    this.#uiManager.setActiveEditor(editor);\n  }\n  enableTextSelection() {\n    this.div.tabIndex = -1;\n    if (this.#textLayer?.div && !this.#textSelectionAC) {\n      this.#textSelectionAC = new AbortController();\n      const signal = this.#uiManager.combinedSignal(this.#textSelectionAC);\n      this.#textLayer.div.addEventListener(\"pointerdown\", this.#textLayerPointerDown.bind(this), {\n        signal\n      });\n      this.#textLayer.div.classList.add(\"highlighting\");\n    }\n  }\n  disableTextSelection() {\n    this.div.tabIndex = 0;\n    if (this.#textLayer?.div && this.#textSelectionAC) {\n      this.#textSelectionAC.abort();\n      this.#textSelectionAC = null;\n      this.#textLayer.div.classList.remove(\"highlighting\");\n    }\n  }\n  #textLayerPointerDown(event) {\n    this.#uiManager.unselectAll();\n    const {\n      target\n    } = event;\n    if (target === this.#textLayer.div || (target.getAttribute(\"role\") === \"img\" || target.classList.contains(\"endOfContent\") || target.classList.contains(\"textLayerImages\") || target.classList.contains(\"textLayerImagePlaceholder\")) && this.#textLayer.div.contains(target)) {\n      const {\n        isMac\n      } = FeatureTest.platform;\n      if (event.button !== 0 || event.ctrlKey && isMac) {\n        return;\n      }\n      this.#uiManager.showAllEditors(\"highlight\", true, true);\n      this.#textLayer.div.classList.add(\"free\");\n      this.toggleDrawing();\n      HighlightEditor.startHighlighting(this, this.#uiManager.direction === \"ltr\", {\n        target: this.#textLayer.div,\n        x: event.x,\n        y: event.y\n      });\n      this.#textLayer.div.addEventListener(\"pointerup\", () => {\n        this.#textLayer.div.classList.remove(\"free\");\n        this.toggleDrawing(true);\n      }, {\n        once: true,\n        signal: this.#uiManager._signal\n      });\n      event.preventDefault();\n    }\n  }\n  enableClick() {\n    if (this.#clickAC) {\n      return;\n    }\n    this.#clickAC = new AbortController();\n    const signal = this.#uiManager.combinedSignal(this.#clickAC);\n    this.div.addEventListener(\"pointerdown\", this.pointerdown.bind(this), {\n      signal\n    });\n    const pointerup = this.pointerup.bind(this);\n    this.div.addEventListener(\"pointerup\", pointerup, {\n      signal\n    });\n    this.div.addEventListener(\"pointercancel\", pointerup, {\n      signal\n    });\n  }\n  disableClick() {\n    this.#clickAC?.abort();\n    this.#clickAC = null;\n  }\n  attach(editor) {\n    this.#editors.set(editor.id, editor);\n    const {\n      annotationElementId\n    } = editor;\n    if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n      this.#uiManager.removeDeletedAnnotationElement(editor);\n    }\n  }\n  detach(editor) {\n    this.#editors.delete(editor.id);\n    this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n    if (!this.#isDisabling && editor.annotationElementId) {\n      this.#uiManager.addDeletedAnnotationElement(editor);\n    }\n  }\n  remove(editor) {\n    this.detach(editor);\n    this.#uiManager.removeEditor(editor);\n    editor.div.remove();\n    editor.isAttachedToDOM = false;\n  }\n  changeParent(editor) {\n    if (editor.parent === this) {\n      return;\n    }\n    if (editor.parent && editor.annotationElementId) {\n      this.#uiManager.addDeletedAnnotationElement(editor);\n      AnnotationEditor.deleteAnnotationElement(editor);\n      editor.annotationElementId = null;\n    }\n    this.attach(editor);\n    editor.parent?.detach(editor);\n    editor.setParent(this);\n    if (editor.div && editor.isAttachedToDOM) {\n      editor.div.remove();\n      this.div.append(editor.div);\n    }\n  }\n  add(editor) {\n    if (editor.parent === this && editor.isAttachedToDOM) {\n      return;\n    }\n    this.changeParent(editor);\n    this.#uiManager.addEditor(editor);\n    this.attach(editor);\n    if (!editor.isAttachedToDOM) {\n      const div = editor.render();\n      this.div.append(div);\n      editor.isAttachedToDOM = true;\n    }\n    editor.fixAndSetPosition();\n    editor.onceAdded(!this.#isEnabling);\n    this.#uiManager.addToAnnotationStorage(editor);\n    editor._reportTelemetry(editor.telemetryInitialData);\n  }\n  moveEditorInDOM(editor) {\n    if (!editor.isAttachedToDOM) {\n      return;\n    }\n    const {\n      activeElement\n    } = document;\n    if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) {\n      editor._focusEventsAllowed = false;\n      this.#editorFocusTimeoutId = setTimeout(() => {\n        this.#editorFocusTimeoutId = null;\n        if (!editor.div.contains(document.activeElement)) {\n          editor.div.addEventListener(\"focusin\", () => {\n            editor._focusEventsAllowed = true;\n          }, {\n            once: true,\n            signal: this.#uiManager._signal\n          });\n          activeElement.focus();\n        } else {\n          editor._focusEventsAllowed = true;\n        }\n      }, 0);\n    }\n    editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n  }\n  addOrRebuild(editor) {\n    if (editor.needsToBeRebuilt()) {\n      editor.parent ||= this;\n      editor.rebuild();\n      editor.show();\n    } else {\n      this.add(editor);\n    }\n  }\n  addUndoableEditor(editor) {\n    const cmd = () => editor._uiManager.rebuild(editor);\n    const undo = () => {\n      editor.remove();\n    };\n    this.addCommands({\n      cmd,\n      undo,\n      mustExec: false\n    });\n  }\n  getEditorByUID(uid) {\n    for (const editor of this.#editors.values()) {\n      if (editor.uid === uid) {\n        return editor;\n      }\n    }\n    return null;\n  }\n  get #currentEditorType() {\n    return AnnotationEditorLayer.#editorTypes.get(this.#uiManager.getMode());\n  }\n  combinedSignal(ac) {\n    return this.#uiManager.combinedSignal(ac);\n  }\n  #createNewEditor(params) {\n    const editorType = this.#currentEditorType;\n    return editorType ? new editorType.prototype.constructor(params) : null;\n  }\n  canCreateNewEmptyEditor() {\n    return this.#currentEditorType?.canCreateNewEmptyEditor();\n  }\n  async pasteEditor(options, params) {\n    this.updateToolbar(options);\n    await this.#uiManager.updateMode(options.mode);\n    const {\n      offsetX,\n      offsetY\n    } = this.#getCenterPoint();\n    const id = this.#uiManager.getId();\n    const editor = this.#createNewEditor({\n      parent: this,\n      id,\n      x: offsetX,\n      y: offsetY,\n      uiManager: this.#uiManager,\n      isCentered: true,\n      ...params\n    });\n    if (editor) {\n      this.add(editor);\n    }\n  }\n  async deserialize(data) {\n    return (await AnnotationEditorLayer.#editorTypes.get(data.annotationType ?? data.annotationEditorType)?.deserialize(data, this, this.#uiManager)) || null;\n  }\n  createAndAddNewEditor(event, isCentered, data = {}) {\n    const id = this.#uiManager.getId();\n    const editor = this.#createNewEditor({\n      parent: this,\n      id,\n      x: event.offsetX,\n      y: event.offsetY,\n      uiManager: this.#uiManager,\n      isCentered,\n      ...data\n    });\n    if (editor) {\n      this.add(editor);\n    }\n    return editor;\n  }\n  get boundingClientRect() {\n    return this.div.getBoundingClientRect();\n  }\n  #getCenterPoint() {\n    const {\n      x,\n      y,\n      width,\n      height\n    } = this.boundingClientRect;\n    const tlX = Math.max(0, x);\n    const tlY = Math.max(0, y);\n    const brX = Math.min(window.innerWidth, x + width);\n    const brY = Math.min(window.innerHeight, y + height);\n    const centerX = (tlX + brX) / 2 - x;\n    const centerY = (tlY + brY) / 2 - y;\n    const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n    return {\n      offsetX,\n      offsetY\n    };\n  }\n  addNewEditor(data = {}) {\n    this.createAndAddNewEditor(this.#getCenterPoint(), true, data);\n  }\n  setSelected(editor) {\n    this.#uiManager.setSelected(editor);\n  }\n  toggleSelected(editor) {\n    this.#uiManager.toggleSelected(editor);\n  }\n  unselect(editor) {\n    this.#uiManager.unselect(editor);\n  }\n  pointerup(event) {\n    const {\n      isMac\n    } = FeatureTest.platform;\n    if (event.button !== 0 || event.ctrlKey && isMac) {\n      return;\n    }\n    if (event.target !== this.div) {\n      return;\n    }\n    if (!this.#hadPointerDown) {\n      return;\n    }\n    this.#hadPointerDown = false;\n    if (this.#currentEditorType?.isDrawer && this.#currentEditorType.supportMultipleDrawings) {\n      return;\n    }\n    if (!this.#allowClick) {\n      this.#allowClick = true;\n      return;\n    }\n    const currentMode = this.#uiManager.getMode();\n    if (currentMode === AnnotationEditorType.STAMP || currentMode === AnnotationEditorType.POPUP || currentMode === AnnotationEditorType.SIGNATURE) {\n      this.#uiManager.unselectAll();\n      return;\n    }\n    this.createAndAddNewEditor(event, false);\n  }\n  pointerdown(event) {\n    if (this.#uiManager.getMode() === AnnotationEditorType.HIGHLIGHT) {\n      this.enableTextSelection();\n    }\n    if (this.#hadPointerDown) {\n      this.#hadPointerDown = false;\n      return;\n    }\n    const {\n      isMac\n    } = FeatureTest.platform;\n    if (event.button !== 0 || event.ctrlKey && isMac) {\n      return;\n    }\n    if (event.target !== this.div) {\n      return;\n    }\n    this.#hadPointerDown = true;\n    if (this.#currentEditorType?.isDrawer) {\n      this.startDrawingSession(event);\n      return;\n    }\n    const editor = this.#uiManager.getActive();\n    this.#allowClick = !editor || editor.isEmpty();\n  }\n  startDrawingSession(event) {\n    this.div.focus({\n      preventScroll: true\n    });\n    if (this.#drawingAC) {\n      this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);\n      return;\n    }\n    this.#uiManager.setCurrentDrawingSession(this);\n    this.#drawingAC = new AbortController();\n    const signal = this.#uiManager.combinedSignal(this.#drawingAC);\n    this.div.addEventListener(\"blur\", ({\n      relatedTarget\n    }) => {\n      if (relatedTarget && !this.div.contains(relatedTarget)) {\n        this.#focusedElement = null;\n        this.commitOrRemove();\n      }\n    }, {\n      signal\n    });\n    this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);\n  }\n  pause(on) {\n    if (on) {\n      const {\n        activeElement\n      } = document;\n      if (this.div.contains(activeElement)) {\n        this.#focusedElement = activeElement;\n      }\n      return;\n    }\n    if (this.#focusedElement) {\n      setTimeout(() => {\n        this.#focusedElement?.focus();\n        this.#focusedElement = null;\n      }, 0);\n    }\n  }\n  endDrawingSession(isAborted = false) {\n    if (!this.#drawingAC) {\n      return null;\n    }\n    this.#uiManager.setCurrentDrawingSession(null);\n    this.#drawingAC.abort();\n    this.#drawingAC = null;\n    this.#focusedElement = null;\n    return this.#currentEditorType.endDrawing(isAborted);\n  }\n  findNewParent(editor, x, y) {\n    const layer = this.#uiManager.findParent(x, y);\n    if (layer === null || layer === this) {\n      return false;\n    }\n    layer.changeParent(editor);\n    return true;\n  }\n  commitOrRemove() {\n    if (this.#drawingAC) {\n      this.endDrawingSession();\n      return true;\n    }\n    return false;\n  }\n  onScaleChanging() {\n    if (!this.#drawingAC) {\n      return;\n    }\n    this.#currentEditorType.onScaleChangingWhenDrawing(this);\n  }\n  destroy() {\n    this.commitOrRemove();\n    if (this.#uiManager.getActive()?.parent === this) {\n      this.#uiManager.commitOrRemove();\n      this.#uiManager.setActiveEditor(null);\n    }\n    if (this.#editorFocusTimeoutId) {\n      clearTimeout(this.#editorFocusTimeoutId);\n      this.#editorFocusTimeoutId = null;\n    }\n    for (const editor of this.#editors.values()) {\n      this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n      editor.setParent(null);\n      editor.isAttachedToDOM = false;\n      editor.div.remove();\n    }\n    this.div = null;\n    this.#editors.clear();\n    this.#uiManager.removeLayer(this);\n  }\n  #cleanup() {\n    for (const editor of this.#editors.values()) {\n      if (editor.isEmpty()) {\n        editor.remove();\n      }\n    }\n  }\n  async render({\n    viewport\n  }) {\n    this.viewport = viewport;\n    setLayerDimensions(this.div, viewport);\n    for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n      this.add(editor);\n      editor.rebuild();\n    }\n    await this.#uiManager.findClonesForPage(this);\n    this.div.hidden = this.isEmpty;\n    this.updateMode();\n  }\n  update({\n    viewport\n  }) {\n    this.#uiManager.commitOrRemove();\n    this.#cleanup();\n    const oldRotation = this.viewport.rotation;\n    const rotation = viewport.rotation;\n    this.viewport = viewport;\n    setLayerDimensions(this.div, {\n      rotation\n    });\n    if (oldRotation !== rotation) {\n      for (const editor of this.#editors.values()) {\n        editor.rotate(rotation);\n      }\n    }\n  }\n  get pageDimensions() {\n    const {\n      pageWidth,\n      pageHeight\n    } = this.viewport.rawDims;\n    return [pageWidth, pageHeight];\n  }\n  get scale() {\n    return this.#uiManager.viewParameters.realScale;\n  }\n}\n\n;// ./src/display/draw_layer.js\n\n\nfunction compareTextLayers(a, b) {\n  if (a === b) {\n    return 0;\n  }\n  return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}\nfunction getTextLayer(node) {\n  if (!node) {\n    return null;\n  }\n  if (node.nodeType === Node.ELEMENT_NODE) {\n    return node.closest(\".textLayer\");\n  }\n  return node.parentElement?.closest(\".textLayer\") || null;\n}\nfunction isPointBefore(nodeA, offsetA, nodeB, offsetB) {\n  if (nodeA === nodeB) {\n    return offsetA <= offsetB;\n  }\n  const relation = nodeA.compareDocumentPosition(nodeB);\n  if (relation & Node.DOCUMENT_POSITION_FOLLOWING) {\n    return true;\n  }\n  if (relation & Node.DOCUMENT_POSITION_PRECEDING) {\n    return false;\n  }\n  return null;\n}\nfunction normalizeEdgeBoundary(container, offset, textLayer) {\n  if (container.nodeType !== Node.ELEMENT_NODE || !container.classList.contains(\"textLayer\") || offset !== container.childNodes.length) {\n    return {\n      container,\n      offset\n    };\n  }\n  let lastNode = container.lastChild;\n  if (lastNode?.nodeType === Node.ELEMENT_NODE && lastNode.classList.contains(\"endOfContent\")) {\n    lastNode = lastNode.previousSibling;\n  }\n  if (!lastNode || !textLayer.contains(lastNode)) {\n    return null;\n  }\n  if (lastNode.nodeType === Node.TEXT_NODE) {\n    return {\n      container: lastNode,\n      offset: lastNode.textContent.length\n    };\n  }\n  return {\n    container: lastNode,\n    offset: lastNode.childNodes.length\n  };\n}\nclass DrawLayer {\n  #parent = null;\n  #mapping = new Map();\n  #textLayer = null;\n  #filterFactory = null;\n  #pageColors = null;\n  #textLayerObserver = null;\n  #toUpdate = new Map();\n  static #id = 0;\n  static #selectionId = 0;\n  static #selectionChangeAC = null;\n  static #selections = new Set();\n  static #isSelecting = false;\n  static #textLayerSet = new Set();\n  static #textLayers = new WeakMap();\n  constructor({\n    filterFactory = null,\n    pageColors = null,\n    pageIndex,\n    textLayer = null\n  }) {\n    this.pageIndex = pageIndex;\n    this.#filterFactory = filterFactory;\n    this.#pageColors = pageColors;\n    if (textLayer) {\n      const previousData = DrawLayer.#textLayers.get(textLayer);\n      if (previousData?.selectionDiv) {\n        previousData.selectionDiv.remove();\n        DrawLayer.#selections.delete(previousData.selectionDiv);\n      }\n      DrawLayer.#textLayers.set(textLayer, {\n        drawLayer: this\n      });\n      DrawLayer.#textLayerSet.add(textLayer);\n      this.#textLayer = textLayer;\n      this.#textLayerObserver = new MutationObserver(records => {\n        if (!this.#parent || !this.#textLayer?.isConnected || !DrawLayer.#hasSelection()) {\n          return;\n        }\n        for (const {\n          addedNodes\n        } of records) {\n          for (const node of addedNodes) {\n            if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(\"endOfContent\")) {\n              DrawLayer.#selectionChange();\n              return;\n            }\n          }\n        }\n      });\n      this.#textLayerObserver.observe(textLayer, {\n        childList: true\n      });\n      if (DrawLayer.#selectionChangeAC === null) {\n        DrawLayer.#selectionChangeAC = new AbortController();\n        const {\n          signal\n        } = DrawLayer.#selectionChangeAC;\n        document.addEventListener(\"selectionchange\", DrawLayer.#selectionChange.bind(DrawLayer), {\n          signal\n        });\n        document.addEventListener(\"pointerdown\", () => {\n          DrawLayer.#isSelecting = true;\n        }, {\n          signal\n        });\n        document.addEventListener(\"pointerup\", () => {\n          DrawLayer.#isSelecting = false;\n        }, {\n          signal\n        });\n        window.addEventListener(\"blur\", () => {\n          DrawLayer.#isSelecting = false;\n        }, {\n          signal\n        });\n      }\n    }\n  }\n  setParent(parent) {\n    if (!this.#parent) {\n      this.#parent = parent;\n      if (this.#textLayer?.isConnected && DrawLayer.#hasSelection()) {\n        DrawLayer.#selectionChange();\n      }\n      return;\n    }\n    if (this.#parent !== parent) {\n      if (this.#mapping.size > 0) {\n        for (const root of this.#mapping.values()) {\n          root.remove();\n          parent.append(root);\n        }\n      }\n      this.#parent = parent;\n    }\n  }\n  static #cleanupTextLayerSelection(textLayer) {\n    const textLayerData = this.#textLayers.get(textLayer);\n    if (!textLayerData?.selectionDiv) {\n      return;\n    }\n    textLayerData.selectionDiv.remove();\n    this.#selections.delete(textLayerData.selectionDiv);\n    textLayerData.selectionDiv = null;\n    textLayerData.path = null;\n  }\n  static #hasSelection() {\n    const selection = document.getSelection();\n    return !!selection && !selection.isCollapsed;\n  }\n  static #getOrderedTextLayers() {\n    return this.#textLayerSet.keys().filter(textLayer => textLayer.isConnected).toArray().sort(compareTextLayers);\n  }\n  static #selectionChange() {\n    const selection = document.getSelection();\n    if (!selection || selection.isCollapsed) {\n      for (const root of this.#selections) {\n        root.remove();\n      }\n      this.#selections.clear();\n      return;\n    }\n    const rotators = new WeakMap();\n    const orderedTextLayers = this.#getOrderedTextLayers();\n    const ranges = [];\n    for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n      const range = selection.getRangeAt(i);\n      if (range.collapsed) {\n        continue;\n      }\n      let {\n        startContainer,\n        startOffset,\n        endContainer,\n        endOffset\n      } = range;\n      let startTextLayer = getTextLayer(startContainer);\n      let endTextLayer = getTextLayer(endContainer);\n      const startMissing = startTextLayer === null;\n      const endMissing = endTextLayer === null;\n      if (this.#isSelecting && startMissing !== endMissing) {\n        return;\n      }\n      if (selection.rangeCount === 1) {\n        const {\n          anchorNode,\n          anchorOffset,\n          focusNode,\n          focusOffset\n        } = selection;\n        const anchorLayer = getTextLayer(anchorNode);\n        const focusLayer = getTextLayer(focusNode);\n        const anchorBeforeFocus = isPointBefore(anchorNode, anchorOffset, focusNode, focusOffset);\n        if (anchorLayer && focusLayer && anchorBeforeFocus !== null) {\n          if (anchorBeforeFocus) {\n            startContainer = anchorNode;\n            startOffset = anchorOffset;\n            startTextLayer = anchorLayer;\n            endContainer = focusNode;\n            endOffset = focusOffset;\n            endTextLayer = focusLayer;\n          } else {\n            startContainer = focusNode;\n            startOffset = focusOffset;\n            startTextLayer = focusLayer;\n            endContainer = anchorNode;\n            endOffset = anchorOffset;\n            endTextLayer = anchorLayer;\n          }\n        }\n      }\n      const activeTextLayers = orderedTextLayers.filter(textLayer => range.intersectsNode(textLayer));\n      if (activeTextLayers.length === 0) {\n        continue;\n      }\n      let boundarySubstituted = false;\n      if (!startTextLayer) {\n        startTextLayer = activeTextLayers[0];\n        startContainer = startTextLayer;\n        startOffset = 0;\n        boundarySubstituted = true;\n      }\n      if (!endTextLayer) {\n        endTextLayer = activeTextLayers.at(-1);\n        endContainer = endTextLayer;\n        endOffset = endTextLayer.childNodes.length;\n        boundarySubstituted = true;\n      }\n      if (endContainer.nodeType === Node.ELEMENT_NODE) {\n        if (endContainer.classList.contains(\"endOfContent\")) {\n          const previousNode = endContainer.previousSibling;\n          if (!previousNode) {\n            continue;\n          }\n          endContainer = previousNode;\n          endOffset = previousNode.nodeType === Node.TEXT_NODE ? previousNode.textContent.length : previousNode.childNodes.length;\n        } else if (endContainer.classList.contains(\"textLayer\") && endContainer.childNodes.length === endOffset) {\n          const normalizedEnd = normalizeEdgeBoundary(endContainer, endOffset, endTextLayer);\n          if (!normalizedEnd) {\n            continue;\n          }\n          endContainer = normalizedEnd.container;\n          endOffset = normalizedEnd.offset;\n        }\n      }\n      if (startContainer.nodeType === Node.ELEMENT_NODE) {\n        const normalizedStart = normalizeEdgeBoundary(startContainer, startOffset, startTextLayer);\n        if (!normalizedStart) {\n          continue;\n        }\n        startContainer = normalizedStart.container;\n        startOffset = normalizedStart.offset;\n      }\n      if (startTextLayer === endTextLayer && !boundarySubstituted && activeTextLayers.includes(startTextLayer)) {\n        ranges.push([range, startTextLayer]);\n        continue;\n      }\n      for (const textLayer of activeTextLayers) {\n        const firstNode = textLayer.firstChild;\n        if (!firstNode) {\n          continue;\n        }\n        const subRange = document.createRange();\n        if (textLayer === startTextLayer) {\n          subRange.setStart(startContainer, startOffset);\n        } else {\n          subRange.setStartBefore(firstNode);\n        }\n        if (textLayer === endTextLayer) {\n          subRange.setEnd(endContainer, endOffset);\n        } else {\n          const lastNode = textLayer.lastChild;\n          if (!lastNode) {\n            continue;\n          }\n          if (lastNode.nodeType === Node.ELEMENT_NODE && lastNode.classList.contains(\"endOfContent\")) {\n            const lastTextNode = lastNode.previousSibling;\n            if (!lastTextNode) {\n              continue;\n            }\n            subRange.setEndAfter(lastTextNode);\n          } else {\n            subRange.setEndAfter(lastNode);\n          }\n        }\n        if (!subRange.collapsed) {\n          ranges.push([subRange, textLayer]);\n        }\n      }\n    }\n    const selectedTextLayers = new Set(ranges.map(range => range[1]));\n    for (const textLayer of this.#textLayerSet) {\n      if (!selectedTextLayers.has(textLayer)) {\n        this.#cleanupTextLayerSelection(textLayer);\n      }\n    }\n    for (const [range, textLayer] of ranges) {\n      const textLayerData = DrawLayer.#textLayers.get(textLayer);\n      if (!textLayerData) {\n        continue;\n      }\n      let rotator = rotators.get(textLayer);\n      if (!rotator) {\n        const clientRect = textLayer.getBoundingClientRect();\n        rotator = (x, y, w, h) => ({\n          x: (x - clientRect.x) / clientRect.width,\n          y: (y - clientRect.y) / clientRect.height,\n          width: w / clientRect.width,\n          height: h / clientRect.height\n        });\n        rotators.set(textLayer, rotator);\n      }\n      const boxes = [];\n      for (let {\n        x,\n        y,\n        width,\n        height\n      } of range.getClientRects()) {\n        if (width === 0 || height === 0) {\n          continue;\n        }\n        ({\n          x,\n          y,\n          width,\n          height\n        } = rotator(x, y, width, height));\n        if (width === 1 && height === 1) {\n          continue;\n        }\n        boxes.push(`M${x} ${y} h${width} v${height} h-${width} Z`);\n      }\n      if (boxes.length === 0) {\n        continue;\n      }\n      const drawLayer = textLayerData.drawLayer;\n      let div = textLayerData.selectionDiv;\n      let path = textLayerData.path;\n      if (!div) {\n        const clipPathId = `clip_selection_${DrawLayer.#selectionId++}`;\n        div = document.createElement(\"div\");\n        div.className = \"selection\";\n        div.style.clipPath = `url(#${clipPathId})`;\n        const selectionStyle = drawLayer.#filterFactory?.createSelectionStyle(drawLayer.#pageColors);\n        if (selectionStyle) {\n          for (const [name, value] of Object.entries(selectionStyle)) {\n            div.style.setProperty(name, value);\n          }\n        }\n        const svg = DrawLayer._svgFactory.create(1, 1, true);\n        svg.setAttribute(\"aria-hidden\", \"true\");\n        svg.setAttribute(\"width\", \"100%\");\n        svg.setAttribute(\"height\", \"100%\");\n        const clipPath = DrawLayer._svgFactory.createElement(\"clipPath\");\n        clipPath.setAttribute(\"id\", clipPathId);\n        clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n        path = DrawLayer._svgFactory.createElement(\"path\");\n        clipPath.append(path);\n        svg.append(clipPath);\n        div.append(svg);\n        textLayerData.path = path;\n        textLayerData.selectionDiv = div;\n      }\n      if (!div.parentNode && drawLayer.#parent) {\n        drawLayer.#parent.append(div);\n        this.#selections.add(div);\n      }\n      path.setAttribute(\"d\", boxes.join(\" \"));\n    }\n  }\n  static get _svgFactory() {\n    return shadow(this, \"_svgFactory\", new DOMSVGFactory());\n  }\n  static #setBox(element, [x, y, width, height]) {\n    const {\n      style\n    } = element;\n    style.top = `${100 * y}%`;\n    style.left = `${100 * x}%`;\n    style.width = `${100 * width}%`;\n    style.height = `${100 * height}%`;\n  }\n  #createSVG() {\n    const svg = DrawLayer._svgFactory.create(1, 1, true);\n    this.#parent.append(svg);\n    svg.setAttribute(\"aria-hidden\", \"true\");\n    return svg;\n  }\n  #createClipPath(defs, pathId) {\n    const clipPath = DrawLayer._svgFactory.createElement(\"clipPath\");\n    defs.append(clipPath);\n    const clipPathId = `clip_${pathId}`;\n    clipPath.setAttribute(\"id\", clipPathId);\n    clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n    const clipPathUse = DrawLayer._svgFactory.createElement(\"use\");\n    clipPath.append(clipPathUse);\n    clipPathUse.setAttribute(\"href\", `#${pathId}`);\n    clipPathUse.classList.add(\"clip\");\n    return clipPathId;\n  }\n  #updateProperties(element, properties) {\n    for (const [key, value] of Object.entries(properties)) {\n      if (value === null) {\n        element.removeAttribute(key);\n      } else {\n        element.setAttribute(key, value);\n      }\n    }\n  }\n  draw(properties, isPathUpdatable = false, hasClip = false) {\n    const id = DrawLayer.#id++;\n    const root = this.#createSVG();\n    const defs = DrawLayer._svgFactory.createElement(\"defs\");\n    root.append(defs);\n    const path = DrawLayer._svgFactory.createElement(\"path\");\n    defs.append(path);\n    const pathId = `path_${id}`;\n    path.setAttribute(\"id\", pathId);\n    path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n    if (isPathUpdatable) {\n      this.#toUpdate.set(id, path);\n    }\n    const clipPathId = hasClip ? this.#createClipPath(defs, pathId) : null;\n    const use = DrawLayer._svgFactory.createElement(\"use\");\n    root.append(use);\n    use.setAttribute(\"href\", `#${pathId}`);\n    this.updateProperties(root, properties);\n    this.#mapping.set(id, root);\n    return {\n      id,\n      clipPathId: `url(#${clipPathId})`\n    };\n  }\n  drawOutline(properties, mustRemoveSelfIntersections) {\n    const id = DrawLayer.#id++;\n    const root = this.#createSVG();\n    const defs = DrawLayer._svgFactory.createElement(\"defs\");\n    root.append(defs);\n    const path = DrawLayer._svgFactory.createElement(\"path\");\n    defs.append(path);\n    const pathId = `path_${id}`;\n    path.setAttribute(\"id\", pathId);\n    path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n    let maskId;\n    if (mustRemoveSelfIntersections) {\n      const mask = DrawLayer._svgFactory.createElement(\"mask\");\n      defs.append(mask);\n      maskId = `mask_${id}`;\n      mask.setAttribute(\"id\", maskId);\n      mask.setAttribute(\"maskUnits\", \"objectBoundingBox\");\n      const rect = DrawLayer._svgFactory.createElement(\"rect\");\n      mask.append(rect);\n      rect.setAttribute(\"width\", \"1\");\n      rect.setAttribute(\"height\", \"1\");\n      rect.setAttribute(\"fill\", \"white\");\n      const use = DrawLayer._svgFactory.createElement(\"use\");\n      mask.append(use);\n      use.setAttribute(\"href\", `#${pathId}`);\n      use.setAttribute(\"stroke\", \"none\");\n      use.setAttribute(\"fill\", \"black\");\n      use.setAttribute(\"fill-rule\", \"nonzero\");\n      use.classList.add(\"mask\");\n    }\n    const use1 = DrawLayer._svgFactory.createElement(\"use\");\n    root.append(use1);\n    use1.setAttribute(\"href\", `#${pathId}`);\n    if (maskId) {\n      use1.setAttribute(\"mask\", `url(#${maskId})`);\n    }\n    const use2 = use1.cloneNode();\n    root.append(use2);\n    use1.classList.add(\"mainOutline\");\n    use2.classList.add(\"secondaryOutline\");\n    this.updateProperties(root, properties);\n    this.#mapping.set(id, root);\n    return id;\n  }\n  finalizeDraw(id, properties) {\n    this.#toUpdate.delete(id);\n    this.updateProperties(id, properties);\n  }\n  updateProperties(elementOrId, properties) {\n    if (!properties) {\n      return;\n    }\n    const {\n      root,\n      bbox,\n      rootClass,\n      path\n    } = properties;\n    const element = typeof elementOrId === \"number\" ? this.#mapping.get(elementOrId) : elementOrId;\n    if (!element) {\n      return;\n    }\n    if (root) {\n      this.#updateProperties(element, root);\n    }\n    if (bbox) {\n      DrawLayer.#setBox(element, bbox);\n    }\n    if (rootClass) {\n      const {\n        classList\n      } = element;\n      for (const [className, value] of Object.entries(rootClass)) {\n        classList.toggle(className, value);\n      }\n    }\n    if (path) {\n      const defs = element.firstElementChild;\n      const pathElement = defs.firstElementChild;\n      this.#updateProperties(pathElement, path);\n    }\n  }\n  updateParent(id, layer) {\n    if (layer === this) {\n      return;\n    }\n    const root = this.#mapping.get(id);\n    if (!root) {\n      return;\n    }\n    layer.#parent.append(root);\n    this.#mapping.delete(id);\n    layer.#mapping.set(id, root);\n  }\n  remove(id) {\n    this.#toUpdate.delete(id);\n    if (this.#parent === null) {\n      return;\n    }\n    this.#mapping.get(id).remove();\n    this.#mapping.delete(id);\n  }\n  destroy() {\n    this.#parent = null;\n    for (const root of this.#mapping.values()) {\n      root.remove();\n    }\n    this.#mapping.clear();\n    this.#toUpdate.clear();\n    this.#textLayerObserver?.disconnect();\n    this.#textLayerObserver = null;\n    if (this.#textLayer) {\n      const data = DrawLayer.#textLayers.get(this.#textLayer);\n      if (data?.drawLayer === this) {\n        DrawLayer.#cleanupTextLayerSelection(this.#textLayer);\n        DrawLayer.#textLayers.delete(this.#textLayer);\n        DrawLayer.#textLayerSet.delete(this.#textLayer);\n        if (DrawLayer.#textLayerSet.size === 0) {\n          DrawLayer.#selectionChangeAC?.abort();\n          DrawLayer.#selectionChangeAC = null;\n          DrawLayer.#isSelecting = false;\n        }\n      }\n      this.#textLayer = null;\n    }\n  }\n}\n\n;// ./src/display/text_layer_images.js\n\nfunction percentage(value) {\n  return `${(value * 100).toFixed(2)}%`;\n}\nclass TextLayerImages {\n  #coordinates = [];\n  #coordinatesByElement = new Map();\n  #getPageCanvas = null;\n  #minSize = 0;\n  #pageWidth = 0;\n  #pageHeight = 0;\n  static #activeImage = null;\n  constructor(minSize, coordinates, viewport, getPageCanvas) {\n    this.#minSize = minSize;\n    this.#coordinates = coordinates;\n    this.#pageWidth = viewport.rawDims.pageWidth;\n    this.#pageHeight = viewport.rawDims.pageHeight;\n    this.#getPageCanvas = getPageCanvas;\n  }\n  render() {\n    const container = document.createElement(\"div\");\n    container.className = \"textLayerImages\";\n    for (let i = 0; i < this.#coordinates.length; i += 6) {\n      const el = this.#createImagePlaceholder(this.#coordinates.subarray(i, i + 6));\n      if (el) {\n        container.append(el);\n      }\n    }\n    container.addEventListener(\"contextmenu\", event => {\n      if (!(event.target instanceof HTMLCanvasElement)) {\n        return;\n      }\n      const imgElement = event.target;\n      const coords = this.#coordinatesByElement.get(imgElement);\n      if (!coords) {\n        return;\n      }\n      const activeImage = TextLayerImages.#activeImage?.deref();\n      if (activeImage === imgElement) {\n        return;\n      }\n      if (activeImage) {\n        activeImage.width = 0;\n        activeImage.height = 0;\n      }\n      TextLayerImages.#activeImage = new WeakRef(imgElement);\n      const {\n        inverseTransform,\n        x1,\n        y1,\n        width,\n        height\n      } = coords;\n      const pageCanvas = this.#getPageCanvas();\n      const imageX1 = Math.ceil(x1 * pageCanvas.width);\n      const imageY1 = Math.ceil(y1 * pageCanvas.height);\n      const imageX2 = Math.floor((x1 + width / this.#pageWidth) * pageCanvas.width);\n      const imageY2 = Math.floor((y1 + height / this.#pageHeight) * pageCanvas.height);\n      imgElement.width = imageX2 - imageX1;\n      imgElement.height = imageY2 - imageY1;\n      const ctx = imgElement.getContext(\"2d\");\n      ctx.setTransform(...inverseTransform);\n      ctx.translate(-imageX1, -imageY1);\n      ctx.drawImage(pageCanvas, 0, 0);\n    });\n    return container;\n  }\n  #createImagePlaceholder([x1, y1, x2, y2, x3, y3]) {\n    const width = Math.hypot((x3 - x1) * this.#pageWidth, (y3 - y1) * this.#pageHeight);\n    const height = Math.hypot((x2 - x1) * this.#pageWidth, (y2 - y1) * this.#pageHeight);\n    if (width < this.#minSize || height < this.#minSize) {\n      return null;\n    }\n    const transform = [(x3 - x1) * this.#pageWidth / width, (y3 - y1) * this.#pageHeight / width, (x2 - x1) * this.#pageWidth / height, (y2 - y1) * this.#pageHeight / height, 0, 0];\n    const inverseTransform = Util.inverseTransform(transform);\n    const imgElement = document.createElement(\"canvas\");\n    imgElement.className = \"textLayerImagePlaceholder\";\n    imgElement.width = 0;\n    imgElement.height = 0;\n    Object.assign(imgElement.style, {\n      opacity: 0,\n      position: \"absolute\",\n      left: percentage(x1),\n      top: percentage(y1),\n      width: percentage(width / this.#pageWidth),\n      height: percentage(height / this.#pageHeight),\n      transformOrigin: \"0% 0%\",\n      transform: `matrix(${transform.join(\",\")})`\n    });\n    this.#coordinatesByElement.set(imgElement, {\n      inverseTransform,\n      width,\n      height,\n      x1,\n      y1\n    });\n    return imgElement;\n  }\n}\n\n;// ./src/pdf.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{\n  globalThis._pdfjsTestingUtils = {\n    HighlightOutliner: HighlightOutliner\n  };\n}\nglobalThis.pdfjsLib = {\n  AbortException: AbortException,\n  AnnotationEditorLayer: AnnotationEditorLayer,\n  AnnotationEditorParamsType: AnnotationEditorParamsType,\n  AnnotationEditorType: AnnotationEditorType,\n  AnnotationEditorUIManager: AnnotationEditorUIManager,\n  AnnotationLayer: AnnotationLayer,\n  AnnotationMode: AnnotationMode,\n  AnnotationType: AnnotationType,\n  applyOpacity: applyOpacity,\n  build: build,\n  ColorPicker: ColorPicker,\n  createValidAbsoluteUrl: createValidAbsoluteUrl,\n  CSSConstants: CSSConstants,\n  DOMSVGFactory: DOMSVGFactory,\n  DrawLayer: DrawLayer,\n  FeatureTest: FeatureTest,\n  fetchData: fetchData,\n  findContrastColor: findContrastColor,\n  getDocument: getDocument,\n  getFilenameFromUrl: getFilenameFromUrl,\n  getPdfFilenameFromUrl: getPdfFilenameFromUrl,\n  getRGB: getRGB,\n  getRGBA: getRGBA,\n  getUuid: getUuid,\n  GlobalWorkerOptions: GlobalWorkerOptions,\n  ImageKind: ImageKind,\n  InvalidPDFException: InvalidPDFException,\n  isDataScheme: isDataScheme,\n  isPdfFile: isPdfFile,\n  isValidExplicitDest: isValidExplicitDest,\n  makeArr: makeArr,\n  makeMap: makeMap,\n  makeObj: makeObj,\n  makeSet: makeSet,\n  MathClamp: MathClamp,\n  noContextMenu: noContextMenu,\n  normalizeUnicode: normalizeUnicode,\n  OPS: OPS,\n  OutputScale: OutputScale,\n  PasswordException: PasswordException,\n  PasswordResponses: PasswordResponses,\n  PDFDataRangeTransport: PDFDataRangeTransport,\n  PDFDateString: PDFDateString,\n  PDFWorker: PDFWorker,\n  PermissionFlag: PermissionFlag,\n  PixelsPerInch: PixelsPerInch,\n  RenderingCancelledException: RenderingCancelledException,\n  renderRichText: renderRichText,\n  ResponseException: ResponseException,\n  setLayerDimensions: setLayerDimensions,\n  shadow: shadow,\n  SignatureExtractor: SignatureExtractor,\n  stopEvent: stopEvent,\n  SupportedImageMimeTypes: SupportedImageMimeTypes,\n  TextLayer: TextLayer,\n  TextLayerImages: TextLayerImages,\n  TouchManager: TouchManager,\n  updateUrlHash: updateUrlHash,\n  Util: Util,\n  VerbosityLevel: VerbosityLevel,\n  version: version,\n  XfaLayer: XfaLayer\n};\n\nexport { AbortException, AnnotationEditorLayer, AnnotationEditorParamsType, AnnotationEditorType, AnnotationEditorUIManager, AnnotationLayer, AnnotationMode, AnnotationType, CSSConstants, ColorPicker, DOMSVGFactory, DrawLayer, FeatureTest, GlobalWorkerOptions, ImageKind, InvalidPDFException, MathClamp, OPS, OutputScale, PDFDataRangeTransport, PDFDateString, PDFWorker, PasswordException, PasswordResponses, PermissionFlag, PixelsPerInch, RenderingCancelledException, ResponseException, SignatureExtractor, SupportedImageMimeTypes, TextLayer, TextLayerImages, TouchManager, Util, VerbosityLevel, XfaLayer, applyOpacity, build, createValidAbsoluteUrl, fetchData, findContrastColor, getDocument, getFilenameFromUrl, getPdfFilenameFromUrl, getRGB, getRGBA, getUuid, isDataScheme, isPdfFile, isValidExplicitDest, makeArr, makeMap, makeObj, makeSet, noContextMenu, normalizeUnicode, renderRichText, setLayerDimensions, shadow, stopEvent, updateUrlHash, version };\n\n//# sourceMappingURL=pdf.mjs.map","// Current version.\nexport var VERSION = '1.13.8';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n          (typeof global == 'object' && global.global === global && global) ||\n          Function('return this')() ||\n          {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n    slice = ArrayProto.slice,\n    toString = ObjProto.toString,\n    hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n    supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n    nativeKeys = Object.keys,\n    nativeCreate = Object.create,\n    nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n    _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n  'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n  startIndex = startIndex == null ? func.length - 1 : +startIndex;\n  return function() {\n    var length = Math.max(arguments.length - startIndex, 0),\n        rest = Array(length),\n        index = 0;\n    for (; index < length; index++) {\n      rest[index] = arguments[index + startIndex];\n    }\n    switch (startIndex) {\n      case 0: return func.call(this, rest);\n      case 1: return func.call(this, arguments[0], rest);\n      case 2: return func.call(this, arguments[0], arguments[1], rest);\n    }\n    var args = Array(startIndex + 1);\n    for (index = 0; index < startIndex; index++) {\n      args[index] = arguments[index];\n    }\n    args[startIndex] = rest;\n    return func.apply(this, args);\n  };\n}\n","// Is a given variable an object?\nexport default function isObject(obj) {\n  var type = typeof obj;\n  return type === 'function' || (type === 'object' && !!obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n  return obj === null;\n}\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n  return obj === void 0;\n}\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n  return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n  return !!(obj && obj.nodeType === 1);\n}\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n  var tag = '[object ' + name + ']';\n  return function(obj) {\n    return toString.call(obj) === tag;\n  };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n  isFunction = function(obj) {\n    return typeof obj == 'function' || false;\n  };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\n// Also, there are cases where an application can override the native\n// `DataView` object, in cases like that we can't use the constructor\n// safely and should just rely on alternate `DataView` checks\nexport var hasDataViewBug = (\n      supportsDataView && (!/\\[native code\\]/.test(String(DataView)) || hasObjectTag(new DataView(new ArrayBuffer(8))))\n    ),\n    isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasDataViewBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\n// Also, in cases where the native `DataView` is\n// overridden we can't rely on the tag itself.\nfunction alternateIsDataView(obj) {\n  return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasDataViewBug ? alternateIsDataView : isDataView);\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n  return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n  if (!isArguments(arguments)) {\n    isArguments = function(obj) {\n      return has(obj, 'callee');\n    };\n  }\n}());\n\nexport default isArguments;\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n  return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n  return isNumber(obj) && _isNaN(obj);\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n  return function() {\n    return value;\n  };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n  return function(collection) {\n    var sizeProperty = getSizeProperty(collection);\n    return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n  }\n}\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n  return function(obj) {\n    return obj == null ? void 0 : obj[key];\n  };\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n  // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n  // Otherwise, fall back on the above regular expression.\n  return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n                isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n  var hash = {};\n  for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n  return {\n    contains: function(key) { return hash[key] === true; },\n    push: function(key) {\n      hash[key] = true;\n      return keys.push(key);\n    }\n  };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n  keys = emulatedSet(keys);\n  var nonEnumIdx = nonEnumerableProps.length;\n  var constructor = obj.constructor;\n  var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n  // Constructor is a special case.\n  var prop = 'constructor';\n  if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n  while (nonEnumIdx--) {\n    prop = nonEnumerableProps[nonEnumIdx];\n    if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n      keys.push(prop);\n    }\n  }\n}\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n  if (!isObject(obj)) return [];\n  if (nativeKeys) return nativeKeys(obj);\n  var keys = [];\n  for (var key in obj) if (has(obj, key)) keys.push(key);\n  // Ahem, IE < 9.\n  if (hasEnumBug) collectNonEnumProps(obj, keys);\n  return keys;\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n  if (obj == null) return true;\n  // Skip the more expensive `toString`-based type checks if `obj` has no\n  // `.length`.\n  var length = getLength(obj);\n  if (typeof length == 'number' && (\n    isArray(obj) || isString(obj) || isArguments(obj)\n  )) return length === 0;\n  return getLength(keys(obj)) === 0;\n}\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n  var _keys = keys(attrs), length = _keys.length;\n  if (object == null) return !length;\n  var obj = Object(object);\n  for (var i = 0; i < length; i++) {\n    var key = _keys[i];\n    if (attrs[key] !== obj[key] || !(key in obj)) return false;\n  }\n  return true;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n  if (obj instanceof _) return obj;\n  if (!(this instanceof _)) return new _(obj);\n  this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n  return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n  return String(this._wrapped);\n};\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n  return new Uint8Array(\n    bufferSource.buffer || bufferSource,\n    bufferSource.byteOffset || 0,\n    getByteLength(bufferSource)\n  );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasDataViewBug }  from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n  var todo = [{a: a, b: b}];\n  // Initializing stacks of traversed objects for cycle detection.\n  var aStack = [], bStack = [];\n\n  while (todo.length) {\n    var frame = todo.pop();\n    if (frame === true) {\n      // Remove the first object from the stack of traversed objects.\n      aStack.pop();\n      bStack.pop();\n      continue;\n    }\n    a = frame.a;\n    b = frame.b;\n\n    // Identical objects are equal. `0 === -0`, but they aren't identical.\n    // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n    if (a === b) {\n      if (a !== 0 || 1 / a === 1 / b) continue;\n      return false;\n    }\n    // `null` or `undefined` only equal to itself (strict comparison).\n    if (a == null || b == null) return false;\n    // `NaN`s are equivalent, but non-reflexive.\n    if (a !== a) {\n      if (b !== b) continue;\n      return false;\n    }\n    // Exhaust primitive checks\n    var type = typeof a;\n    if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n\n// Internal recursive comparison function for `_.isEqual`.\n    // Unwrap any wrapped objects.\n    if (a instanceof _) a = a._wrapped;\n    if (b instanceof _) b = b._wrapped;\n    // Compare `[[Class]]` names.\n    var className = toString.call(a);\n    if (className !== toString.call(b)) return false;\n    // Work around a bug in IE 10 - Edge 13.\n    if (hasDataViewBug && className == '[object Object]' && isDataView(a)) {\n      if (!isDataView(b)) return false;\n      className = tagDataView;\n    }\n    switch (className) {\n      // These types are compared by value.\n    case '[object RegExp]':\n      // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n    case '[object String]':\n      // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n      // equivalent to `new String(\"5\")`.\n      if ('' + a === '' + b) continue;\n      return false;\n    case '[object Number]':\n      todo.push({a: +a, b: +b});\n      continue;\n    case '[object Date]':\n    case '[object Boolean]':\n      // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n      // millisecond representations. Note that invalid dates with millisecond representations\n      // of `NaN` are not equivalent.\n      if (+a === +b) continue;\n      return false;\n    case '[object Symbol]':\n      if (SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b)) continue;\n      return false;\n    case '[object ArrayBuffer]':\n    case tagDataView:\n      // Coerce to typed array so we can fall through.\n      todo.push({a: toBufferView(a), b: toBufferView(b)});\n      continue;\n    }\n\n    var areArrays = className === '[object Array]';\n    if (!areArrays && isTypedArray(a)) {\n      var byteLength = getByteLength(a);\n      if (byteLength !== getByteLength(b)) return false;\n      if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) continue;\n      areArrays = true;\n    }\n    if (!areArrays) {\n      if (typeof a != 'object' || typeof b != 'object') return false;\n\n      // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n      // from different frames are.\n      var aCtor = a.constructor, bCtor = b.constructor;\n      if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n                               isFunction(bCtor) && bCtor instanceof bCtor)\n          && ('constructor' in a && 'constructor' in b)) {\n        return false;\n      }\n    }\n\n    // Assume equality for cyclic structures. The algorithm for detecting cyclic\n    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n    var length = aStack.length;\n    while (length--) {\n      // Linear search. Performance is inversely proportional to the number of\n      // unique nested structures.\n      if (aStack[length] === a) {\n        if (bStack[length] === b) break;\n        return false;\n      }\n    }\n    if (length >= 0) continue;\n\n    // Add the first object to the stack of traversed objects.\n    aStack.push(a);\n    bStack.push(b);\n    todo.push(true);\n\n    // Recursively compare objects and arrays.\n    if (areArrays) {\n      // Compare array lengths to determine if a deep comparison is necessary.\n      length = a.length;\n      if (length !== b.length) return false;\n      // Deep compare the contents, ignoring non-numeric properties.\n      while (length--) {\n        todo.push({a: a[length], b: b[length]});\n      }\n    } else {\n      // Deep compare objects.\n      var _keys = keys(a), key;\n      length = _keys.length;\n      // Ensure that both objects contain the same number of properties before comparing deep equality.\n      if (keys(b).length !== length) return false;\n      while (length--) {\n        // Deep compare each member\n        key = _keys[length];\n        if (!has(b, key)) return false;\n        todo.push({a: a[key], b: b[key]});\n      }\n    }\n  }\n  return true;\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n  if (!isObject(obj)) return [];\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  // Ahem, IE < 9.\n  if (hasEnumBug) collectNonEnumProps(obj, keys);\n  return keys;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n  var length = getLength(methods);\n  return function(obj) {\n    if (obj == null) return false;\n    // `Map`, `WeakMap` and `Set` have no enumerable keys.\n    var keys = allKeys(obj);\n    if (getLength(keys)) return false;\n    for (var i = 0; i < length; i++) {\n      if (!isFunction(obj[methods[i]])) return false;\n    }\n    // If we are testing against `WeakMap`, we need to ensure that\n    // `obj` doesn't have a `forEach` method in order to distinguish\n    // it from a regular `Map`.\n    return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n  };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n    hasName = 'has',\n    commonInit = ['clear', 'delete'],\n    mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n    weakMapMethods = commonInit.concat(mapTail),\n    setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n  var _keys = keys(obj);\n  var length = _keys.length;\n  var values = Array(length);\n  for (var i = 0; i < length; i++) {\n    values[i] = obj[_keys[i]];\n  }\n  return values;\n}\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n  var _keys = keys(obj);\n  var length = _keys.length;\n  var pairs = Array(length);\n  for (var i = 0; i < length; i++) {\n    pairs[i] = [_keys[i], obj[_keys[i]]];\n  }\n  return pairs;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n  var result = {};\n  var _keys = keys(obj);\n  for (var i = 0, length = _keys.length; i < length; i++) {\n    result[obj[_keys[i]]] = _keys[i];\n  }\n  return result;\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n  var names = [];\n  for (var key in obj) {\n    if (isFunction(obj[key])) names.push(key);\n  }\n  return names.sort();\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n  return function(obj) {\n    var length = arguments.length;\n    if (defaults) obj = Object(obj);\n    if (length < 2 || obj == null) return obj;\n    for (var index = 1; index < length; index++) {\n      var source = arguments[index],\n          keys = keysFunc(source),\n          l = keys.length;\n      for (var i = 0; i < l; i++) {\n        var key = keys[i];\n        if (!defaults || obj[key] === void 0) obj[key] = source[key];\n      }\n    }\n    return obj;\n  };\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n  return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n  if (!isObject(prototype)) return {};\n  if (nativeCreate) return nativeCreate(prototype);\n  var Ctor = ctor();\n  Ctor.prototype = prototype;\n  var result = new Ctor;\n  Ctor.prototype = null;\n  return result;\n}\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n  var result = baseCreate(prototype);\n  if (props) extendOwn(result, props);\n  return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n  if (!isObject(obj)) return obj;\n  return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n  interceptor(obj);\n  return obj;\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n  return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n  return _.toPath(path);\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n  var length = path.length;\n  for (var i = 0; i < length; i++) {\n    if (obj == null) return void 0;\n    obj = obj[path[i]];\n  }\n  return length ? obj : void 0;\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n  var value = deepGet(object, toPath(path));\n  return isUndefined(value) ? defaultValue : value;\n}\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n  path = toPath(path);\n  var length = path.length;\n  for (var i = 0; i < length; i++) {\n    var key = path[i];\n    if (!_has(obj, key)) return false;\n    obj = obj[key];\n  }\n  return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n  return value;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n  attrs = extendOwn({}, attrs);\n  return function(obj) {\n    return isMatch(obj, attrs);\n  };\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n  path = toPath(path);\n  return function(obj) {\n    return deepGet(obj, path);\n  };\n}\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n  if (context === void 0) return func;\n  switch (argCount == null ? 3 : argCount) {\n    case 1: return function(value) {\n      return func.call(context, value);\n    };\n    // The 2-argument case is omitted because we’re not using it.\n    case 3: return function(value, index, collection) {\n      return func.call(context, value, index, collection);\n    };\n    case 4: return function(accumulator, value, index, collection) {\n      return func.call(context, accumulator, value, index, collection);\n    };\n  }\n  return function() {\n    return func.apply(context, arguments);\n  };\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n  if (value == null) return identity;\n  if (isFunction(value)) return optimizeCb(value, context, argCount);\n  if (isObject(value) && !isArray(value)) return matcher(value);\n  return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n  return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n  if (_.iteratee !== iteratee) return _.iteratee(value, context);\n  return baseIteratee(value, context, argCount);\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n  iteratee = cb(iteratee, context);\n  var _keys = keys(obj),\n      length = _keys.length,\n      results = {};\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys[index];\n    results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n  }\n  return results;\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n  if (obj == null) return noop;\n  return function(path) {\n    return get(obj, path);\n  };\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n  var accum = Array(Math.max(0, n));\n  iteratee = optimizeCb(iteratee, context, 1);\n  for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n  return accum;\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n  if (max == null) {\n    max = min;\n    min = 0;\n  }\n  return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n  return new Date().getTime();\n};\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n  var escaper = function(match) {\n    return map[match];\n  };\n  // Regexes for identifying a key that needs to be escaped.\n  var source = '(?:' + keys(map).join('|') + ')';\n  var testRegexp = RegExp(source);\n  var replaceRegexp = RegExp(source, 'g');\n  return function(string) {\n    string = string == null ? '' : '' + string;\n    return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n  };\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#x27;',\n  '`': '&#x60;'\n};\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n  evaluate: /<%([\\s\\S]+?)%>/g,\n  interpolate: /<%=([\\s\\S]+?)%>/g,\n  escape: /<%-([\\s\\S]+?)%>/g\n};\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n  \"'\": \"'\",\n  '\\\\': '\\\\',\n  '\\r': 'r',\n  '\\n': 'n',\n  '\\u2028': 'u2028',\n  '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n  return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n  if (!settings && oldSettings) settings = oldSettings;\n  settings = defaults({}, settings, _.templateSettings);\n\n  // Combine delimiters into one regular expression via alternation.\n  var matcher = RegExp([\n    (settings.escape || noMatch).source,\n    (settings.interpolate || noMatch).source,\n    (settings.evaluate || noMatch).source\n  ].join('|') + '|$', 'g');\n\n  // Compile the template source, escaping string literals appropriately.\n  var index = 0;\n  var source = \"__p+='\";\n  text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n    source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n    index = offset + match.length;\n\n    if (escape) {\n      source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n    } else if (interpolate) {\n      source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n    } else if (evaluate) {\n      source += \"';\\n\" + evaluate + \"\\n__p+='\";\n    }\n\n    // Adobe VMs need the match returned to produce the correct offset.\n    return match;\n  });\n  source += \"';\\n\";\n\n  var argument = settings.variable;\n  if (argument) {\n    // Insure against third-party code injection. (CVE-2021-23358)\n    if (!bareIdentifier.test(argument)) throw new Error(\n      'variable is not a bare identifier: ' + argument\n    );\n  } else {\n    // If a variable is not specified, place data values in local scope.\n    source = 'with(obj||{}){\\n' + source + '}\\n';\n    argument = 'obj';\n  }\n\n  source = \"var __t,__p='',__j=Array.prototype.join,\" +\n    \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n    source + 'return __p;\\n';\n\n  var render;\n  try {\n    render = new Function(argument, '_', source);\n  } catch (e) {\n    e.source = source;\n    throw e;\n  }\n\n  var template = function(data) {\n    return render.call(this, data, _);\n  };\n\n  // Provide the compiled source as a convenience for precompilation.\n  template.source = 'function(' + argument + '){\\n' + source + '}';\n\n  return template;\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n  path = toPath(path);\n  var length = path.length;\n  if (!length) {\n    return isFunction(fallback) ? fallback.call(obj) : fallback;\n  }\n  for (var i = 0; i < length; i++) {\n    var prop = obj == null ? void 0 : obj[path[i]];\n    if (prop === void 0) {\n      prop = fallback;\n      i = length; // Ensure we don't continue iterating.\n    }\n    obj = isFunction(prop) ? prop.call(obj) : prop;\n  }\n  return obj;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n  var id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n  var instance = _(obj);\n  instance._chain = true;\n  return instance;\n}\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n  if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n  var self = baseCreate(sourceFunc.prototype);\n  var result = sourceFunc.apply(self, args);\n  if (isObject(result)) return result;\n  return self;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n  var placeholder = partial.placeholder;\n  var bound = function() {\n    var position = 0, length = boundArgs.length;\n    var args = Array(length);\n    for (var i = 0; i < length; i++) {\n      args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n    }\n    while (position < arguments.length) args.push(arguments[position++]);\n    return executeBound(func, bound, this, this, args);\n  };\n  return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n  if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n  var bound = restArguments(function(callArgs) {\n    return executeBound(func, bound, context, this, args.concat(callArgs));\n  });\n  return bound;\n});\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict) {\n  if (!depth && depth !== 0) depth = Infinity;\n  var output = [], idx = 0, i = 0, length = getLength(input) || 0, stack = [];\n  while (true) {\n    if (i >= length) {\n      if (!stack.length) break;\n      var frame = stack.pop();\n      i = frame.i;\n      input = frame.v;\n      length = getLength(input);\n      continue;\n    }\n    var value = input[i++];\n    if (stack.length >= depth) {\n      output[idx++] = value;\n    } else if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n      // Flatten current level of array or arguments object.\n      stack.push({i: i, v: input});\n      i = 0;\n      input = value;\n      length = getLength(input);\n    } else if (!strict) {\n      output[idx++] = value;\n    }\n  }\n  return output;\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n  keys = flatten(keys, false, false);\n  var index = keys.length;\n  if (index < 1) throw new Error('bindAll must be passed function names');\n  while (index--) {\n    var key = keys[index];\n    obj[key] = bind(obj[key], obj);\n  }\n  return obj;\n});\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n  var memoize = function(key) {\n    var cache = memoize.cache;\n    var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n    if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n    return cache[address];\n  };\n  memoize.cache = {};\n  return memoize;\n}\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n  return setTimeout(function() {\n    return func.apply(null, args);\n  }, wait);\n});\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n  var timeout, context, args, result;\n  var previous = 0;\n  if (!options) options = {};\n\n  var later = function() {\n    previous = options.leading === false ? 0 : now();\n    timeout = null;\n    result = func.apply(context, args);\n    if (!timeout) context = args = null;\n  };\n\n  var throttled = function() {\n    var _now = now();\n    if (!previous && options.leading === false) previous = _now;\n    var remaining = wait - (_now - previous);\n    context = this;\n    args = arguments;\n    if (remaining <= 0 || remaining > wait) {\n      if (timeout) {\n        clearTimeout(timeout);\n        timeout = null;\n      }\n      previous = _now;\n      result = func.apply(context, args);\n      if (!timeout) context = args = null;\n    } else if (!timeout && options.trailing !== false) {\n      timeout = setTimeout(later, remaining);\n    }\n    return result;\n  };\n\n  throttled.cancel = function() {\n    clearTimeout(timeout);\n    previous = 0;\n    timeout = context = args = null;\n  };\n\n  return throttled;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n  var timeout, previous, args, result, context;\n\n  var later = function() {\n    var passed = now() - previous;\n    if (wait > passed) {\n      timeout = setTimeout(later, wait - passed);\n    } else {\n      timeout = null;\n      if (!immediate) result = func.apply(context, args);\n      // This check is needed because `func` can recursively invoke `debounced`.\n      if (!timeout) args = context = null;\n    }\n  };\n\n  var debounced = restArguments(function(_args) {\n    context = this;\n    args = _args;\n    previous = now();\n    if (!timeout) {\n      timeout = setTimeout(later, wait);\n      if (immediate) result = func.apply(context, args);\n    }\n    return result;\n  });\n\n  debounced.cancel = function() {\n    clearTimeout(timeout);\n    timeout = args = context = null;\n  };\n\n  return debounced;\n}\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n  return partial(wrapper, func);\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n  return function() {\n    return !predicate.apply(this, arguments);\n  };\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n  var args = arguments;\n  var start = args.length - 1;\n  return function() {\n    var i = start;\n    var result = args[start].apply(this, arguments);\n    while (i--) result = args[i].call(this, result);\n    return result;\n  };\n}\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n  return function() {\n    if (--times < 1) {\n      return func.apply(this, arguments);\n    }\n  };\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n  var memo;\n  return function() {\n    if (--times > 0) {\n      memo = func.apply(this, arguments);\n    }\n    if (times <= 1) func = null;\n    return memo;\n  };\n}\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = keys(obj), key;\n  for (var i = 0, length = _keys.length; i < length; i++) {\n    key = _keys[i];\n    if (predicate(obj[key], key, obj)) return key;\n  }\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n  return function(array, predicate, context) {\n    predicate = cb(predicate, context);\n    var length = getLength(array);\n    var index = dir > 0 ? 0 : length - 1;\n    for (; index >= 0 && index < length; index += dir) {\n      if (predicate(array[index], index, array)) return index;\n    }\n    return -1;\n  };\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n  iteratee = cb(iteratee, context, 1);\n  var value = iteratee(obj);\n  var low = 0, high = getLength(array);\n  while (low < high) {\n    var mid = Math.floor((low + high) / 2);\n    if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n  }\n  return low;\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n  return function(array, item, idx) {\n    var i = 0, length = getLength(array);\n    if (typeof idx == 'number') {\n      if (dir > 0) {\n        i = idx >= 0 ? idx : Math.max(idx + length, i);\n      } else {\n        length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n      }\n    } else if (sortedIndex && idx && length) {\n      idx = sortedIndex(array, item);\n      return array[idx] === item ? idx : -1;\n    }\n    if (item !== item) {\n      idx = predicateFind(slice.call(array, i, length), isNaN);\n      return idx >= 0 ? idx + i : -1;\n    }\n    for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n      if (array[idx] === item) return idx;\n    }\n    return -1;\n  };\n}\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n  var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n  var key = keyFinder(obj, predicate, context);\n  if (key !== void 0 && key !== -1) return obj[key];\n}\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n  return find(obj, matcher(attrs));\n}\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n  iteratee = optimizeCb(iteratee, context);\n  var i, length;\n  if (isArrayLike(obj)) {\n    for (i = 0, length = obj.length; i < length; i++) {\n      iteratee(obj[i], i, obj);\n    }\n  } else {\n    var _keys = keys(obj);\n    for (i = 0, length = _keys.length; i < length; i++) {\n      iteratee(obj[_keys[i]], _keys[i], obj);\n    }\n  }\n  return obj;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n  iteratee = cb(iteratee, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length,\n      results = Array(length);\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    results[index] = iteratee(obj[currentKey], currentKey, obj);\n  }\n  return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n  // Wrap code that reassigns argument variables in a separate function than\n  // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n  var reducer = function(obj, iteratee, memo, initial) {\n    var _keys = !isArrayLike(obj) && keys(obj),\n        length = (_keys || obj).length,\n        index = dir > 0 ? 0 : length - 1;\n    if (!initial) {\n      memo = obj[_keys ? _keys[index] : index];\n      index += dir;\n    }\n    for (; index >= 0 && index < length; index += dir) {\n      var currentKey = _keys ? _keys[index] : index;\n      memo = iteratee(memo, obj[currentKey], currentKey, obj);\n    }\n    return memo;\n  };\n\n  return function(obj, iteratee, memo, context) {\n    var initial = arguments.length >= 3;\n    return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n  };\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n  var results = [];\n  predicate = cb(predicate, context);\n  each(obj, function(value, index, list) {\n    if (predicate(value, index, list)) results.push(value);\n  });\n  return results;\n}\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n  return filter(obj, negate(cb(predicate)), context);\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length;\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    if (!predicate(obj[currentKey], currentKey, obj)) return false;\n  }\n  return true;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length;\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    if (predicate(obj[currentKey], currentKey, obj)) return true;\n  }\n  return false;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n  if (!isArrayLike(obj)) obj = values(obj);\n  if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n  return indexOf(obj, item, fromIndex) >= 0;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n  var contextPath, func;\n  if (isFunction(path)) {\n    func = path;\n  } else {\n    path = toPath(path);\n    contextPath = path.slice(0, -1);\n    path = path[path.length - 1];\n  }\n  return map(obj, function(context) {\n    var method = func;\n    if (!method) {\n      if (contextPath && contextPath.length) {\n        context = deepGet(context, contextPath);\n      }\n      if (context == null) return void 0;\n      method = context[path];\n    }\n    return method == null ? method : method.apply(context, args);\n  });\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n  return map(obj, property(key));\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n  return filter(obj, matcher(attrs));\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n  var result = -Infinity, lastComputed = -Infinity,\n      value, computed;\n  if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n    obj = isArrayLike(obj) ? obj : values(obj);\n    for (var i = 0, length = obj.length; i < length; i++) {\n      value = obj[i];\n      if (value != null && value > result) {\n        result = value;\n      }\n    }\n  } else {\n    iteratee = cb(iteratee, context);\n    each(obj, function(v, index, list) {\n      computed = iteratee(v, index, list);\n      if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n        result = v;\n        lastComputed = computed;\n      }\n    });\n  }\n  return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n  var result = Infinity, lastComputed = Infinity,\n      value, computed;\n  if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n    obj = isArrayLike(obj) ? obj : values(obj);\n    for (var i = 0, length = obj.length; i < length; i++) {\n      value = obj[i];\n      if (value != null && value < result) {\n        result = value;\n      }\n    }\n  } else {\n    iteratee = cb(iteratee, context);\n    each(obj, function(v, index, list) {\n      computed = iteratee(v, index, list);\n      if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n        result = v;\n        lastComputed = computed;\n      }\n    });\n  }\n  return result;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n  if (!obj) return [];\n  if (isArray(obj)) return slice.call(obj);\n  if (isString(obj)) {\n    // Keep surrogate pair characters together.\n    return obj.match(reStrSymbol);\n  }\n  if (isArrayLike(obj)) return map(obj, identity);\n  return values(obj);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n  if (n == null || guard) {\n    if (!isArrayLike(obj)) obj = values(obj);\n    return obj[random(obj.length - 1)];\n  }\n  var sample = toArray(obj);\n  var length = getLength(sample);\n  n = Math.max(Math.min(n, length), 0);\n  var last = length - 1;\n  for (var index = 0; index < n; index++) {\n    var rand = random(index, last);\n    var temp = sample[index];\n    sample[index] = sample[rand];\n    sample[rand] = temp;\n  }\n  return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n  return sample(obj, Infinity);\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n  var index = 0;\n  iteratee = cb(iteratee, context);\n  return pluck(map(obj, function(value, key, list) {\n    return {\n      value: value,\n      index: index++,\n      criteria: iteratee(value, key, list)\n    };\n  }).sort(function(left, right) {\n    var a = left.criteria;\n    var b = right.criteria;\n    if (a !== b) {\n      if (a > b || a === void 0) return 1;\n      if (a < b || b === void 0) return -1;\n    }\n    return left.index - right.index;\n  }), 'value');\n}\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n  return function(obj, iteratee, context) {\n    var result = partition ? [[], []] : {};\n    iteratee = cb(iteratee, context);\n    each(obj, function(value, index) {\n      var key = iteratee(value, index, obj);\n      behavior(result, value, key);\n    });\n    return result;\n  };\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n  if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n  result[key] = value;\n});\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n  if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n  result[pass ? 0 : 1].push(value);\n}, true);\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n  if (obj == null) return 0;\n  return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n  return key in obj;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n  var result = {}, iteratee = keys[0];\n  if (obj == null) return result;\n  if (isFunction(iteratee)) {\n    if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n    keys = allKeys(obj);\n  } else {\n    iteratee = keyInObj;\n    keys = flatten(keys, false, false);\n    obj = Object(obj);\n  }\n  for (var i = 0, length = keys.length; i < length; i++) {\n    var key = keys[i];\n    var value = obj[key];\n    if (iteratee(value, key, obj)) result[key] = value;\n  }\n  return result;\n});\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n  var iteratee = keys[0], context;\n  if (isFunction(iteratee)) {\n    iteratee = negate(iteratee);\n    if (keys.length > 1) context = keys[1];\n  } else {\n    keys = map(flatten(keys, false, false), String);\n    iteratee = function(value, key) {\n      return !contains(keys, key);\n    };\n  }\n  return pick(obj, iteratee, context);\n});\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n  return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n  if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n  if (n == null || guard) return array[0];\n  return initial(array, array.length - n);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n  return slice.call(array, n == null || guard ? 1 : n);\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n  if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n  if (n == null || guard) return array[array.length - 1];\n  return rest(array, Math.max(0, array.length - n));\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n  return filter(array, Boolean);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n  return _flatten(array, depth, false);\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n  rest = flatten(rest, true, true);\n  return filter(array, function(value){\n    return !contains(rest, value);\n  });\n});\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n  return difference(array, otherArrays);\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n  if (!isBoolean(isSorted)) {\n    context = iteratee;\n    iteratee = isSorted;\n    isSorted = false;\n  }\n  if (iteratee != null) iteratee = cb(iteratee, context);\n  var result = [];\n  var seen = [];\n  for (var i = 0, length = getLength(array); i < length; i++) {\n    var value = array[i],\n        computed = iteratee ? iteratee(value, i, array) : value;\n    if (isSorted && !iteratee) {\n      if (!i || seen !== computed) result.push(value);\n      seen = computed;\n    } else if (iteratee) {\n      if (!contains(seen, computed)) {\n        seen.push(computed);\n        result.push(value);\n      }\n    } else if (!contains(result, value)) {\n      result.push(value);\n    }\n  }\n  return result;\n}\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n  return uniq(flatten(arrays, true, true));\n});\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n  var result = [];\n  var argsLength = arguments.length;\n  for (var i = 0, length = getLength(array); i < length; i++) {\n    var item = array[i];\n    if (contains(result, item)) continue;\n    var j;\n    for (j = 1; j < argsLength; j++) {\n      if (!contains(arguments[j], item)) break;\n    }\n    if (j === argsLength) result.push(item);\n  }\n  return result;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n  var length = (array && max(array, getLength).length) || 0;\n  var result = Array(length);\n\n  for (var index = 0; index < length; index++) {\n    result[index] = pluck(array, index);\n  }\n  return result;\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import getLength  from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n  var result = {};\n  for (var i = 0, length = getLength(list); i < length; i++) {\n    if (values) {\n      result[list[i]] = values[i];\n    } else {\n      result[list[i][0]] = list[i][1];\n    }\n  }\n  return result;\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n  if (stop == null) {\n    stop = start || 0;\n    start = 0;\n  }\n  if (!step) {\n    step = stop < start ? -1 : 1;\n  }\n\n  var length = Math.max(Math.ceil((stop - start) / step), 0);\n  var range = Array(length);\n\n  for (var idx = 0; idx < length; idx++, start += step) {\n    range[idx] = start;\n  }\n\n  return range;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n  if (count == null || count < 1) return [];\n  var result = [];\n  var i = 0, length = array.length;\n  while (i < length) {\n    result.push(slice.call(array, i, i += count));\n  }\n  return result;\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n  return instance._chain ? _(obj).chain() : obj;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n  each(functions(obj), function(name) {\n    var func = _[name] = obj[name];\n    _.prototype[name] = function() {\n      var args = [this._wrapped];\n      push.apply(args, arguments);\n      return chainResult(this, func.apply(_, args));\n    };\n  });\n  return _;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n  var method = ArrayProto[name];\n  _.prototype[name] = function() {\n    var obj = this._wrapped;\n    if (obj != null) {\n      method.apply(obj, arguments);\n      if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n        delete obj[0];\n      }\n    }\n    return chainResult(this, obj);\n  };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n  var method = ArrayProto[name];\n  _.prototype[name] = function() {\n    var obj = this._wrapped;\n    if (obj != null) obj = method.apply(obj, arguments);\n    return chainResult(this, obj);\n  };\n});\n\nexport default _;\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","var isES5 = (function(){\n    \"use strict\";\n    return this === undefined;\n})();\n\nif (isES5) {\n    module.exports = {\n        freeze: Object.freeze,\n        defineProperty: Object.defineProperty,\n        getDescriptor: Object.getOwnPropertyDescriptor,\n        keys: Object.keys,\n        names: Object.getOwnPropertyNames,\n        getPrototypeOf: Object.getPrototypeOf,\n        isArray: Array.isArray,\n        isES5: isES5,\n        propertyIsWritable: function(obj, prop) {\n            var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n            return !!(!descriptor || descriptor.writable || descriptor.set);\n        }\n    };\n} else {\n    var has = {}.hasOwnProperty;\n    var str = {}.toString;\n    var proto = {}.constructor.prototype;\n\n    var ObjectKeys = function (o) {\n        var ret = [];\n        for (var key in o) {\n            if (has.call(o, key)) {\n                ret.push(key);\n            }\n        }\n        return ret;\n    };\n\n    var ObjectGetDescriptor = function(o, key) {\n        return {value: o[key]};\n    };\n\n    var ObjectDefineProperty = function (o, key, desc) {\n        o[key] = desc.value;\n        return o;\n    };\n\n    var ObjectFreeze = function (obj) {\n        return obj;\n    };\n\n    var ObjectGetPrototypeOf = function (obj) {\n        try {\n            return Object(obj).constructor.prototype;\n        }\n        catch (e) {\n            return proto;\n        }\n    };\n\n    var ArrayIsArray = function (obj) {\n        try {\n            return str.call(obj) === \"[object Array]\";\n        }\n        catch(e) {\n            return false;\n        }\n    };\n\n    module.exports = {\n        isArray: ArrayIsArray,\n        keys: ObjectKeys,\n        names: ObjectKeys,\n        defineProperty: ObjectDefineProperty,\n        getDescriptor: ObjectGetDescriptor,\n        freeze: ObjectFreeze,\n        getPrototypeOf: ObjectGetPrototypeOf,\n        isES5: isES5,\n        propertyIsWritable: function() {\n            return true;\n        }\n    };\n}\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n    typeof window !== \"undefined\" ? window :\n    typeof global !== \"undefined\" ? global :\n    this !== undefined ? this : null;\n\nfunction tryCatcher() {\n    try {\n        var target = tryCatchTarget;\n        tryCatchTarget = null;\n        return target.apply(this, arguments);\n    } catch (e) {\n        errorObj.e = e;\n        return errorObj;\n    }\n}\nfunction tryCatch(fn) {\n    tryCatchTarget = fn;\n    return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n    var hasProp = {}.hasOwnProperty;\n\n    function T() {\n        this.constructor = Child;\n        this.constructor$ = Parent;\n        for (var propertyName in Parent.prototype) {\n            if (hasProp.call(Parent.prototype, propertyName) &&\n                propertyName.charAt(propertyName.length-1) !== \"$\"\n           ) {\n                this[propertyName + \"$\"] = Parent.prototype[propertyName];\n            }\n        }\n    }\n    T.prototype = Parent.prototype;\n    Child.prototype = new T();\n    return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n    return val == null || val === true || val === false ||\n        typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n    return typeof value === \"function\" ||\n           typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n    if (!isPrimitive(maybeError)) return maybeError;\n\n    return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n    var len = target.length;\n    var ret = new Array(len + 1);\n    var i;\n    for (i = 0; i < len; ++i) {\n        ret[i] = target[i];\n    }\n    ret[i] = appendee;\n    return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n    if (es5.isES5) {\n        var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n        if (desc != null) {\n            return desc.get == null && desc.set == null\n                    ? desc.value\n                    : defaultValue;\n        }\n    } else {\n        return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n    }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n    if (isPrimitive(obj)) return obj;\n    var descriptor = {\n        value: value,\n        configurable: true,\n        enumerable: false,\n        writable: true\n    };\n    es5.defineProperty(obj, name, descriptor);\n    return obj;\n}\n\nfunction thrower(r) {\n    throw r;\n}\n\nvar inheritedDataKeys = (function() {\n    var excludedPrototypes = [\n        Array.prototype,\n        Object.prototype,\n        Function.prototype\n    ];\n\n    var isExcludedProto = function(val) {\n        for (var i = 0; i < excludedPrototypes.length; ++i) {\n            if (excludedPrototypes[i] === val) {\n                return true;\n            }\n        }\n        return false;\n    };\n\n    if (es5.isES5) {\n        var getKeys = Object.getOwnPropertyNames;\n        return function(obj) {\n            var ret = [];\n            var visitedKeys = Object.create(null);\n            while (obj != null && !isExcludedProto(obj)) {\n                var keys;\n                try {\n                    keys = getKeys(obj);\n                } catch (e) {\n                    return ret;\n                }\n                for (var i = 0; i < keys.length; ++i) {\n                    var key = keys[i];\n                    if (visitedKeys[key]) continue;\n                    visitedKeys[key] = true;\n                    var desc = Object.getOwnPropertyDescriptor(obj, key);\n                    if (desc != null && desc.get == null && desc.set == null) {\n                        ret.push(key);\n                    }\n                }\n                obj = es5.getPrototypeOf(obj);\n            }\n            return ret;\n        };\n    } else {\n        var hasProp = {}.hasOwnProperty;\n        return function(obj) {\n            if (isExcludedProto(obj)) return [];\n            var ret = [];\n\n            /*jshint forin:false */\n            enumeration: for (var key in obj) {\n                if (hasProp.call(obj, key)) {\n                    ret.push(key);\n                } else {\n                    for (var i = 0; i < excludedPrototypes.length; ++i) {\n                        if (hasProp.call(excludedPrototypes[i], key)) {\n                            continue enumeration;\n                        }\n                    }\n                    ret.push(key);\n                }\n            }\n            return ret;\n        };\n    }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n    try {\n        if (typeof fn === \"function\") {\n            var keys = es5.names(fn.prototype);\n\n            var hasMethods = es5.isES5 && keys.length > 1;\n            var hasMethodsOtherThanConstructor = keys.length > 0 &&\n                !(keys.length === 1 && keys[0] === \"constructor\");\n            var hasThisAssignmentAndStaticMethods =\n                thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n            if (hasMethods || hasMethodsOtherThanConstructor ||\n                hasThisAssignmentAndStaticMethods) {\n                return true;\n            }\n        }\n        return false;\n    } catch (e) {\n        return false;\n    }\n}\n\nfunction toFastProperties(obj) {\n    /*jshint -W027,-W055,-W031*/\n    function FakeConstructor() {}\n    FakeConstructor.prototype = obj;\n    var l = 8;\n    while (l--) new FakeConstructor();\n    return obj;\n    eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n    return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n    var ret = new Array(count);\n    for(var i = 0; i < count; ++i) {\n        ret[i] = prefix + i + suffix;\n    }\n    return ret;\n}\n\nfunction safeToString(obj) {\n    try {\n        return obj + \"\";\n    } catch (e) {\n        return \"[no string representation]\";\n    }\n}\n\nfunction isError(obj) {\n    return obj !== null &&\n           typeof obj === \"object\" &&\n           typeof obj.message === \"string\" &&\n           typeof obj.name === \"string\";\n}\n\nfunction markAsOriginatingFromRejection(e) {\n    try {\n        notEnumerableProp(e, \"isOperational\", true);\n    }\n    catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n    if (e == null) return false;\n    return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n        e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n    return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n    if (!(\"stack\" in new Error())) {\n        return function(value) {\n            if (canAttachTrace(value)) return value;\n            try {throw new Error(safeToString(value));}\n            catch(err) {return err;}\n        };\n    } else {\n        return function(value) {\n            if (canAttachTrace(value)) return value;\n            return new Error(safeToString(value));\n        };\n    }\n})();\n\nfunction classString(obj) {\n    return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n    var keys = es5.names(from);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        if (filter(key)) {\n            try {\n                es5.defineProperty(to, key, es5.getDescriptor(from, key));\n            } catch (ignore) {}\n        }\n    }\n}\n\nvar asArray = function(v) {\n    if (es5.isArray(v)) {\n        return v;\n    }\n    return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n    var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n        return Array.from(v);\n    } : function(v) {\n        var ret = [];\n        var it = v[Symbol.iterator]();\n        var itResult;\n        while (!((itResult = it.next()).done)) {\n            ret.push(itResult.value);\n        }\n        return ret;\n    };\n\n    asArray = function(v) {\n        if (es5.isArray(v)) {\n            return v;\n        } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n            return ArrayFrom(v);\n        }\n        return null;\n    };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n        classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n    typeof process.env !== \"undefined\";\n\nfunction env(key) {\n    return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n    if (typeof Promise === \"function\") {\n        try {\n            var promise = new Promise(function(){});\n            if ({}.toString.call(promise) === \"[object Promise]\") {\n                return Promise;\n            }\n        } catch (e) {}\n    }\n}\n\nfunction domainBind(self, cb) {\n    return self.bind(cb);\n}\n\nvar ret = {\n    isClass: isClass,\n    isIdentifier: isIdentifier,\n    inheritedDataKeys: inheritedDataKeys,\n    getDataPropertyOrDefault: getDataPropertyOrDefault,\n    thrower: thrower,\n    isArray: es5.isArray,\n    asArray: asArray,\n    notEnumerableProp: notEnumerableProp,\n    isPrimitive: isPrimitive,\n    isObject: isObject,\n    isError: isError,\n    canEvaluate: canEvaluate,\n    errorObj: errorObj,\n    tryCatch: tryCatch,\n    inherits: inherits,\n    withAppended: withAppended,\n    maybeWrapAsError: maybeWrapAsError,\n    toFastProperties: toFastProperties,\n    filledRange: filledRange,\n    toString: safeToString,\n    canAttachTrace: canAttachTrace,\n    ensureErrorObject: ensureErrorObject,\n    originatesFromRejection: originatesFromRejection,\n    markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n    classString: classString,\n    copyDescriptors: copyDescriptors,\n    hasDevTools: typeof chrome !== \"undefined\" && chrome &&\n                 typeof chrome.loadTimes === \"function\",\n    isNode: isNode,\n    hasEnvVariables: hasEnvVariables,\n    env: env,\n    global: globalObject,\n    getNativePromise: getNativePromise,\n    domainBind: domainBind\n};\nret.isRecentNode = ret.isNode && (function() {\n    var version = process.versions.node.split(\".\").map(Number);\n    return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n","\"use strict\";\nvar util = require(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n    throw new Error(\"No async scheduler available\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n    var GlobalSetImmediate = global.setImmediate;\n    var ProcessNextTick = process.nextTick;\n    schedule = util.isRecentNode\n                ? function(fn) { GlobalSetImmediate.call(global, fn); }\n                : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n           typeof NativePromise.resolve === \"function\") {\n    var nativePromise = NativePromise.resolve();\n    schedule = function(fn) {\n        nativePromise.then(fn);\n    };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n          !(typeof window !== \"undefined\" &&\n            window.navigator &&\n            (window.navigator.standalone || window.cordova))) {\n    schedule = (function() {\n        var div = document.createElement(\"div\");\n        var opts = {attributes: true};\n        var toggleScheduled = false;\n        var div2 = document.createElement(\"div\");\n        var o2 = new MutationObserver(function() {\n            div.classList.toggle(\"foo\");\n            toggleScheduled = false;\n        });\n        o2.observe(div2, opts);\n\n        var scheduleToggle = function() {\n            if (toggleScheduled) return;\n                toggleScheduled = true;\n                div2.classList.toggle(\"foo\");\n            };\n\n            return function schedule(fn) {\n            var o = new MutationObserver(function() {\n                o.disconnect();\n                fn();\n            });\n            o.observe(div, opts);\n            scheduleToggle();\n        };\n    })();\n} else if (typeof setImmediate !== \"undefined\") {\n    schedule = function (fn) {\n        setImmediate(fn);\n    };\n} else if (typeof setTimeout !== \"undefined\") {\n    schedule = function (fn) {\n        setTimeout(fn, 0);\n    };\n} else {\n    schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n","\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n    for (var j = 0; j < len; ++j) {\n        dst[j + dstIndex] = src[j + srcIndex];\n        src[j + srcIndex] = void 0;\n    }\n}\n\nfunction Queue(capacity) {\n    this._capacity = capacity;\n    this._length = 0;\n    this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n    return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n    var length = this.length();\n    this._checkCapacity(length + 1);\n    var i = (this._front + length) & (this._capacity - 1);\n    this[i] = arg;\n    this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n    var length = this.length() + 3;\n    if (this._willBeOverCapacity(length)) {\n        this._pushOne(fn);\n        this._pushOne(receiver);\n        this._pushOne(arg);\n        return;\n    }\n    var j = this._front + length - 3;\n    this._checkCapacity(length);\n    var wrapMask = this._capacity - 1;\n    this[(j + 0) & wrapMask] = fn;\n    this[(j + 1) & wrapMask] = receiver;\n    this[(j + 2) & wrapMask] = arg;\n    this._length = length;\n};\n\nQueue.prototype.shift = function () {\n    var front = this._front,\n        ret = this[front];\n\n    this[front] = undefined;\n    this._front = (front + 1) & (this._capacity - 1);\n    this._length--;\n    return ret;\n};\n\nQueue.prototype.length = function () {\n    return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n    if (this._capacity < size) {\n        this._resizeTo(this._capacity << 1);\n    }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n    var oldCapacity = this._capacity;\n    this._capacity = capacity;\n    var front = this._front;\n    var length = this._length;\n    var moveItemsCount = (front + length) & (oldCapacity - 1);\n    arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n","\"use strict\";\nvar firstLineError;\ntry {throw new Error(); } catch (e) {firstLineError = e;}\nvar schedule = require(\"./schedule\");\nvar Queue = require(\"./queue\");\nvar util = require(\"./util\");\n\nfunction Async() {\n    this._customScheduler = false;\n    this._isTickUsed = false;\n    this._lateQueue = new Queue(16);\n    this._normalQueue = new Queue(16);\n    this._haveDrainedQueues = false;\n    this._trampolineEnabled = true;\n    var self = this;\n    this.drainQueues = function () {\n        self._drainQueues();\n    };\n    this._schedule = schedule;\n}\n\nAsync.prototype.setScheduler = function(fn) {\n    var prev = this._schedule;\n    this._schedule = fn;\n    this._customScheduler = true;\n    return prev;\n};\n\nAsync.prototype.hasCustomScheduler = function() {\n    return this._customScheduler;\n};\n\nAsync.prototype.enableTrampoline = function() {\n    this._trampolineEnabled = true;\n};\n\nAsync.prototype.disableTrampolineIfNecessary = function() {\n    if (util.hasDevTools) {\n        this._trampolineEnabled = false;\n    }\n};\n\nAsync.prototype.haveItemsQueued = function () {\n    return this._isTickUsed || this._haveDrainedQueues;\n};\n\n\nAsync.prototype.fatalError = function(e, isNode) {\n    if (isNode) {\n        process.stderr.write(\"Fatal \" + (e instanceof Error ? e.stack : e) +\n            \"\\n\");\n        process.exit(2);\n    } else {\n        this.throwLater(e);\n    }\n};\n\nAsync.prototype.throwLater = function(fn, arg) {\n    if (arguments.length === 1) {\n        arg = fn;\n        fn = function () { throw arg; };\n    }\n    if (typeof setTimeout !== \"undefined\") {\n        setTimeout(function() {\n            fn(arg);\n        }, 0);\n    } else try {\n        this._schedule(function() {\n            fn(arg);\n        });\n    } catch (e) {\n        throw new Error(\"No async scheduler available\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n};\n\nfunction AsyncInvokeLater(fn, receiver, arg) {\n    this._lateQueue.push(fn, receiver, arg);\n    this._queueTick();\n}\n\nfunction AsyncInvoke(fn, receiver, arg) {\n    this._normalQueue.push(fn, receiver, arg);\n    this._queueTick();\n}\n\nfunction AsyncSettlePromises(promise) {\n    this._normalQueue._pushOne(promise);\n    this._queueTick();\n}\n\nif (!util.hasDevTools) {\n    Async.prototype.invokeLater = AsyncInvokeLater;\n    Async.prototype.invoke = AsyncInvoke;\n    Async.prototype.settlePromises = AsyncSettlePromises;\n} else {\n    Async.prototype.invokeLater = function (fn, receiver, arg) {\n        if (this._trampolineEnabled) {\n            AsyncInvokeLater.call(this, fn, receiver, arg);\n        } else {\n            this._schedule(function() {\n                setTimeout(function() {\n                    fn.call(receiver, arg);\n                }, 100);\n            });\n        }\n    };\n\n    Async.prototype.invoke = function (fn, receiver, arg) {\n        if (this._trampolineEnabled) {\n            AsyncInvoke.call(this, fn, receiver, arg);\n        } else {\n            this._schedule(function() {\n                fn.call(receiver, arg);\n            });\n        }\n    };\n\n    Async.prototype.settlePromises = function(promise) {\n        if (this._trampolineEnabled) {\n            AsyncSettlePromises.call(this, promise);\n        } else {\n            this._schedule(function() {\n                promise._settlePromises();\n            });\n        }\n    };\n}\n\nAsync.prototype._drainQueue = function(queue) {\n    while (queue.length() > 0) {\n        var fn = queue.shift();\n        if (typeof fn !== \"function\") {\n            fn._settlePromises();\n            continue;\n        }\n        var receiver = queue.shift();\n        var arg = queue.shift();\n        fn.call(receiver, arg);\n    }\n};\n\nAsync.prototype._drainQueues = function () {\n    this._drainQueue(this._normalQueue);\n    this._reset();\n    this._haveDrainedQueues = true;\n    this._drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n    if (!this._isTickUsed) {\n        this._isTickUsed = true;\n        this._schedule(this.drainQueues);\n    }\n};\n\nAsync.prototype._reset = function () {\n    this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = require(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n    function SubError(message) {\n        if (!(this instanceof SubError)) return new SubError(message);\n        notEnumerableProp(this, \"message\",\n            typeof message === \"string\" ? message : defaultMessage);\n        notEnumerableProp(this, \"name\", nameProperty);\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, this.constructor);\n        } else {\n            Error.call(this);\n        }\n    }\n    inherits(SubError, Error);\n    return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n    _TypeError = TypeError;\n    _RangeError = RangeError;\n} catch(e) {\n    _TypeError = subError(\"TypeError\", \"type error\");\n    _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n    \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n    if (typeof Array.prototype[methods[i]] === \"function\") {\n        AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n    }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n    value: 0,\n    configurable: false,\n    writable: true,\n    enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n    var indent = Array(level * 4 + 1).join(\" \");\n    var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n    level++;\n    indent = Array(level * 4 + 1).join(\" \");\n    for (var i = 0; i < this.length; ++i) {\n        var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n        var lines = str.split(\"\\n\");\n        for (var j = 0; j < lines.length; ++j) {\n            lines[j] = indent + lines[j];\n        }\n        str = lines.join(\"\\n\");\n        ret += str + \"\\n\";\n    }\n    level--;\n    return ret;\n};\n\nfunction OperationalError(message) {\n    if (!(this instanceof OperationalError))\n        return new OperationalError(message);\n    notEnumerableProp(this, \"name\", \"OperationalError\");\n    notEnumerableProp(this, \"message\", message);\n    this.cause = message;\n    this[\"isOperational\"] = true;\n\n    if (message instanceof Error) {\n        notEnumerableProp(this, \"message\", message.message);\n        notEnumerableProp(this, \"stack\", message.stack);\n    } else if (Error.captureStackTrace) {\n        Error.captureStackTrace(this, this.constructor);\n    }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n    errorTypes = Objectfreeze({\n        CancellationError: CancellationError,\n        TimeoutError: TimeoutError,\n        OperationalError: OperationalError,\n        RejectionError: OperationalError,\n        AggregateError: AggregateError\n    });\n    es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n        value: errorTypes,\n        writable: false,\n        enumerable: false,\n        configurable: false\n    });\n}\n\nmodule.exports = {\n    Error: Error,\n    TypeError: _TypeError,\n    RangeError: _RangeError,\n    CancellationError: errorTypes.CancellationError,\n    OperationalError: errorTypes.OperationalError,\n    TimeoutError: errorTypes.TimeoutError,\n    AggregateError: errorTypes.AggregateError,\n    Warning: Warning\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n    if (isObject(obj)) {\n        if (obj instanceof Promise) return obj;\n        var then = getThen(obj);\n        if (then === errorObj) {\n            if (context) context._pushContext();\n            var ret = Promise.reject(then.e);\n            if (context) context._popContext();\n            return ret;\n        } else if (typeof then === \"function\") {\n            if (isAnyBluebirdPromise(obj)) {\n                var ret = new Promise(INTERNAL);\n                obj._then(\n                    ret._fulfill,\n                    ret._reject,\n                    undefined,\n                    ret,\n                    null\n                );\n                return ret;\n            }\n            return doThenable(obj, then, context);\n        }\n    }\n    return obj;\n}\n\nfunction doGetThen(obj) {\n    return obj.then;\n}\n\nfunction getThen(obj) {\n    try {\n        return doGetThen(obj);\n    } catch (e) {\n        errorObj.e = e;\n        return errorObj;\n    }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n    try {\n        return hasProp.call(obj, \"_promise0\");\n    } catch (e) {\n        return false;\n    }\n}\n\nfunction doThenable(x, then, context) {\n    var promise = new Promise(INTERNAL);\n    var ret = promise;\n    if (context) context._pushContext();\n    promise._captureStackTrace();\n    if (context) context._popContext();\n    var synchronous = true;\n    var result = util.tryCatch(then).call(x, resolve, reject);\n    synchronous = false;\n\n    if (promise && result === errorObj) {\n        promise._rejectCallback(result.e, true, true);\n        promise = null;\n    }\n\n    function resolve(value) {\n        if (!promise) return;\n        promise._resolveCallback(value);\n        promise = null;\n    }\n\n    function reject(reason) {\n        if (!promise) return;\n        promise._rejectCallback(reason, synchronous, true);\n        promise = null;\n    }\n    return ret;\n}\n\nreturn tryConvertToPromise;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n    apiRejection, Proxyable) {\nvar util = require(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n    switch(val) {\n    case -2: return [];\n    case -3: return {};\n    }\n}\n\nfunction PromiseArray(values) {\n    var promise = this._promise = new Promise(INTERNAL);\n    if (values instanceof Promise) {\n        promise._propagateFrom(values, 3);\n    }\n    promise._setOnCancel(this);\n    this._values = values;\n    this._length = 0;\n    this._totalResolved = 0;\n    this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n    return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n    return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n    var values = tryConvertToPromise(this._values, this._promise);\n    if (values instanceof Promise) {\n        values = values._target();\n        var bitField = values._bitField;\n        ;\n        this._values = values;\n\n        if (((bitField & 50397184) === 0)) {\n            this._promise._setAsyncGuaranteed();\n            return values._then(\n                init,\n                this._reject,\n                undefined,\n                this,\n                resolveValueIfEmpty\n           );\n        } else if (((bitField & 33554432) !== 0)) {\n            values = values._value();\n        } else if (((bitField & 16777216) !== 0)) {\n            return this._reject(values._reason());\n        } else {\n            return this._cancel();\n        }\n    }\n    values = util.asArray(values);\n    if (values === null) {\n        var err = apiRejection(\n            \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n        this._promise._rejectCallback(err, false);\n        return;\n    }\n\n    if (values.length === 0) {\n        if (resolveValueIfEmpty === -5) {\n            this._resolveEmptyArray();\n        }\n        else {\n            this._resolve(toResolutionValue(resolveValueIfEmpty));\n        }\n        return;\n    }\n    this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n    var len = this.getActualLength(values.length);\n    this._length = len;\n    this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n    var result = this._promise;\n    var isResolved = false;\n    var bitField = null;\n    for (var i = 0; i < len; ++i) {\n        var maybePromise = tryConvertToPromise(values[i], result);\n\n        if (maybePromise instanceof Promise) {\n            maybePromise = maybePromise._target();\n            bitField = maybePromise._bitField;\n        } else {\n            bitField = null;\n        }\n\n        if (isResolved) {\n            if (bitField !== null) {\n                maybePromise.suppressUnhandledRejections();\n            }\n        } else if (bitField !== null) {\n            if (((bitField & 50397184) === 0)) {\n                maybePromise._proxy(this, i);\n                this._values[i] = maybePromise;\n            } else if (((bitField & 33554432) !== 0)) {\n                isResolved = this._promiseFulfilled(maybePromise._value(), i);\n            } else if (((bitField & 16777216) !== 0)) {\n                isResolved = this._promiseRejected(maybePromise._reason(), i);\n            } else {\n                isResolved = this._promiseCancelled(i);\n            }\n        } else {\n            isResolved = this._promiseFulfilled(maybePromise, i);\n        }\n    }\n    if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n    return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n    this._values = null;\n    this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n    if (this._isResolved() || !this._promise._isCancellable()) return;\n    this._values = null;\n    this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n    this._values = null;\n    this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n    this._values[index] = value;\n    var totalResolved = ++this._totalResolved;\n    if (totalResolved >= this._length) {\n        this._resolve(this._values);\n        return true;\n    }\n    return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n    this._cancel();\n    return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n    this._totalResolved++;\n    this._reject(reason);\n    return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n    if (this._isResolved()) return;\n    var values = this._values;\n    this._cancel();\n    if (values instanceof Promise) {\n        values.cancel();\n    } else {\n        for (var i = 0; i < values.length; ++i) {\n            if (values[i] instanceof Promise) {\n                values[i].cancel();\n            }\n        }\n    }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n    return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n    return len;\n};\n\nreturn PromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n    this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n    if (this._trace !== undefined) {\n        this._trace._promiseCreated = null;\n        contextStack.push(this._trace);\n    }\n};\n\nContext.prototype._popContext = function () {\n    if (this._trace !== undefined) {\n        var trace = contextStack.pop();\n        var ret = trace._promiseCreated;\n        trace._promiseCreated = null;\n        return ret;\n    }\n    return null;\n};\n\nfunction createContext() {\n    if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n    var lastIndex = contextStack.length - 1;\n    if (lastIndex >= 0) {\n        return contextStack[lastIndex];\n    }\n    return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n    var Promise_pushContext = Promise.prototype._pushContext;\n    var Promise_popContext = Promise.prototype._popContext;\n    var Promise_PeekContext = Promise._peekContext;\n    var Promise_peekContext = Promise.prototype._peekContext;\n    var Promise_promiseCreated = Promise.prototype._promiseCreated;\n    Context.deactivateLongStackTraces = function() {\n        Promise.prototype._pushContext = Promise_pushContext;\n        Promise.prototype._popContext = Promise_popContext;\n        Promise._peekContext = Promise_PeekContext;\n        Promise.prototype._peekContext = Promise_peekContext;\n        Promise.prototype._promiseCreated = Promise_promiseCreated;\n        longStackTraces = false;\n    };\n    longStackTraces = true;\n    Promise.prototype._pushContext = Context.prototype._pushContext;\n    Promise.prototype._popContext = Context.prototype._popContext;\n    Promise._peekContext = Promise.prototype._peekContext = peekContext;\n    Promise.prototype._promiseCreated = function() {\n        var ctx = this._peekContext();\n        if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n    };\n};\nreturn Context;\n};\n","\"use strict\";\nmodule.exports = function(Promise, Context) {\nvar getDomain = Promise._getDomain;\nvar async = Promise._async;\nvar Warning = require(\"./errors\").Warning;\nvar util = require(\"./util\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n    /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n                        (false ||\n                         util.env(\"BLUEBIRD_DEBUG\") ||\n                         util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n    (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n    (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n    (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nPromise.prototype.suppressUnhandledRejections = function() {\n    var target = this._target();\n    target._bitField = ((target._bitField & (~1048576)) |\n                      524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n    if ((this._bitField & 524288) !== 0) return;\n    this._setRejectionIsUnhandled();\n    async.invokeLater(this._notifyUnhandledRejection, this, undefined);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n    fireRejectionEvent(\"rejectionHandled\",\n                                  unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n    this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n    return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n    if (this._isRejectionUnhandled()) {\n        var reason = this._settledValue();\n        this._setUnhandledRejectionIsNotified();\n        fireRejectionEvent(\"unhandledRejection\",\n                                      possiblyUnhandledRejection, reason, this);\n    }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n    this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n    this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n    return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n    this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n    this._bitField = this._bitField & (~1048576);\n    if (this._isUnhandledRejectionNotified()) {\n        this._unsetUnhandledRejectionIsNotified();\n        this._notifyUnhandledRejectionIsHandled();\n    }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n    return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n    return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n    var domain = getDomain();\n    possiblyUnhandledRejection =\n        typeof fn === \"function\" ? (domain === null ?\n                                            fn : util.domainBind(domain, fn))\n                                 : undefined;\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n    var domain = getDomain();\n    unhandledRejectionHandled =\n        typeof fn === \"function\" ? (domain === null ?\n                                            fn : util.domainBind(domain, fn))\n                                 : undefined;\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n    if (async.haveItemsQueued() && !config.longStackTraces) {\n        throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n    if (!config.longStackTraces && longStackTracesIsSupported()) {\n        var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n        var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n        config.longStackTraces = true;\n        disableLongStackTraces = function() {\n            if (async.haveItemsQueued() && !config.longStackTraces) {\n                throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n            }\n            Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n            Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n            Context.deactivateLongStackTraces();\n            async.enableTrampoline();\n            config.longStackTraces = false;\n        };\n        Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n        Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n        Context.activateLongStackTraces();\n        async.disableTrampolineIfNecessary();\n    }\n};\n\nPromise.hasLongStackTraces = function () {\n    return config.longStackTraces && longStackTracesIsSupported();\n};\n\nvar fireDomEvent = (function() {\n    try {\n        if (typeof CustomEvent === \"function\") {\n            var event = new CustomEvent(\"CustomEvent\");\n            util.global.dispatchEvent(event);\n            return function(name, event) {\n                var domEvent = new CustomEvent(name.toLowerCase(), {\n                    detail: event,\n                    cancelable: true\n                });\n                return !util.global.dispatchEvent(domEvent);\n            };\n        } else if (typeof Event === \"function\") {\n            var event = new Event(\"CustomEvent\");\n            util.global.dispatchEvent(event);\n            return function(name, event) {\n                var domEvent = new Event(name.toLowerCase(), {\n                    cancelable: true\n                });\n                domEvent.detail = event;\n                return !util.global.dispatchEvent(domEvent);\n            };\n        } else {\n            var event = document.createEvent(\"CustomEvent\");\n            event.initCustomEvent(\"testingtheevent\", false, true, {});\n            util.global.dispatchEvent(event);\n            return function(name, event) {\n                var domEvent = document.createEvent(\"CustomEvent\");\n                domEvent.initCustomEvent(name.toLowerCase(), false, true,\n                    event);\n                return !util.global.dispatchEvent(domEvent);\n            };\n        }\n    } catch (e) {}\n    return function() {\n        return false;\n    };\n})();\n\nvar fireGlobalEvent = (function() {\n    if (util.isNode) {\n        return function() {\n            return process.emit.apply(process, arguments);\n        };\n    } else {\n        if (!util.global) {\n            return function() {\n                return false;\n            };\n        }\n        return function(name) {\n            var methodName = \"on\" + name.toLowerCase();\n            var method = util.global[methodName];\n            if (!method) return false;\n            method.apply(util.global, [].slice.call(arguments, 1));\n            return true;\n        };\n    }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n    return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n    promiseCreated: generatePromiseLifecycleEventObject,\n    promiseFulfilled: generatePromiseLifecycleEventObject,\n    promiseRejected: generatePromiseLifecycleEventObject,\n    promiseResolved: generatePromiseLifecycleEventObject,\n    promiseCancelled: generatePromiseLifecycleEventObject,\n    promiseChained: function(name, promise, child) {\n        return {promise: promise, child: child};\n    },\n    warning: function(name, warning) {\n        return {warning: warning};\n    },\n    unhandledRejection: function (name, reason, promise) {\n        return {reason: reason, promise: promise};\n    },\n    rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n    var globalEventFired = false;\n    try {\n        globalEventFired = fireGlobalEvent.apply(null, arguments);\n    } catch (e) {\n        async.throwLater(e);\n        globalEventFired = true;\n    }\n\n    var domEventFired = false;\n    try {\n        domEventFired = fireDomEvent(name,\n                    eventToObjectGenerator[name].apply(null, arguments));\n    } catch (e) {\n        async.throwLater(e);\n        domEventFired = true;\n    }\n\n    return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n    opts = Object(opts);\n    if (\"longStackTraces\" in opts) {\n        if (opts.longStackTraces) {\n            Promise.longStackTraces();\n        } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n            disableLongStackTraces();\n        }\n    }\n    if (\"warnings\" in opts) {\n        var warningsOption = opts.warnings;\n        config.warnings = !!warningsOption;\n        wForgottenReturn = config.warnings;\n\n        if (util.isObject(warningsOption)) {\n            if (\"wForgottenReturn\" in warningsOption) {\n                wForgottenReturn = !!warningsOption.wForgottenReturn;\n            }\n        }\n    }\n    if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n        if (async.haveItemsQueued()) {\n            throw new Error(\n                \"cannot enable cancellation after promises are in use\");\n        }\n        Promise.prototype._clearCancellationData =\n            cancellationClearCancellationData;\n        Promise.prototype._propagateFrom = cancellationPropagateFrom;\n        Promise.prototype._onCancel = cancellationOnCancel;\n        Promise.prototype._setOnCancel = cancellationSetOnCancel;\n        Promise.prototype._attachCancellationCallback =\n            cancellationAttachCancellationCallback;\n        Promise.prototype._execute = cancellationExecute;\n        propagateFromFunction = cancellationPropagateFrom;\n        config.cancellation = true;\n    }\n    if (\"monitoring\" in opts) {\n        if (opts.monitoring && !config.monitoring) {\n            config.monitoring = true;\n            Promise.prototype._fireEvent = activeFireEvent;\n        } else if (!opts.monitoring && config.monitoring) {\n            config.monitoring = false;\n            Promise.prototype._fireEvent = defaultFireEvent;\n        }\n    }\n    return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n    try {\n        executor(resolve, reject);\n    } catch (e) {\n        return e;\n    }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n    ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n    ;\n    ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n    var promise = this;\n    try {\n        executor(resolve, reject, function(onCancel) {\n            if (typeof onCancel !== \"function\") {\n                throw new TypeError(\"onCancel must be a function, got: \" +\n                                    util.toString(onCancel));\n            }\n            promise._attachCancellationCallback(onCancel);\n        });\n    } catch (e) {\n        return e;\n    }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n    if (!this._isCancellable()) return this;\n\n    var previousOnCancel = this._onCancel();\n    if (previousOnCancel !== undefined) {\n        if (util.isArray(previousOnCancel)) {\n            previousOnCancel.push(onCancel);\n        } else {\n            this._setOnCancel([previousOnCancel, onCancel]);\n        }\n    } else {\n        this._setOnCancel(onCancel);\n    }\n}\n\nfunction cancellationOnCancel() {\n    return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n    this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n    this._cancellationParent = undefined;\n    this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n    if ((flags & 1) !== 0) {\n        this._cancellationParent = parent;\n        var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n        if (branchesRemainingToCancel === undefined) {\n            branchesRemainingToCancel = 0;\n        }\n        parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n    }\n    if ((flags & 2) !== 0 && parent._isBound()) {\n        this._setBoundTo(parent._boundTo);\n    }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n    if ((flags & 2) !== 0 && parent._isBound()) {\n        this._setBoundTo(parent._boundTo);\n    }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n    var ret = this._boundTo;\n    if (ret !== undefined) {\n        if (ret instanceof Promise) {\n            if (ret.isFulfilled()) {\n                return ret.value();\n            } else {\n                return undefined;\n            }\n        }\n    }\n    return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n    this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n    if (canAttachTrace(error)) {\n        var trace = this._trace;\n        if (trace !== undefined) {\n            if (ignoreSelf) trace = trace._parent;\n        }\n        if (trace !== undefined) {\n            trace.attachExtraTrace(error);\n        } else if (!error.__stackCleaned__) {\n            var parsed = parseStackAndMessage(error);\n            util.notEnumerableProp(error, \"stack\",\n                parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n            util.notEnumerableProp(error, \"__stackCleaned__\", true);\n        }\n    }\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n                               parent) {\n    if (returnValue === undefined && promiseCreated !== null &&\n        wForgottenReturn) {\n        if (parent !== undefined && parent._returnedNonUndefined()) return;\n        if ((promise._bitField & 65535) === 0) return;\n\n        if (name) name = name + \" \";\n        var handlerLine = \"\";\n        var creatorLine = \"\";\n        if (promiseCreated._trace) {\n            var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n            var stack = cleanStack(traceLines);\n            for (var i = stack.length - 1; i >= 0; --i) {\n                var line = stack[i];\n                if (!nodeFramePattern.test(line)) {\n                    var lineMatches = line.match(parseLinePattern);\n                    if (lineMatches) {\n                        handlerLine  = \"at \" + lineMatches[1] +\n                            \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n                    }\n                    break;\n                }\n            }\n\n            if (stack.length > 0) {\n                var firstUserLine = stack[0];\n                for (var i = 0; i < traceLines.length; ++i) {\n\n                    if (traceLines[i] === firstUserLine) {\n                        if (i > 0) {\n                            creatorLine = \"\\n\" + traceLines[i - 1];\n                        }\n                        break;\n                    }\n                }\n\n            }\n        }\n        var msg = \"a promise was created in a \" + name +\n            \"handler \" + handlerLine + \"but was not returned from it, \" +\n            \"see http://goo.gl/rRqMUw\" +\n            creatorLine;\n        promise._warn(msg, true, promiseCreated);\n    }\n}\n\nfunction deprecated(name, replacement) {\n    var message = name +\n        \" is deprecated and will be removed in a future version.\";\n    if (replacement) message += \" Use \" + replacement + \" instead.\";\n    return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n    if (!config.warnings) return;\n    var warning = new Warning(message);\n    var ctx;\n    if (shouldUseOwnTrace) {\n        promise._attachExtraTrace(warning);\n    } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n        ctx.attachExtraTrace(warning);\n    } else {\n        var parsed = parseStackAndMessage(warning);\n        warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n    }\n\n    if (!activeFireEvent(\"warning\", warning)) {\n        formatAndLogError(warning, \"\", true);\n    }\n}\n\nfunction reconstructStack(message, stacks) {\n    for (var i = 0; i < stacks.length - 1; ++i) {\n        stacks[i].push(\"From previous event:\");\n        stacks[i] = stacks[i].join(\"\\n\");\n    }\n    if (i < stacks.length) {\n        stacks[i] = stacks[i].join(\"\\n\");\n    }\n    return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n    for (var i = 0; i < stacks.length; ++i) {\n        if (stacks[i].length === 0 ||\n            ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n            stacks.splice(i, 1);\n            i--;\n        }\n    }\n}\n\nfunction removeCommonRoots(stacks) {\n    var current = stacks[0];\n    for (var i = 1; i < stacks.length; ++i) {\n        var prev = stacks[i];\n        var currentLastIndex = current.length - 1;\n        var currentLastLine = current[currentLastIndex];\n        var commonRootMeetPoint = -1;\n\n        for (var j = prev.length - 1; j >= 0; --j) {\n            if (prev[j] === currentLastLine) {\n                commonRootMeetPoint = j;\n                break;\n            }\n        }\n\n        for (var j = commonRootMeetPoint; j >= 0; --j) {\n            var line = prev[j];\n            if (current[currentLastIndex] === line) {\n                current.pop();\n                currentLastIndex--;\n            } else {\n                break;\n            }\n        }\n        current = prev;\n    }\n}\n\nfunction cleanStack(stack) {\n    var ret = [];\n    for (var i = 0; i < stack.length; ++i) {\n        var line = stack[i];\n        var isTraceLine = \"    (No stack trace)\" === line ||\n            stackFramePattern.test(line);\n        var isInternalFrame = isTraceLine && shouldIgnore(line);\n        if (isTraceLine && !isInternalFrame) {\n            if (indentStackFrames && line.charAt(0) !== \" \") {\n                line = \"    \" + line;\n            }\n            ret.push(line);\n        }\n    }\n    return ret;\n}\n\nfunction stackFramesAsArray(error) {\n    var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n    for (var i = 0; i < stack.length; ++i) {\n        var line = stack[i];\n        if (\"    (No stack trace)\" === line || stackFramePattern.test(line)) {\n            break;\n        }\n    }\n    if (i > 0 && error.name != \"SyntaxError\") {\n        stack = stack.slice(i);\n    }\n    return stack;\n}\n\nfunction parseStackAndMessage(error) {\n    var stack = error.stack;\n    var message = error.toString();\n    stack = typeof stack === \"string\" && stack.length > 0\n                ? stackFramesAsArray(error) : [\"    (No stack trace)\"];\n    return {\n        message: message,\n        stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n    };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n    if (typeof console !== \"undefined\") {\n        var message;\n        if (util.isObject(error)) {\n            var stack = error.stack;\n            message = title + formatStack(stack, error);\n        } else {\n            message = title + String(error);\n        }\n        if (typeof printWarning === \"function\") {\n            printWarning(message, isSoft);\n        } else if (typeof console.log === \"function\" ||\n            typeof console.log === \"object\") {\n            console.log(message);\n        }\n    }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n    var localEventFired = false;\n    try {\n        if (typeof localHandler === \"function\") {\n            localEventFired = true;\n            if (name === \"rejectionHandled\") {\n                localHandler(promise);\n            } else {\n                localHandler(reason, promise);\n            }\n        }\n    } catch (e) {\n        async.throwLater(e);\n    }\n\n    if (name === \"unhandledRejection\") {\n        if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n            formatAndLogError(reason, \"Unhandled rejection \");\n        }\n    } else {\n        activeFireEvent(name, promise);\n    }\n}\n\nfunction formatNonError(obj) {\n    var str;\n    if (typeof obj === \"function\") {\n        str = \"[function \" +\n            (obj.name || \"anonymous\") +\n            \"]\";\n    } else {\n        str = obj && typeof obj.toString === \"function\"\n            ? obj.toString() : util.toString(obj);\n        var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n        if (ruselessToString.test(str)) {\n            try {\n                var newStr = JSON.stringify(obj);\n                str = newStr;\n            }\n            catch(e) {\n\n            }\n        }\n        if (str.length === 0) {\n            str = \"(empty array)\";\n        }\n    }\n    return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n    var maxChars = 41;\n    if (str.length < maxChars) {\n        return str;\n    }\n    return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n    return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n    var matches = line.match(parseLineInfoRegex);\n    if (matches) {\n        return {\n            fileName: matches[1],\n            line: parseInt(matches[2], 10)\n        };\n    }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n    if (!longStackTracesIsSupported()) return;\n    var firstStackLines = firstLineError.stack.split(\"\\n\");\n    var lastStackLines = lastLineError.stack.split(\"\\n\");\n    var firstIndex = -1;\n    var lastIndex = -1;\n    var firstFileName;\n    var lastFileName;\n    for (var i = 0; i < firstStackLines.length; ++i) {\n        var result = parseLineInfo(firstStackLines[i]);\n        if (result) {\n            firstFileName = result.fileName;\n            firstIndex = result.line;\n            break;\n        }\n    }\n    for (var i = 0; i < lastStackLines.length; ++i) {\n        var result = parseLineInfo(lastStackLines[i]);\n        if (result) {\n            lastFileName = result.fileName;\n            lastIndex = result.line;\n            break;\n        }\n    }\n    if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n        firstFileName !== lastFileName || firstIndex >= lastIndex) {\n        return;\n    }\n\n    shouldIgnore = function(line) {\n        if (bluebirdFramePattern.test(line)) return true;\n        var info = parseLineInfo(line);\n        if (info) {\n            if (info.fileName === firstFileName &&\n                (firstIndex <= info.line && info.line <= lastIndex)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\n\nfunction CapturedTrace(parent) {\n    this._parent = parent;\n    this._promisesCreated = 0;\n    var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n    captureStackTrace(this, CapturedTrace);\n    if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n    var length = this._length;\n    if (length < 2) return;\n    var nodes = [];\n    var stackToIndex = {};\n\n    for (var i = 0, node = this; node !== undefined; ++i) {\n        nodes.push(node);\n        node = node._parent;\n    }\n    length = this._length = i;\n    for (var i = length - 1; i >= 0; --i) {\n        var stack = nodes[i].stack;\n        if (stackToIndex[stack] === undefined) {\n            stackToIndex[stack] = i;\n        }\n    }\n    for (var i = 0; i < length; ++i) {\n        var currentStack = nodes[i].stack;\n        var index = stackToIndex[currentStack];\n        if (index !== undefined && index !== i) {\n            if (index > 0) {\n                nodes[index - 1]._parent = undefined;\n                nodes[index - 1]._length = 1;\n            }\n            nodes[i]._parent = undefined;\n            nodes[i]._length = 1;\n            var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n            if (index < length - 1) {\n                cycleEdgeNode._parent = nodes[index + 1];\n                cycleEdgeNode._parent.uncycle();\n                cycleEdgeNode._length =\n                    cycleEdgeNode._parent._length + 1;\n            } else {\n                cycleEdgeNode._parent = undefined;\n                cycleEdgeNode._length = 1;\n            }\n            var currentChildLength = cycleEdgeNode._length + 1;\n            for (var j = i - 2; j >= 0; --j) {\n                nodes[j]._length = currentChildLength;\n                currentChildLength++;\n            }\n            return;\n        }\n    }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n    if (error.__stackCleaned__) return;\n    this.uncycle();\n    var parsed = parseStackAndMessage(error);\n    var message = parsed.message;\n    var stacks = [parsed.stack];\n\n    var trace = this;\n    while (trace !== undefined) {\n        stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n        trace = trace._parent;\n    }\n    removeCommonRoots(stacks);\n    removeDuplicateOrEmptyJumps(stacks);\n    util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n    util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n    var v8stackFramePattern = /^\\s*at\\s*/;\n    var v8stackFormatter = function(stack, error) {\n        if (typeof stack === \"string\") return stack;\n\n        if (error.name !== undefined &&\n            error.message !== undefined) {\n            return error.toString();\n        }\n        return formatNonError(error);\n    };\n\n    if (typeof Error.stackTraceLimit === \"number\" &&\n        typeof Error.captureStackTrace === \"function\") {\n        Error.stackTraceLimit += 6;\n        stackFramePattern = v8stackFramePattern;\n        formatStack = v8stackFormatter;\n        var captureStackTrace = Error.captureStackTrace;\n\n        shouldIgnore = function(line) {\n            return bluebirdFramePattern.test(line);\n        };\n        return function(receiver, ignoreUntil) {\n            Error.stackTraceLimit += 6;\n            captureStackTrace(receiver, ignoreUntil);\n            Error.stackTraceLimit -= 6;\n        };\n    }\n    var err = new Error();\n\n    if (typeof err.stack === \"string\" &&\n        err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n        stackFramePattern = /@/;\n        formatStack = v8stackFormatter;\n        indentStackFrames = true;\n        return function captureStackTrace(o) {\n            o.stack = new Error().stack;\n        };\n    }\n\n    var hasStackAfterThrow;\n    try { throw new Error(); }\n    catch(e) {\n        hasStackAfterThrow = (\"stack\" in e);\n    }\n    if (!(\"stack\" in err) && hasStackAfterThrow &&\n        typeof Error.stackTraceLimit === \"number\") {\n        stackFramePattern = v8stackFramePattern;\n        formatStack = v8stackFormatter;\n        return function captureStackTrace(o) {\n            Error.stackTraceLimit += 6;\n            try { throw new Error(); }\n            catch(e) { o.stack = e.stack; }\n            Error.stackTraceLimit -= 6;\n        };\n    }\n\n    formatStack = function(stack, error) {\n        if (typeof stack === \"string\") return stack;\n\n        if ((typeof error === \"object\" ||\n            typeof error === \"function\") &&\n            error.name !== undefined &&\n            error.message !== undefined) {\n            return error.toString();\n        }\n        return formatNonError(error);\n    };\n\n    return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n    printWarning = function (message) {\n        console.warn(message);\n    };\n    if (util.isNode && process.stderr.isTTY) {\n        printWarning = function(message, isSoft) {\n            var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n            console.warn(color + message + \"\\u001b[0m\\n\");\n        };\n    } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n        printWarning = function(message, isSoft) {\n            console.warn(\"%c\" + message,\n                        isSoft ? \"color: darkorange\" : \"color: red\");\n        };\n    }\n}\n\nvar config = {\n    warnings: warnings,\n    longStackTraces: false,\n    cancellation: false,\n    monitoring: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n    longStackTraces: function() {\n        return config.longStackTraces;\n    },\n    warnings: function() {\n        return config.warnings;\n    },\n    cancellation: function() {\n        return config.cancellation;\n    },\n    monitoring: function() {\n        return config.monitoring;\n    },\n    propagateFromFunction: function() {\n        return propagateFromFunction;\n    },\n    boundValueFunction: function() {\n        return boundValueFunction;\n    },\n    checkForgottenReturns: checkForgottenReturns,\n    setBounds: setBounds,\n    warn: warn,\n    deprecated: deprecated,\n    CapturedTrace: CapturedTrace,\n    fireDomEvent: fireDomEvent,\n    fireGlobalEvent: fireGlobalEvent\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise) {\nvar util = require(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n    this.promise = promise;\n    this.type = type;\n    this.handler = handler;\n    this.called = false;\n    this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n    return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n    this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n    checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n    if (ctx.cancelPromise != null) {\n        if (arguments.length > 1) {\n            ctx.cancelPromise._reject(reason);\n        } else {\n            ctx.cancelPromise._cancel();\n        }\n        ctx.cancelPromise = null;\n        return true;\n    }\n    return false;\n}\n\nfunction succeed() {\n    return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n    if (checkCancel(this, reason)) return;\n    errorObj.e = reason;\n    return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n    var promise = this.promise;\n    var handler = this.handler;\n\n    if (!this.called) {\n        this.called = true;\n        var ret = this.isFinallyHandler()\n            ? handler.call(promise._boundValue())\n            : handler.call(promise._boundValue(), reasonOrValue);\n        if (ret !== undefined) {\n            promise._setReturnedNonUndefined();\n            var maybePromise = tryConvertToPromise(ret, promise);\n            if (maybePromise instanceof Promise) {\n                if (this.cancelPromise != null) {\n                    if (maybePromise._isCancelled()) {\n                        var reason =\n                            new CancellationError(\"late cancellation observer\");\n                        promise._attachExtraTrace(reason);\n                        errorObj.e = reason;\n                        return errorObj;\n                    } else if (maybePromise.isPending()) {\n                        maybePromise._attachCancellationCallback(\n                            new FinallyHandlerCancelReaction(this));\n                    }\n                }\n                return maybePromise._then(\n                    succeed, fail, undefined, this, undefined);\n            }\n        }\n    }\n\n    if (promise.isRejected()) {\n        checkCancel(this);\n        errorObj.e = reasonOrValue;\n        return errorObj;\n    } else {\n        checkCancel(this);\n        return reasonOrValue;\n    }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n    if (typeof handler !== \"function\") return this.then();\n    return this._then(success,\n                      fail,\n                      undefined,\n                      new PassThroughHandlerContext(this, type, handler),\n                      undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n    return this._passThrough(handler,\n                             0,\n                             finallyHandler,\n                             finallyHandler);\n};\n\nPromise.prototype.tap = function (handler) {\n    return this._passThrough(handler, 1, finallyHandler);\n};\n\nreturn PassThroughHandlerContext;\n};\n","\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = require(\"./util\");\nvar getKeys = require(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n    return function(e) {\n        var boundTo = promise._boundValue();\n        predicateLoop: for (var i = 0; i < instances.length; ++i) {\n            var item = instances[i];\n\n            if (item === Error ||\n                (item != null && item.prototype instanceof Error)) {\n                if (e instanceof item) {\n                    return tryCatch(cb).call(boundTo, e);\n                }\n            } else if (typeof item === \"function\") {\n                var matchesPredicate = tryCatch(item).call(boundTo, e);\n                if (matchesPredicate === errorObj) {\n                    return matchesPredicate;\n                } else if (matchesPredicate) {\n                    return tryCatch(cb).call(boundTo, e);\n                }\n            } else if (util.isObject(e)) {\n                var keys = getKeys(item);\n                for (var j = 0; j < keys.length; ++j) {\n                    var key = keys[j];\n                    if (item[key] != e[key]) {\n                        continue predicateLoop;\n                    }\n                }\n                return tryCatch(cb).call(boundTo, e);\n            }\n        }\n        return NEXT_FILTER;\n    };\n}\n\nreturn catchFilter;\n};\n","\"use strict\";\nvar util = require(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = require(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = require(\"./es5\");\n\nfunction isUntypedError(obj) {\n    return obj instanceof Error &&\n        es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n    var ret;\n    if (isUntypedError(obj)) {\n        ret = new OperationalError(obj);\n        ret.name = obj.name;\n        ret.message = obj.message;\n        ret.stack = obj.stack;\n        var keys = es5.keys(obj);\n        for (var i = 0; i < keys.length; ++i) {\n            var key = keys[i];\n            if (!rErrorKey.test(key)) {\n                ret[key] = obj[key];\n            }\n        }\n        return ret;\n    }\n    util.markAsOriginatingFromRejection(obj);\n    return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n    return function(err, value) {\n        if (promise === null) return;\n        if (err) {\n            var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n            promise._attachExtraTrace(wrapped);\n            promise._reject(wrapped);\n        } else if (!multiArgs) {\n            promise._fulfill(value);\n        } else {\n            var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n            promise._fulfill(args);\n        }\n        promise = null;\n    };\n}\n\nmodule.exports = nodebackForPromise;\n","\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n    if (typeof fn !== \"function\") {\n        throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n    }\n    return function () {\n        var ret = new Promise(INTERNAL);\n        ret._captureStackTrace();\n        ret._pushContext();\n        var value = tryCatch(fn).apply(this, arguments);\n        var promiseCreated = ret._popContext();\n        debug.checkForgottenReturns(\n            value, promiseCreated, \"Promise.method\", ret);\n        ret._resolveFromSyncValue(value);\n        return ret;\n    };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n    if (typeof fn !== \"function\") {\n        return apiRejection(\"expecting a function but got \" + util.classString(fn));\n    }\n    var ret = new Promise(INTERNAL);\n    ret._captureStackTrace();\n    ret._pushContext();\n    var value;\n    if (arguments.length > 1) {\n        debug.deprecated(\"calling Promise.try with more than 1 argument\");\n        var arg = arguments[1];\n        var ctx = arguments[2];\n        value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n                                  : tryCatch(fn).call(ctx, arg);\n    } else {\n        value = tryCatch(fn)();\n    }\n    var promiseCreated = ret._popContext();\n    debug.checkForgottenReturns(\n        value, promiseCreated, \"Promise.try\", ret);\n    ret._resolveFromSyncValue(value);\n    return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n    if (value === util.errorObj) {\n        this._rejectCallback(value.e, false);\n    } else {\n        this._resolveCallback(value, true);\n    }\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n    this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n    context.promiseRejectionQueued = true;\n    context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n    if (((this._bitField & 50397184) === 0)) {\n        this._resolveCallback(context.target);\n    }\n};\n\nvar bindingRejected = function(e, context) {\n    if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n    if (!calledBind) {\n        calledBind = true;\n        Promise.prototype._propagateFrom = debug.propagateFromFunction();\n        Promise.prototype._boundValue = debug.boundValueFunction();\n    }\n    var maybePromise = tryConvertToPromise(thisArg);\n    var ret = new Promise(INTERNAL);\n    ret._propagateFrom(this, 1);\n    var target = this._target();\n    ret._setBoundTo(maybePromise);\n    if (maybePromise instanceof Promise) {\n        var context = {\n            promiseRejectionQueued: false,\n            promise: ret,\n            target: target,\n            bindingPromise: maybePromise\n        };\n        target._then(INTERNAL, targetRejected, undefined, ret, context);\n        maybePromise._then(\n            bindingResolved, bindingRejected, undefined, ret, context);\n        ret._setOnCancel(maybePromise);\n    } else {\n        ret._resolveCallback(target);\n    }\n    return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n    if (obj !== undefined) {\n        this._bitField = this._bitField | 2097152;\n        this._boundTo = obj;\n    } else {\n        this._bitField = this._bitField & (~2097152);\n    }\n};\n\nPromise.prototype._isBound = function () {\n    return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n    return Promise.resolve(value).bind(thisArg);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n    if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n    var promise = this;\n    var child = promise;\n    while (promise._isCancellable()) {\n        if (!promise._cancelBy(child)) {\n            if (child._isFollowing()) {\n                child._followee().cancel();\n            } else {\n                child._cancelBranched();\n            }\n            break;\n        }\n\n        var parent = promise._cancellationParent;\n        if (parent == null || !parent._isCancellable()) {\n            if (promise._isFollowing()) {\n                promise._followee().cancel();\n            } else {\n                promise._cancelBranched();\n            }\n            break;\n        } else {\n            if (promise._isFollowing()) promise._followee().cancel();\n            promise._setWillBeCancelled();\n            child = promise;\n            promise = parent;\n        }\n    }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n    this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n    return this._branchesRemainingToCancel === undefined ||\n           this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n    if (canceller === this) {\n        this._branchesRemainingToCancel = 0;\n        this._invokeOnCancel();\n        return true;\n    } else {\n        this._branchHasCancelled();\n        if (this._enoughBranchesHaveCancelled()) {\n            this._invokeOnCancel();\n            return true;\n        }\n    }\n    return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n    if (this._enoughBranchesHaveCancelled()) {\n        this._cancel();\n    }\n};\n\nPromise.prototype._cancel = function() {\n    if (!this._isCancellable()) return;\n    this._setCancelled();\n    async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n    if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n    this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n    return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n    return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n    if (util.isArray(onCancelCallback)) {\n        for (var i = 0; i < onCancelCallback.length; ++i) {\n            this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n        }\n    } else if (onCancelCallback !== undefined) {\n        if (typeof onCancelCallback === \"function\") {\n            if (!internalOnly) {\n                var e = tryCatch(onCancelCallback).call(this._boundValue());\n                if (e === errorObj) {\n                    this._attachExtraTrace(e.e);\n                    async.throwLater(e.e);\n                }\n            }\n        } else {\n            onCancelCallback._resultCancelled(this);\n        }\n    }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n    var onCancelCallback = this._onCancel();\n    this._unsetOnCancel();\n    async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n    if (this._isCancellable()) {\n        this._doInvokeOnCancel(this._onCancel(), true);\n        this._unsetOnCancel();\n    }\n};\n\nPromise.prototype._resultCancelled = function() {\n    this.cancel();\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n    return this.value;\n}\nfunction thrower() {\n    throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n    if (value instanceof Promise) value.suppressUnhandledRejections();\n    return this._then(\n        returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n    return this._then(\n        thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n    if (arguments.length <= 1) {\n        return this._then(\n            undefined, thrower, undefined, {reason: reason}, undefined);\n    } else {\n        var _reason = arguments[1];\n        var handler = function() {throw _reason;};\n        return this.caught(reason, handler);\n    }\n};\n\nPromise.prototype.catchReturn = function (value) {\n    if (arguments.length <= 1) {\n        if (value instanceof Promise) value.suppressUnhandledRejections();\n        return this._then(\n            undefined, returner, undefined, {value: value}, undefined);\n    } else {\n        var _value = arguments[1];\n        if (_value instanceof Promise) _value.suppressUnhandledRejections();\n        var handler = function() {return _value;};\n        return this.caught(value, handler);\n    }\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n    if (promise !== undefined) {\n        promise = promise._target();\n        this._bitField = promise._bitField;\n        this._settledValueField = promise._isFateSealed()\n            ? promise._settledValue() : undefined;\n    }\n    else {\n        this._bitField = 0;\n        this._settledValueField = undefined;\n    }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n    return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n    if (!this.isFulfilled()) {\n        throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n    return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n    if (!this.isRejected()) {\n        throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n    return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n    return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n    return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n    return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n    return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n    return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n    return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n    return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n    return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n    return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n    return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n    return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n    return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n    return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n    var target = this._target();\n    target._unsetRejectionIsUnhandled();\n    return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n    return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n    this._unsetRejectionIsUnhandled();\n    return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,\n         getDomain) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (!false) {\nif (canEvaluate) {\n    var thenCallback = function(i) {\n        return new Function(\"value\", \"holder\", \"                             \\n\\\n            'use strict';                                                    \\n\\\n            holder.pIndex = value;                                           \\n\\\n            holder.checkFulfillment(this);                                   \\n\\\n            \".replace(/Index/g, i));\n    };\n\n    var promiseSetter = function(i) {\n        return new Function(\"promise\", \"holder\", \"                           \\n\\\n            'use strict';                                                    \\n\\\n            holder.pIndex = promise;                                         \\n\\\n            \".replace(/Index/g, i));\n    };\n\n    var generateHolderClass = function(total) {\n        var props = new Array(total);\n        for (var i = 0; i < props.length; ++i) {\n            props[i] = \"this.p\" + (i+1);\n        }\n        var assignment = props.join(\" = \") + \" = null;\";\n        var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n            return \"                                                         \\n\\\n                promise = \" + prop + \";                                      \\n\\\n                if (promise instanceof Promise) {                            \\n\\\n                    promise.cancel();                                        \\n\\\n                }                                                            \\n\\\n            \";\n        }).join(\"\\n\");\n        var passedArguments = props.join(\", \");\n        var name = \"Holder$\" + total;\n\n\n        var code = \"return function(tryCatch, errorObj, Promise, async) {    \\n\\\n            'use strict';                                                    \\n\\\n            function [TheName](fn) {                                         \\n\\\n                [TheProperties]                                              \\n\\\n                this.fn = fn;                                                \\n\\\n                this.asyncNeeded = true;                                     \\n\\\n                this.now = 0;                                                \\n\\\n            }                                                                \\n\\\n                                                                             \\n\\\n            [TheName].prototype._callFunction = function(promise) {          \\n\\\n                promise._pushContext();                                      \\n\\\n                var ret = tryCatch(this.fn)([ThePassedArguments]);           \\n\\\n                promise._popContext();                                       \\n\\\n                if (ret === errorObj) {                                      \\n\\\n                    promise._rejectCallback(ret.e, false);                   \\n\\\n                } else {                                                     \\n\\\n                    promise._resolveCallback(ret);                           \\n\\\n                }                                                            \\n\\\n            };                                                               \\n\\\n                                                                             \\n\\\n            [TheName].prototype.checkFulfillment = function(promise) {       \\n\\\n                var now = ++this.now;                                        \\n\\\n                if (now === [TheTotal]) {                                    \\n\\\n                    if (this.asyncNeeded) {                                  \\n\\\n                        async.invoke(this._callFunction, this, promise);     \\n\\\n                    } else {                                                 \\n\\\n                        this._callFunction(promise);                         \\n\\\n                    }                                                        \\n\\\n                                                                             \\n\\\n                }                                                            \\n\\\n            };                                                               \\n\\\n                                                                             \\n\\\n            [TheName].prototype._resultCancelled = function() {              \\n\\\n                [CancellationCode]                                           \\n\\\n            };                                                               \\n\\\n                                                                             \\n\\\n            return [TheName];                                                \\n\\\n        }(tryCatch, errorObj, Promise, async);                               \\n\\\n        \";\n\n        code = code.replace(/\\[TheName\\]/g, name)\n            .replace(/\\[TheTotal\\]/g, total)\n            .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n            .replace(/\\[TheProperties\\]/g, assignment)\n            .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n        return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n                           (tryCatch, errorObj, Promise, async);\n    };\n\n    var holderClasses = [];\n    var thenCallbacks = [];\n    var promiseSetters = [];\n\n    for (var i = 0; i < 8; ++i) {\n        holderClasses.push(generateHolderClass(i + 1));\n        thenCallbacks.push(thenCallback(i + 1));\n        promiseSetters.push(promiseSetter(i + 1));\n    }\n\n    reject = function (reason) {\n        this._reject(reason);\n    };\n}}\n\nPromise.join = function () {\n    var last = arguments.length - 1;\n    var fn;\n    if (last > 0 && typeof arguments[last] === \"function\") {\n        fn = arguments[last];\n        if (!false) {\n            if (last <= 8 && canEvaluate) {\n                var ret = new Promise(INTERNAL);\n                ret._captureStackTrace();\n                var HolderClass = holderClasses[last - 1];\n                var holder = new HolderClass(fn);\n                var callbacks = thenCallbacks;\n\n                for (var i = 0; i < last; ++i) {\n                    var maybePromise = tryConvertToPromise(arguments[i], ret);\n                    if (maybePromise instanceof Promise) {\n                        maybePromise = maybePromise._target();\n                        var bitField = maybePromise._bitField;\n                        ;\n                        if (((bitField & 50397184) === 0)) {\n                            maybePromise._then(callbacks[i], reject,\n                                               undefined, ret, holder);\n                            promiseSetters[i](maybePromise, holder);\n                            holder.asyncNeeded = false;\n                        } else if (((bitField & 33554432) !== 0)) {\n                            callbacks[i].call(ret,\n                                              maybePromise._value(), holder);\n                        } else if (((bitField & 16777216) !== 0)) {\n                            ret._reject(maybePromise._reason());\n                        } else {\n                            ret._cancel();\n                        }\n                    } else {\n                        callbacks[i].call(ret, maybePromise, holder);\n                    }\n                }\n\n                if (!ret._isFateSealed()) {\n                    if (holder.asyncNeeded) {\n                        var domain = getDomain();\n                        if (domain !== null) {\n                            holder.fn = util.domainBind(domain, holder.fn);\n                        }\n                    }\n                    ret._setAsyncGuaranteed();\n                    ret._setOnCancel(holder);\n                }\n                return ret;\n            }\n        }\n    }\n    var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];};\n    if (fn) args.pop();\n    var ret = new PromiseArray(args).promise();\n    return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n                          PromiseArray,\n                          apiRejection,\n                          tryConvertToPromise,\n                          INTERNAL,\n                          debug) {\nvar getDomain = Promise._getDomain;\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n    this.constructor$(promises);\n    this._promise._captureStackTrace();\n    var domain = getDomain();\n    this._callback = domain === null ? fn : util.domainBind(domain, fn);\n    this._preservedValues = _filter === INTERNAL\n        ? new Array(this.length())\n        : null;\n    this._limit = limit;\n    this._inFlight = 0;\n    this._queue = [];\n    async.invoke(this._asyncInit, this, undefined);\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n    this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n    var values = this._values;\n    var length = this.length();\n    var preservedValues = this._preservedValues;\n    var limit = this._limit;\n\n    if (index < 0) {\n        index = (index * -1) - 1;\n        values[index] = value;\n        if (limit >= 1) {\n            this._inFlight--;\n            this._drainQueue();\n            if (this._isResolved()) return true;\n        }\n    } else {\n        if (limit >= 1 && this._inFlight >= limit) {\n            values[index] = value;\n            this._queue.push(index);\n            return false;\n        }\n        if (preservedValues !== null) preservedValues[index] = value;\n\n        var promise = this._promise;\n        var callback = this._callback;\n        var receiver = promise._boundValue();\n        promise._pushContext();\n        var ret = tryCatch(callback).call(receiver, value, index, length);\n        var promiseCreated = promise._popContext();\n        debug.checkForgottenReturns(\n            ret,\n            promiseCreated,\n            preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n            promise\n        );\n        if (ret === errorObj) {\n            this._reject(ret.e);\n            return true;\n        }\n\n        var maybePromise = tryConvertToPromise(ret, this._promise);\n        if (maybePromise instanceof Promise) {\n            maybePromise = maybePromise._target();\n            var bitField = maybePromise._bitField;\n            ;\n            if (((bitField & 50397184) === 0)) {\n                if (limit >= 1) this._inFlight++;\n                values[index] = maybePromise;\n                maybePromise._proxy(this, (index + 1) * -1);\n                return false;\n            } else if (((bitField & 33554432) !== 0)) {\n                ret = maybePromise._value();\n            } else if (((bitField & 16777216) !== 0)) {\n                this._reject(maybePromise._reason());\n                return true;\n            } else {\n                this._cancel();\n                return true;\n            }\n        }\n        values[index] = ret;\n    }\n    var totalResolved = ++this._totalResolved;\n    if (totalResolved >= length) {\n        if (preservedValues !== null) {\n            this._filter(values, preservedValues);\n        } else {\n            this._resolve(values);\n        }\n        return true;\n    }\n    return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n    var queue = this._queue;\n    var limit = this._limit;\n    var values = this._values;\n    while (queue.length > 0 && this._inFlight < limit) {\n        if (this._isResolved()) return;\n        var index = queue.pop();\n        this._promiseFulfilled(values[index], index);\n    }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n    var len = values.length;\n    var ret = new Array(len);\n    var j = 0;\n    for (var i = 0; i < len; ++i) {\n        if (booleans[i]) ret[j++] = values[i];\n    }\n    ret.length = j;\n    this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n    return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n    if (typeof fn !== \"function\") {\n        return apiRejection(\"expecting a function but got \" + util.classString(fn));\n    }\n\n    var limit = 0;\n    if (options !== undefined) {\n        if (typeof options === \"object\" && options !== null) {\n            if (typeof options.concurrency !== \"number\") {\n                return Promise.reject(\n                    new TypeError(\"'concurrency' must be a number but it is \" +\n                                    util.classString(options.concurrency)));\n            }\n            limit = options.concurrency;\n        } else {\n            return Promise.reject(new TypeError(\n                            \"options argument must be an object but it is \" +\n                             util.classString(options)));\n        }\n    }\n    limit = typeof limit === \"number\" &&\n        isFinite(limit) && limit >= 1 ? limit : 0;\n    return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n    return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n    return map(promises, fn, options, _filter);\n};\n\n\n};\n","\"use strict\";\nvar cr = Object.create;\nif (cr) {\n    var callerCache = cr(null);\n    var getterCache = cr(null);\n    callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (!false) {\nvar makeMethodCaller = function (methodName) {\n    return new Function(\"ensureMethod\", \"                                    \\n\\\n        return function(obj) {                                               \\n\\\n            'use strict'                                                     \\n\\\n            var len = this.length;                                           \\n\\\n            ensureMethod(obj, 'methodName');                                 \\n\\\n            switch(len) {                                                    \\n\\\n                case 1: return obj.methodName(this[0]);                      \\n\\\n                case 2: return obj.methodName(this[0], this[1]);             \\n\\\n                case 3: return obj.methodName(this[0], this[1], this[2]);    \\n\\\n                case 0: return obj.methodName();                             \\n\\\n                default:                                                     \\n\\\n                    return obj.methodName.apply(obj, this);                  \\n\\\n            }                                                                \\n\\\n        };                                                                   \\n\\\n        \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n    return new Function(\"obj\", \"                                             \\n\\\n        'use strict';                                                        \\n\\\n        return obj.propertyName;                                             \\n\\\n        \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n    var ret = cache[name];\n    if (typeof ret !== \"function\") {\n        if (!isIdentifier(name)) {\n            return null;\n        }\n        ret = compiler(name);\n        cache[name] = ret;\n        cache[\" size\"]++;\n        if (cache[\" size\"] > 512) {\n            var keys = Object.keys(cache);\n            for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n            cache[\" size\"] = keys.length - 256;\n        }\n    }\n    return ret;\n};\n\ngetMethodCaller = function(name) {\n    return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n    return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n    var fn;\n    if (obj != null) fn = obj[methodName];\n    if (typeof fn !== \"function\") {\n        var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n            util.toString(methodName) + \"'\";\n        throw new Promise.TypeError(message);\n    }\n    return fn;\n}\n\nfunction caller(obj) {\n    var methodName = this.pop();\n    var fn = ensureMethod(obj, methodName);\n    return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n    var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n    if (!false) {\n        if (canEvaluate) {\n            var maybeCaller = getMethodCaller(methodName);\n            if (maybeCaller !== null) {\n                return this._then(\n                    maybeCaller, undefined, undefined, args, undefined);\n            }\n        }\n    }\n    args.push(methodName);\n    return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n    return obj[this];\n}\nfunction indexedGetter(obj) {\n    var index = +this;\n    if (index < 0) index = Math.max(0, index + obj.length);\n    return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n    var isIndex = (typeof propertyName === \"number\");\n    var getter;\n    if (!isIndex) {\n        if (canEvaluate) {\n            var maybeGetter = getGetter(propertyName);\n            getter = maybeGetter !== null ? maybeGetter : namedGetter;\n        } else {\n            getter = namedGetter;\n        }\n    } else {\n        getter = indexedGetter;\n    }\n    return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n","\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n    createContext, INTERNAL, debug) {\n    var util = require(\"./util\");\n    var TypeError = require(\"./errors\").TypeError;\n    var inherits = require(\"./util\").inherits;\n    var errorObj = util.errorObj;\n    var tryCatch = util.tryCatch;\n    var NULL = {};\n\n    function thrower(e) {\n        setTimeout(function(){throw e;}, 0);\n    }\n\n    function castPreservingDisposable(thenable) {\n        var maybePromise = tryConvertToPromise(thenable);\n        if (maybePromise !== thenable &&\n            typeof thenable._isDisposable === \"function\" &&\n            typeof thenable._getDisposer === \"function\" &&\n            thenable._isDisposable()) {\n            maybePromise._setDisposable(thenable._getDisposer());\n        }\n        return maybePromise;\n    }\n    function dispose(resources, inspection) {\n        var i = 0;\n        var len = resources.length;\n        var ret = new Promise(INTERNAL);\n        function iterator() {\n            if (i >= len) return ret._fulfill();\n            var maybePromise = castPreservingDisposable(resources[i++]);\n            if (maybePromise instanceof Promise &&\n                maybePromise._isDisposable()) {\n                try {\n                    maybePromise = tryConvertToPromise(\n                        maybePromise._getDisposer().tryDispose(inspection),\n                        resources.promise);\n                } catch (e) {\n                    return thrower(e);\n                }\n                if (maybePromise instanceof Promise) {\n                    return maybePromise._then(iterator, thrower,\n                                              null, null, null);\n                }\n            }\n            iterator();\n        }\n        iterator();\n        return ret;\n    }\n\n    function Disposer(data, promise, context) {\n        this._data = data;\n        this._promise = promise;\n        this._context = context;\n    }\n\n    Disposer.prototype.data = function () {\n        return this._data;\n    };\n\n    Disposer.prototype.promise = function () {\n        return this._promise;\n    };\n\n    Disposer.prototype.resource = function () {\n        if (this.promise().isFulfilled()) {\n            return this.promise().value();\n        }\n        return NULL;\n    };\n\n    Disposer.prototype.tryDispose = function(inspection) {\n        var resource = this.resource();\n        var context = this._context;\n        if (context !== undefined) context._pushContext();\n        var ret = resource !== NULL\n            ? this.doDispose(resource, inspection) : null;\n        if (context !== undefined) context._popContext();\n        this._promise._unsetDisposable();\n        this._data = null;\n        return ret;\n    };\n\n    Disposer.isDisposer = function (d) {\n        return (d != null &&\n                typeof d.resource === \"function\" &&\n                typeof d.tryDispose === \"function\");\n    };\n\n    function FunctionDisposer(fn, promise, context) {\n        this.constructor$(fn, promise, context);\n    }\n    inherits(FunctionDisposer, Disposer);\n\n    FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n        var fn = this.data();\n        return fn.call(resource, resource, inspection);\n    };\n\n    function maybeUnwrapDisposer(value) {\n        if (Disposer.isDisposer(value)) {\n            this.resources[this.index]._setDisposable(value);\n            return value.promise();\n        }\n        return value;\n    }\n\n    function ResourceList(length) {\n        this.length = length;\n        this.promise = null;\n        this[length-1] = null;\n    }\n\n    ResourceList.prototype._resultCancelled = function() {\n        var len = this.length;\n        for (var i = 0; i < len; ++i) {\n            var item = this[i];\n            if (item instanceof Promise) {\n                item.cancel();\n            }\n        }\n    };\n\n    Promise.using = function () {\n        var len = arguments.length;\n        if (len < 2) return apiRejection(\n                        \"you must pass at least 2 arguments to Promise.using\");\n        var fn = arguments[len - 1];\n        if (typeof fn !== \"function\") {\n            return apiRejection(\"expecting a function but got \" + util.classString(fn));\n        }\n        var input;\n        var spreadArgs = true;\n        if (len === 2 && Array.isArray(arguments[0])) {\n            input = arguments[0];\n            len = input.length;\n            spreadArgs = false;\n        } else {\n            input = arguments;\n            len--;\n        }\n        var resources = new ResourceList(len);\n        for (var i = 0; i < len; ++i) {\n            var resource = input[i];\n            if (Disposer.isDisposer(resource)) {\n                var disposer = resource;\n                resource = resource.promise();\n                resource._setDisposable(disposer);\n            } else {\n                var maybePromise = tryConvertToPromise(resource);\n                if (maybePromise instanceof Promise) {\n                    resource =\n                        maybePromise._then(maybeUnwrapDisposer, null, null, {\n                            resources: resources,\n                            index: i\n                    }, undefined);\n                }\n            }\n            resources[i] = resource;\n        }\n\n        var reflectedResources = new Array(resources.length);\n        for (var i = 0; i < reflectedResources.length; ++i) {\n            reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n        }\n\n        var resultPromise = Promise.all(reflectedResources)\n            .then(function(inspections) {\n                for (var i = 0; i < inspections.length; ++i) {\n                    var inspection = inspections[i];\n                    if (inspection.isRejected()) {\n                        errorObj.e = inspection.error();\n                        return errorObj;\n                    } else if (!inspection.isFulfilled()) {\n                        resultPromise.cancel();\n                        return;\n                    }\n                    inspections[i] = inspection.value();\n                }\n                promise._pushContext();\n\n                fn = tryCatch(fn);\n                var ret = spreadArgs\n                    ? fn.apply(undefined, inspections) : fn(inspections);\n                var promiseCreated = promise._popContext();\n                debug.checkForgottenReturns(\n                    ret, promiseCreated, \"Promise.using\", promise);\n                return ret;\n            });\n\n        var promise = resultPromise.lastly(function() {\n            var inspection = new Promise.PromiseInspection(resultPromise);\n            return dispose(resources, inspection);\n        });\n        resources.promise = promise;\n        promise._setOnCancel(resources);\n        return promise;\n    };\n\n    Promise.prototype._setDisposable = function (disposer) {\n        this._bitField = this._bitField | 131072;\n        this._disposer = disposer;\n    };\n\n    Promise.prototype._isDisposable = function () {\n        return (this._bitField & 131072) > 0;\n    };\n\n    Promise.prototype._getDisposer = function () {\n        return this._disposer;\n    };\n\n    Promise.prototype._unsetDisposable = function () {\n        this._bitField = this._bitField & (~131072);\n        this._disposer = undefined;\n    };\n\n    Promise.prototype.disposer = function (fn) {\n        if (typeof fn === \"function\") {\n            return new FunctionDisposer(fn, this, createContext());\n        }\n        throw new TypeError();\n    };\n\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = require(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle)  {\n    this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n    clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n    var ret;\n    var handle;\n    if (value !== undefined) {\n        ret = Promise.resolve(value)\n                ._then(afterValue, null, null, ms, undefined);\n        if (debug.cancellation() && value instanceof Promise) {\n            ret._setOnCancel(value);\n        }\n    } else {\n        ret = new Promise(INTERNAL);\n        handle = setTimeout(function() { ret._fulfill(); }, +ms);\n        if (debug.cancellation()) {\n            ret._setOnCancel(new HandleWrapper(handle));\n        }\n        ret._captureStackTrace();\n    }\n    ret._setAsyncGuaranteed();\n    return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n    return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n    var err;\n    if (typeof message !== \"string\") {\n        if (message instanceof Error) {\n            err = message;\n        } else {\n            err = new TimeoutError(\"operation timed out\");\n        }\n    } else {\n        err = new TimeoutError(message);\n    }\n    util.markAsOriginatingFromRejection(err);\n    promise._attachExtraTrace(err);\n    promise._reject(err);\n\n    if (parent != null) {\n        parent.cancel();\n    }\n};\n\nfunction successClear(value) {\n    clearTimeout(this.handle);\n    return value;\n}\n\nfunction failureClear(reason) {\n    clearTimeout(this.handle);\n    throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n    ms = +ms;\n    var ret, parent;\n\n    var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n        if (ret.isPending()) {\n            afterTimeout(ret, message, parent);\n        }\n    }, ms));\n\n    if (debug.cancellation()) {\n        parent = this.then();\n        ret = parent._then(successClear, failureClear,\n                            undefined, handleWrapper, undefined);\n        ret._setOnCancel(handleWrapper);\n    } else {\n        ret = this._then(successClear, failureClear,\n                            undefined, handleWrapper, undefined);\n    }\n\n    return ret;\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n                          apiRejection,\n                          INTERNAL,\n                          tryConvertToPromise,\n                          Proxyable,\n                          debug) {\nvar errors = require(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n    for (var i = 0; i < yieldHandlers.length; ++i) {\n        traceParent._pushContext();\n        var result = tryCatch(yieldHandlers[i])(value);\n        traceParent._popContext();\n        if (result === errorObj) {\n            traceParent._pushContext();\n            var ret = Promise.reject(errorObj.e);\n            traceParent._popContext();\n            return ret;\n        }\n        var maybePromise = tryConvertToPromise(result, traceParent);\n        if (maybePromise instanceof Promise) return maybePromise;\n    }\n    return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n    if (debug.cancellation()) {\n        var internal = new Promise(INTERNAL);\n        var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n        this._promise = internal.lastly(function() {\n            return _finallyPromise;\n        });\n        internal._captureStackTrace();\n        internal._setOnCancel(this);\n    } else {\n        var promise = this._promise = new Promise(INTERNAL);\n        promise._captureStackTrace();\n    }\n    this._stack = stack;\n    this._generatorFunction = generatorFunction;\n    this._receiver = receiver;\n    this._generator = undefined;\n    this._yieldHandlers = typeof yieldHandler === \"function\"\n        ? [yieldHandler].concat(yieldHandlers)\n        : yieldHandlers;\n    this._yieldedPromise = null;\n    this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n    return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n    this._promise = this._generator = null;\n    if (debug.cancellation() && this._finallyPromise !== null) {\n        this._finallyPromise._fulfill();\n        this._finallyPromise = null;\n    }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n    if (this._isResolved()) return;\n    var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n    var result;\n    if (!implementsReturn) {\n        var reason = new Promise.CancellationError(\n            \"generator .return() sentinel\");\n        Promise.coroutine.returnSentinel = reason;\n        this._promise._attachExtraTrace(reason);\n        this._promise._pushContext();\n        result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n                                                         reason);\n        this._promise._popContext();\n    } else {\n        this._promise._pushContext();\n        result = tryCatch(this._generator[\"return\"]).call(this._generator,\n                                                          undefined);\n        this._promise._popContext();\n    }\n    this._cancellationPhase = true;\n    this._yieldedPromise = null;\n    this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n    this._yieldedPromise = null;\n    this._promise._pushContext();\n    var result = tryCatch(this._generator.next).call(this._generator, value);\n    this._promise._popContext();\n    this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n    this._yieldedPromise = null;\n    this._promise._attachExtraTrace(reason);\n    this._promise._pushContext();\n    var result = tryCatch(this._generator[\"throw\"])\n        .call(this._generator, reason);\n    this._promise._popContext();\n    this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n    if (this._yieldedPromise instanceof Promise) {\n        var promise = this._yieldedPromise;\n        this._yieldedPromise = null;\n        promise.cancel();\n    }\n};\n\nPromiseSpawn.prototype.promise = function () {\n    return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n    this._generator = this._generatorFunction.call(this._receiver);\n    this._receiver =\n        this._generatorFunction = undefined;\n    this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n    var promise = this._promise;\n    if (result === errorObj) {\n        this._cleanup();\n        if (this._cancellationPhase) {\n            return promise.cancel();\n        } else {\n            return promise._rejectCallback(result.e, false);\n        }\n    }\n\n    var value = result.value;\n    if (result.done === true) {\n        this._cleanup();\n        if (this._cancellationPhase) {\n            return promise.cancel();\n        } else {\n            return promise._resolveCallback(value);\n        }\n    } else {\n        var maybePromise = tryConvertToPromise(value, this._promise);\n        if (!(maybePromise instanceof Promise)) {\n            maybePromise =\n                promiseFromYieldHandler(maybePromise,\n                                        this._yieldHandlers,\n                                        this._promise);\n            if (maybePromise === null) {\n                this._promiseRejected(\n                    new TypeError(\n                        \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", value) +\n                        \"From coroutine:\\u000a\" +\n                        this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n                    )\n                );\n                return;\n            }\n        }\n        maybePromise = maybePromise._target();\n        var bitField = maybePromise._bitField;\n        ;\n        if (((bitField & 50397184) === 0)) {\n            this._yieldedPromise = maybePromise;\n            maybePromise._proxy(this, null);\n        } else if (((bitField & 33554432) !== 0)) {\n            Promise._async.invoke(\n                this._promiseFulfilled, this, maybePromise._value()\n            );\n        } else if (((bitField & 16777216) !== 0)) {\n            Promise._async.invoke(\n                this._promiseRejected, this, maybePromise._reason()\n            );\n        } else {\n            this._promiseCancelled();\n        }\n    }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n    if (typeof generatorFunction !== \"function\") {\n        throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n    var yieldHandler = Object(options).yieldHandler;\n    var PromiseSpawn$ = PromiseSpawn;\n    var stack = new Error().stack;\n    return function () {\n        var generator = generatorFunction.apply(this, arguments);\n        var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n                                      stack);\n        var ret = spawn.promise();\n        spawn._generator = generator;\n        spawn._promiseFulfilled(undefined);\n        return ret;\n    };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n    if (typeof fn !== \"function\") {\n        throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n    }\n    yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n    debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n    if (typeof generatorFunction !== \"function\") {\n        return apiRejection(\"generatorFunction must be a function\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n    var spawn = new PromiseSpawn(generatorFunction, this);\n    var ret = spawn.promise();\n    spawn._run(Promise.spawn);\n    return ret;\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n    var promise = this;\n    if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n    var ret =\n        tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n    if (ret === errorObj) {\n        async.throwLater(ret.e);\n    }\n}\n\nfunction successAdapter(val, nodeback) {\n    var promise = this;\n    var receiver = promise._boundValue();\n    var ret = val === undefined\n        ? tryCatch(nodeback).call(receiver, null)\n        : tryCatch(nodeback).call(receiver, null, val);\n    if (ret === errorObj) {\n        async.throwLater(ret.e);\n    }\n}\nfunction errorAdapter(reason, nodeback) {\n    var promise = this;\n    if (!reason) {\n        var newReason = new Error(reason + \"\");\n        newReason.cause = reason;\n        reason = newReason;\n    }\n    var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n    if (ret === errorObj) {\n        async.throwLater(ret.e);\n    }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n                                                                     options) {\n    if (typeof nodeback == \"function\") {\n        var adapter = successAdapter;\n        if (options !== undefined && Object(options).spread) {\n            adapter = spreadAdapter;\n        }\n        this._then(\n            adapter,\n            errorAdapter,\n            undefined,\n            this,\n            nodeback\n        );\n    }\n    return this;\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = require(\"./util\");\nvar nodebackForPromise = require(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = require(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n    \"arity\",    \"length\",\n    \"name\",\n    \"arguments\",\n    \"caller\",\n    \"callee\",\n    \"prototype\",\n    \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n    return util.isIdentifier(name) &&\n        name.charAt(0) !== \"_\" &&\n        name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n    return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n    try {\n        return fn.__isPromisified__ === true;\n    }\n    catch (e) {\n        return false;\n    }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n    var val = util.getDataPropertyOrDefault(obj, key + suffix,\n                                            defaultPromisified);\n    return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n    for (var i = 0; i < ret.length; i += 2) {\n        var key = ret[i];\n        if (suffixRegexp.test(key)) {\n            var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n            for (var j = 0; j < ret.length; j += 2) {\n                if (ret[j] === keyWithoutAsyncSuffix) {\n                    throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\"\n                        .replace(\"%s\", suffix));\n                }\n            }\n        }\n    }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n    var keys = util.inheritedDataKeys(obj);\n    var ret = [];\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var value = obj[key];\n        var passesDefaultFilter = filter === defaultFilter\n            ? true : defaultFilter(key, value, obj);\n        if (typeof value === \"function\" &&\n            !isPromisified(value) &&\n            !hasPromisified(obj, key, suffix) &&\n            filter(key, value, obj, passesDefaultFilter)) {\n            ret.push(key, value);\n        }\n    }\n    checkValid(ret, suffix, suffixRegexp);\n    return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n    return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (!false) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n    var ret = [likelyArgumentCount];\n    var min = Math.max(0, likelyArgumentCount - 1 - 3);\n    for(var i = likelyArgumentCount - 1; i >= min; --i) {\n        ret.push(i);\n    }\n    for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n        ret.push(i);\n    }\n    return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n    return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n    return util.filledRange(\n        Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n    if (typeof fn.length === \"number\") {\n        return Math.max(Math.min(fn.length, 1023 + 1), 0);\n    }\n    return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n    var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n    var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n    var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n    function generateCallForArgumentCount(count) {\n        var args = argumentSequence(count).join(\", \");\n        var comma = count > 0 ? \", \" : \"\";\n        var ret;\n        if (shouldProxyThis) {\n            ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n        } else {\n            ret = receiver === undefined\n                ? \"ret = callback({{args}}, nodeback); break;\\n\"\n                : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n        }\n        return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n    }\n\n    function generateArgumentSwitchCase() {\n        var ret = \"\";\n        for (var i = 0; i < argumentOrder.length; ++i) {\n            ret += \"case \" + argumentOrder[i] +\":\" +\n                generateCallForArgumentCount(argumentOrder[i]);\n        }\n\n        ret += \"                                                             \\n\\\n        default:                                                             \\n\\\n            var args = new Array(len + 1);                                   \\n\\\n            var i = 0;                                                       \\n\\\n            for (var i = 0; i < len; ++i) {                                  \\n\\\n               args[i] = arguments[i];                                       \\n\\\n            }                                                                \\n\\\n            args[i] = nodeback;                                              \\n\\\n            [CodeForCall]                                                    \\n\\\n            break;                                                           \\n\\\n        \".replace(\"[CodeForCall]\", (shouldProxyThis\n                                ? \"ret = callback.apply(this, args);\\n\"\n                                : \"ret = callback.apply(receiver, args);\\n\"));\n        return ret;\n    }\n\n    var getFunctionCode = typeof callback === \"string\"\n                                ? (\"this != null ? this['\"+callback+\"'] : fn\")\n                                : \"fn\";\n    var body = \"'use strict';                                                \\n\\\n        var ret = function (Parameters) {                                    \\n\\\n            'use strict';                                                    \\n\\\n            var len = arguments.length;                                      \\n\\\n            var promise = new Promise(INTERNAL);                             \\n\\\n            promise._captureStackTrace();                                    \\n\\\n            var nodeback = nodebackForPromise(promise, \" + multiArgs + \");   \\n\\\n            var ret;                                                         \\n\\\n            var callback = tryCatch([GetFunctionCode]);                      \\n\\\n            switch(len) {                                                    \\n\\\n                [CodeForSwitchCase]                                          \\n\\\n            }                                                                \\n\\\n            if (ret === errorObj) {                                          \\n\\\n                promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n            }                                                                \\n\\\n            if (!promise._isFateSealed()) promise._setAsyncGuaranteed();     \\n\\\n            return promise;                                                  \\n\\\n        };                                                                   \\n\\\n        notEnumerableProp(ret, '__isPromisified__', true);                   \\n\\\n        return ret;                                                          \\n\\\n    \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n        .replace(\"[GetFunctionCode]\", getFunctionCode);\n    body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n    return new Function(\"Promise\",\n                        \"fn\",\n                        \"receiver\",\n                        \"withAppended\",\n                        \"maybeWrapAsError\",\n                        \"nodebackForPromise\",\n                        \"tryCatch\",\n                        \"errorObj\",\n                        \"notEnumerableProp\",\n                        \"INTERNAL\",\n                        body)(\n                    Promise,\n                    fn,\n                    receiver,\n                    withAppended,\n                    maybeWrapAsError,\n                    nodebackForPromise,\n                    util.tryCatch,\n                    util.errorObj,\n                    util.notEnumerableProp,\n                    INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n    var defaultThis = (function() {return this;})();\n    var method = callback;\n    if (typeof method === \"string\") {\n        callback = fn;\n    }\n    function promisified() {\n        var _receiver = receiver;\n        if (receiver === THIS) _receiver = this;\n        var promise = new Promise(INTERNAL);\n        promise._captureStackTrace();\n        var cb = typeof method === \"string\" && this !== defaultThis\n            ? this[method] : callback;\n        var fn = nodebackForPromise(promise, multiArgs);\n        try {\n            cb.apply(_receiver, withAppended(arguments, fn));\n        } catch(e) {\n            promise._rejectCallback(maybeWrapAsError(e), true, true);\n        }\n        if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n        return promise;\n    }\n    util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n    return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n    ? makeNodePromisifiedEval\n    : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n    var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n    var methods =\n        promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n    for (var i = 0, len = methods.length; i < len; i+= 2) {\n        var key = methods[i];\n        var fn = methods[i+1];\n        var promisifiedKey = key + suffix;\n        if (promisifier === makeNodePromisified) {\n            obj[promisifiedKey] =\n                makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n        } else {\n            var promisified = promisifier(fn, function() {\n                return makeNodePromisified(key, THIS, key,\n                                           fn, suffix, multiArgs);\n            });\n            util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n            obj[promisifiedKey] = promisified;\n        }\n    }\n    util.toFastProperties(obj);\n    return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n    return makeNodePromisified(callback, receiver, undefined,\n                                callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n    if (typeof fn !== \"function\") {\n        throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n    }\n    if (isPromisified(fn)) {\n        return fn;\n    }\n    options = Object(options);\n    var receiver = options.context === undefined ? THIS : options.context;\n    var multiArgs = !!options.multiArgs;\n    var ret = promisify(fn, receiver, multiArgs);\n    util.copyDescriptors(fn, ret, propsFilter);\n    return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n    if (typeof target !== \"function\" && typeof target !== \"object\") {\n        throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n    options = Object(options);\n    var multiArgs = !!options.multiArgs;\n    var suffix = options.suffix;\n    if (typeof suffix !== \"string\") suffix = defaultSuffix;\n    var filter = options.filter;\n    if (typeof filter !== \"function\") filter = defaultFilter;\n    var promisifier = options.promisifier;\n    if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n    if (!util.isIdentifier(suffix)) {\n        throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n\n    var keys = util.inheritedDataKeys(target);\n    for (var i = 0; i < keys.length; ++i) {\n        var value = target[keys[i]];\n        if (keys[i] !== \"constructor\" &&\n            util.isClass(value)) {\n            promisifyAll(value.prototype, suffix, filter, promisifier,\n                multiArgs);\n            promisifyAll(value, suffix, filter, promisifier, multiArgs);\n        }\n    }\n\n    return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n","\"use strict\";\nmodule.exports = function(\n    Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\nvar isObject = util.isObject;\nvar es5 = require(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n    var index = 0;\n    var size = 0;\n\n    function extractEntry(value, key) {\n        this[index] = value;\n        this[index + size] = key;\n        index++;\n    }\n\n    return function mapToEntries(map) {\n        size = map.size;\n        index = 0;\n        var ret = new Array(map.size * 2);\n        map.forEach(extractEntry, ret);\n        return ret;\n    };\n})();\n\nvar entriesToMap = function(entries) {\n    var ret = new Es6Map();\n    var length = entries.length / 2 | 0;\n    for (var i = 0; i < length; ++i) {\n        var key = entries[length + i];\n        var value = entries[i];\n        ret.set(key, value);\n    }\n    return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n    var isMap = false;\n    var entries;\n    if (Es6Map !== undefined && obj instanceof Es6Map) {\n        entries = mapToEntries(obj);\n        isMap = true;\n    } else {\n        var keys = es5.keys(obj);\n        var len = keys.length;\n        entries = new Array(len * 2);\n        for (var i = 0; i < len; ++i) {\n            var key = keys[i];\n            entries[i] = obj[key];\n            entries[i + len] = key;\n        }\n    }\n    this.constructor$(entries);\n    this._isMap = isMap;\n    this._init$(undefined, -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n    this._values[index] = value;\n    var totalResolved = ++this._totalResolved;\n    if (totalResolved >= this._length) {\n        var val;\n        if (this._isMap) {\n            val = entriesToMap(this._values);\n        } else {\n            val = {};\n            var keyOffset = this.length();\n            for (var i = 0, len = this.length(); i < len; ++i) {\n                val[this._values[i + keyOffset]] = this._values[i];\n            }\n        }\n        this._resolve(val);\n        return true;\n    }\n    return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n    return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n    return len >> 1;\n};\n\nfunction props(promises) {\n    var ret;\n    var castValue = tryConvertToPromise(promises);\n\n    if (!isObject(castValue)) {\n        return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    } else if (castValue instanceof Promise) {\n        ret = castValue._then(\n            Promise.props, undefined, undefined, undefined, undefined);\n    } else {\n        ret = new PropertiesPromiseArray(castValue).promise();\n    }\n\n    if (castValue instanceof Promise) {\n        ret._propagateFrom(castValue, 2);\n    }\n    return ret;\n}\n\nPromise.prototype.props = function () {\n    return props(this);\n};\n\nPromise.props = function (promises) {\n    return props(promises);\n};\n};\n","\"use strict\";\nmodule.exports = function(\n    Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\n\nvar raceLater = function (promise) {\n    return promise.then(function(array) {\n        return race(array, promise);\n    });\n};\n\nfunction race(promises, parent) {\n    var maybePromise = tryConvertToPromise(promises);\n\n    if (maybePromise instanceof Promise) {\n        return raceLater(maybePromise);\n    } else {\n        promises = util.asArray(promises);\n        if (promises === null)\n            return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n    }\n\n    var ret = new Promise(INTERNAL);\n    if (parent !== undefined) {\n        ret._propagateFrom(parent, 3);\n    }\n    var fulfill = ret._fulfill;\n    var reject = ret._reject;\n    for (var i = 0, len = promises.length; i < len; ++i) {\n        var val = promises[i];\n\n        if (val === undefined && !(i in promises)) {\n            continue;\n        }\n\n        Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n    }\n    return ret;\n}\n\nPromise.race = function (promises) {\n    return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n    return race(this, undefined);\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n                          PromiseArray,\n                          apiRejection,\n                          tryConvertToPromise,\n                          INTERNAL,\n                          debug) {\nvar getDomain = Promise._getDomain;\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n    this.constructor$(promises);\n    var domain = getDomain();\n    this._fn = domain === null ? fn : util.domainBind(domain, fn);\n    if (initialValue !== undefined) {\n        initialValue = Promise.resolve(initialValue);\n        initialValue._attachCancellationCallback(this);\n    }\n    this._initialValue = initialValue;\n    this._currentCancellable = null;\n    if(_each === INTERNAL) {\n        this._eachValues = Array(this._length);\n    } else if (_each === 0) {\n        this._eachValues = null;\n    } else {\n        this._eachValues = undefined;\n    }\n    this._promise._captureStackTrace();\n    this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n    if (this._eachValues !== undefined && \n        this._eachValues !== null && \n        accum !== INTERNAL) {\n        this._eachValues.push(accum);\n    }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n    if (this._eachValues !== null) {\n        this._eachValues.push(value);\n    }\n    return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n    this._resolve(this._eachValues !== undefined ? this._eachValues\n                                                 : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n    return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n    this._promise._resolveCallback(value);\n    this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n    if (sender === this._initialValue) return this._cancel();\n    if (this._isResolved()) return;\n    this._resultCancelled$();\n    if (this._currentCancellable instanceof Promise) {\n        this._currentCancellable.cancel();\n    }\n    if (this._initialValue instanceof Promise) {\n        this._initialValue.cancel();\n    }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n    this._values = values;\n    var value;\n    var i;\n    var length = values.length;\n    if (this._initialValue !== undefined) {\n        value = this._initialValue;\n        i = 0;\n    } else {\n        value = Promise.resolve(values[0]);\n        i = 1;\n    }\n\n    this._currentCancellable = value;\n\n    if (!value.isRejected()) {\n        for (; i < length; ++i) {\n            var ctx = {\n                accum: null,\n                value: values[i],\n                index: i,\n                length: length,\n                array: this\n            };\n            value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n        }\n    }\n\n    if (this._eachValues !== undefined) {\n        value = value\n            ._then(this._eachComplete, undefined, undefined, this, undefined);\n    }\n    value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n    return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n    return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n    if (this.isFulfilled()) {\n        array._resolve(valueOrReason);\n    } else {\n        array._reject(valueOrReason);\n    }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n    if (typeof fn !== \"function\") {\n        return apiRejection(\"expecting a function but got \" + util.classString(fn));\n    }\n    var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n    return array.promise();\n}\n\nfunction gotAccum(accum) {\n    this.accum = accum;\n    this.array._gotAccum(accum);\n    var value = tryConvertToPromise(this.value, this.array._promise);\n    if (value instanceof Promise) {\n        this.array._currentCancellable = value;\n        return value._then(gotValue, undefined, undefined, this, undefined);\n    } else {\n        return gotValue.call(this, value);\n    }\n}\n\nfunction gotValue(value) {\n    var array = this.array;\n    var promise = array._promise;\n    var fn = tryCatch(array._fn);\n    promise._pushContext();\n    var ret;\n    if (array._eachValues !== undefined) {\n        ret = fn.call(promise._boundValue(), value, this.index, this.length);\n    } else {\n        ret = fn.call(promise._boundValue(),\n                              this.accum, value, this.index, this.length);\n    }\n    if (ret instanceof Promise) {\n        array._currentCancellable = ret;\n    }\n    var promiseCreated = promise._popContext();\n    debug.checkForgottenReturns(\n        ret,\n        promiseCreated,\n        array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n        promise\n    );\n    return ret;\n}\n};\n","\"use strict\";\nmodule.exports =\n    function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = require(\"./util\");\n\nfunction SettledPromiseArray(values) {\n    this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n    this._values[index] = inspection;\n    var totalResolved = ++this._totalResolved;\n    if (totalResolved >= this._length) {\n        this._resolve(this._values);\n        return true;\n    }\n    return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n    var ret = new PromiseInspection();\n    ret._bitField = 33554432;\n    ret._settledValueField = value;\n    return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n    var ret = new PromiseInspection();\n    ret._bitField = 16777216;\n    ret._settledValueField = reason;\n    return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n    debug.deprecated(\".settle()\", \".reflect()\");\n    return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n    return Promise.settle(this);\n};\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = require(\"./util\");\nvar RangeError = require(\"./errors\").RangeError;\nvar AggregateError = require(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n    this.constructor$(values);\n    this._howMany = 0;\n    this._unwrap = false;\n    this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n    if (!this._initialized) {\n        return;\n    }\n    if (this._howMany === 0) {\n        this._resolve([]);\n        return;\n    }\n    this._init$(undefined, -5);\n    var isArrayResolved = isArray(this._values);\n    if (!this._isResolved() &&\n        isArrayResolved &&\n        this._howMany > this._canPossiblyFulfill()) {\n        this._reject(this._getRangeError(this.length()));\n    }\n};\n\nSomePromiseArray.prototype.init = function () {\n    this._initialized = true;\n    this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n    this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n    return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n    this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n    this._addFulfilled(value);\n    if (this._fulfilled() === this.howMany()) {\n        this._values.length = this.howMany();\n        if (this.howMany() === 1 && this._unwrap) {\n            this._resolve(this._values[0]);\n        } else {\n            this._resolve(this._values);\n        }\n        return true;\n    }\n    return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n    this._addRejected(reason);\n    return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n    if (this._values instanceof Promise || this._values == null) {\n        return this._cancel();\n    }\n    this._addRejected(CANCELLATION);\n    return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n    if (this.howMany() > this._canPossiblyFulfill()) {\n        var e = new AggregateError();\n        for (var i = this.length(); i < this._values.length; ++i) {\n            if (this._values[i] !== CANCELLATION) {\n                e.push(this._values[i]);\n            }\n        }\n        if (e.length > 0) {\n            this._reject(e);\n        } else {\n            this._cancel();\n        }\n        return true;\n    }\n    return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n    return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n    return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n    this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n    this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n    return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n    var message = \"Input array must contain at least \" +\n            this._howMany + \" items but contains only \" + count + \" items\";\n    return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n    this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n    if ((howMany | 0) !== howMany || howMany < 0) {\n        return apiRejection(\"expecting a positive integer\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n    var ret = new SomePromiseArray(promises);\n    var promise = ret.promise();\n    ret.setHowMany(howMany);\n    ret.init();\n    return promise;\n}\n\nPromise.some = function (promises, howMany) {\n    return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n    return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n    return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n    return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n    return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n    return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n    return PromiseReduce(this, fn, INTERNAL, 0)\n              ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n    return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n    return PromiseReduce(promises, fn, INTERNAL, 0)\n              ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar SomePromiseArray = Promise._SomePromiseArray;\nfunction any(promises) {\n    var ret = new SomePromiseArray(promises);\n    var promise = ret.promise();\n    ret.setHowMany(1);\n    ret.setUnwrap();\n    ret.init();\n    return promise;\n}\n\nPromise.any = function (promises) {\n    return any(promises);\n};\n\nPromise.prototype.any = function () {\n    return any(this);\n};\n\n};\n","\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n    return new TypeError(\"circular promise resolution chain\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n    return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n    return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = require(\"./util\");\n\nvar getDomain;\nif (util.isNode) {\n    getDomain = function() {\n        var ret = process.domain;\n        if (ret === undefined) ret = null;\n        return ret;\n    };\n} else {\n    getDomain = function() {\n        return null;\n    };\n}\nutil.notEnumerableProp(Promise, \"_getDomain\", getDomain);\n\nvar es5 = require(\"./es5\");\nvar Async = require(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = require(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = require(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n    require(\"./promise_array\")(Promise, INTERNAL,\n                               tryConvertToPromise, apiRejection, Proxyable);\nvar Context = require(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\nvar debug = require(\"./debuggability\")(Promise, Context);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n    require(\"./finally\")(Promise, tryConvertToPromise);\nvar catchFilter = require(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = require(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n    if (typeof executor !== \"function\") {\n        throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n    }\n    if (self.constructor !== Promise) {\n        throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a    See http://goo.gl/MqrFmX\\u000a\");\n    }\n}\n\nfunction Promise(executor) {\n    this._bitField = 0;\n    this._fulfillmentHandler0 = undefined;\n    this._rejectionHandler0 = undefined;\n    this._promise0 = undefined;\n    this._receiver0 = undefined;\n    if (executor !== INTERNAL) {\n        check(this, executor);\n        this._resolveFromExecutor(executor);\n    }\n    this._promiseCreated();\n    this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n    return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n    var len = arguments.length;\n    if (len > 1) {\n        var catchInstances = new Array(len - 1),\n            j = 0, i;\n        for (i = 0; i < len - 1; ++i) {\n            var item = arguments[i];\n            if (util.isObject(item)) {\n                catchInstances[j++] = item;\n            } else {\n                return apiRejection(\"expecting an object but got \" +\n                    \"A catch statement predicate \" + util.classString(item));\n            }\n        }\n        catchInstances.length = j;\n        fn = arguments[i];\n        return this.then(undefined, catchFilter(catchInstances, fn, this));\n    }\n    return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n    return this._then(reflectHandler,\n        reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n    if (debug.warnings() && arguments.length > 0 &&\n        typeof didFulfill !== \"function\" &&\n        typeof didReject !== \"function\") {\n        var msg = \".then() only accepts functions but was passed: \" +\n                util.classString(didFulfill);\n        if (arguments.length > 1) {\n            msg += \", \" + util.classString(didReject);\n        }\n        this._warn(msg);\n    }\n    return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n    var promise =\n        this._then(didFulfill, didReject, undefined, undefined, undefined);\n    promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n    if (typeof fn !== \"function\") {\n        return apiRejection(\"expecting a function but got \" + util.classString(fn));\n    }\n    return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n    var ret = {\n        isFulfilled: false,\n        isRejected: false,\n        fulfillmentValue: undefined,\n        rejectionReason: undefined\n    };\n    if (this.isFulfilled()) {\n        ret.fulfillmentValue = this.value();\n        ret.isFulfilled = true;\n    } else if (this.isRejected()) {\n        ret.rejectionReason = this.reason();\n        ret.isRejected = true;\n    }\n    return ret;\n};\n\nPromise.prototype.all = function () {\n    if (arguments.length > 0) {\n        this._warn(\".all() was passed arguments but it does not take any\");\n    }\n    return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n    return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n    return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n    var ret = new Promise(INTERNAL);\n    ret._captureStackTrace();\n    var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n                                         : false;\n    var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n    if (result === errorObj) {\n        ret._rejectCallback(result.e, true);\n    }\n    if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n    return ret;\n};\n\nPromise.all = function (promises) {\n    return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n    var ret = tryConvertToPromise(obj);\n    if (!(ret instanceof Promise)) {\n        ret = new Promise(INTERNAL);\n        ret._captureStackTrace();\n        ret._setFulfilled();\n        ret._rejectionHandler0 = obj;\n    }\n    return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n    var ret = new Promise(INTERNAL);\n    ret._captureStackTrace();\n    ret._rejectCallback(reason, true);\n    return ret;\n};\n\nPromise.setScheduler = function(fn) {\n    if (typeof fn !== \"function\") {\n        throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n    }\n    return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n    didFulfill,\n    didReject,\n    _,    receiver,\n    internalData\n) {\n    var haveInternalData = internalData !== undefined;\n    var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n    var target = this._target();\n    var bitField = target._bitField;\n\n    if (!haveInternalData) {\n        promise._propagateFrom(this, 3);\n        promise._captureStackTrace();\n        if (receiver === undefined &&\n            ((this._bitField & 2097152) !== 0)) {\n            if (!((bitField & 50397184) === 0)) {\n                receiver = this._boundValue();\n            } else {\n                receiver = target === this ? undefined : this._boundTo;\n            }\n        }\n        this._fireEvent(\"promiseChained\", this, promise);\n    }\n\n    var domain = getDomain();\n    if (!((bitField & 50397184) === 0)) {\n        var handler, value, settler = target._settlePromiseCtx;\n        if (((bitField & 33554432) !== 0)) {\n            value = target._rejectionHandler0;\n            handler = didFulfill;\n        } else if (((bitField & 16777216) !== 0)) {\n            value = target._fulfillmentHandler0;\n            handler = didReject;\n            target._unsetRejectionIsUnhandled();\n        } else {\n            settler = target._settlePromiseLateCancellationObserver;\n            value = new CancellationError(\"late cancellation observer\");\n            target._attachExtraTrace(value);\n            handler = didReject;\n        }\n\n        async.invoke(settler, target, {\n            handler: domain === null ? handler\n                : (typeof handler === \"function\" &&\n                    util.domainBind(domain, handler)),\n            promise: promise,\n            receiver: receiver,\n            value: value\n        });\n    } else {\n        target._addCallbacks(didFulfill, didReject, promise, receiver, domain);\n    }\n\n    return promise;\n};\n\nPromise.prototype._length = function () {\n    return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n    return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n    return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n    this._bitField = (this._bitField & -65536) |\n        (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n    this._bitField = this._bitField | 33554432;\n    this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n    this._bitField = this._bitField | 16777216;\n    this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n    this._bitField = this._bitField | 67108864;\n    this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n    this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n    return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n    this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n    this._bitField = this._bitField | 65536;\n    this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n    this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n    if (async.hasCustomScheduler()) return;\n    this._bitField = this._bitField | 134217728;\n};\n\nPromise.prototype._receiverAt = function (index) {\n    var ret = index === 0 ? this._receiver0 : this[\n            index * 4 - 4 + 3];\n    if (ret === UNDEFINED_BINDING) {\n        return undefined;\n    } else if (ret === undefined && this._isBound()) {\n        return this._boundValue();\n    }\n    return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n    return this[\n            index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n    return this[\n            index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n    return this[\n            index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n    var bitField = follower._bitField;\n    var fulfill = follower._fulfillmentHandler0;\n    var reject = follower._rejectionHandler0;\n    var promise = follower._promise0;\n    var receiver = follower._receiverAt(0);\n    if (receiver === undefined) receiver = UNDEFINED_BINDING;\n    this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n    var fulfill = follower._fulfillmentHandlerAt(index);\n    var reject = follower._rejectionHandlerAt(index);\n    var promise = follower._promiseAt(index);\n    var receiver = follower._receiverAt(index);\n    if (receiver === undefined) receiver = UNDEFINED_BINDING;\n    this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n    fulfill,\n    reject,\n    promise,\n    receiver,\n    domain\n) {\n    var index = this._length();\n\n    if (index >= 65535 - 4) {\n        index = 0;\n        this._setLength(0);\n    }\n\n    if (index === 0) {\n        this._promise0 = promise;\n        this._receiver0 = receiver;\n        if (typeof fulfill === \"function\") {\n            this._fulfillmentHandler0 =\n                domain === null ? fulfill : util.domainBind(domain, fulfill);\n        }\n        if (typeof reject === \"function\") {\n            this._rejectionHandler0 =\n                domain === null ? reject : util.domainBind(domain, reject);\n        }\n    } else {\n        var base = index * 4 - 4;\n        this[base + 2] = promise;\n        this[base + 3] = receiver;\n        if (typeof fulfill === \"function\") {\n            this[base + 0] =\n                domain === null ? fulfill : util.domainBind(domain, fulfill);\n        }\n        if (typeof reject === \"function\") {\n            this[base + 1] =\n                domain === null ? reject : util.domainBind(domain, reject);\n        }\n    }\n    this._setLength(index + 1);\n    return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n    this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n    if (((this._bitField & 117506048) !== 0)) return;\n    if (value === this)\n        return this._rejectCallback(makeSelfResolutionError(), false);\n    var maybePromise = tryConvertToPromise(value, this);\n    if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n    if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n    var promise = maybePromise._target();\n\n    if (promise === this) {\n        this._reject(makeSelfResolutionError());\n        return;\n    }\n\n    var bitField = promise._bitField;\n    if (((bitField & 50397184) === 0)) {\n        var len = this._length();\n        if (len > 0) promise._migrateCallback0(this);\n        for (var i = 1; i < len; ++i) {\n            promise._migrateCallbackAt(this, i);\n        }\n        this._setFollowing();\n        this._setLength(0);\n        this._setFollowee(promise);\n    } else if (((bitField & 33554432) !== 0)) {\n        this._fulfill(promise._value());\n    } else if (((bitField & 16777216) !== 0)) {\n        this._reject(promise._reason());\n    } else {\n        var reason = new CancellationError(\"late cancellation observer\");\n        promise._attachExtraTrace(reason);\n        this._reject(reason);\n    }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n    var trace = util.ensureErrorObject(reason);\n    var hasStack = trace === reason;\n    if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n        var message = \"a promise was rejected with a non-error: \" +\n            util.classString(reason);\n        this._warn(message, true);\n    }\n    this._attachExtraTrace(trace, synchronous ? hasStack : false);\n    this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n    var promise = this;\n    this._captureStackTrace();\n    this._pushContext();\n    var synchronous = true;\n    var r = this._execute(executor, function(value) {\n        promise._resolveCallback(value);\n    }, function (reason) {\n        promise._rejectCallback(reason, synchronous);\n    });\n    synchronous = false;\n    this._popContext();\n\n    if (r !== undefined) {\n        promise._rejectCallback(r, true);\n    }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n    handler, receiver, value, promise\n) {\n    var bitField = promise._bitField;\n    if (((bitField & 65536) !== 0)) return;\n    promise._pushContext();\n    var x;\n    if (receiver === APPLY) {\n        if (!value || typeof value.length !== \"number\") {\n            x = errorObj;\n            x.e = new TypeError(\"cannot .spread() a non-array: \" +\n                                    util.classString(value));\n        } else {\n            x = tryCatch(handler).apply(this._boundValue(), value);\n        }\n    } else {\n        x = tryCatch(handler).call(receiver, value);\n    }\n    var promiseCreated = promise._popContext();\n    bitField = promise._bitField;\n    if (((bitField & 65536) !== 0)) return;\n\n    if (x === NEXT_FILTER) {\n        promise._reject(value);\n    } else if (x === errorObj) {\n        promise._rejectCallback(x.e, false);\n    } else {\n        debug.checkForgottenReturns(x, promiseCreated, \"\",  promise, this);\n        promise._resolveCallback(x);\n    }\n};\n\nPromise.prototype._target = function() {\n    var ret = this;\n    while (ret._isFollowing()) ret = ret._followee();\n    return ret;\n};\n\nPromise.prototype._followee = function() {\n    return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n    this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n    var isPromise = promise instanceof Promise;\n    var bitField = this._bitField;\n    var asyncGuaranteed = ((bitField & 134217728) !== 0);\n    if (((bitField & 65536) !== 0)) {\n        if (isPromise) promise._invokeInternalOnCancel();\n\n        if (receiver instanceof PassThroughHandlerContext &&\n            receiver.isFinallyHandler()) {\n            receiver.cancelPromise = promise;\n            if (tryCatch(handler).call(receiver, value) === errorObj) {\n                promise._reject(errorObj.e);\n            }\n        } else if (handler === reflectHandler) {\n            promise._fulfill(reflectHandler.call(receiver));\n        } else if (receiver instanceof Proxyable) {\n            receiver._promiseCancelled(promise);\n        } else if (isPromise || promise instanceof PromiseArray) {\n            promise._cancel();\n        } else {\n            receiver.cancel();\n        }\n    } else if (typeof handler === \"function\") {\n        if (!isPromise) {\n            handler.call(receiver, value, promise);\n        } else {\n            if (asyncGuaranteed) promise._setAsyncGuaranteed();\n            this._settlePromiseFromHandler(handler, receiver, value, promise);\n        }\n    } else if (receiver instanceof Proxyable) {\n        if (!receiver._isResolved()) {\n            if (((bitField & 33554432) !== 0)) {\n                receiver._promiseFulfilled(value, promise);\n            } else {\n                receiver._promiseRejected(value, promise);\n            }\n        }\n    } else if (isPromise) {\n        if (asyncGuaranteed) promise._setAsyncGuaranteed();\n        if (((bitField & 33554432) !== 0)) {\n            promise._fulfill(value);\n        } else {\n            promise._reject(value);\n        }\n    }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n    var handler = ctx.handler;\n    var promise = ctx.promise;\n    var receiver = ctx.receiver;\n    var value = ctx.value;\n    if (typeof handler === \"function\") {\n        if (!(promise instanceof Promise)) {\n            handler.call(receiver, value, promise);\n        } else {\n            this._settlePromiseFromHandler(handler, receiver, value, promise);\n        }\n    } else if (promise instanceof Promise) {\n        promise._reject(value);\n    }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n    this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n    var promise = this._promise0;\n    var receiver = this._receiverAt(0);\n    this._promise0 = undefined;\n    this._receiver0 = undefined;\n    this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n    var base = index * 4 - 4;\n    this[base + 2] =\n    this[base + 3] =\n    this[base + 0] =\n    this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n    var bitField = this._bitField;\n    if (((bitField & 117506048) >>> 16)) return;\n    if (value === this) {\n        var err = makeSelfResolutionError();\n        this._attachExtraTrace(err);\n        return this._reject(err);\n    }\n    this._setFulfilled();\n    this._rejectionHandler0 = value;\n\n    if ((bitField & 65535) > 0) {\n        if (((bitField & 134217728) !== 0)) {\n            this._settlePromises();\n        } else {\n            async.settlePromises(this);\n        }\n    }\n};\n\nPromise.prototype._reject = function (reason) {\n    var bitField = this._bitField;\n    if (((bitField & 117506048) >>> 16)) return;\n    this._setRejected();\n    this._fulfillmentHandler0 = reason;\n\n    if (this._isFinal()) {\n        return async.fatalError(reason, util.isNode);\n    }\n\n    if ((bitField & 65535) > 0) {\n        async.settlePromises(this);\n    } else {\n        this._ensurePossibleRejectionHandled();\n    }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n    for (var i = 1; i < len; i++) {\n        var handler = this._fulfillmentHandlerAt(i);\n        var promise = this._promiseAt(i);\n        var receiver = this._receiverAt(i);\n        this._clearCallbackDataAtIndex(i);\n        this._settlePromise(promise, handler, receiver, value);\n    }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n    for (var i = 1; i < len; i++) {\n        var handler = this._rejectionHandlerAt(i);\n        var promise = this._promiseAt(i);\n        var receiver = this._receiverAt(i);\n        this._clearCallbackDataAtIndex(i);\n        this._settlePromise(promise, handler, receiver, reason);\n    }\n};\n\nPromise.prototype._settlePromises = function () {\n    var bitField = this._bitField;\n    var len = (bitField & 65535);\n\n    if (len > 0) {\n        if (((bitField & 16842752) !== 0)) {\n            var reason = this._fulfillmentHandler0;\n            this._settlePromise0(this._rejectionHandler0, reason, bitField);\n            this._rejectPromises(len, reason);\n        } else {\n            var value = this._rejectionHandler0;\n            this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n            this._fulfillPromises(len, value);\n        }\n        this._setLength(0);\n    }\n    this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n    var bitField = this._bitField;\n    if (((bitField & 33554432) !== 0)) {\n        return this._rejectionHandler0;\n    } else if (((bitField & 16777216) !== 0)) {\n        return this._fulfillmentHandler0;\n    }\n};\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n    debug.deprecated(\"Promise.defer\", \"new Promise\");\n    var promise = new Promise(INTERNAL);\n    return {\n        promise: promise,\n        resolve: deferResolve,\n        reject: deferReject\n    };\n};\n\nutil.notEnumerableProp(Promise,\n                       \"_makeSelfResolutionError\",\n                       makeSelfResolutionError);\n\nrequire(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n    debug);\nrequire(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\nrequire(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\nrequire(\"./direct_resolve\")(Promise);\nrequire(\"./synchronous_inspection\")(Promise);\nrequire(\"./join\")(\n    Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);\nPromise.Promise = Promise;\nPromise.version = \"3.4.7\";\nrequire('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./call_get.js')(Promise);\nrequire('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\nrequire('./timers.js')(Promise, INTERNAL, debug);\nrequire('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\nrequire('./nodeify.js')(Promise);\nrequire('./promisify.js')(Promise, INTERNAL);\nrequire('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\nrequire('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\nrequire('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./settle.js')(Promise, PromiseArray, debug);\nrequire('./some.js')(Promise, PromiseArray, apiRejection);\nrequire('./filter.js')(Promise, INTERNAL);\nrequire('./each.js')(Promise, INTERNAL);\nrequire('./any.js')(Promise);\n                                                         \n    util.toFastProperties(Promise);                                          \n    util.toFastProperties(Promise.prototype);                                \n    function fillTypes(value) {                                              \n        var p = new Promise(INTERNAL);                                       \n        p._fulfillmentHandler0 = value;                                      \n        p._rejectionHandler0 = value;                                        \n        p._promise0 = value;                                                 \n        p._receiver0 = value;                                                \n    }                                                                        \n    // Complete slack tracking, opt out of field-type tracking and           \n    // stabilize map                                                         \n    fillTypes({a: 1});                                                       \n    fillTypes({b: 2});                                                       \n    fillTypes({c: 3});                                                       \n    fillTypes(1);                                                            \n    fillTypes(function(){});                                                 \n    fillTypes(undefined);                                                    \n    fillTypes(false);                                                        \n    fillTypes(new Promise(INTERNAL));                                        \n    debug.setBounds(Async.firstLineError, util.lastLineError);               \n    return Promise;                                                          \n\n};\n","var _ = require(\"underscore\");\nvar bluebird = require(\"bluebird/js/release/promise\")();\n\nexports.defer = defer;\nexports.when = bluebird.resolve;\nexports.resolve = bluebird.resolve;\nexports.all = bluebird.all;\nexports.props = bluebird.props;\nexports.reject = bluebird.reject;\nexports.promisify = bluebird.promisify;\nexports.mapSeries = bluebird.mapSeries;\nexports.attempt = bluebird.attempt;\n\nexports.nfcall = function(func) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    var promisedFunc = bluebird.promisify(func);\n    return promisedFunc.apply(null, args);\n};\n\nbluebird.prototype.fail = bluebird.prototype.caught;\n\nbluebird.prototype.also = function(func) {\n    return this.then(function(value) {\n        var returnValue = _.extend({}, value, func(value));\n        return bluebird.props(returnValue);\n    });\n};\n\nfunction defer() {\n    var resolve;\n    var reject;\n    var promise = new bluebird.Promise(function(resolveArg, rejectArg) {\n        resolve = resolveArg;\n        reject = rejectArg;\n    });\n\n    return {\n        resolve: resolve,\n        reject: reject,\n        promise: promise\n    };\n}\n","var _ = require(\"underscore\");\n\nvar types = exports.types = {\n    document: \"document\",\n    paragraph: \"paragraph\",\n    run: \"run\",\n    text: \"text\",\n    tab: \"tab\",\n    checkbox: \"checkbox\",\n    hyperlink: \"hyperlink\",\n    noteReference: \"noteReference\",\n    image: \"image\",\n    note: \"note\",\n    commentReference: \"commentReference\",\n    comment: \"comment\",\n    table: \"table\",\n    tableRow: \"tableRow\",\n    tableCell: \"tableCell\",\n    \"break\": \"break\",\n    bookmarkStart: \"bookmarkStart\"\n};\n\nfunction Document(children, options) {\n    options = options || {};\n    return {\n        type: types.document,\n        children: children,\n        notes: options.notes || new Notes({}),\n        comments: options.comments || []\n    };\n}\n\nfunction Paragraph(children, properties) {\n    properties = properties || {};\n    var indent = properties.indent || {};\n    return {\n        type: types.paragraph,\n        children: children,\n        styleId: properties.styleId || null,\n        styleName: properties.styleName || null,\n        numbering: properties.numbering || null,\n        alignment: properties.alignment || null,\n        indent: {\n            start: indent.start || null,\n            end: indent.end || null,\n            firstLine: indent.firstLine || null,\n            hanging: indent.hanging || null\n        }\n    };\n}\n\nfunction Run(children, properties) {\n    properties = properties || {};\n    return {\n        type: types.run,\n        children: children,\n        styleId: properties.styleId || null,\n        styleName: properties.styleName || null,\n        isBold: !!properties.isBold,\n        isUnderline: !!properties.isUnderline,\n        isItalic: !!properties.isItalic,\n        isStrikethrough: !!properties.isStrikethrough,\n        isAllCaps: !!properties.isAllCaps,\n        isSmallCaps: !!properties.isSmallCaps,\n        verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline,\n        font: properties.font || null,\n        fontSize: properties.fontSize || null,\n        highlight: properties.highlight || null\n    };\n}\n\nvar verticalAlignment = {\n    baseline: \"baseline\",\n    superscript: \"superscript\",\n    subscript: \"subscript\"\n};\n\nfunction Text(value) {\n    return {\n        type: types.text,\n        value: value\n    };\n}\n\nfunction Tab() {\n    return {\n        type: types.tab\n    };\n}\n\nfunction Checkbox(options) {\n    return {\n        type: types.checkbox,\n        checked: options.checked\n    };\n}\n\nfunction Hyperlink(children, options) {\n    return {\n        type: types.hyperlink,\n        children: children,\n        href: options.href,\n        anchor: options.anchor,\n        targetFrame: options.targetFrame\n    };\n}\n\nfunction NoteReference(options) {\n    return {\n        type: types.noteReference,\n        noteType: options.noteType,\n        noteId: options.noteId\n    };\n}\n\nfunction Notes(notes) {\n    this._notes = _.indexBy(notes, function(note) {\n        return noteKey(note.noteType, note.noteId);\n    });\n}\n\nNotes.prototype.resolve = function(reference) {\n    return this.findNoteByKey(noteKey(reference.noteType, reference.noteId));\n};\n\nNotes.prototype.findNoteByKey = function(key) {\n    return this._notes[key] || null;\n};\n\nfunction Note(options) {\n    return {\n        type: types.note,\n        noteType: options.noteType,\n        noteId: options.noteId,\n        body: options.body\n    };\n}\n\nfunction commentReference(options) {\n    return {\n        type: types.commentReference,\n        commentId: options.commentId\n    };\n}\n\nfunction comment(options) {\n    return {\n        type: types.comment,\n        commentId: options.commentId,\n        body: options.body,\n        authorName: options.authorName,\n        authorInitials: options.authorInitials\n    };\n}\n\nfunction noteKey(noteType, id) {\n    return noteType + \"-\" + id;\n}\n\nfunction Image(options) {\n    return {\n        type: types.image,\n        // `read` is retained for backwards compatibility, but other read\n        // methods should be preferred.\n        read: function(encoding) {\n            if (encoding) {\n                return options.readImage(encoding);\n            } else {\n                return options.readImage().then(function(arrayBuffer) {\n                    return Buffer.from(arrayBuffer);\n                });\n            }\n        },\n        readAsArrayBuffer: function() {\n            return options.readImage();\n        },\n        readAsBase64String: function() {\n            return options.readImage(\"base64\");\n        },\n        readAsBuffer: function() {\n            return options.readImage().then(function(arrayBuffer) {\n                return Buffer.from(arrayBuffer);\n            });\n        },\n        altText: options.altText,\n        contentType: options.contentType\n    };\n}\n\nfunction Table(children, properties) {\n    properties = properties || {};\n    return {\n        type: types.table,\n        children: children,\n        styleId: properties.styleId || null,\n        styleName: properties.styleName || null\n    };\n}\n\nfunction TableRow(children, options) {\n    options = options || {};\n    return {\n        type: types.tableRow,\n        children: children,\n        isHeader: options.isHeader || false\n    };\n}\n\nfunction TableCell(children, options) {\n    options = options || {};\n    return {\n        type: types.tableCell,\n        children: children,\n        colSpan: options.colSpan == null ? 1 : options.colSpan,\n        rowSpan: options.rowSpan == null ? 1 : options.rowSpan\n    };\n}\n\nfunction Break(breakType) {\n    return {\n        type: types[\"break\"],\n        breakType: breakType\n    };\n}\n\nfunction BookmarkStart(options) {\n    return {\n        type: types.bookmarkStart,\n        name: options.name\n    };\n}\n\nexports.document = exports.Document = Document;\nexports.paragraph = exports.Paragraph = Paragraph;\nexports.run = exports.Run = Run;\nexports.text = exports.Text = Text;\nexports.tab = exports.Tab = Tab;\nexports.checkbox = exports.Checkbox = Checkbox;\nexports.Hyperlink = Hyperlink;\nexports.noteReference = exports.NoteReference = NoteReference;\nexports.Notes = Notes;\nexports.Note = Note;\nexports.commentReference = commentReference;\nexports.comment = comment;\nexports.Image = Image;\nexports.Table = Table;\nexports.TableRow = TableRow;\nexports.TableCell = TableCell;\nexports.lineBreak = Break(\"line\");\nexports.pageBreak = Break(\"page\");\nexports.columnBreak = Break(\"column\");\nexports.BookmarkStart = BookmarkStart;\n\nexports.verticalAlignment = verticalAlignment;\n","var _ = require(\"underscore\");\n\n\nexports.Result = Result;\nexports.success = success;\nexports.warning = warning;\nexports.error = error;\n\n\nfunction Result(value, messages) {\n    this.value = value;\n    this.messages = messages || [];\n}\n\nResult.prototype.map = function(func) {\n    return new Result(func(this.value), this.messages);\n};\n\nResult.prototype.flatMap = function(func) {\n    var funcResult = func(this.value);\n    return new Result(funcResult.value, combineMessages([this, funcResult]));\n};\n\nResult.prototype.flatMapThen = function(func) {\n    var that = this;\n    return func(this.value).then(function(otherResult) {\n        return new Result(otherResult.value, combineMessages([that, otherResult]));\n    });\n};\n\nResult.combine = function(results) {\n    var values = _.flatten(_.pluck(results, \"value\"));\n    var messages = combineMessages(results);\n    return new Result(values, messages);\n};\n\nfunction success(value) {\n    return new Result(value, []);\n}\n\nfunction warning(message) {\n    return {\n        type: \"warning\",\n        message: message\n    };\n}\n\nfunction error(exception) {\n    return {\n        type: \"error\",\n        message: exception.message,\n        error: exception\n    };\n}\n\nfunction combineMessages(results) {\n    var messages = [];\n    _.flatten(_.pluck(results, \"messages\"), true).forEach(function(message) {\n        if (!containsMessage(messages, message)) {\n            messages.push(message);\n        }\n    });\n    return messages;\n}\n\nfunction containsMessage(messages, message) {\n    return _.find(messages, isSameMessage.bind(null, message)) !== undefined;\n}\n\nfunction isSameMessage(first, second) {\n    return first.type === second.type && first.message === second.message;\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});","var base64js = require(\"base64-js\");\nvar JSZip = require(\"jszip\");\n\nexports.openArrayBuffer = openArrayBuffer;\nexports.splitPath = splitPath;\nexports.joinPath = joinPath;\n\nfunction openArrayBuffer(arrayBuffer) {\n    return JSZip.loadAsync(arrayBuffer).then(function(zipFile) {\n        function exists(name) {\n            return zipFile.file(name) !== null;\n        }\n\n        function read(name, encoding) {\n            return zipFile.file(name).async(\"uint8array\").then(function(array) {\n                if (encoding === \"base64\") {\n                    return base64js.fromByteArray(array);\n                } else if (encoding) {\n                    var decoder = new TextDecoder(encoding);\n                    return decoder.decode(array);\n                } else {\n                    return array;\n                }\n            });\n        }\n\n        function write(name, contents) {\n            zipFile.file(name, contents);\n        }\n\n        function toArrayBuffer() {\n            return zipFile.generateAsync({type: \"arraybuffer\"});\n        }\n\n        return {\n            exists: exists,\n            read: read,\n            write: write,\n            toArrayBuffer: toArrayBuffer\n        };\n    });\n}\n\nfunction splitPath(path) {\n    var lastIndex = path.lastIndexOf(\"/\");\n    if (lastIndex === -1) {\n        return {dirname: \"\", basename: path};\n    } else {\n        return {\n            dirname: path.substring(0, lastIndex),\n            basename: path.substring(lastIndex + 1)\n        };\n    }\n}\n\nfunction joinPath() {\n    var nonEmptyPaths = Array.prototype.filter.call(arguments, function(path) {\n        return path;\n    });\n\n    var relevantPaths = [];\n\n    nonEmptyPaths.forEach(function(path) {\n        if (/^\\//.test(path)) {\n            relevantPaths = [path];\n        } else {\n            relevantPaths.push(path);\n        }\n    });\n\n    return relevantPaths.join(\"/\");\n}\n","var _ = require(\"underscore\");\n\n\nexports.Element = Element;\nexports.element = function(name, attributes, children) {\n    return new Element(name, attributes, children);\n};\nexports.text = function(value) {\n    return {\n        type: \"text\",\n        value: value\n    };\n};\n\n\nvar emptyElement = exports.emptyElement = {\n    first: function() {\n        return null;\n    },\n    firstOrEmpty: function() {\n        return emptyElement;\n    },\n    attributes: {},\n    children: []\n};\n\nfunction Element(name, attributes, children) {\n    this.type = \"element\";\n    this.name = name;\n    this.attributes = attributes || {};\n    this.children = children || [];\n}\n\nElement.prototype.first = function(name) {\n    return _.find(this.children, function(child) {\n        return child.name === name;\n    });\n};\n\nElement.prototype.firstOrEmpty = function(name) {\n    return this.first(name) || emptyElement;\n};\n\nElement.prototype.getElementsByTagName = function(name) {\n    var elements = _.filter(this.children, function(child) {\n        return child.name === name;\n    });\n    return toElementList(elements);\n};\n\nElement.prototype.text = function() {\n    if (this.children.length === 0) {\n        return \"\";\n    } else if (this.children.length !== 1 || this.children[0].type !== \"text\") {\n        throw new Error(\"Not implemented\");\n    }\n    return this.children[0].value;\n};\n\nvar elementListPrototype = {\n    getElementsByTagName: function(name) {\n        return toElementList(_.flatten(this.map(function(element) {\n            return element.getElementsByTagName(name);\n        }, true)));\n    }\n};\n\nfunction toElementList(array) {\n    return _.extend(array, elementListPrototype);\n}\n","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\n//[4]   \tNameStartChar\t   ::=   \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a]   \tNameChar\t   ::=   \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5]   \tName\t   ::=   \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\nexports.nameStartChar = nameStartChar;\nexports.nameChar = nameChar;\nexports.tagNamePattern = tagNamePattern;\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\nvar tagNamePattern = conventions.tagNamePattern;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE                = NodeType.ELEMENT_NODE                = 1;\nvar ATTRIBUTE_NODE              = NodeType.ATTRIBUTE_NODE              = 2;\nvar TEXT_NODE                   = NodeType.TEXT_NODE                   = 3;\nvar CDATA_SECTION_NODE          = NodeType.CDATA_SECTION_NODE          = 4;\nvar ENTITY_REFERENCE_NODE       = NodeType.ENTITY_REFERENCE_NODE       = 5;\nvar ENTITY_NODE                 = NodeType.ENTITY_NODE                 = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE                = NodeType.COMMENT_NODE                = 8;\nvar DOCUMENT_NODE               = NodeType.DOCUMENT_NODE               = 9;\nvar DOCUMENT_TYPE_NODE          = NodeType.DOCUMENT_TYPE_NODE          = 10;\nvar DOCUMENT_FRAGMENT_NODE      = NodeType.DOCUMENT_FRAGMENT_NODE      = 11;\nvar NOTATION_NODE               = NodeType.NOTATION_NODE               = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR              = ExceptionCode.INDEX_SIZE_ERR              = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR          = ExceptionCode.DOMSTRING_SIZE_ERR          = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR       = ExceptionCode.HIERARCHY_REQUEST_ERR       = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR          = ExceptionCode.WRONG_DOCUMENT_ERR          = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR       = ExceptionCode.INVALID_CHARACTER_ERR       = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR         = ExceptionCode.NO_DATA_ALLOWED_ERR         = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR               = ExceptionCode.NOT_FOUND_ERR               = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR           = ExceptionCode.NOT_SUPPORTED_ERR           = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR         = ExceptionCode.INUSE_ATTRIBUTE_ERR         = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR        \t= ExceptionCode.INVALID_STATE_ERR        \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR               \t= ExceptionCode.SYNTAX_ERR               \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR            \t= ExceptionCode.NAMESPACE_ERR           \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR       \t= ExceptionCode.INVALID_ACCESS_ERR      \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index  unsigned long\n\t *   Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter,options){\n\t\tvar requireWellFormed = !!options && !!options.requireWellFormed;\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter,null,requireWellFormed);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i] || null;\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n\t// nodeName -> Attr membership index; lets the parse-time de-duplication in\n\t// setNamedItem resolve an existing attribute in O(1) instead of scanning the\n\t// list, so building an element with M attributes costs O(M) rather than O(M^2).\n\t// The numbered entries and length remain the sole authority for attribute order.\n\t// Object.create(null) so an attribute named __proto__ or constructor is an\n\t// ordinary key.\n\tthis._nameIndex = Object.create(null);\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _nnmIndexAdd(list, attr) {\n\tlist._nameIndex[attr.nodeName] = attr;\n}\nfunction _nnmIndexRemove(list, attr) {\n\t// Only drop the entry if it still points at this attribute; a replacement with\n\t// a different nodeName may already have re-keyed it.\n\tif (list._nameIndex[attr.nodeName] === attr) {\n\t\tdelete list._nameIndex[attr.nodeName];\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t\t// oldAttr leaves the list; drop its index entry (its nodeName may differ\n\t\t// from newAttr's when the replacement came via setNamedItemNS).\n\t\t_nnmIndexRemove(list, oldAttr);\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\t_nnmIndexAdd(list, newAttr);\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\t_nnmIndexRemove(list, attr);\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\t// Resolve any existing attribute with the same nodeName through the O(1)\n\t\t// membership index rather than an O(M) scan — this is the parse-dedup hot\n\t\t// path (setAttributeNode per attribute during parse). Absent -> undefined,\n\t\t// matching getNamedItem's contract.\n\t\tvar oldAttr = this._nameIndex[attr.nodeName];\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t *   (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument  DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI,  qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This implementation differs from the specification:__\n\t * - this implementation is not validating names or qualified names\n\t *   (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * Note: `internalSubset` can only be introduced via a direct property write to `node.internalSubset` after creation.\n\t * Creation-time validation of `publicId`, `systemId` is not enforced.\n\t * The serializer-level check covers all mutation vectors, including direct property writes.\n\t * `internalSubset` is only serialized as `[ ... ]` when both `publicId` and `systemId` are\n\t * absent (empty or `'.'`) — if either external identifier is present, `internalSubset` is\n\t * silently omitted from the serialized output.\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * The external subset public identifier. Stored verbatim including surrounding quotes.\n\t * When serialized with `requireWellFormed: true` (via the 4th-parameter options object),\n\t * throws `DOMException` with code `INVALID_STATE_ERR` if the value is non-empty and does\n\t * not match the XML `PubidLiteral` production (W3C DOM Parsing §3.2.1.3; XML 1.0 [12]).\n\t * @param {string} [systemId]\n\t * The external subset system identifier. Stored verbatim including surrounding quotes.\n\t * When serialized with `requireWellFormed: true`, throws `DOMException` with code\n\t * `INVALID_STATE_ERR` if the value is non-empty and does not match the XML `SystemLiteral`\n\t * production (W3C DOM Parsing §3.2.1.3; XML 1.0 [11]).\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t  or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\t/**\n\t * Puts the specified node and all of its subtree into a \"normalized\" form. In a normalized\n\t * subtree, no text nodes in the subtree are empty and there are no adjacent text nodes.\n\t *\n\t * Specifically, this method merges any adjacent text nodes (i.e., nodes for which `nodeType`\n\t * is `TEXT_NODE`) into a single node with the combined data. It also removes any empty text\n\t * nodes.\n\t *\n\t * This method iteratively traverses all child nodes to normalize all descendant nodes within\n\t * the subtree.\n\t *\n\t * @throws {DOMException}\n\t * May throw a DOMException if operations within removeChild or appendData (which are\n\t * potentially invoked in this method) do not meet their specific constraints.\n\t * @see {@link Node.removeChild}\n\t * @see {@link CharacterData.appendData}\n\t * @see ../docs/walk-dom.md.\n\t */\n\tnormalize: function () {\n\t\twalkDOM(this, null, {\n\t\t\tenter: function (node) {\n\t\t\t\t// Merge adjacent text children of node before walkDOM schedules them.\n\t\t\t\t// walkDOM reads lastChild/previousSibling after enter returns, so the\n\t\t\t\t// surviving post-merge children are what it descends into.\n\t\t\t\tvar child = node.firstChild;\n\t\t\t\twhile (child) {\n\t\t\t\t\tvar next = child.nextSibling;\n\t\t\t\t\tif (next !== null && next.nodeType === TEXT_NODE && child.nodeType === TEXT_NODE) {\n\t\t\t\t\t\t// Merge the whole run of adjacent text nodes at once: gather the\n\t\t\t\t\t\t// following text siblings' data, unlink them in a single pass, and\n\t\t\t\t\t\t// re-index the child list a single time. Per-sibling `removeChild`\n\t\t\t\t\t\t// (each an O(K) re-index) plus per-sibling `appendData` (each an O(K)\n\t\t\t\t\t\t// string rebuild) is O(K^2) over a long run of single-character text\n\t\t\t\t\t\t// nodes; this keeps it O(K). The first text node of the run survives\n\t\t\t\t\t\t// and carries the concatenated data, preserving node identity and\n\t\t\t\t\t\t// locator semantics.\n\t\t\t\t\t\tvar tail = [];\n\t\t\t\t\t\tvar sibling = next;\n\t\t\t\t\t\twhile (sibling !== null && sibling.nodeType === TEXT_NODE) {\n\t\t\t\t\t\t\ttail.push(sibling.data);\n\t\t\t\t\t\t\tsibling = sibling.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// `sibling` is now the first non-text node after the run, or null.\n\t\t\t\t\t\tvar removed = child.nextSibling;\n\t\t\t\t\t\twhile (removed !== sibling) {\n\t\t\t\t\t\t\tvar following = removed.nextSibling;\n\t\t\t\t\t\t\tremoved.parentNode = null;\n\t\t\t\t\t\t\tremoved.previousSibling = null;\n\t\t\t\t\t\t\tremoved.nextSibling = null;\n\t\t\t\t\t\t\tremoved = following;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchild.nextSibling = sibling;\n\t\t\t\t\t\tif (sibling !== null) {\n\t\t\t\t\t\t\tsibling.previousSibling = child;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.lastChild = child;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchild.appendData(tail.join('')); // single O(K) string rebuild\n\t\t\t\t\t\t_onUpdateChild(node.ownerDocument, node); // single O(K) re-index\n\t\t\t\t\t\tchild = sibling;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild = next;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true; // descend into surviving children\n\t\t\t},\n\t\t});\n\t},\n  \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n    // Introduced in DOM Level 2:\n    hasAttributes:function(){\n    \treturn this.attributes.length>0;\n    },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n    lookupPrefix:function(namespaceURI){\n    \tvar el = this;\n    \twhile(el){\n    \t\tvar map = el._nsMap;\n    \t\t//console.dir(map)\n    \t\tif(map){\n    \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n    \t}\n    \treturn null;\n    },\n    // Introduced in DOM Level 3:\n    lookupNamespaceURI:function(prefix){\n    \tvar el = this;\n    \twhile(el){\n    \t\tvar map = el._nsMap;\n    \t\t//console.dir(map)\n    \t\tif(map){\n    \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n    \t\t\t\treturn map[prefix] ;\n    \t\t\t}\n    \t\t}\n    \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n    \t}\n    \treturn null;\n    },\n    // Introduced in DOM Level 3:\n    isDefaultNamespace:function(namespaceURI){\n    \tvar prefix = this.lookupPrefix(namespaceURI);\n    \treturn prefix == null;\n    }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '&lt;' ||\n         c == '>' && '&gt;' ||\n         c == '&' && '&amp;' ||\n         c == '\"' && '&quot;' ||\n         '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param {Node} node\n * Root of the subtree to visit.\n * @param {function(Node): boolean} callback\n * Called for each node in depth-first pre-order. Return a truthy value to stop traversal early.\n * @return {boolean} `true` if traversal was aborted by the callback, `false` otherwise.\n */\nfunction _visitNode(node, callback) {\n\treturn walkDOM(node, null, { enter: function (n) { return callback(n) ? walkDOM.STOP : true; } }) === walkDOM.STOP;\n}\n\n/**\n * Depth-first pre/post-order DOM tree walker.\n *\n * Visits every node in the subtree rooted at `node`. For each node:\n *\n * 1. Calls `callbacks.enter(node, context)` before descending into the node's children. The\n * return value becomes the `context` passed to each child's `enter` call and to the matching\n * `exit` call.\n * 2. If `enter` returns `null` or `undefined`, the node's children are skipped;\n * sibling traversal continues normally.\n * 3. If `enter` returns `walkDOM.STOP`, the entire traversal is aborted immediately — no\n * further `enter` or `exit` calls are made.\n * 4. `lastChild` and `previousSibling` are read **after** `enter` returns, so `enter` may\n * safely modify the node's own child list before the walker descends. Modifying siblings of\n * the current node or any other part of the tree produces unpredictable results: nodes already\n * queued on the stack are visited regardless of DOM changes, and newly inserted nodes outside\n * the current child list are never visited.\n * 5. Calls `callbacks.exit(node, context)` (if provided) after all of a node's children have\n * been visited, passing the same `context` that `enter`\n * returned for that node.\n *\n * This implementation uses an explicit stack and does not recurse — it is safe on arbitrarily\n * deep trees.\n *\n * @param {Node} node\n * Root of the subtree to walk.\n * @param {*} context\n * Initial context value passed to the root node's `enter`.\n * @param {{ enter: function(Node, *): *, exit?: function(Node, *): void }} callbacks\n * @returns {void | walkDOM.STOP}\n * @see ../docs/walk-dom.md.\n */\nfunction walkDOM(node, context, callbacks) {\n\t// Each stack frame is {node, context, phase}:\n\t//   walkDOM.ENTER — call enter, then push children\n\t//   walkDOM.EXIT  — call exit\n\tvar stack = [{ node: node, context: context, phase: walkDOM.ENTER }];\n\twhile (stack.length > 0) {\n\t\tvar frame = stack.pop();\n\t\tif (frame.phase === walkDOM.ENTER) {\n\t\t\tvar childContext = callbacks.enter(frame.node, frame.context);\n\t\t\tif (childContext === walkDOM.STOP) {\n\t\t\t\treturn walkDOM.STOP;\n\t\t\t}\n\t\t\t// Push exit frame before children so it fires after all children are processed (Last In First Out)\n\t\t\tstack.push({ node: frame.node, context: childContext, phase: walkDOM.EXIT });\n\t\t\tif (childContext === null || childContext === undefined) {\n\t\t\t\tcontinue; // skip children\n\t\t\t}\n\t\t\t// lastChild is read after enter returns, so enter may modify the child list.\n\t\t\tvar child = frame.node.lastChild;\n\t\t\t// Traverse from lastChild backwards so that pushing onto the stack\n\t\t\t// naturally yields firstChild on top (processed first).\n\t\t\twhile (child) {\n\t\t\t\tstack.push({ node: child, context: childContext, phase: walkDOM.ENTER });\n\t\t\t\tchild = child.previousSibling;\n\t\t\t}\n\t\t} else {\n\t\t\t// frame.phase === walkDOM.EXIT\n\t\t\tif (callbacks.exit) {\n\t\t\t\tcallbacks.exit(frame.node, frame.context);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Sentinel value returned from a `walkDOM` `enter` callback to abort the entire traversal\n * immediately.\n *\n * @type {symbol}\n */\nwalkDOM.STOP = Symbol('walkDOM.STOP');\n/**\n * Phase constant for a stack frame that has not yet been visited.\n * The `enter` callback is called and children are scheduled.\n *\n * @type {number}\n */\nwalkDOM.ENTER = 0;\n/**\n * Phase constant for a stack frame whose subtree has been fully visited.\n * The `exit` callback is called.\n *\n * @type {number}\n */\nwalkDOM.EXIT = 1;\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t\t// Update ownerDocument for each node being inserted\n\t\tvar targetDoc = parent.ownerDocument || parent;\n\t\t_updateOwnerDocument(newFirst, targetDoc);\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Recursively updates the ownerDocument property for a node and all its descendants\n * @param {Node} node\n * @param {Document} newOwnerDocument\n * @private\n */\nfunction _updateOwnerDocument(node, newOwnerDocument) {\n\tif (node.ownerDocument === newOwnerDocument) {\n\t\treturn;\n\t}\n\t\n\tnode.ownerDocument = newOwnerDocument;\n\t\n\t// Update attributes if this is an element\n\tif (node.nodeType === ELEMENT_NODE && node.attributes) {\n\t\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\t\tvar attr = node.attributes.item(i);\n\t\t\tif (attr) {\n\t\t\t\tattr.ownerDocument = newOwnerDocument;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t// Recursively update child nodes\n\tvar child = node.firstChild;\n\twhile (child) {\n\t\t_updateOwnerDocument(child, newOwnerDocument);\n\t\tchild = child.nextSibling;\n\t}\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\t\n\t// Update ownerDocument for the new child and all its descendants\n\tvar targetDoc = parentNode.ownerDocument || parentNode;\n\t_updateOwnerDocument(newChild, targetDoc);\n\t\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName :  '#document',\n\tnodeType :  DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype :  null,\n\tdocumentElement :  null,\n\t_inc : 1,\n\n\tinsertBefore :  function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\t_updateOwnerDocument(newChild, this);\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild :  function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\t_updateOwnerDocument(newChild, this);\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\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 ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\t/**\n\t * Returns a new CDATASection node whose data is `data`.\n\t *\n\t * __This implementation differs from the specification:__\n\t * - calling this method on an HTML document does not throw `NotSupportedError`.\n\t *\n\t * @param {string} data\n\t * @returns {CDATASection}\n\t * @throws DOMException with code `INVALID_CHARACTER_ERR` if `data` contains `\"]]>\"`.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createCDATASection\n\t * @see https://dom.spec.whatwg.org/#dom-document-createcdatasection\n\t */\n\tcreateCDATASection :\tfunction(data){\n\t\tif (data.indexOf(']]>') !== -1) {\n\t\t\tthrow new DOMException(INVALID_CHARACTER_ERR, 'data contains \"]]>\"');\n\t\t}\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\t/**\n\t * Returns a ProcessingInstruction node whose target is target and data is data.\n\t *\n\t * __This implementation differs from the specification:__\n\t * - it does not do any input validation on the arguments and doesn't throw \"InvalidCharacterError\".\n\t *\n\t * Note: When the resulting document is serialized with `requireWellFormed: true`, the\n\t * serializer throws with code `INVALID_STATE_ERR` if `.target` is not a valid XML `NCName`\n\t * (a `Name` with no colon) or is an ASCII case-insensitive match for `\"xml\"`, or if `.data`\n\t * contains `?>` (W3C DOM Parsing §3.2.1.7). Without that option the target and data are\n\t * emitted verbatim.\n\t *\n\t * @param {string} target\n\t * @param {string} data\n\t * @returns {ProcessingInstruction}\n\t * @see https://developer.mozilla.org/docs/Web/API/Document/createProcessingInstruction\n\t * @see https://dom.spec.whatwg.org/#dom-document-createprocessinginstruction\n\t * @see https://www.w3.org/TR/DOM-Parsing/#dfn-concept-serialize-xml §3.2.1.7\n\t */\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\t/**\n\t * Creates an EntityReference object, serialized as `&name;`.\n\t *\n\t * The `name` is validated against the XML `Name` production at creation time; an invalid name\n\t * throws a `DOMException` with code `INVALID_CHARACTER_ERR`. When the resulting node is\n\t * serialized with `requireWellFormed: true`, the serializer re-validates `nodeName` and throws\n\t * a `DOMException` with code `INVALID_STATE_ERR` if a later `nodeName` mutation made it invalid;\n\t * without that option the name is emitted verbatim.\n\t *\n\t * Note: xmldom does not expand entities — the parser resolves entity references inline and never\n\t * constructs `EntityReference` nodes, so this method is the only producer.\n\t *\n\t * @param {string} name The name of the entity to reference.\n\t * @returns {EntityReference}\n\t * @throws {DOMException} With code `INVALID_CHARACTER_ERR` when `name` is not a valid XML `Name`.\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-392B75AE\n\t */\n\tcreateEntityReference :\tfunction(name){\n\t\tif (!tagNamePattern.test(name)) {\n\t\t\tthrow new DOMException(INVALID_CHARACTER_ERR, 'not a valid xml name \"' + name + '\"');\n\t\t}\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\n/**\n * Represents a DocumentType node (the `<!DOCTYPE ...>` declaration).\n *\n * `name`, `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.\n * xmldom does not enforce the `readonly` constraint declared by the WHATWG DOM spec —\n * direct property writes succeed silently. Values are serialized verbatim when\n * `requireWellFormed` is false (the default). When the serializer is invoked with\n * `requireWellFormed: true` (via the 4th-parameter options object), it validates each\n * field — including `name`, which is checked against the XML `Name` production — and throws\n * `DOMException` with code `INVALID_STATE_ERR` on invalid values.\n *\n * @class\n * @see https://developer.mozilla.org/docs/Web/API/DocumentType MDN\n */\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\n/**\n * Represents an EntityReference node, serialized as `&nodeName;`.\n *\n * `nodeName` is the referenced entity's name, stored verbatim. When serialized with\n * `requireWellFormed: true`, the serializer validates `nodeName` against the XML `Name` production\n * and throws a `DOMException` with code `INVALID_STATE_ERR` if it does not match; without that\n * option the name is emitted verbatim between `&` and `;`.\n *\n * Note: xmldom does not expand entities — the parser resolves entity references inline and never\n * constructs `EntityReference` nodes, so the only producer is `Document.createEntityReference`.\n *\n * @class\n * @see https://www.w3.org/TR/xml/#NT-Name\n */\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\n/**\n * Returns the result of serializing `node` to XML.\n *\n * When `options.requireWellFormed` is `true`, the serializer throws for content that would\n * produce ill-formed XML.\n *\n * __This implementation differs from the specification:__\n * - CDATASection nodes whose data contains `]]>` are serialized by splitting the section\n *   at each `]]>` occurrence (following W3C DOM Level 3 Core `split-cdata-sections`\n *   default behaviour) unless `requireWellFormed` is `true`.\n * - when `requireWellFormed` is `true`, `DOMException` with code `INVALID_STATE_ERR`\n *   is only thrown to prevent injection vectors, not for all the spec mandated checks.\n *\n * @param {Node} node\n * @param {boolean} [isHtml]\n * @param {function} [nodeFilter]\n * @param {Object} [options]\n * @param {boolean} [options.requireWellFormed=false]\n * When `true`, throws for content that would produce ill-formed XML.\n * @returns {string}\n * @throws {DOMException}\n * With code `INVALID_STATE_ERR` when `requireWellFormed` is `true` and:\n * - an Element's qualified name (including any namespace prefix) is not a valid XML QName,\n * - an attribute's qualified name (including a synthesized `xmlns:` namespace declaration) is\n *   not a valid XML QName,\n * - a CDATASection node's data contains `\"]]>\"`,\n * - a Comment node's data contains `\"-->\"` (bare `\"--\"` does not throw on this branch),\n * - a ProcessingInstruction's target is not a valid XML `NCName` (a `Name` with no colon) or is\n *   an ASCII case-insensitive match for `\"xml\"`, or its data contains `\"?>\"`,\n * - a DocumentType's `name` is not a valid XML `Name` (XML 1.0 production [5]),\n * - a DocumentType's `publicId` is non-empty and does not match the XML `PubidLiteral`\n *   production,\n * - a DocumentType's `systemId` is non-empty and does not match the XML `SystemLiteral`\n *   production,\n * - a DocumentType's `internalSubset` contains `\"]>\"`, or\n * - an EntityReference's `nodeName` is not a valid XML `Name` (XML 1.0 production [5]).\n * Note: xmldom does not enforce `readonly` on DocumentType fields — direct property\n * writes succeed and are covered by the serializer-level checks above.\n * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring\n * @see https://w3c.github.io/DOM-Parsing/#xml-serialization\n * @see https://github.com/w3c/DOM-Parsing/issues/84\n */\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter,options){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter,options);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter,options){\n\tvar requireWellFormed = !!options && !!options.requireWellFormed;\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces,requireWellFormed);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value, requireWellFormed) {\n\tif (requireWellFormed && !tagNamePattern.test(qualifiedName)) {\n\t\tthrow new DOMException(INVALID_STATE_ERR, 'The attribute name \"' + qualifiedName + '\" is not a valid XML QName');\n\t}\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces, requireWellFormed) {\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\twalkDOM(node, { ns: visibleNamespaces, isHTML: isHTML }, {\n\t\tenter: function (n, ctx) {\n\t\t\tvar ns = ctx.ns;\n\t\t\tvar html = ctx.isHTML;\n\n\t\t\tif (nodeFilter) {\n\t\t\t\tn = nodeFilter(n);\n\t\t\t\tif (n) {\n\t\t\t\t\tif (typeof n == 'string') {\n\t\t\t\t\t\tbuf.push(n);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch (n.nodeType) {\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\t\tvar attrs = n.attributes;\n\t\t\t\t\tvar len = attrs.length;\n\t\t\t\t\tvar nodeName = n.tagName;\n\n\t\t\t\t\thtml = NAMESPACE.isHTML(n.namespaceURI) || html;\n\n\t\t\t\t\tvar prefixedNodeName = nodeName;\n\t\t\t\t\tif (!html && !n.prefix && n.namespaceURI) {\n\t\t\t\t\t\tvar defaultNS;\n\t\t\t\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\t\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\t\t\t\tdefaultNS = attrs.item(ai).value;\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\tif (!defaultNS) {\n\t\t\t\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\t\t\t\tfor (var nsi = ns.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\t\t\t\tvar nsEntry = ns[nsi];\n\t\t\t\t\t\t\t\tif (nsEntry.prefix === '' && nsEntry.namespace === n.namespaceURI) {\n\t\t\t\t\t\t\t\t\tdefaultNS = nsEntry.namespace;\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\t\t\t\t\t\t}\n\t\t\t\t\t\tif (defaultNS !== n.namespaceURI) {\n\t\t\t\t\t\t\tfor (var nsi = ns.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\t\t\t\tvar nsEntry = ns[nsi];\n\t\t\t\t\t\t\t\tif (nsEntry.namespace === n.namespaceURI) {\n\t\t\t\t\t\t\t\t\tif (nsEntry.prefix) {\n\t\t\t\t\t\t\t\t\t\tprefixedNodeName = nsEntry.prefix + ':' + nodeName;\n\t\t\t\t\t\t\t\t\t}\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\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (requireWellFormed && !tagNamePattern.test(prefixedNodeName)) {\n\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The element name \"' + prefixedNodeName + '\" is not a valid XML QName');\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('<', prefixedNodeName);\n\n\t\t\t\t\t// Build a fresh namespace snapshot for this element's children.\n\t\t\t\t\t// The slice prevents sibling elements from inheriting each other's declarations.\n\t\t\t\t\tvar childNs = ns.slice();\n\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\tvar attr = attrs.item(i);\n\t\t\t\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\t\t\t\tchildNs.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t\t\t\t} else if (attr.nodeName == 'xmlns') {\n\t\t\t\t\t\t\tchildNs.push({ prefix: '', namespace: attr.value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\tvar attr = attrs.item(i);\n\t\t\t\t\t\tif (needNamespaceDefine(attr, html, childNs)) {\n\t\t\t\t\t\t\tvar attrPrefix = attr.prefix || '';\n\t\t\t\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\t\t\t\taddSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri, requireWellFormed);\n\t\t\t\t\t\t\tchildNs.push({ prefix: attrPrefix, namespace: uri });\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Apply nodeFilter and serialize the attribute.\n\t\t\t\t\t\tvar filteredAttr = nodeFilter ? nodeFilter(attr) : attr;\n\t\t\t\t\t\tif (filteredAttr) {\n\t\t\t\t\t\t\tif (typeof filteredAttr === 'string') {\n\t\t\t\t\t\t\t\tbuf.push(filteredAttr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\taddSerializedAttribute(buf, filteredAttr.name, filteredAttr.value, requireWellFormed);\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// add namespace for current node\n\t\t\t\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(n, html, childNs)) {\n\t\t\t\t\t\tvar nodePrefix = n.prefix || '';\n\t\t\t\t\t\tvar uri = n.namespaceURI;\n\t\t\t\t\t\taddSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri, requireWellFormed);\n\t\t\t\t\t\tchildNs.push({ prefix: nodePrefix, namespace: uri });\n\t\t\t\t\t}\n\n\t\t\t\t\tvar child = n.firstChild;\n\t\t\t\t\tif (child || html && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n\t\t\t\t\t\tbuf.push('>');\n\t\t\t\t\t\tif (html && /^script$/i.test(nodeName)) {\n\t\t\t\t\t\t\t// Inline serialization for <script> children; return null to skip walkDOM descent.\n\t\t\t\t\t\t\twhile (child) {\n\t\t\t\t\t\t\t\tif (child.data) {\n\t\t\t\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tserializeToString(child, buf, html, nodeFilter, childNs.slice(), requireWellFormed);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbuf.push('</', nodeName, '>');\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Return child context; walkDOM descends and exit emits the closing tag.\n\t\t\t\t\t\treturn { ns: childNs, isHTML: html, tag: prefixedNodeName };\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuf.push('/>');\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\tcase DOCUMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\t// Descend into children; exit is a no-op (tag is null).\n\t\t\t\t\treturn { ns: ns.slice(), isHTML: html, tag: null };\n\n\t\t\t\tcase ATTRIBUTE_NODE:\n\t\t\t\t\taddSerializedAttribute(buf, n.name, n.value, requireWellFormed);\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase TEXT_NODE:\n\t\t\t\t\t/**\n\t\t\t\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t\t\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t\t\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t\t\t\t * `&amp;` and `&lt;` respectively.\n\t\t\t\t\t * The right angle bracket (>) may be represented using the string \" &gt; \", and must, for compatibility,\n\t\t\t\t\t * be escaped using either `&gt;` or a character reference when it appears in the string `]]>` in content,\n\t\t\t\t\t * when that string is not marking the end of a CDATA section.\n\t\t\t\t\t *\n\t\t\t\t\t * In the content of elements, character data is any string of characters\n\t\t\t\t\t * which does not contain the start-delimiter of any markup\n\t\t\t\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t\t\t\t *\n\t\t\t\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t\t\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t\t\t\t */\n\t\t\t\t\tbuf.push(n.data.replace(/[<&>]/g, _xmlEncoder));\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase CDATA_SECTION_NODE:\n\t\t\t\t\tif (requireWellFormed && n.data.indexOf(']]>') !== -1) {\n\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The CDATASection data contains \"]]>\"');\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('<![CDATA[', n.data.replace(/]]>/g, ']]]]><![CDATA[>'), ']]>');\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase COMMENT_NODE:\n\t\t\t\t\tif (requireWellFormed && n.data.indexOf('-->') !== -1) {\n\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The comment node data contains \"-->\"');\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('<!--', n.data, '-->');\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase DOCUMENT_TYPE_NODE:\n\t\t\t\t\tif (requireWellFormed) {\n\t\t\t\t\t\tif (!tagNamePattern.test(n.name)) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The doctype name \"' + n.name + '\" is not a valid XML Name');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n.publicId && !/^(\"[\\x20\\r\\na-zA-Z0-9\\-()+,.\\/:=?;!*#@$_%']*\"|'[\\x20\\r\\na-zA-Z0-9\\-()+,.\\/:=?;!*#@$_%'\"]*')$/.test(n.publicId)) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'DocumentType publicId is not a valid PubidLiteral');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n.systemId && !/^(\"[^\"]*\"|'[^']*')$/.test(n.systemId)) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'DocumentType systemId is not a valid SystemLiteral');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n.internalSubset && n.internalSubset.indexOf(']>') !== -1) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'DocumentType internalSubset contains \"]>\"');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar pubid = n.publicId;\n\t\t\t\t\tvar sysid = n.systemId;\n\t\t\t\t\tbuf.push('<!DOCTYPE ', n.name);\n\t\t\t\t\tif (pubid) {\n\t\t\t\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\t\t\t\tif (sysid && sysid != '.') {\n\t\t\t\t\t\t\tbuf.push(' ', sysid);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuf.push('>');\n\t\t\t\t\t} else if (sysid && sysid != '.') {\n\t\t\t\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar sub = n.internalSubset;\n\t\t\t\t\t\tif (sub) {\n\t\t\t\t\t\t\tbuf.push(' [', sub, ']');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuf.push('>');\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase PROCESSING_INSTRUCTION_NODE:\n\t\t\t\t\tif (requireWellFormed) {\n\t\t\t\t\t\tif (!tagNamePattern.test(n.target) || n.target.indexOf(':') !== -1 || n.target.toLowerCase() === 'xml') {\n\t\t\t\t\t\t\tthrow new DOMException(\n\t\t\t\t\t\t\t\tINVALID_STATE_ERR,\n\t\t\t\t\t\t\t\t'The processing instruction target \"' + n.target + '\" is not a valid XML NCName or is reserved'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n.data.indexOf('?>') !== -1) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains \"?>\"');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('<?', n.target, ' ', n.data, '?>');\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase ENTITY_REFERENCE_NODE:\n\t\t\t\t\tif (requireWellFormed && !tagNamePattern.test(n.nodeName)) {\n\t\t\t\t\t\tthrow new DOMException(\n\t\t\t\t\t\t\tINVALID_STATE_ERR,\n\t\t\t\t\t\t\t'The entity reference name \"' + n.nodeName + '\" is not a valid XML Name'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('&', n.nodeName, ';');\n\t\t\t\t\treturn null;\n\n\t\t\t\t//case ENTITY_NODE:\n\t\t\t\t//case NOTATION_NODE:\n\t\t\t\tdefault:\n\t\t\t\t\tbuf.push('??', n.nodeName);\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\texit: function (n, childCtx) {\n\t\t\tif (childCtx && childCtx.tag) {\n\t\t\t\tbuf.push('</', childCtx.tag, '>');\n\t\t\t}\n\t\t},\n\t});\n}\n/**\n * Imports a node from a different document into `doc`, creating a new copy.\n * Delegates to {@link walkDOM} for traversal. Each node in the subtree is shallow-cloned,\n * stamped with `doc` as its `ownerDocument`, and detached (`parentNode` set to `null`).\n * Children are imported recursively when `deep` is `true`; for {@link Attr} nodes `deep` is\n * always forced to `true`\n * because an attribute's value lives in a child text node.\n *\n * @param {Document} doc\n * The document that will own the imported node.\n * @param {Node} node\n * The node to import.\n * @param {boolean} deep\n * If `true`, descendants are imported recursively.\n * @returns {Node}\n * The newly imported node, now owned by `doc`.\n */\nfunction importNode(doc, node, deep) {\n\tvar destRoot;\n\twalkDOM(node, null, {\n\t\tenter: function (srcNode, destParent) {\n\t\t\t// Shallow-clone the node and stamp it into the target document.\n\t\t\tvar destNode = srcNode.cloneNode(false);\n\t\t\tdestNode.ownerDocument = doc;\n\t\t\tdestNode.parentNode = null;\n\t\t\t// capture as the root of the imported subtree or attach to parent.\n\t\t\tif (destParent === null) {\n\t\t\t\tdestRoot = destNode;\n\t\t\t} else {\n\t\t\t\tdestParent.appendChild(destNode);\n\t\t\t}\n\t\t\t// ATTRIBUTE_NODE must always be imported deeply: its value lives in a child text node.\n\t\t\tvar shouldDeep = srcNode.nodeType === ATTRIBUTE_NODE || deep;\n\t\t\treturn shouldDeep ? destNode : null;\n\t\t},\n\t});\n\treturn destRoot;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc, node, deep) {\n\tvar destRoot;\n\twalkDOM(node, null, {\n\t\tenter: function (srcNode, destParent) {\n\t\t\t// 1. Create a blank node of the same type and copy all scalar own properties.\n\t\t\tvar destNode = new srcNode.constructor();\n\t\t\tfor (var n in srcNode) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(srcNode, n)) {\n\t\t\t\t\tvar v = srcNode[n];\n\t\t\t\t\tif (typeof v != 'object') {\n\t\t\t\t\t\tif (v != destNode[n]) {\n\t\t\t\t\t\t\tdestNode[n] = v;\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\tif (srcNode.childNodes) {\n\t\t\t\tdestNode.childNodes = new NodeList();\n\t\t\t}\n\t\t\tdestNode.ownerDocument = doc;\n\t\t\t// 2. Handle node-type-specific setup.\n\t\t\t//    Attributes are not DOM children, so they are cloned inline here\n\t\t\t//    rather than by walkDOM descent.\n\t\t\t//    ATTRIBUTE_NODE forces deep=true so its own children are walked.\n\t\t\tvar shouldDeep = deep;\n\t\t\tswitch (destNode.nodeType) {\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\t\tvar attrs = srcNode.attributes;\n\t\t\t\t\tvar attrs2 = (destNode.attributes = new NamedNodeMap());\n\t\t\t\t\tvar len = attrs.length;\n\t\t\t\t\tattrs2._ownerElement = destNode;\n\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\tdestNode.setAttributeNode(cloneNode(doc, attrs.item(i), true));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ATTRIBUTE_NODE:\n\t\t\t\t\tshouldDeep = true;\n\t\t\t}\n\t\t\t// 3. Attach to parent, or capture as the root of the cloned subtree.\n\t\t\tif (destParent !== null) {\n\t\t\t\tdestParent.appendChild(destNode);\n\t\t\t} else {\n\t\t\t\tdestRoot = destNode;\n\t\t\t}\n\t\t\t// 4. Return destNode as the context for children (causes walkDOM to descend),\n\t\t\t//    or null to skip children (shallow clone).\n\t\t\treturn shouldDeep ? destNode : null;\n\t\t},\n\t});\n\treturn destRoot;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * The text content of this node and its descendants.\n\t\t *\n\t\t * Setting `textContent` on an element or document fragment replaces all child nodes with a\n\t\t * single text node; on other nodes it sets `data`, `value`, and `nodeValue` directly.\n\t\t *\n\t\t * @type {string | null}\n\t\t * @see {@link https://dom.spec.whatwg.org/#dom-node-textcontent}\n\t\t */\n\t\tObject.defineProperty(Node.prototype, 'textContent', {\n\t\t\tget: function () {\n\t\t\t\tif (this.nodeType === ELEMENT_NODE || this.nodeType === DOCUMENT_FRAGMENT_NODE) {\n\t\t\t\t\tvar buf = [];\n\t\t\t\t\twalkDOM(this, null, {\n\t\t\t\t\t\tenter: function (n) {\n\t\t\t\t\t\t\tif (n.nodeType === ELEMENT_NODE || n.nodeType === DOCUMENT_FRAGMENT_NODE) {\n\t\t\t\t\t\t\t\treturn true; // enter children\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (n.nodeType === PROCESSING_INSTRUCTION_NODE || n.nodeType === COMMENT_NODE) {\n\t\t\t\t\t\t\t\treturn null; // excluded from text content\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbuf.push(n.nodeValue);\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\treturn buf.join('');\n\t\t\t\t}\n\t\t\t\treturn this.nodeValue;\n\t\t\t},\n\n\t\t\tset: function (data) {\n\t\t\t\tswitch (this.nodeType) {\n\t\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\t\twhile (this.firstChild) {\n\t\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (data || String(data)) {\n\t\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.data = data;\n\t\t\t\t\t\tthis.value = data;\n\t\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.walkDOM = walkDOM;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\nvar tagNamePattern = require(\"./conventions\").tagNamePattern;\n\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t    \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t    \t\t\tdoc.appendChild(text);\n\t    \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\t// Anchored trailing-whitespace trim. The former `/[ \\t\\n\\r]+$/g` backtracked\n\t\t\t\t// quadratically on a name shaped `whitespace-run + non-whitespace char`\n\t\t\t\t// (an end tag `</   …   x>`): from every start position it extended `[ws]+`\n\t\t\t\t// to the end and then failed the `$` anchor. This anchored form matches the\n\t\t\t\t// whole string once and captures everything up to the last non-whitespace\n\t\t\t\t// character, so it trims in linear time with byte-identical output.\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/^([\\s\\S]*?[^ \\t\\n\\r])?[ \\t\\n\\r]*$/, '$1');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t        \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t        \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t        \t\tend = tagStart+1+tagName.length;\n\t        \t}else if(tagName.match(/\\s</)){\n\t        \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t        \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t        \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}else if(/[ \\t\\n\\r]/.test(tagName) && tagNamePattern.test(tagName.split(/[ \\t\\n\\r]/)[0])){\n\t\t\t\t\t// The XML `ETag` production is `'</' Name S? '>'`: only optional whitespace may follow\n\t\t\t\t\t// the `Name`. A valid `Name` followed by whitespace and non-whitespace residue (e.g.\n\t\t\t\t\t// `</a\\nbogus>` or `</a bogus>`) is not well-formed, but historically it was silently\n\t\t\t\t\t// accepted (the malformed end tag ignored, the residue dropped, the element left on the\n\t\t\t\t\t// stack). Report it as a recoverable `error` (which a custom errorHandler may escalate to\n\t\t\t\t\t// fatal) while keeping the existing recovery so the parsed DOM stays byte-identical.\n\t\t\t\t\terrorHandler.error('end tag name is followed by whitespace and trailing content: \"'+tagName+'\"');\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t        if(endIgnoreCaseMach){\n\t\t        \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\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\tif(!endMatch){\n\t\t            \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t        }else{\n\t\t        \tparseStack.push(config)\n\t\t        }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退，有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tif (s === S_TAG && c === '<') {\n\t\t\t// A `<` can never occur inside a tag name. Without this guard the scan runs\n\t\t\t// on to the next `>` (or EOF) before the tag name is rejected, so a document\n\t\t\t// with many `<` inside a malformed tag makes each one-character recovery step\n\t\t\t// re-scan to the distant `>` — O(n^2). Stopping at the `<` keeps each recovery\n\t\t\t// step bounded. The candidate scanned so far is reported raw, consistent with\n\t\t\t// the sibling invalid-tag-name throw below.\n\t\t\tthrow new Error('unexpected < in tag name: ' + source.slice(start, p));\n\t\t}\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed  = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName =  el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t// Derive the child scope's namespace map by prototype-chain inheritance\n\t\t\t\t// instead of a flat copy: lookups inherit ancestor prefixes transparently,\n\t\t\t\t// so a document nesting N scopes retains O(N) map entries rather than\n\t\t\t\t// sum(1..N) = O(N^2). localNSMap stays a flat own-only record of the\n\t\t\t\t// prefixes declared at THIS element, so own-property enumeration\n\t\t\t\t// (endPrefixMapping below) still reports only local declarations.\n\t\t\t\tcurrentNSMap = Object.create(currentNSMap)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart =  source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos =  source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax =  new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n  \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n    this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n    \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n    \tif (this.locator) {\n        \tthis.doc.documentURI = this.locator.systemId;\n    \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t    var el = doc.createElementNS(namespaceURI, qName||localName);\n\t    var len = attrs.length;\n\t    appendElement(this, el);\n\t    this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t    for (var i = 0 ; i < len; i++) {\n\t        var namespaceURI = attrs.getURI(i);\n\t        var value = attrs.getValue(i);\n\t        var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t    }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t    var ins = this.doc.createProcessingInstruction(target, data);\n\t    this.locator && position(this.locator,ins)\n\t    appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t    if(this.locator = locator){// && !('lineNumber' in locator)){\n\t    \tlocator.lineNumber = 0;\n\t    }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t    var comm = this.doc.createComment(chars);\n\t    this.locator && position(this.locator,comm)\n\t    appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t    //used in characters() methods\n\t    this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t    this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t    if (impl && impl.createDocumentType) {\n\t        var dt = impl.createDocumentType(name, publicId, systemId);\n\t        this.locator && position(this.locator,dt)\n\t        appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t    }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n *  #comment(chars, start, length)\n *  #startCDATA()\n *  #endCDATA()\n *  #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n *  #endDTD()\n *  #startEntity(name)\n *  #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n *  #elementDecl(name, model)\n *  #externalEntityDecl(name, publicId, systemId)\n *  #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n *  #resolveEntity(String name,String publicId,String baseURI,String systemId)\n *  #resolveEntity(publicId, systemId)\n *  #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n *  #notationDecl(name, publicId, systemId) {};\n *  #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n    if (!hander.currentElement) {\n        hander.doc.appendChild(node);\n    } else {\n        hander.currentElement.appendChild(node);\n    }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","var xmldom = require(\"@xmldom/xmldom\");\nvar dom = require(\"@xmldom/xmldom/lib/dom\");\n\nfunction parseFromString(string) {\n    var error = null;\n\n    var domParser = new xmldom.DOMParser({\n        errorHandler: function(level, message) {\n            error = {level: level, message: message};\n        }\n    });\n\n    var document = domParser.parseFromString(string);\n\n    if (error === null) {\n        return document;\n    } else {\n        throw new Error(error.level + \": \" + error.message);\n    }\n}\n\nexports.parseFromString = parseFromString;\nexports.Node = dom.Node;\n","var promises = require(\"../promises\");\nvar _ = require(\"underscore\");\n\nvar xmldom = require(\"./xmldom\");\nvar nodes = require(\"./nodes\");\nvar Element = nodes.Element;\n\nexports.readString = readString;\n\nvar Node = xmldom.Node;\n\nfunction readString(xmlString, namespaceMap) {\n    namespaceMap = namespaceMap || {};\n\n    try {\n        var document = xmldom.parseFromString(xmlString, \"text/xml\");\n    } catch (error) {\n        return promises.reject(error);\n    }\n\n    if (document.documentElement.tagName === \"parsererror\") {\n        return promises.resolve(new Error(document.documentElement.textContent));\n    }\n\n    function convertNode(node) {\n        switch (node.nodeType) {\n        case Node.ELEMENT_NODE:\n            return convertElement(node);\n        case Node.TEXT_NODE:\n            return nodes.text(node.nodeValue);\n        }\n    }\n\n    function convertElement(element) {\n        var convertedName = convertName(element);\n\n        var convertedChildren = [];\n        _.forEach(element.childNodes, function(childNode) {\n            var convertedNode = convertNode(childNode);\n            if (convertedNode) {\n                convertedChildren.push(convertedNode);\n            }\n        });\n\n        var convertedAttributes = {};\n        _.forEach(element.attributes, function(attribute) {\n            convertedAttributes[convertName(attribute)] = attribute.value;\n        });\n\n        return new Element(convertedName, convertedAttributes, convertedChildren);\n    }\n\n    function convertName(node) {\n        if (node.namespaceURI) {\n            var mappedPrefix = namespaceMap[node.namespaceURI];\n            var prefix;\n            if (mappedPrefix) {\n                prefix = mappedPrefix + \":\";\n            } else {\n                prefix = \"{\" + node.namespaceURI + \"}\";\n            }\n            return prefix + node.localName;\n        } else {\n            return node.localName;\n        }\n    }\n\n    return promises.resolve(convertNode(document.documentElement));\n}\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,\n    slice = [].slice,\n    hasProp = {}.hasOwnProperty;\n\n  assign = function() {\n    var i, key, len, source, sources, target;\n    target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n    if (isFunction(Object.assign)) {\n      Object.assign.apply(null, arguments);\n    } else {\n      for (i = 0, len = sources.length; i < len; i++) {\n        source = sources[i];\n        if (source != null) {\n          for (key in source) {\n            if (!hasProp.call(source, key)) continue;\n            target[key] = source[key];\n          }\n        }\n      }\n    }\n    return target;\n  };\n\n  isFunction = function(val) {\n    return !!val && Object.prototype.toString.call(val) === '[object Function]';\n  };\n\n  isObject = function(val) {\n    var ref;\n    return !!val && ((ref = typeof val) === 'function' || ref === 'object');\n  };\n\n  isArray = function(val) {\n    if (isFunction(Array.isArray)) {\n      return Array.isArray(val);\n    } else {\n      return Object.prototype.toString.call(val) === '[object Array]';\n    }\n  };\n\n  isEmpty = function(val) {\n    var key;\n    if (isArray(val)) {\n      return !val.length;\n    } else {\n      for (key in val) {\n        if (!hasProp.call(val, key)) continue;\n        return false;\n      }\n      return true;\n    }\n  };\n\n  isPlainObject = function(val) {\n    var ctor, proto;\n    return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));\n  };\n\n  getValue = function(obj) {\n    if (isFunction(obj.valueOf)) {\n      return obj.valueOf();\n    } else {\n      return obj;\n    }\n  };\n\n  module.exports.assign = assign;\n\n  module.exports.isFunction = isFunction;\n\n  module.exports.isObject = isObject;\n\n  module.exports.isArray = isArray;\n\n  module.exports.isEmpty = isEmpty;\n\n  module.exports.isPlainObject = isPlainObject;\n\n  module.exports.getValue = getValue;\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLAttribute;\n\n  module.exports = XMLAttribute = (function() {\n    function XMLAttribute(parent, name, value) {\n      this.options = parent.options;\n      this.stringify = parent.stringify;\n      this.parent = parent;\n      if (name == null) {\n        throw new Error(\"Missing attribute name. \" + this.debugInfo(name));\n      }\n      if (value == null) {\n        throw new Error(\"Missing attribute value. \" + this.debugInfo(name));\n      }\n      this.name = this.stringify.attName(name);\n      this.value = this.stringify.attValue(value);\n    }\n\n    XMLAttribute.prototype.clone = function() {\n      return Object.create(this);\n    };\n\n    XMLAttribute.prototype.toString = function(options) {\n      return this.options.writer.set(options).attribute(this);\n    };\n\n    XMLAttribute.prototype.debugInfo = function(name) {\n      name = name || this.name;\n      if (name == null) {\n        return \"parent: <\" + this.parent.name + \">\";\n      } else {\n        return \"attribute: {\" + name + \"}, parent: <\" + this.parent.name + \">\";\n      }\n    };\n\n    return XMLAttribute;\n\n  })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLAttribute, XMLElement, XMLNode, getValue, isFunction, isObject, ref,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue;\n\n  XMLNode = require('./XMLNode');\n\n  XMLAttribute = require('./XMLAttribute');\n\n  module.exports = XMLElement = (function(superClass) {\n    extend(XMLElement, superClass);\n\n    function XMLElement(parent, name, attributes) {\n      XMLElement.__super__.constructor.call(this, parent);\n      if (name == null) {\n        throw new Error(\"Missing element name. \" + this.debugInfo());\n      }\n      this.name = this.stringify.eleName(name);\n      this.attributes = {};\n      if (attributes != null) {\n        this.attribute(attributes);\n      }\n      if (parent.isDocument) {\n        this.isRoot = true;\n        this.documentObject = parent;\n        parent.rootObject = this;\n      }\n    }\n\n    XMLElement.prototype.clone = function() {\n      var att, attName, clonedSelf, ref1;\n      clonedSelf = Object.create(this);\n      if (clonedSelf.isRoot) {\n        clonedSelf.documentObject = null;\n      }\n      clonedSelf.attributes = {};\n      ref1 = this.attributes;\n      for (attName in ref1) {\n        if (!hasProp.call(ref1, attName)) continue;\n        att = ref1[attName];\n        clonedSelf.attributes[attName] = att.clone();\n      }\n      clonedSelf.children = [];\n      this.children.forEach(function(child) {\n        var clonedChild;\n        clonedChild = child.clone();\n        clonedChild.parent = clonedSelf;\n        return clonedSelf.children.push(clonedChild);\n      });\n      return clonedSelf;\n    };\n\n    XMLElement.prototype.attribute = function(name, value) {\n      var attName, attValue;\n      if (name != null) {\n        name = getValue(name);\n      }\n      if (isObject(name)) {\n        for (attName in name) {\n          if (!hasProp.call(name, attName)) continue;\n          attValue = name[attName];\n          this.attribute(attName, attValue);\n        }\n      } else {\n        if (isFunction(value)) {\n          value = value.apply();\n        }\n        if (!this.options.skipNullAttributes || (value != null)) {\n          this.attributes[name] = new XMLAttribute(this, name, value);\n        }\n      }\n      return this;\n    };\n\n    XMLElement.prototype.removeAttribute = function(name) {\n      var attName, i, len;\n      if (name == null) {\n        throw new Error(\"Missing attribute name. \" + this.debugInfo());\n      }\n      name = getValue(name);\n      if (Array.isArray(name)) {\n        for (i = 0, len = name.length; i < len; i++) {\n          attName = name[i];\n          delete this.attributes[attName];\n        }\n      } else {\n        delete this.attributes[name];\n      }\n      return this;\n    };\n\n    XMLElement.prototype.toString = function(options) {\n      return this.options.writer.set(options).element(this);\n    };\n\n    XMLElement.prototype.att = function(name, value) {\n      return this.attribute(name, value);\n    };\n\n    XMLElement.prototype.a = function(name, value) {\n      return this.attribute(name, value);\n    };\n\n    return XMLElement;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLCData, XMLNode,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLCData = (function(superClass) {\n    extend(XMLCData, superClass);\n\n    function XMLCData(parent, text) {\n      XMLCData.__super__.constructor.call(this, parent);\n      if (text == null) {\n        throw new Error(\"Missing CDATA text. \" + this.debugInfo());\n      }\n      this.text = this.stringify.cdata(text);\n    }\n\n    XMLCData.prototype.clone = function() {\n      return Object.create(this);\n    };\n\n    XMLCData.prototype.toString = function(options) {\n      return this.options.writer.set(options).cdata(this);\n    };\n\n    return XMLCData;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLComment, XMLNode,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLComment = (function(superClass) {\n    extend(XMLComment, superClass);\n\n    function XMLComment(parent, text) {\n      XMLComment.__super__.constructor.call(this, parent);\n      if (text == null) {\n        throw new Error(\"Missing comment text. \" + this.debugInfo());\n      }\n      this.text = this.stringify.comment(text);\n    }\n\n    XMLComment.prototype.clone = function() {\n      return Object.create(this);\n    };\n\n    XMLComment.prototype.toString = function(options) {\n      return this.options.writer.set(options).comment(this);\n    };\n\n    return XMLComment;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDeclaration, XMLNode, isObject,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  isObject = require('./Utility').isObject;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLDeclaration = (function(superClass) {\n    extend(XMLDeclaration, superClass);\n\n    function XMLDeclaration(parent, version, encoding, standalone) {\n      var ref;\n      XMLDeclaration.__super__.constructor.call(this, parent);\n      if (isObject(version)) {\n        ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;\n      }\n      if (!version) {\n        version = '1.0';\n      }\n      this.version = this.stringify.xmlVersion(version);\n      if (encoding != null) {\n        this.encoding = this.stringify.xmlEncoding(encoding);\n      }\n      if (standalone != null) {\n        this.standalone = this.stringify.xmlStandalone(standalone);\n      }\n    }\n\n    XMLDeclaration.prototype.toString = function(options) {\n      return this.options.writer.set(options).declaration(this);\n    };\n\n    return XMLDeclaration;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDTDAttList, XMLNode,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLDTDAttList = (function(superClass) {\n    extend(XMLDTDAttList, superClass);\n\n    function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n      XMLDTDAttList.__super__.constructor.call(this, parent);\n      if (elementName == null) {\n        throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n      }\n      if (attributeName == null) {\n        throw new Error(\"Missing DTD attribute name. \" + this.debugInfo(elementName));\n      }\n      if (!attributeType) {\n        throw new Error(\"Missing DTD attribute type. \" + this.debugInfo(elementName));\n      }\n      if (!defaultValueType) {\n        throw new Error(\"Missing DTD attribute default. \" + this.debugInfo(elementName));\n      }\n      if (defaultValueType.indexOf('#') !== 0) {\n        defaultValueType = '#' + defaultValueType;\n      }\n      if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {\n        throw new Error(\"Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n      }\n      if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {\n        throw new Error(\"Default value only applies to #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n      }\n      this.elementName = this.stringify.eleName(elementName);\n      this.attributeName = this.stringify.attName(attributeName);\n      this.attributeType = this.stringify.dtdAttType(attributeType);\n      this.defaultValue = this.stringify.dtdAttDefault(defaultValue);\n      this.defaultValueType = defaultValueType;\n    }\n\n    XMLDTDAttList.prototype.toString = function(options) {\n      return this.options.writer.set(options).dtdAttList(this);\n    };\n\n    return XMLDTDAttList;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDTDEntity, XMLNode, isObject,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  isObject = require('./Utility').isObject;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLDTDEntity = (function(superClass) {\n    extend(XMLDTDEntity, superClass);\n\n    function XMLDTDEntity(parent, pe, name, value) {\n      XMLDTDEntity.__super__.constructor.call(this, parent);\n      if (name == null) {\n        throw new Error(\"Missing DTD entity name. \" + this.debugInfo(name));\n      }\n      if (value == null) {\n        throw new Error(\"Missing DTD entity value. \" + this.debugInfo(name));\n      }\n      this.pe = !!pe;\n      this.name = this.stringify.eleName(name);\n      if (!isObject(value)) {\n        this.value = this.stringify.dtdEntityValue(value);\n      } else {\n        if (!value.pubID && !value.sysID) {\n          throw new Error(\"Public and/or system identifiers are required for an external entity. \" + this.debugInfo(name));\n        }\n        if (value.pubID && !value.sysID) {\n          throw new Error(\"System identifier is required for a public external entity. \" + this.debugInfo(name));\n        }\n        if (value.pubID != null) {\n          this.pubID = this.stringify.dtdPubID(value.pubID);\n        }\n        if (value.sysID != null) {\n          this.sysID = this.stringify.dtdSysID(value.sysID);\n        }\n        if (value.nData != null) {\n          this.nData = this.stringify.dtdNData(value.nData);\n        }\n        if (this.pe && this.nData) {\n          throw new Error(\"Notation declaration is not allowed in a parameter entity. \" + this.debugInfo(name));\n        }\n      }\n    }\n\n    XMLDTDEntity.prototype.toString = function(options) {\n      return this.options.writer.set(options).dtdEntity(this);\n    };\n\n    return XMLDTDEntity;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDTDElement, XMLNode,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLDTDElement = (function(superClass) {\n    extend(XMLDTDElement, superClass);\n\n    function XMLDTDElement(parent, name, value) {\n      XMLDTDElement.__super__.constructor.call(this, parent);\n      if (name == null) {\n        throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n      }\n      if (!value) {\n        value = '(#PCDATA)';\n      }\n      if (Array.isArray(value)) {\n        value = '(' + value.join(',') + ')';\n      }\n      this.name = this.stringify.eleName(name);\n      this.value = this.stringify.dtdElementValue(value);\n    }\n\n    XMLDTDElement.prototype.toString = function(options) {\n      return this.options.writer.set(options).dtdElement(this);\n    };\n\n    return XMLDTDElement;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDTDNotation, XMLNode,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLDTDNotation = (function(superClass) {\n    extend(XMLDTDNotation, superClass);\n\n    function XMLDTDNotation(parent, name, value) {\n      XMLDTDNotation.__super__.constructor.call(this, parent);\n      if (name == null) {\n        throw new Error(\"Missing DTD notation name. \" + this.debugInfo(name));\n      }\n      if (!value.pubID && !value.sysID) {\n        throw new Error(\"Public or system identifiers are required for an external entity. \" + this.debugInfo(name));\n      }\n      this.name = this.stringify.eleName(name);\n      if (value.pubID != null) {\n        this.pubID = this.stringify.dtdPubID(value.pubID);\n      }\n      if (value.sysID != null) {\n        this.sysID = this.stringify.dtdSysID(value.sysID);\n      }\n    }\n\n    XMLDTDNotation.prototype.toString = function(options) {\n      return this.options.writer.set(options).dtdNotation(this);\n    };\n\n    return XMLDTDNotation;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  isObject = require('./Utility').isObject;\n\n  XMLNode = require('./XMLNode');\n\n  XMLDTDAttList = require('./XMLDTDAttList');\n\n  XMLDTDEntity = require('./XMLDTDEntity');\n\n  XMLDTDElement = require('./XMLDTDElement');\n\n  XMLDTDNotation = require('./XMLDTDNotation');\n\n  module.exports = XMLDocType = (function(superClass) {\n    extend(XMLDocType, superClass);\n\n    function XMLDocType(parent, pubID, sysID) {\n      var ref, ref1;\n      XMLDocType.__super__.constructor.call(this, parent);\n      this.name = \"!DOCTYPE\";\n      this.documentObject = parent;\n      if (isObject(pubID)) {\n        ref = pubID, pubID = ref.pubID, sysID = ref.sysID;\n      }\n      if (sysID == null) {\n        ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1];\n      }\n      if (pubID != null) {\n        this.pubID = this.stringify.dtdPubID(pubID);\n      }\n      if (sysID != null) {\n        this.sysID = this.stringify.dtdSysID(sysID);\n      }\n    }\n\n    XMLDocType.prototype.element = function(name, value) {\n      var child;\n      child = new XMLDTDElement(this, name, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n      var child;\n      child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLDocType.prototype.entity = function(name, value) {\n      var child;\n      child = new XMLDTDEntity(this, false, name, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLDocType.prototype.pEntity = function(name, value) {\n      var child;\n      child = new XMLDTDEntity(this, true, name, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLDocType.prototype.notation = function(name, value) {\n      var child;\n      child = new XMLDTDNotation(this, name, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLDocType.prototype.toString = function(options) {\n      return this.options.writer.set(options).docType(this);\n    };\n\n    XMLDocType.prototype.ele = function(name, value) {\n      return this.element(name, value);\n    };\n\n    XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n      return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);\n    };\n\n    XMLDocType.prototype.ent = function(name, value) {\n      return this.entity(name, value);\n    };\n\n    XMLDocType.prototype.pent = function(name, value) {\n      return this.pEntity(name, value);\n    };\n\n    XMLDocType.prototype.not = function(name, value) {\n      return this.notation(name, value);\n    };\n\n    XMLDocType.prototype.up = function() {\n      return this.root() || this.documentObject;\n    };\n\n    return XMLDocType;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLNode, XMLRaw,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLRaw = (function(superClass) {\n    extend(XMLRaw, superClass);\n\n    function XMLRaw(parent, text) {\n      XMLRaw.__super__.constructor.call(this, parent);\n      if (text == null) {\n        throw new Error(\"Missing raw text. \" + this.debugInfo());\n      }\n      this.value = this.stringify.raw(text);\n    }\n\n    XMLRaw.prototype.clone = function() {\n      return Object.create(this);\n    };\n\n    XMLRaw.prototype.toString = function(options) {\n      return this.options.writer.set(options).raw(this);\n    };\n\n    return XMLRaw;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLNode, XMLText,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLText = (function(superClass) {\n    extend(XMLText, superClass);\n\n    function XMLText(parent, text) {\n      XMLText.__super__.constructor.call(this, parent);\n      if (text == null) {\n        throw new Error(\"Missing element text. \" + this.debugInfo());\n      }\n      this.value = this.stringify.eleText(text);\n    }\n\n    XMLText.prototype.clone = function() {\n      return Object.create(this);\n    };\n\n    XMLText.prototype.toString = function(options) {\n      return this.options.writer.set(options).text(this);\n    };\n\n    return XMLText;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLNode, XMLProcessingInstruction,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLProcessingInstruction = (function(superClass) {\n    extend(XMLProcessingInstruction, superClass);\n\n    function XMLProcessingInstruction(parent, target, value) {\n      XMLProcessingInstruction.__super__.constructor.call(this, parent);\n      if (target == null) {\n        throw new Error(\"Missing instruction target. \" + this.debugInfo());\n      }\n      this.target = this.stringify.insTarget(target);\n      if (value) {\n        this.value = this.stringify.insValue(value);\n      }\n    }\n\n    XMLProcessingInstruction.prototype.clone = function() {\n      return Object.create(this);\n    };\n\n    XMLProcessingInstruction.prototype.toString = function(options) {\n      return this.options.writer.set(options).processingInstruction(this);\n    };\n\n    return XMLProcessingInstruction;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDummy, XMLNode,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLNode = require('./XMLNode');\n\n  module.exports = XMLDummy = (function(superClass) {\n    extend(XMLDummy, superClass);\n\n    function XMLDummy(parent) {\n      XMLDummy.__super__.constructor.call(this, parent);\n      this.isDummy = true;\n    }\n\n    XMLDummy.prototype.clone = function() {\n      return Object.create(this);\n    };\n\n    XMLDummy.prototype.toString = function(options) {\n      return '';\n    };\n\n    return XMLDummy;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref,\n    hasProp = {}.hasOwnProperty;\n\n  ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty, getValue = ref.getValue;\n\n  XMLElement = null;\n\n  XMLCData = null;\n\n  XMLComment = null;\n\n  XMLDeclaration = null;\n\n  XMLDocType = null;\n\n  XMLRaw = null;\n\n  XMLText = null;\n\n  XMLProcessingInstruction = null;\n\n  XMLDummy = null;\n\n  module.exports = XMLNode = (function() {\n    function XMLNode(parent) {\n      this.parent = parent;\n      if (this.parent) {\n        this.options = this.parent.options;\n        this.stringify = this.parent.stringify;\n      }\n      this.children = [];\n      if (!XMLElement) {\n        XMLElement = require('./XMLElement');\n        XMLCData = require('./XMLCData');\n        XMLComment = require('./XMLComment');\n        XMLDeclaration = require('./XMLDeclaration');\n        XMLDocType = require('./XMLDocType');\n        XMLRaw = require('./XMLRaw');\n        XMLText = require('./XMLText');\n        XMLProcessingInstruction = require('./XMLProcessingInstruction');\n        XMLDummy = require('./XMLDummy');\n      }\n    }\n\n    XMLNode.prototype.element = function(name, attributes, text) {\n      var childNode, item, j, k, key, lastChild, len, len1, ref1, ref2, val;\n      lastChild = null;\n      if (attributes === null && (text == null)) {\n        ref1 = [{}, null], attributes = ref1[0], text = ref1[1];\n      }\n      if (attributes == null) {\n        attributes = {};\n      }\n      attributes = getValue(attributes);\n      if (!isObject(attributes)) {\n        ref2 = [attributes, text], text = ref2[0], attributes = ref2[1];\n      }\n      if (name != null) {\n        name = getValue(name);\n      }\n      if (Array.isArray(name)) {\n        for (j = 0, len = name.length; j < len; j++) {\n          item = name[j];\n          lastChild = this.element(item);\n        }\n      } else if (isFunction(name)) {\n        lastChild = this.element(name.apply());\n      } else if (isObject(name)) {\n        for (key in name) {\n          if (!hasProp.call(name, key)) continue;\n          val = name[key];\n          if (isFunction(val)) {\n            val = val.apply();\n          }\n          if ((isObject(val)) && (isEmpty(val))) {\n            val = null;\n          }\n          if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {\n            lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);\n          } else if (!this.options.separateArrayItems && Array.isArray(val)) {\n            for (k = 0, len1 = val.length; k < len1; k++) {\n              item = val[k];\n              childNode = {};\n              childNode[key] = item;\n              lastChild = this.element(childNode);\n            }\n          } else if (isObject(val)) {\n            lastChild = this.element(key);\n            lastChild.element(val);\n          } else {\n            lastChild = this.element(key, val);\n          }\n        }\n      } else if (this.options.skipNullNodes && text === null) {\n        lastChild = this.dummy();\n      } else {\n        if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {\n          lastChild = this.text(text);\n        } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {\n          lastChild = this.cdata(text);\n        } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {\n          lastChild = this.comment(text);\n        } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {\n          lastChild = this.raw(text);\n        } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) {\n          lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text);\n        } else {\n          lastChild = this.node(name, attributes, text);\n        }\n      }\n      if (lastChild == null) {\n        throw new Error(\"Could not create any elements with: \" + name + \". \" + this.debugInfo());\n      }\n      return lastChild;\n    };\n\n    XMLNode.prototype.insertBefore = function(name, attributes, text) {\n      var child, i, removed;\n      if (this.isRoot) {\n        throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n      }\n      i = this.parent.children.indexOf(this);\n      removed = this.parent.children.splice(i);\n      child = this.parent.element(name, attributes, text);\n      Array.prototype.push.apply(this.parent.children, removed);\n      return child;\n    };\n\n    XMLNode.prototype.insertAfter = function(name, attributes, text) {\n      var child, i, removed;\n      if (this.isRoot) {\n        throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n      }\n      i = this.parent.children.indexOf(this);\n      removed = this.parent.children.splice(i + 1);\n      child = this.parent.element(name, attributes, text);\n      Array.prototype.push.apply(this.parent.children, removed);\n      return child;\n    };\n\n    XMLNode.prototype.remove = function() {\n      var i, ref1;\n      if (this.isRoot) {\n        throw new Error(\"Cannot remove the root element. \" + this.debugInfo());\n      }\n      i = this.parent.children.indexOf(this);\n      [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref1 = [])), ref1;\n      return this.parent;\n    };\n\n    XMLNode.prototype.node = function(name, attributes, text) {\n      var child, ref1;\n      if (name != null) {\n        name = getValue(name);\n      }\n      attributes || (attributes = {});\n      attributes = getValue(attributes);\n      if (!isObject(attributes)) {\n        ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];\n      }\n      child = new XMLElement(this, name, attributes);\n      if (text != null) {\n        child.text(text);\n      }\n      this.children.push(child);\n      return child;\n    };\n\n    XMLNode.prototype.text = function(value) {\n      var child;\n      child = new XMLText(this, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLNode.prototype.cdata = function(value) {\n      var child;\n      child = new XMLCData(this, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLNode.prototype.comment = function(value) {\n      var child;\n      child = new XMLComment(this, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLNode.prototype.commentBefore = function(value) {\n      var child, i, removed;\n      i = this.parent.children.indexOf(this);\n      removed = this.parent.children.splice(i);\n      child = this.parent.comment(value);\n      Array.prototype.push.apply(this.parent.children, removed);\n      return this;\n    };\n\n    XMLNode.prototype.commentAfter = function(value) {\n      var child, i, removed;\n      i = this.parent.children.indexOf(this);\n      removed = this.parent.children.splice(i + 1);\n      child = this.parent.comment(value);\n      Array.prototype.push.apply(this.parent.children, removed);\n      return this;\n    };\n\n    XMLNode.prototype.raw = function(value) {\n      var child;\n      child = new XMLRaw(this, value);\n      this.children.push(child);\n      return this;\n    };\n\n    XMLNode.prototype.dummy = function() {\n      var child;\n      child = new XMLDummy(this);\n      this.children.push(child);\n      return child;\n    };\n\n    XMLNode.prototype.instruction = function(target, value) {\n      var insTarget, insValue, instruction, j, len;\n      if (target != null) {\n        target = getValue(target);\n      }\n      if (value != null) {\n        value = getValue(value);\n      }\n      if (Array.isArray(target)) {\n        for (j = 0, len = target.length; j < len; j++) {\n          insTarget = target[j];\n          this.instruction(insTarget);\n        }\n      } else if (isObject(target)) {\n        for (insTarget in target) {\n          if (!hasProp.call(target, insTarget)) continue;\n          insValue = target[insTarget];\n          this.instruction(insTarget, insValue);\n        }\n      } else {\n        if (isFunction(value)) {\n          value = value.apply();\n        }\n        instruction = new XMLProcessingInstruction(this, target, value);\n        this.children.push(instruction);\n      }\n      return this;\n    };\n\n    XMLNode.prototype.instructionBefore = function(target, value) {\n      var child, i, removed;\n      i = this.parent.children.indexOf(this);\n      removed = this.parent.children.splice(i);\n      child = this.parent.instruction(target, value);\n      Array.prototype.push.apply(this.parent.children, removed);\n      return this;\n    };\n\n    XMLNode.prototype.instructionAfter = function(target, value) {\n      var child, i, removed;\n      i = this.parent.children.indexOf(this);\n      removed = this.parent.children.splice(i + 1);\n      child = this.parent.instruction(target, value);\n      Array.prototype.push.apply(this.parent.children, removed);\n      return this;\n    };\n\n    XMLNode.prototype.declaration = function(version, encoding, standalone) {\n      var doc, xmldec;\n      doc = this.document();\n      xmldec = new XMLDeclaration(doc, version, encoding, standalone);\n      if (doc.children[0] instanceof XMLDeclaration) {\n        doc.children[0] = xmldec;\n      } else {\n        doc.children.unshift(xmldec);\n      }\n      return doc.root() || doc;\n    };\n\n    XMLNode.prototype.doctype = function(pubID, sysID) {\n      var child, doc, doctype, i, j, k, len, len1, ref1, ref2;\n      doc = this.document();\n      doctype = new XMLDocType(doc, pubID, sysID);\n      ref1 = doc.children;\n      for (i = j = 0, len = ref1.length; j < len; i = ++j) {\n        child = ref1[i];\n        if (child instanceof XMLDocType) {\n          doc.children[i] = doctype;\n          return doctype;\n        }\n      }\n      ref2 = doc.children;\n      for (i = k = 0, len1 = ref2.length; k < len1; i = ++k) {\n        child = ref2[i];\n        if (child.isRoot) {\n          doc.children.splice(i, 0, doctype);\n          return doctype;\n        }\n      }\n      doc.children.push(doctype);\n      return doctype;\n    };\n\n    XMLNode.prototype.up = function() {\n      if (this.isRoot) {\n        throw new Error(\"The root node has no parent. Use doc() if you need to get the document object.\");\n      }\n      return this.parent;\n    };\n\n    XMLNode.prototype.root = function() {\n      var node;\n      node = this;\n      while (node) {\n        if (node.isDocument) {\n          return node.rootObject;\n        } else if (node.isRoot) {\n          return node;\n        } else {\n          node = node.parent;\n        }\n      }\n    };\n\n    XMLNode.prototype.document = function() {\n      var node;\n      node = this;\n      while (node) {\n        if (node.isDocument) {\n          return node;\n        } else {\n          node = node.parent;\n        }\n      }\n    };\n\n    XMLNode.prototype.end = function(options) {\n      return this.document().end(options);\n    };\n\n    XMLNode.prototype.prev = function() {\n      var i;\n      i = this.parent.children.indexOf(this);\n      while (i > 0 && this.parent.children[i - 1].isDummy) {\n        i = i - 1;\n      }\n      if (i < 1) {\n        throw new Error(\"Already at the first node. \" + this.debugInfo());\n      }\n      return this.parent.children[i - 1];\n    };\n\n    XMLNode.prototype.next = function() {\n      var i;\n      i = this.parent.children.indexOf(this);\n      while (i < this.parent.children.length - 1 && this.parent.children[i + 1].isDummy) {\n        i = i + 1;\n      }\n      if (i === -1 || i === this.parent.children.length - 1) {\n        throw new Error(\"Already at the last node. \" + this.debugInfo());\n      }\n      return this.parent.children[i + 1];\n    };\n\n    XMLNode.prototype.importDocument = function(doc) {\n      var clonedRoot;\n      clonedRoot = doc.root().clone();\n      clonedRoot.parent = this;\n      clonedRoot.isRoot = false;\n      this.children.push(clonedRoot);\n      return this;\n    };\n\n    XMLNode.prototype.debugInfo = function(name) {\n      var ref1, ref2;\n      name = name || this.name;\n      if ((name == null) && !((ref1 = this.parent) != null ? ref1.name : void 0)) {\n        return \"\";\n      } else if (name == null) {\n        return \"parent: <\" + this.parent.name + \">\";\n      } else if (!((ref2 = this.parent) != null ? ref2.name : void 0)) {\n        return \"node: <\" + name + \">\";\n      } else {\n        return \"node: <\" + name + \">, parent: <\" + this.parent.name + \">\";\n      }\n    };\n\n    XMLNode.prototype.ele = function(name, attributes, text) {\n      return this.element(name, attributes, text);\n    };\n\n    XMLNode.prototype.nod = function(name, attributes, text) {\n      return this.node(name, attributes, text);\n    };\n\n    XMLNode.prototype.txt = function(value) {\n      return this.text(value);\n    };\n\n    XMLNode.prototype.dat = function(value) {\n      return this.cdata(value);\n    };\n\n    XMLNode.prototype.com = function(value) {\n      return this.comment(value);\n    };\n\n    XMLNode.prototype.ins = function(target, value) {\n      return this.instruction(target, value);\n    };\n\n    XMLNode.prototype.doc = function() {\n      return this.document();\n    };\n\n    XMLNode.prototype.dec = function(version, encoding, standalone) {\n      return this.declaration(version, encoding, standalone);\n    };\n\n    XMLNode.prototype.dtd = function(pubID, sysID) {\n      return this.doctype(pubID, sysID);\n    };\n\n    XMLNode.prototype.e = function(name, attributes, text) {\n      return this.element(name, attributes, text);\n    };\n\n    XMLNode.prototype.n = function(name, attributes, text) {\n      return this.node(name, attributes, text);\n    };\n\n    XMLNode.prototype.t = function(value) {\n      return this.text(value);\n    };\n\n    XMLNode.prototype.d = function(value) {\n      return this.cdata(value);\n    };\n\n    XMLNode.prototype.c = function(value) {\n      return this.comment(value);\n    };\n\n    XMLNode.prototype.r = function(value) {\n      return this.raw(value);\n    };\n\n    XMLNode.prototype.i = function(target, value) {\n      return this.instruction(target, value);\n    };\n\n    XMLNode.prototype.u = function() {\n      return this.up();\n    };\n\n    XMLNode.prototype.importXMLBuilder = function(doc) {\n      return this.importDocument(doc);\n    };\n\n    return XMLNode;\n\n  })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLStringifier,\n    bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n    hasProp = {}.hasOwnProperty;\n\n  module.exports = XMLStringifier = (function() {\n    function XMLStringifier(options) {\n      this.assertLegalChar = bind(this.assertLegalChar, this);\n      var key, ref, value;\n      options || (options = {});\n      this.noDoubleEncoding = options.noDoubleEncoding;\n      ref = options.stringify || {};\n      for (key in ref) {\n        if (!hasProp.call(ref, key)) continue;\n        value = ref[key];\n        this[key] = value;\n      }\n    }\n\n    XMLStringifier.prototype.eleName = function(val) {\n      val = '' + val || '';\n      return this.assertLegalChar(val);\n    };\n\n    XMLStringifier.prototype.eleText = function(val) {\n      val = '' + val || '';\n      return this.assertLegalChar(this.elEscape(val));\n    };\n\n    XMLStringifier.prototype.cdata = function(val) {\n      val = '' + val || '';\n      val = val.replace(']]>', ']]]]><![CDATA[>');\n      return this.assertLegalChar(val);\n    };\n\n    XMLStringifier.prototype.comment = function(val) {\n      val = '' + val || '';\n      if (val.match(/--/)) {\n        throw new Error(\"Comment text cannot contain double-hypen: \" + val);\n      }\n      return this.assertLegalChar(val);\n    };\n\n    XMLStringifier.prototype.raw = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.attName = function(val) {\n      return val = '' + val || '';\n    };\n\n    XMLStringifier.prototype.attValue = function(val) {\n      val = '' + val || '';\n      return this.attEscape(val);\n    };\n\n    XMLStringifier.prototype.insTarget = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.insValue = function(val) {\n      val = '' + val || '';\n      if (val.match(/\\?>/)) {\n        throw new Error(\"Invalid processing instruction value: \" + val);\n      }\n      return val;\n    };\n\n    XMLStringifier.prototype.xmlVersion = function(val) {\n      val = '' + val || '';\n      if (!val.match(/1\\.[0-9]+/)) {\n        throw new Error(\"Invalid version number: \" + val);\n      }\n      return val;\n    };\n\n    XMLStringifier.prototype.xmlEncoding = function(val) {\n      val = '' + val || '';\n      if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {\n        throw new Error(\"Invalid encoding: \" + val);\n      }\n      return val;\n    };\n\n    XMLStringifier.prototype.xmlStandalone = function(val) {\n      if (val) {\n        return \"yes\";\n      } else {\n        return \"no\";\n      }\n    };\n\n    XMLStringifier.prototype.dtdPubID = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.dtdSysID = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.dtdElementValue = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.dtdAttType = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.dtdAttDefault = function(val) {\n      if (val != null) {\n        return '' + val || '';\n      } else {\n        return val;\n      }\n    };\n\n    XMLStringifier.prototype.dtdEntityValue = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.dtdNData = function(val) {\n      return '' + val || '';\n    };\n\n    XMLStringifier.prototype.convertAttKey = '@';\n\n    XMLStringifier.prototype.convertPIKey = '?';\n\n    XMLStringifier.prototype.convertTextKey = '#text';\n\n    XMLStringifier.prototype.convertCDataKey = '#cdata';\n\n    XMLStringifier.prototype.convertCommentKey = '#comment';\n\n    XMLStringifier.prototype.convertRawKey = '#raw';\n\n    XMLStringifier.prototype.assertLegalChar = function(str) {\n      var res;\n      res = str.match(/[\\0\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/);\n      if (res) {\n        throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n      }\n      return str;\n    };\n\n    XMLStringifier.prototype.elEscape = function(str) {\n      var ampregex;\n      ampregex = this.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n      return str.replace(ampregex, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\\r/g, '&#xD;');\n    };\n\n    XMLStringifier.prototype.attEscape = function(str) {\n      var ampregex;\n      ampregex = this.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n      return str.replace(ampregex, '&amp;').replace(/</g, '&lt;').replace(/\"/g, '&quot;').replace(/\\t/g, '&#x9;').replace(/\\n/g, '&#xA;').replace(/\\r/g, '&#xD;');\n    };\n\n    return XMLStringifier;\n\n  })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLWriterBase,\n    hasProp = {}.hasOwnProperty;\n\n  module.exports = XMLWriterBase = (function() {\n    function XMLWriterBase(options) {\n      var key, ref, ref1, ref2, ref3, ref4, ref5, ref6, value;\n      options || (options = {});\n      this.pretty = options.pretty || false;\n      this.allowEmpty = (ref = options.allowEmpty) != null ? ref : false;\n      if (this.pretty) {\n        this.indent = (ref1 = options.indent) != null ? ref1 : '  ';\n        this.newline = (ref2 = options.newline) != null ? ref2 : '\\n';\n        this.offset = (ref3 = options.offset) != null ? ref3 : 0;\n        this.dontprettytextnodes = (ref4 = options.dontprettytextnodes) != null ? ref4 : 0;\n      } else {\n        this.indent = '';\n        this.newline = '';\n        this.offset = 0;\n        this.dontprettytextnodes = 0;\n      }\n      this.spacebeforeslash = (ref5 = options.spacebeforeslash) != null ? ref5 : '';\n      if (this.spacebeforeslash === true) {\n        this.spacebeforeslash = ' ';\n      }\n      this.newlinedefault = this.newline;\n      this.prettydefault = this.pretty;\n      ref6 = options.writer || {};\n      for (key in ref6) {\n        if (!hasProp.call(ref6, key)) continue;\n        value = ref6[key];\n        this[key] = value;\n      }\n    }\n\n    XMLWriterBase.prototype.set = function(options) {\n      var key, ref, value;\n      options || (options = {});\n      if (\"pretty\" in options) {\n        this.pretty = options.pretty;\n      }\n      if (\"allowEmpty\" in options) {\n        this.allowEmpty = options.allowEmpty;\n      }\n      if (this.pretty) {\n        this.indent = \"indent\" in options ? options.indent : '  ';\n        this.newline = \"newline\" in options ? options.newline : '\\n';\n        this.offset = \"offset\" in options ? options.offset : 0;\n        this.dontprettytextnodes = \"dontprettytextnodes\" in options ? options.dontprettytextnodes : 0;\n      } else {\n        this.indent = '';\n        this.newline = '';\n        this.offset = 0;\n        this.dontprettytextnodes = 0;\n      }\n      this.spacebeforeslash = \"spacebeforeslash\" in options ? options.spacebeforeslash : '';\n      if (this.spacebeforeslash === true) {\n        this.spacebeforeslash = ' ';\n      }\n      this.newlinedefault = this.newline;\n      this.prettydefault = this.pretty;\n      ref = options.writer || {};\n      for (key in ref) {\n        if (!hasProp.call(ref, key)) continue;\n        value = ref[key];\n        this[key] = value;\n      }\n      return this;\n    };\n\n    XMLWriterBase.prototype.space = function(level) {\n      var indent;\n      if (this.pretty) {\n        indent = (level || 0) + this.offset + 1;\n        if (indent > 0) {\n          return new Array(indent).join(this.indent);\n        } else {\n          return '';\n        }\n      } else {\n        return '';\n      }\n    };\n\n    return XMLWriterBase;\n\n  })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLDeclaration = require('./XMLDeclaration');\n\n  XMLDocType = require('./XMLDocType');\n\n  XMLCData = require('./XMLCData');\n\n  XMLComment = require('./XMLComment');\n\n  XMLElement = require('./XMLElement');\n\n  XMLRaw = require('./XMLRaw');\n\n  XMLText = require('./XMLText');\n\n  XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n  XMLDummy = require('./XMLDummy');\n\n  XMLDTDAttList = require('./XMLDTDAttList');\n\n  XMLDTDElement = require('./XMLDTDElement');\n\n  XMLDTDEntity = require('./XMLDTDEntity');\n\n  XMLDTDNotation = require('./XMLDTDNotation');\n\n  XMLWriterBase = require('./XMLWriterBase');\n\n  module.exports = XMLStringWriter = (function(superClass) {\n    extend(XMLStringWriter, superClass);\n\n    function XMLStringWriter(options) {\n      XMLStringWriter.__super__.constructor.call(this, options);\n    }\n\n    XMLStringWriter.prototype.document = function(doc) {\n      var child, i, len, r, ref;\n      this.textispresent = false;\n      r = '';\n      ref = doc.children;\n      for (i = 0, len = ref.length; i < len; i++) {\n        child = ref[i];\n        if (child instanceof XMLDummy) {\n          continue;\n        }\n        r += (function() {\n          switch (false) {\n            case !(child instanceof XMLDeclaration):\n              return this.declaration(child);\n            case !(child instanceof XMLDocType):\n              return this.docType(child);\n            case !(child instanceof XMLComment):\n              return this.comment(child);\n            case !(child instanceof XMLProcessingInstruction):\n              return this.processingInstruction(child);\n            default:\n              return this.element(child, 0);\n          }\n        }).call(this);\n      }\n      if (this.pretty && r.slice(-this.newline.length) === this.newline) {\n        r = r.slice(0, -this.newline.length);\n      }\n      return r;\n    };\n\n    XMLStringWriter.prototype.attribute = function(att) {\n      return ' ' + att.name + '=\"' + att.value + '\"';\n    };\n\n    XMLStringWriter.prototype.cdata = function(node, level) {\n      return this.space(level) + '<![CDATA[' + node.text + ']]>' + this.newline;\n    };\n\n    XMLStringWriter.prototype.comment = function(node, level) {\n      return this.space(level) + '<!-- ' + node.text + ' -->' + this.newline;\n    };\n\n    XMLStringWriter.prototype.declaration = function(node, level) {\n      var r;\n      r = this.space(level);\n      r += '<?xml version=\"' + node.version + '\"';\n      if (node.encoding != null) {\n        r += ' encoding=\"' + node.encoding + '\"';\n      }\n      if (node.standalone != null) {\n        r += ' standalone=\"' + node.standalone + '\"';\n      }\n      r += this.spacebeforeslash + '?>';\n      r += this.newline;\n      return r;\n    };\n\n    XMLStringWriter.prototype.docType = function(node, level) {\n      var child, i, len, r, ref;\n      level || (level = 0);\n      r = this.space(level);\n      r += '<!DOCTYPE ' + node.root().name;\n      if (node.pubID && node.sysID) {\n        r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n      } else if (node.sysID) {\n        r += ' SYSTEM \"' + node.sysID + '\"';\n      }\n      if (node.children.length > 0) {\n        r += ' [';\n        r += this.newline;\n        ref = node.children;\n        for (i = 0, len = ref.length; i < len; i++) {\n          child = ref[i];\n          r += (function() {\n            switch (false) {\n              case !(child instanceof XMLDTDAttList):\n                return this.dtdAttList(child, level + 1);\n              case !(child instanceof XMLDTDElement):\n                return this.dtdElement(child, level + 1);\n              case !(child instanceof XMLDTDEntity):\n                return this.dtdEntity(child, level + 1);\n              case !(child instanceof XMLDTDNotation):\n                return this.dtdNotation(child, level + 1);\n              case !(child instanceof XMLCData):\n                return this.cdata(child, level + 1);\n              case !(child instanceof XMLComment):\n                return this.comment(child, level + 1);\n              case !(child instanceof XMLProcessingInstruction):\n                return this.processingInstruction(child, level + 1);\n              default:\n                throw new Error(\"Unknown DTD node type: \" + child.constructor.name);\n            }\n          }).call(this);\n        }\n        r += ']';\n      }\n      r += this.spacebeforeslash + '>';\n      r += this.newline;\n      return r;\n    };\n\n    XMLStringWriter.prototype.element = function(node, level) {\n      var att, child, i, j, len, len1, name, r, ref, ref1, ref2, space, textispresentwasset;\n      level || (level = 0);\n      textispresentwasset = false;\n      if (this.textispresent) {\n        this.newline = '';\n        this.pretty = false;\n      } else {\n        this.newline = this.newlinedefault;\n        this.pretty = this.prettydefault;\n      }\n      space = this.space(level);\n      r = '';\n      r += space + '<' + node.name;\n      ref = node.attributes;\n      for (name in ref) {\n        if (!hasProp.call(ref, name)) continue;\n        att = ref[name];\n        r += this.attribute(att);\n      }\n      if (node.children.length === 0 || node.children.every(function(e) {\n        return e.value === '';\n      })) {\n        if (this.allowEmpty) {\n          r += '></' + node.name + '>' + this.newline;\n        } else {\n          r += this.spacebeforeslash + '/>' + this.newline;\n        }\n      } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {\n        r += '>';\n        r += node.children[0].value;\n        r += '</' + node.name + '>' + this.newline;\n      } else {\n        if (this.dontprettytextnodes) {\n          ref1 = node.children;\n          for (i = 0, len = ref1.length; i < len; i++) {\n            child = ref1[i];\n            if (child.value != null) {\n              this.textispresent++;\n              textispresentwasset = true;\n              break;\n            }\n          }\n        }\n        if (this.textispresent) {\n          this.newline = '';\n          this.pretty = false;\n          space = this.space(level);\n        }\n        r += '>' + this.newline;\n        ref2 = node.children;\n        for (j = 0, len1 = ref2.length; j < len1; j++) {\n          child = ref2[j];\n          r += (function() {\n            switch (false) {\n              case !(child instanceof XMLCData):\n                return this.cdata(child, level + 1);\n              case !(child instanceof XMLComment):\n                return this.comment(child, level + 1);\n              case !(child instanceof XMLElement):\n                return this.element(child, level + 1);\n              case !(child instanceof XMLRaw):\n                return this.raw(child, level + 1);\n              case !(child instanceof XMLText):\n                return this.text(child, level + 1);\n              case !(child instanceof XMLProcessingInstruction):\n                return this.processingInstruction(child, level + 1);\n              case !(child instanceof XMLDummy):\n                return '';\n              default:\n                throw new Error(\"Unknown XML node type: \" + child.constructor.name);\n            }\n          }).call(this);\n        }\n        if (textispresentwasset) {\n          this.textispresent--;\n        }\n        if (!this.textispresent) {\n          this.newline = this.newlinedefault;\n          this.pretty = this.prettydefault;\n        }\n        r += space + '</' + node.name + '>' + this.newline;\n      }\n      return r;\n    };\n\n    XMLStringWriter.prototype.processingInstruction = function(node, level) {\n      var r;\n      r = this.space(level) + '<?' + node.target;\n      if (node.value) {\n        r += ' ' + node.value;\n      }\n      r += this.spacebeforeslash + '?>' + this.newline;\n      return r;\n    };\n\n    XMLStringWriter.prototype.raw = function(node, level) {\n      return this.space(level) + node.value + this.newline;\n    };\n\n    XMLStringWriter.prototype.text = function(node, level) {\n      return this.space(level) + node.value + this.newline;\n    };\n\n    XMLStringWriter.prototype.dtdAttList = function(node, level) {\n      var r;\n      r = this.space(level) + '<!ATTLIST ' + node.elementName + ' ' + node.attributeName + ' ' + node.attributeType;\n      if (node.defaultValueType !== '#DEFAULT') {\n        r += ' ' + node.defaultValueType;\n      }\n      if (node.defaultValue) {\n        r += ' \"' + node.defaultValue + '\"';\n      }\n      r += this.spacebeforeslash + '>' + this.newline;\n      return r;\n    };\n\n    XMLStringWriter.prototype.dtdElement = function(node, level) {\n      return this.space(level) + '<!ELEMENT ' + node.name + ' ' + node.value + this.spacebeforeslash + '>' + this.newline;\n    };\n\n    XMLStringWriter.prototype.dtdEntity = function(node, level) {\n      var r;\n      r = this.space(level) + '<!ENTITY';\n      if (node.pe) {\n        r += ' %';\n      }\n      r += ' ' + node.name;\n      if (node.value) {\n        r += ' \"' + node.value + '\"';\n      } else {\n        if (node.pubID && node.sysID) {\n          r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n        } else if (node.sysID) {\n          r += ' SYSTEM \"' + node.sysID + '\"';\n        }\n        if (node.nData) {\n          r += ' NDATA ' + node.nData;\n        }\n      }\n      r += this.spacebeforeslash + '>' + this.newline;\n      return r;\n    };\n\n    XMLStringWriter.prototype.dtdNotation = function(node, level) {\n      var r;\n      r = this.space(level) + '<!NOTATION ' + node.name;\n      if (node.pubID && node.sysID) {\n        r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n      } else if (node.pubID) {\n        r += ' PUBLIC \"' + node.pubID + '\"';\n      } else if (node.sysID) {\n        r += ' SYSTEM \"' + node.sysID + '\"';\n      }\n      r += this.spacebeforeslash + '>' + this.newline;\n      return r;\n    };\n\n    XMLStringWriter.prototype.openNode = function(node, level) {\n      var att, name, r, ref;\n      level || (level = 0);\n      if (node instanceof XMLElement) {\n        r = this.space(level) + '<' + node.name;\n        ref = node.attributes;\n        for (name in ref) {\n          if (!hasProp.call(ref, name)) continue;\n          att = ref[name];\n          r += this.attribute(att);\n        }\n        r += (node.children ? '>' : '/>') + this.newline;\n        return r;\n      } else {\n        r = this.space(level) + '<!DOCTYPE ' + node.rootNodeName;\n        if (node.pubID && node.sysID) {\n          r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n        } else if (node.sysID) {\n          r += ' SYSTEM \"' + node.sysID + '\"';\n        }\n        r += (node.children ? ' [' : '>') + this.newline;\n        return r;\n      }\n    };\n\n    XMLStringWriter.prototype.closeNode = function(node, level) {\n      level || (level = 0);\n      switch (false) {\n        case !(node instanceof XMLElement):\n          return this.space(level) + '</' + node.name + '>' + this.newline;\n        case !(node instanceof XMLDocType):\n          return this.space(level) + ']>' + this.newline;\n      }\n    };\n\n    return XMLStringWriter;\n\n  })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  isPlainObject = require('./Utility').isPlainObject;\n\n  XMLNode = require('./XMLNode');\n\n  XMLStringifier = require('./XMLStringifier');\n\n  XMLStringWriter = require('./XMLStringWriter');\n\n  module.exports = XMLDocument = (function(superClass) {\n    extend(XMLDocument, superClass);\n\n    function XMLDocument(options) {\n      XMLDocument.__super__.constructor.call(this, null);\n      this.name = \"?xml\";\n      options || (options = {});\n      if (!options.writer) {\n        options.writer = new XMLStringWriter();\n      }\n      this.options = options;\n      this.stringify = new XMLStringifier(options);\n      this.isDocument = true;\n    }\n\n    XMLDocument.prototype.end = function(writer) {\n      var writerOptions;\n      if (!writer) {\n        writer = this.options.writer;\n      } else if (isPlainObject(writer)) {\n        writerOptions = writer;\n        writer = this.options.writer.set(writerOptions);\n      }\n      return writer.document(this);\n    };\n\n    XMLDocument.prototype.toString = function(options) {\n      return this.options.writer.set(options).document(this);\n    };\n\n    return XMLDocument;\n\n  })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref,\n    hasProp = {}.hasOwnProperty;\n\n  ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue;\n\n  XMLElement = require('./XMLElement');\n\n  XMLCData = require('./XMLCData');\n\n  XMLComment = require('./XMLComment');\n\n  XMLRaw = require('./XMLRaw');\n\n  XMLText = require('./XMLText');\n\n  XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n  XMLDeclaration = require('./XMLDeclaration');\n\n  XMLDocType = require('./XMLDocType');\n\n  XMLDTDAttList = require('./XMLDTDAttList');\n\n  XMLDTDEntity = require('./XMLDTDEntity');\n\n  XMLDTDElement = require('./XMLDTDElement');\n\n  XMLDTDNotation = require('./XMLDTDNotation');\n\n  XMLAttribute = require('./XMLAttribute');\n\n  XMLStringifier = require('./XMLStringifier');\n\n  XMLStringWriter = require('./XMLStringWriter');\n\n  module.exports = XMLDocumentCB = (function() {\n    function XMLDocumentCB(options, onData, onEnd) {\n      var writerOptions;\n      this.name = \"?xml\";\n      options || (options = {});\n      if (!options.writer) {\n        options.writer = new XMLStringWriter(options);\n      } else if (isPlainObject(options.writer)) {\n        writerOptions = options.writer;\n        options.writer = new XMLStringWriter(writerOptions);\n      }\n      this.options = options;\n      this.writer = options.writer;\n      this.stringify = new XMLStringifier(options);\n      this.onDataCallback = onData || function() {};\n      this.onEndCallback = onEnd || function() {};\n      this.currentNode = null;\n      this.currentLevel = -1;\n      this.openTags = {};\n      this.documentStarted = false;\n      this.documentCompleted = false;\n      this.root = null;\n    }\n\n    XMLDocumentCB.prototype.node = function(name, attributes, text) {\n      var ref1, ref2;\n      if (name == null) {\n        throw new Error(\"Missing node name.\");\n      }\n      if (this.root && this.currentLevel === -1) {\n        throw new Error(\"Document can only have one root node. \" + this.debugInfo(name));\n      }\n      this.openCurrent();\n      name = getValue(name);\n      if (attributes === null && (text == null)) {\n        ref1 = [{}, null], attributes = ref1[0], text = ref1[1];\n      }\n      if (attributes == null) {\n        attributes = {};\n      }\n      attributes = getValue(attributes);\n      if (!isObject(attributes)) {\n        ref2 = [attributes, text], text = ref2[0], attributes = ref2[1];\n      }\n      this.currentNode = new XMLElement(this, name, attributes);\n      this.currentNode.children = false;\n      this.currentLevel++;\n      this.openTags[this.currentLevel] = this.currentNode;\n      if (text != null) {\n        this.text(text);\n      }\n      return this;\n    };\n\n    XMLDocumentCB.prototype.element = function(name, attributes, text) {\n      if (this.currentNode && this.currentNode instanceof XMLDocType) {\n        return this.dtdElement.apply(this, arguments);\n      } else {\n        return this.node(name, attributes, text);\n      }\n    };\n\n    XMLDocumentCB.prototype.attribute = function(name, value) {\n      var attName, attValue;\n      if (!this.currentNode || this.currentNode.children) {\n        throw new Error(\"att() can only be used immediately after an ele() call in callback mode. \" + this.debugInfo(name));\n      }\n      if (name != null) {\n        name = getValue(name);\n      }\n      if (isObject(name)) {\n        for (attName in name) {\n          if (!hasProp.call(name, attName)) continue;\n          attValue = name[attName];\n          this.attribute(attName, attValue);\n        }\n      } else {\n        if (isFunction(value)) {\n          value = value.apply();\n        }\n        if (!this.options.skipNullAttributes || (value != null)) {\n          this.currentNode.attributes[name] = new XMLAttribute(this, name, value);\n        }\n      }\n      return this;\n    };\n\n    XMLDocumentCB.prototype.text = function(value) {\n      var node;\n      this.openCurrent();\n      node = new XMLText(this, value);\n      this.onData(this.writer.text(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.cdata = function(value) {\n      var node;\n      this.openCurrent();\n      node = new XMLCData(this, value);\n      this.onData(this.writer.cdata(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.comment = function(value) {\n      var node;\n      this.openCurrent();\n      node = new XMLComment(this, value);\n      this.onData(this.writer.comment(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.raw = function(value) {\n      var node;\n      this.openCurrent();\n      node = new XMLRaw(this, value);\n      this.onData(this.writer.raw(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.instruction = function(target, value) {\n      var i, insTarget, insValue, len, node;\n      this.openCurrent();\n      if (target != null) {\n        target = getValue(target);\n      }\n      if (value != null) {\n        value = getValue(value);\n      }\n      if (Array.isArray(target)) {\n        for (i = 0, len = target.length; i < len; i++) {\n          insTarget = target[i];\n          this.instruction(insTarget);\n        }\n      } else if (isObject(target)) {\n        for (insTarget in target) {\n          if (!hasProp.call(target, insTarget)) continue;\n          insValue = target[insTarget];\n          this.instruction(insTarget, insValue);\n        }\n      } else {\n        if (isFunction(value)) {\n          value = value.apply();\n        }\n        node = new XMLProcessingInstruction(this, target, value);\n        this.onData(this.writer.processingInstruction(node, this.currentLevel + 1), this.currentLevel + 1);\n      }\n      return this;\n    };\n\n    XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {\n      var node;\n      this.openCurrent();\n      if (this.documentStarted) {\n        throw new Error(\"declaration() must be the first node.\");\n      }\n      node = new XMLDeclaration(this, version, encoding, standalone);\n      this.onData(this.writer.declaration(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {\n      this.openCurrent();\n      if (root == null) {\n        throw new Error(\"Missing root node name.\");\n      }\n      if (this.root) {\n        throw new Error(\"dtd() must come before the root node.\");\n      }\n      this.currentNode = new XMLDocType(this, pubID, sysID);\n      this.currentNode.rootNodeName = root;\n      this.currentNode.children = false;\n      this.currentLevel++;\n      this.openTags[this.currentLevel] = this.currentNode;\n      return this;\n    };\n\n    XMLDocumentCB.prototype.dtdElement = function(name, value) {\n      var node;\n      this.openCurrent();\n      node = new XMLDTDElement(this, name, value);\n      this.onData(this.writer.dtdElement(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n      var node;\n      this.openCurrent();\n      node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n      this.onData(this.writer.dtdAttList(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.entity = function(name, value) {\n      var node;\n      this.openCurrent();\n      node = new XMLDTDEntity(this, false, name, value);\n      this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.pEntity = function(name, value) {\n      var node;\n      this.openCurrent();\n      node = new XMLDTDEntity(this, true, name, value);\n      this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.notation = function(name, value) {\n      var node;\n      this.openCurrent();\n      node = new XMLDTDNotation(this, name, value);\n      this.onData(this.writer.dtdNotation(node, this.currentLevel + 1), this.currentLevel + 1);\n      return this;\n    };\n\n    XMLDocumentCB.prototype.up = function() {\n      if (this.currentLevel < 0) {\n        throw new Error(\"The document node has no parent.\");\n      }\n      if (this.currentNode) {\n        if (this.currentNode.children) {\n          this.closeNode(this.currentNode);\n        } else {\n          this.openNode(this.currentNode);\n        }\n        this.currentNode = null;\n      } else {\n        this.closeNode(this.openTags[this.currentLevel]);\n      }\n      delete this.openTags[this.currentLevel];\n      this.currentLevel--;\n      return this;\n    };\n\n    XMLDocumentCB.prototype.end = function() {\n      while (this.currentLevel >= 0) {\n        this.up();\n      }\n      return this.onEnd();\n    };\n\n    XMLDocumentCB.prototype.openCurrent = function() {\n      if (this.currentNode) {\n        this.currentNode.children = true;\n        return this.openNode(this.currentNode);\n      }\n    };\n\n    XMLDocumentCB.prototype.openNode = function(node) {\n      if (!node.isOpen) {\n        if (!this.root && this.currentLevel === 0 && node instanceof XMLElement) {\n          this.root = node;\n        }\n        this.onData(this.writer.openNode(node, this.currentLevel), this.currentLevel);\n        return node.isOpen = true;\n      }\n    };\n\n    XMLDocumentCB.prototype.closeNode = function(node) {\n      if (!node.isClosed) {\n        this.onData(this.writer.closeNode(node, this.currentLevel), this.currentLevel);\n        return node.isClosed = true;\n      }\n    };\n\n    XMLDocumentCB.prototype.onData = function(chunk, level) {\n      this.documentStarted = true;\n      return this.onDataCallback(chunk, level + 1);\n    };\n\n    XMLDocumentCB.prototype.onEnd = function() {\n      this.documentCompleted = true;\n      return this.onEndCallback();\n    };\n\n    XMLDocumentCB.prototype.debugInfo = function(name) {\n      if (name == null) {\n        return \"\";\n      } else {\n        return \"node: <\" + name + \">\";\n      }\n    };\n\n    XMLDocumentCB.prototype.ele = function() {\n      return this.element.apply(this, arguments);\n    };\n\n    XMLDocumentCB.prototype.nod = function(name, attributes, text) {\n      return this.node(name, attributes, text);\n    };\n\n    XMLDocumentCB.prototype.txt = function(value) {\n      return this.text(value);\n    };\n\n    XMLDocumentCB.prototype.dat = function(value) {\n      return this.cdata(value);\n    };\n\n    XMLDocumentCB.prototype.com = function(value) {\n      return this.comment(value);\n    };\n\n    XMLDocumentCB.prototype.ins = function(target, value) {\n      return this.instruction(target, value);\n    };\n\n    XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {\n      return this.declaration(version, encoding, standalone);\n    };\n\n    XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {\n      return this.doctype(root, pubID, sysID);\n    };\n\n    XMLDocumentCB.prototype.e = function(name, attributes, text) {\n      return this.element(name, attributes, text);\n    };\n\n    XMLDocumentCB.prototype.n = function(name, attributes, text) {\n      return this.node(name, attributes, text);\n    };\n\n    XMLDocumentCB.prototype.t = function(value) {\n      return this.text(value);\n    };\n\n    XMLDocumentCB.prototype.d = function(value) {\n      return this.cdata(value);\n    };\n\n    XMLDocumentCB.prototype.c = function(value) {\n      return this.comment(value);\n    };\n\n    XMLDocumentCB.prototype.r = function(value) {\n      return this.raw(value);\n    };\n\n    XMLDocumentCB.prototype.i = function(target, value) {\n      return this.instruction(target, value);\n    };\n\n    XMLDocumentCB.prototype.att = function() {\n      if (this.currentNode && this.currentNode instanceof XMLDocType) {\n        return this.attList.apply(this, arguments);\n      } else {\n        return this.attribute.apply(this, arguments);\n      }\n    };\n\n    XMLDocumentCB.prototype.a = function() {\n      if (this.currentNode && this.currentNode instanceof XMLDocType) {\n        return this.attList.apply(this, arguments);\n      } else {\n        return this.attribute.apply(this, arguments);\n      }\n    };\n\n    XMLDocumentCB.prototype.ent = function(name, value) {\n      return this.entity(name, value);\n    };\n\n    XMLDocumentCB.prototype.pent = function(name, value) {\n      return this.pEntity(name, value);\n    };\n\n    XMLDocumentCB.prototype.not = function(name, value) {\n      return this.notation(name, value);\n    };\n\n    return XMLDocumentCB;\n\n  })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase,\n    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    hasProp = {}.hasOwnProperty;\n\n  XMLDeclaration = require('./XMLDeclaration');\n\n  XMLDocType = require('./XMLDocType');\n\n  XMLCData = require('./XMLCData');\n\n  XMLComment = require('./XMLComment');\n\n  XMLElement = require('./XMLElement');\n\n  XMLRaw = require('./XMLRaw');\n\n  XMLText = require('./XMLText');\n\n  XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n  XMLDummy = require('./XMLDummy');\n\n  XMLDTDAttList = require('./XMLDTDAttList');\n\n  XMLDTDElement = require('./XMLDTDElement');\n\n  XMLDTDEntity = require('./XMLDTDEntity');\n\n  XMLDTDNotation = require('./XMLDTDNotation');\n\n  XMLWriterBase = require('./XMLWriterBase');\n\n  module.exports = XMLStreamWriter = (function(superClass) {\n    extend(XMLStreamWriter, superClass);\n\n    function XMLStreamWriter(stream, options) {\n      XMLStreamWriter.__super__.constructor.call(this, options);\n      this.stream = stream;\n    }\n\n    XMLStreamWriter.prototype.document = function(doc) {\n      var child, i, j, len, len1, ref, ref1, results;\n      ref = doc.children;\n      for (i = 0, len = ref.length; i < len; i++) {\n        child = ref[i];\n        child.isLastRootNode = false;\n      }\n      doc.children[doc.children.length - 1].isLastRootNode = true;\n      ref1 = doc.children;\n      results = [];\n      for (j = 0, len1 = ref1.length; j < len1; j++) {\n        child = ref1[j];\n        if (child instanceof XMLDummy) {\n          continue;\n        }\n        switch (false) {\n          case !(child instanceof XMLDeclaration):\n            results.push(this.declaration(child));\n            break;\n          case !(child instanceof XMLDocType):\n            results.push(this.docType(child));\n            break;\n          case !(child instanceof XMLComment):\n            results.push(this.comment(child));\n            break;\n          case !(child instanceof XMLProcessingInstruction):\n            results.push(this.processingInstruction(child));\n            break;\n          default:\n            results.push(this.element(child));\n        }\n      }\n      return results;\n    };\n\n    XMLStreamWriter.prototype.attribute = function(att) {\n      return this.stream.write(' ' + att.name + '=\"' + att.value + '\"');\n    };\n\n    XMLStreamWriter.prototype.cdata = function(node, level) {\n      return this.stream.write(this.space(level) + '<![CDATA[' + node.text + ']]>' + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.comment = function(node, level) {\n      return this.stream.write(this.space(level) + '<!-- ' + node.text + ' -->' + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.declaration = function(node, level) {\n      this.stream.write(this.space(level));\n      this.stream.write('<?xml version=\"' + node.version + '\"');\n      if (node.encoding != null) {\n        this.stream.write(' encoding=\"' + node.encoding + '\"');\n      }\n      if (node.standalone != null) {\n        this.stream.write(' standalone=\"' + node.standalone + '\"');\n      }\n      this.stream.write(this.spacebeforeslash + '?>');\n      return this.stream.write(this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.docType = function(node, level) {\n      var child, i, len, ref;\n      level || (level = 0);\n      this.stream.write(this.space(level));\n      this.stream.write('<!DOCTYPE ' + node.root().name);\n      if (node.pubID && node.sysID) {\n        this.stream.write(' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"');\n      } else if (node.sysID) {\n        this.stream.write(' SYSTEM \"' + node.sysID + '\"');\n      }\n      if (node.children.length > 0) {\n        this.stream.write(' [');\n        this.stream.write(this.endline(node));\n        ref = node.children;\n        for (i = 0, len = ref.length; i < len; i++) {\n          child = ref[i];\n          switch (false) {\n            case !(child instanceof XMLDTDAttList):\n              this.dtdAttList(child, level + 1);\n              break;\n            case !(child instanceof XMLDTDElement):\n              this.dtdElement(child, level + 1);\n              break;\n            case !(child instanceof XMLDTDEntity):\n              this.dtdEntity(child, level + 1);\n              break;\n            case !(child instanceof XMLDTDNotation):\n              this.dtdNotation(child, level + 1);\n              break;\n            case !(child instanceof XMLCData):\n              this.cdata(child, level + 1);\n              break;\n            case !(child instanceof XMLComment):\n              this.comment(child, level + 1);\n              break;\n            case !(child instanceof XMLProcessingInstruction):\n              this.processingInstruction(child, level + 1);\n              break;\n            default:\n              throw new Error(\"Unknown DTD node type: \" + child.constructor.name);\n          }\n        }\n        this.stream.write(']');\n      }\n      this.stream.write(this.spacebeforeslash + '>');\n      return this.stream.write(this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.element = function(node, level) {\n      var att, child, i, len, name, ref, ref1, space;\n      level || (level = 0);\n      space = this.space(level);\n      this.stream.write(space + '<' + node.name);\n      ref = node.attributes;\n      for (name in ref) {\n        if (!hasProp.call(ref, name)) continue;\n        att = ref[name];\n        this.attribute(att);\n      }\n      if (node.children.length === 0 || node.children.every(function(e) {\n        return e.value === '';\n      })) {\n        if (this.allowEmpty) {\n          this.stream.write('></' + node.name + '>');\n        } else {\n          this.stream.write(this.spacebeforeslash + '/>');\n        }\n      } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {\n        this.stream.write('>');\n        this.stream.write(node.children[0].value);\n        this.stream.write('</' + node.name + '>');\n      } else {\n        this.stream.write('>' + this.newline);\n        ref1 = node.children;\n        for (i = 0, len = ref1.length; i < len; i++) {\n          child = ref1[i];\n          switch (false) {\n            case !(child instanceof XMLCData):\n              this.cdata(child, level + 1);\n              break;\n            case !(child instanceof XMLComment):\n              this.comment(child, level + 1);\n              break;\n            case !(child instanceof XMLElement):\n              this.element(child, level + 1);\n              break;\n            case !(child instanceof XMLRaw):\n              this.raw(child, level + 1);\n              break;\n            case !(child instanceof XMLText):\n              this.text(child, level + 1);\n              break;\n            case !(child instanceof XMLProcessingInstruction):\n              this.processingInstruction(child, level + 1);\n              break;\n            case !(child instanceof XMLDummy):\n              '';\n              break;\n            default:\n              throw new Error(\"Unknown XML node type: \" + child.constructor.name);\n          }\n        }\n        this.stream.write(space + '</' + node.name + '>');\n      }\n      return this.stream.write(this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.processingInstruction = function(node, level) {\n      this.stream.write(this.space(level) + '<?' + node.target);\n      if (node.value) {\n        this.stream.write(' ' + node.value);\n      }\n      return this.stream.write(this.spacebeforeslash + '?>' + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.raw = function(node, level) {\n      return this.stream.write(this.space(level) + node.value + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.text = function(node, level) {\n      return this.stream.write(this.space(level) + node.value + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.dtdAttList = function(node, level) {\n      this.stream.write(this.space(level) + '<!ATTLIST ' + node.elementName + ' ' + node.attributeName + ' ' + node.attributeType);\n      if (node.defaultValueType !== '#DEFAULT') {\n        this.stream.write(' ' + node.defaultValueType);\n      }\n      if (node.defaultValue) {\n        this.stream.write(' \"' + node.defaultValue + '\"');\n      }\n      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.dtdElement = function(node, level) {\n      this.stream.write(this.space(level) + '<!ELEMENT ' + node.name + ' ' + node.value);\n      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.dtdEntity = function(node, level) {\n      this.stream.write(this.space(level) + '<!ENTITY');\n      if (node.pe) {\n        this.stream.write(' %');\n      }\n      this.stream.write(' ' + node.name);\n      if (node.value) {\n        this.stream.write(' \"' + node.value + '\"');\n      } else {\n        if (node.pubID && node.sysID) {\n          this.stream.write(' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"');\n        } else if (node.sysID) {\n          this.stream.write(' SYSTEM \"' + node.sysID + '\"');\n        }\n        if (node.nData) {\n          this.stream.write(' NDATA ' + node.nData);\n        }\n      }\n      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.dtdNotation = function(node, level) {\n      this.stream.write(this.space(level) + '<!NOTATION ' + node.name);\n      if (node.pubID && node.sysID) {\n        this.stream.write(' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"');\n      } else if (node.pubID) {\n        this.stream.write(' PUBLIC \"' + node.pubID + '\"');\n      } else if (node.sysID) {\n        this.stream.write(' SYSTEM \"' + node.sysID + '\"');\n      }\n      return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n    };\n\n    XMLStreamWriter.prototype.endline = function(node) {\n      if (!node.isLastRootNode) {\n        return this.newline;\n      } else {\n        return '';\n      }\n    };\n\n    return XMLStreamWriter;\n\n  })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n  var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;\n\n  ref = require('./Utility'), assign = ref.assign, isFunction = ref.isFunction;\n\n  XMLDocument = require('./XMLDocument');\n\n  XMLDocumentCB = require('./XMLDocumentCB');\n\n  XMLStringWriter = require('./XMLStringWriter');\n\n  XMLStreamWriter = require('./XMLStreamWriter');\n\n  module.exports.create = function(name, xmldec, doctype, options) {\n    var doc, root;\n    if (name == null) {\n      throw new Error(\"Root element needs a name.\");\n    }\n    options = assign({}, xmldec, doctype, options);\n    doc = new XMLDocument(options);\n    root = doc.element(name);\n    if (!options.headless) {\n      doc.declaration(options);\n      if ((options.pubID != null) || (options.sysID != null)) {\n        doc.doctype(options);\n      }\n    }\n    return root;\n  };\n\n  module.exports.begin = function(options, onData, onEnd) {\n    var ref1;\n    if (isFunction(options)) {\n      ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];\n      options = {};\n    }\n    if (onData) {\n      return new XMLDocumentCB(options, onData, onEnd);\n    } else {\n      return new XMLDocument(options);\n    }\n  };\n\n  module.exports.stringWriter = function(options) {\n    return new XMLStringWriter(options);\n  };\n\n  module.exports.streamWriter = function(stream, options) {\n    return new XMLStreamWriter(stream, options);\n  };\n\n}).call(this);\n","var _ = require(\"underscore\");\nvar xmlbuilder = require(\"xmlbuilder\");\n\n\nexports.writeString = writeString;\n\n\nfunction writeString(root, namespaces) {\n    var uriToPrefix = _.invert(namespaces);\n    \n    var nodeWriters = {\n        element: writeElement,\n        text: writeTextNode\n    };\n\n    function writeNode(builder, node) {\n        return nodeWriters[node.type](builder, node);\n    }\n\n    function writeElement(builder, element) {\n        var elementBuilder = builder.element(mapElementName(element.name), element.attributes);\n        element.children.forEach(function(child) {\n            writeNode(elementBuilder, child);\n        });\n    }\n    \n    function mapElementName(name) {\n        var longFormMatch = /^\\{(.*)\\}(.*)$/.exec(name);\n        if (longFormMatch) {\n            var prefix = uriToPrefix[longFormMatch[1]];\n            return prefix + (prefix === \"\" ? \"\" : \":\") + longFormMatch[2];\n        } else {\n            return name;\n        }\n    }\n    \n    function writeDocument(root) {\n        var builder = xmlbuilder\n            .create(mapElementName(root.name), {\n                version: '1.0',\n                encoding: 'UTF-8',\n                standalone: true\n            });\n        \n        _.forEach(namespaces, function(uri, prefix) {\n            var key = \"xmlns\" + (prefix === \"\" ? \"\" : \":\" + prefix);\n            builder.attribute(key, uri);\n        });\n        \n        root.children.forEach(function(child) {\n            writeNode(builder, child);\n        });\n        return builder.end();\n    }\n\n    return writeDocument(root);\n}\n\nfunction writeTextNode(builder, node) {\n    builder.text(node.value);\n}\n","var nodes = require(\"./nodes\");\n\nexports.Element = nodes.Element;\nexports.element = nodes.element;\nexports.emptyElement = nodes.emptyElement;\nexports.text = nodes.text;\nexports.readString = require(\"./reader\").readString;\nexports.writeString = require(\"./writer\").writeString;\n","var _ = require(\"underscore\");\n\nvar promises = require(\"../promises\");\nvar xml = require(\"../xml\");\n\n\nexports.read = read;\nexports.readXmlFromZipFile = readXmlFromZipFile;\n\nvar xmlNamespaceMap = {\n    // Transitional format\n    \"http://schemas.openxmlformats.org/wordprocessingml/2006/main\": \"w\",\n    \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\": \"r\",\n    \"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\": \"wp\",\n    \"http://schemas.openxmlformats.org/drawingml/2006/main\": \"a\",\n    \"http://schemas.openxmlformats.org/drawingml/2006/picture\": \"pic\",\n\n    // Strict format\n    \"http://purl.oclc.org/ooxml/wordprocessingml/main\": \"w\",\n    \"http://purl.oclc.org/ooxml/officeDocument/relationships\": \"r\",\n    \"http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing\": \"wp\",\n    \"http://purl.oclc.org/ooxml/drawingml/main\": \"a\",\n    \"http://purl.oclc.org/ooxml/drawingml/picture\": \"pic\",\n\n    // Common\n    \"http://schemas.openxmlformats.org/package/2006/content-types\": \"content-types\",\n    \"http://schemas.openxmlformats.org/package/2006/relationships\": \"relationships\",\n    \"http://schemas.openxmlformats.org/markup-compatibility/2006\": \"mc\",\n    \"urn:schemas-microsoft-com:vml\": \"v\",\n    \"urn:schemas-microsoft-com:office:word\": \"office-word\",\n\n    // [MS-DOCX]: Word Extensions to the Office Open XML (.docx) File Format\n    // https://learn.microsoft.com/en-us/openspecs/office_standards/ms-docx/b839fe1f-e1ca-4fa6-8c26-5954d0abbccd\n    \"http://schemas.microsoft.com/office/word/2010/wordml\": \"wordml\"\n};\n\n\nfunction read(xmlString) {\n    return xml.readString(xmlString, xmlNamespaceMap)\n        .then(function(document) {\n            return collapseAlternateContent(document)[0];\n        });\n}\n\n\nfunction readXmlFromZipFile(docxFile, path) {\n    if (docxFile.exists(path)) {\n        return docxFile.read(path, \"utf-8\")\n            .then(stripUtf8Bom)\n            .then(read);\n    } else {\n        return promises.resolve(null);\n    }\n}\n\n\nfunction stripUtf8Bom(xmlString) {\n    return xmlString.replace(/^\\uFEFF/g, '');\n}\n\n\nfunction collapseAlternateContent(node) {\n    if (node.type === \"element\") {\n        if (node.name === \"mc:AlternateContent\") {\n            return node.firstOrEmpty(\"mc:Fallback\").children;\n        } else {\n            node.children = _.flatten(node.children.map(collapseAlternateContent, true));\n            return [node];\n        }\n    } else {\n        return [node];\n    }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dingbats = [\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"33\", \"Unicode hex\": \"21\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"8704\", \"Unicode hex\": \"2200\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"35\", \"Unicode hex\": \"23\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"8707\", \"Unicode hex\": \"2203\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"37\", \"Unicode hex\": \"25\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"38\", \"Unicode hex\": \"26\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"8717\", \"Unicode hex\": \"220D\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"40\", \"Unicode hex\": \"28\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"41\", \"Unicode hex\": \"29\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"42\", \"Unicode hex\": \"2A\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"43\", \"Unicode hex\": \"2B\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"44\", \"Unicode hex\": \"2C\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"8722\", \"Unicode hex\": \"2212\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"46\", \"Unicode hex\": \"2E\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"47\", \"Unicode hex\": \"2F\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"48\", \"Unicode hex\": \"30\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"49\", \"Unicode hex\": \"31\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"50\", \"Unicode hex\": \"32\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"51\", \"Unicode hex\": \"33\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"52\", \"Unicode hex\": \"34\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"53\", \"Unicode hex\": \"35\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"54\", \"Unicode hex\": \"36\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"55\", \"Unicode hex\": \"37\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"56\", \"Unicode hex\": \"38\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"57\", \"Unicode hex\": \"39\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"58\", \"Unicode hex\": \"3A\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"59\", \"Unicode hex\": \"3B\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"60\", \"Unicode hex\": \"3C\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"61\", \"Unicode hex\": \"3D\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"62\", \"Unicode hex\": \"3E\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"63\", \"Unicode hex\": \"3F\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"8773\", \"Unicode hex\": \"2245\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"913\", \"Unicode hex\": \"391\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"914\", \"Unicode hex\": \"392\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"935\", \"Unicode hex\": \"3A7\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"916\", \"Unicode hex\": \"394\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"917\", \"Unicode hex\": \"395\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"934\", \"Unicode hex\": \"3A6\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"915\", \"Unicode hex\": \"393\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"919\", \"Unicode hex\": \"397\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"921\", \"Unicode hex\": \"399\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"977\", \"Unicode hex\": \"3D1\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"922\", \"Unicode hex\": \"39A\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"923\", \"Unicode hex\": \"39B\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"924\", \"Unicode hex\": \"39C\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"925\", \"Unicode hex\": \"39D\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"927\", \"Unicode hex\": \"39F\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"928\", \"Unicode hex\": \"3A0\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"920\", \"Unicode hex\": \"398\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"929\", \"Unicode hex\": \"3A1\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"931\", \"Unicode hex\": \"3A3\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"932\", \"Unicode hex\": \"3A4\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"933\", \"Unicode hex\": \"3A5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"962\", \"Unicode hex\": \"3C2\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"937\", \"Unicode hex\": \"3A9\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"926\", \"Unicode hex\": \"39E\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"936\", \"Unicode hex\": \"3A8\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"918\", \"Unicode hex\": \"396\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"91\", \"Unicode hex\": \"5B\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"8756\", \"Unicode hex\": \"2234\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"93\", \"Unicode hex\": \"5D\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"8869\", \"Unicode hex\": \"22A5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"95\", \"Unicode hex\": \"5F\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"8254\", \"Unicode hex\": \"203E\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"945\", \"Unicode hex\": \"3B1\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"946\", \"Unicode hex\": \"3B2\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"967\", \"Unicode hex\": \"3C7\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"948\", \"Unicode hex\": \"3B4\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"949\", \"Unicode hex\": \"3B5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"966\", \"Unicode hex\": \"3C6\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"947\", \"Unicode hex\": \"3B3\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"951\", \"Unicode hex\": \"3B7\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"953\", \"Unicode hex\": \"3B9\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"981\", \"Unicode hex\": \"3D5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"954\", \"Unicode hex\": \"3BA\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"955\", \"Unicode hex\": \"3BB\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"956\", \"Unicode hex\": \"3BC\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"957\", \"Unicode hex\": \"3BD\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"959\", \"Unicode hex\": \"3BF\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"960\", \"Unicode hex\": \"3C0\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"952\", \"Unicode hex\": \"3B8\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"961\", \"Unicode hex\": \"3C1\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"963\", \"Unicode hex\": \"3C3\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"964\", \"Unicode hex\": \"3C4\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"965\", \"Unicode hex\": \"3C5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"982\", \"Unicode hex\": \"3D6\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"969\", \"Unicode hex\": \"3C9\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"958\", \"Unicode hex\": \"3BE\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"968\", \"Unicode hex\": \"3C8\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"950\", \"Unicode hex\": \"3B6\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"123\", \"Unicode hex\": \"7B\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"124\", \"Unicode hex\": \"7C\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"125\", \"Unicode hex\": \"7D\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"126\", \"Unicode hex\": \"7E\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"8364\", \"Unicode hex\": \"20AC\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"978\", \"Unicode hex\": \"3D2\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"8242\", \"Unicode hex\": \"2032\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"8804\", \"Unicode hex\": \"2264\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"8260\", \"Unicode hex\": \"2044\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"8734\", \"Unicode hex\": \"221E\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"402\", \"Unicode hex\": \"192\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"9827\", \"Unicode hex\": \"2663\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"9830\", \"Unicode hex\": \"2666\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"9829\", \"Unicode hex\": \"2665\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"9824\", \"Unicode hex\": \"2660\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"8596\", \"Unicode hex\": \"2194\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"8592\", \"Unicode hex\": \"2190\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"8593\", \"Unicode hex\": \"2191\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"8594\", \"Unicode hex\": \"2192\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"8595\", \"Unicode hex\": \"2193\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"176\", \"Unicode hex\": \"B0\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"177\", \"Unicode hex\": \"B1\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"8243\", \"Unicode hex\": \"2033\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"8805\", \"Unicode hex\": \"2265\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"215\", \"Unicode hex\": \"D7\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"8733\", \"Unicode hex\": \"221D\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"8706\", \"Unicode hex\": \"2202\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"8226\", \"Unicode hex\": \"2022\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"247\", \"Unicode hex\": \"F7\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"8800\", \"Unicode hex\": \"2260\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"8801\", \"Unicode hex\": \"2261\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"8776\", \"Unicode hex\": \"2248\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"8230\", \"Unicode hex\": \"2026\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"9168\", \"Unicode hex\": \"23D0\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"9135\", \"Unicode hex\": \"23AF\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"8629\", \"Unicode hex\": \"21B5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"8501\", \"Unicode hex\": \"2135\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"8465\", \"Unicode hex\": \"2111\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"8476\", \"Unicode hex\": \"211C\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"8472\", \"Unicode hex\": \"2118\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"8855\", \"Unicode hex\": \"2297\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"8853\", \"Unicode hex\": \"2295\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"8709\", \"Unicode hex\": \"2205\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"8745\", \"Unicode hex\": \"2229\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"8746\", \"Unicode hex\": \"222A\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"8835\", \"Unicode hex\": \"2283\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"8839\", \"Unicode hex\": \"2287\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"8836\", \"Unicode hex\": \"2284\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"8834\", \"Unicode hex\": \"2282\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"8838\", \"Unicode hex\": \"2286\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"8712\", \"Unicode hex\": \"2208\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"8713\", \"Unicode hex\": \"2209\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"8736\", \"Unicode hex\": \"2220\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"8711\", \"Unicode hex\": \"2207\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"174\", \"Unicode hex\": \"AE\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"169\", \"Unicode hex\": \"A9\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"8482\", \"Unicode hex\": \"2122\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"8719\", \"Unicode hex\": \"220F\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"8730\", \"Unicode hex\": \"221A\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"8901\", \"Unicode hex\": \"22C5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"172\", \"Unicode hex\": \"AC\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"8743\", \"Unicode hex\": \"2227\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"8744\", \"Unicode hex\": \"2228\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"8660\", \"Unicode hex\": \"21D4\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"8656\", \"Unicode hex\": \"21D0\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"8657\", \"Unicode hex\": \"21D1\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"8658\", \"Unicode hex\": \"21D2\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"8659\", \"Unicode hex\": \"21D3\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"9674\", \"Unicode hex\": \"25CA\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"12296\", \"Unicode hex\": \"3008\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"174\", \"Unicode hex\": \"AE\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"169\", \"Unicode hex\": \"A9\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"8482\", \"Unicode hex\": \"2122\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"8721\", \"Unicode hex\": \"2211\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"9115\", \"Unicode hex\": \"239B\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"9116\", \"Unicode hex\": \"239C\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"9117\", \"Unicode hex\": \"239D\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"9121\", \"Unicode hex\": \"23A1\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"9122\", \"Unicode hex\": \"23A2\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"9123\", \"Unicode hex\": \"23A3\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"9127\", \"Unicode hex\": \"23A7\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"9128\", \"Unicode hex\": \"23A8\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"9129\", \"Unicode hex\": \"23A9\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"9130\", \"Unicode hex\": \"23AA\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"63743\", \"Unicode hex\": \"F8FF\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"12297\", \"Unicode hex\": \"3009\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"8747\", \"Unicode hex\": \"222B\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"8992\", \"Unicode hex\": \"2320\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"9134\", \"Unicode hex\": \"23AE\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"8993\", \"Unicode hex\": \"2321\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"9118\", \"Unicode hex\": \"239E\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"9119\", \"Unicode hex\": \"239F\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"9120\", \"Unicode hex\": \"23A0\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"9124\", \"Unicode hex\": \"23A4\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"250\", \"Dingbat hex\": \"FA\", \"Unicode dec\": \"9125\", \"Unicode hex\": \"23A5\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"251\", \"Dingbat hex\": \"FB\", \"Unicode dec\": \"9126\", \"Unicode hex\": \"23A6\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"252\", \"Dingbat hex\": \"FC\", \"Unicode dec\": \"9131\", \"Unicode hex\": \"23AB\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"253\", \"Dingbat hex\": \"FD\", \"Unicode dec\": \"9132\", \"Unicode hex\": \"23AC\" },\n    { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"254\", \"Dingbat hex\": \"FE\", \"Unicode dec\": \"9133\", \"Unicode hex\": \"23AD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"128375\", \"Unicode hex\": \"1F577\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"128376\", \"Unicode hex\": \"1F578\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"128370\", \"Unicode hex\": \"1F572\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"128374\", \"Unicode hex\": \"1F576\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"127942\", \"Unicode hex\": \"1F3C6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"127894\", \"Unicode hex\": \"1F396\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"128391\", \"Unicode hex\": \"1F587\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"128488\", \"Unicode hex\": \"1F5E8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"128489\", \"Unicode hex\": \"1F5E9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"128496\", \"Unicode hex\": \"1F5F0\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"128497\", \"Unicode hex\": \"1F5F1\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"127798\", \"Unicode hex\": \"1F336\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"127895\", \"Unicode hex\": \"1F397\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"128638\", \"Unicode hex\": \"1F67E\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"128636\", \"Unicode hex\": \"1F67C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"128469\", \"Unicode hex\": \"1F5D5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"128470\", \"Unicode hex\": \"1F5D6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"128471\", \"Unicode hex\": \"1F5D7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"9204\", \"Unicode hex\": \"23F4\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"9205\", \"Unicode hex\": \"23F5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"9206\", \"Unicode hex\": \"23F6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"9207\", \"Unicode hex\": \"23F7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"9194\", \"Unicode hex\": \"23EA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"9193\", \"Unicode hex\": \"23E9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"9198\", \"Unicode hex\": \"23EE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"9197\", \"Unicode hex\": \"23ED\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"9208\", \"Unicode hex\": \"23F8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"9209\", \"Unicode hex\": \"23F9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"9210\", \"Unicode hex\": \"23FA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"128474\", \"Unicode hex\": \"1F5DA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"128499\", \"Unicode hex\": \"1F5F3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"128736\", \"Unicode hex\": \"1F6E0\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"127959\", \"Unicode hex\": \"1F3D7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"127960\", \"Unicode hex\": \"1F3D8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"127961\", \"Unicode hex\": \"1F3D9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"127962\", \"Unicode hex\": \"1F3DA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"127964\", \"Unicode hex\": \"1F3DC\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"127981\", \"Unicode hex\": \"1F3ED\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"127963\", \"Unicode hex\": \"1F3DB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"127968\", \"Unicode hex\": \"1F3E0\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"127958\", \"Unicode hex\": \"1F3D6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"127965\", \"Unicode hex\": \"1F3DD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"128739\", \"Unicode hex\": \"1F6E3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"128269\", \"Unicode hex\": \"1F50D\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"127956\", \"Unicode hex\": \"1F3D4\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"128065\", \"Unicode hex\": \"1F441\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"128066\", \"Unicode hex\": \"1F442\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"127966\", \"Unicode hex\": \"1F3DE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"127957\", \"Unicode hex\": \"1F3D5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"128740\", \"Unicode hex\": \"1F6E4\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"127967\", \"Unicode hex\": \"1F3DF\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"128755\", \"Unicode hex\": \"1F6F3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"128364\", \"Unicode hex\": \"1F56C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"128363\", \"Unicode hex\": \"1F56B\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"128360\", \"Unicode hex\": \"1F568\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"128264\", \"Unicode hex\": \"1F508\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"127892\", \"Unicode hex\": \"1F394\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"127893\", \"Unicode hex\": \"1F395\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"128492\", \"Unicode hex\": \"1F5EC\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"128637\", \"Unicode hex\": \"1F67D\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"128493\", \"Unicode hex\": \"1F5ED\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"128490\", \"Unicode hex\": \"1F5EA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"128491\", \"Unicode hex\": \"1F5EB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"11156\", \"Unicode hex\": \"2B94\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"10004\", \"Unicode hex\": \"2714\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"128690\", \"Unicode hex\": \"1F6B2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"11036\", \"Unicode hex\": \"2B1C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"128737\", \"Unicode hex\": \"1F6E1\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"128230\", \"Unicode hex\": \"1F4E6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"128753\", \"Unicode hex\": \"1F6F1\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"11035\", \"Unicode hex\": \"2B1B\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"128657\", \"Unicode hex\": \"1F691\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"128712\", \"Unicode hex\": \"1F6C8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"128745\", \"Unicode hex\": \"1F6E9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"128752\", \"Unicode hex\": \"1F6F0\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"128968\", \"Unicode hex\": \"1F7C8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"128372\", \"Unicode hex\": \"1F574\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"11044\", \"Unicode hex\": \"2B24\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"128741\", \"Unicode hex\": \"1F6E5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"128660\", \"Unicode hex\": \"1F694\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"128472\", \"Unicode hex\": \"1F5D8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"128473\", \"Unicode hex\": \"1F5D9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"10067\", \"Unicode hex\": \"2753\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"128754\", \"Unicode hex\": \"1F6F2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"128647\", \"Unicode hex\": \"1F687\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"128653\", \"Unicode hex\": \"1F68D\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"9971\", \"Unicode hex\": \"26F3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"10680\", \"Unicode hex\": \"29B8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"8854\", \"Unicode hex\": \"2296\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"128685\", \"Unicode hex\": \"1F6AD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"128494\", \"Unicode hex\": \"1F5EE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"9168\", \"Unicode hex\": \"23D0\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"128495\", \"Unicode hex\": \"1F5EF\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"128498\", \"Unicode hex\": \"1F5F2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"128697\", \"Unicode hex\": \"1F6B9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"128698\", \"Unicode hex\": \"1F6BA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"128713\", \"Unicode hex\": \"1F6C9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"128714\", \"Unicode hex\": \"1F6CA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"128700\", \"Unicode hex\": \"1F6BC\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"128125\", \"Unicode hex\": \"1F47D\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"127947\", \"Unicode hex\": \"1F3CB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"9975\", \"Unicode hex\": \"26F7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"127938\", \"Unicode hex\": \"1F3C2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"127948\", \"Unicode hex\": \"1F3CC\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"127946\", \"Unicode hex\": \"1F3CA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"127940\", \"Unicode hex\": \"1F3C4\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"127949\", \"Unicode hex\": \"1F3CD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"127950\", \"Unicode hex\": \"1F3CE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"128664\", \"Unicode hex\": \"1F698\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"128480\", \"Unicode hex\": \"1F5E0\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"128738\", \"Unicode hex\": \"1F6E2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"128176\", \"Unicode hex\": \"1F4B0\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"127991\", \"Unicode hex\": \"1F3F7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"128179\", \"Unicode hex\": \"1F4B3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"128106\", \"Unicode hex\": \"1F46A\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"128481\", \"Unicode hex\": \"1F5E1\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"128482\", \"Unicode hex\": \"1F5E2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"128483\", \"Unicode hex\": \"1F5E3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"10031\", \"Unicode hex\": \"272F\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"128388\", \"Unicode hex\": \"1F584\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"128389\", \"Unicode hex\": \"1F585\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"128387\", \"Unicode hex\": \"1F583\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"128390\", \"Unicode hex\": \"1F586\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"128441\", \"Unicode hex\": \"1F5B9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"128442\", \"Unicode hex\": \"1F5BA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"128443\", \"Unicode hex\": \"1F5BB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"128373\", \"Unicode hex\": \"1F575\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"128368\", \"Unicode hex\": \"1F570\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"128445\", \"Unicode hex\": \"1F5BD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"128446\", \"Unicode hex\": \"1F5BE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"128203\", \"Unicode hex\": \"1F4CB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"128466\", \"Unicode hex\": \"1F5D2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"128467\", \"Unicode hex\": \"1F5D3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"128366\", \"Unicode hex\": \"1F56E\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"128218\", \"Unicode hex\": \"1F4DA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"128478\", \"Unicode hex\": \"1F5DE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"128479\", \"Unicode hex\": \"1F5DF\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"128451\", \"Unicode hex\": \"1F5C3\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"128450\", \"Unicode hex\": \"1F5C2\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"128444\", \"Unicode hex\": \"1F5BC\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"127917\", \"Unicode hex\": \"1F3AD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"127900\", \"Unicode hex\": \"1F39C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"127896\", \"Unicode hex\": \"1F398\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"127897\", \"Unicode hex\": \"1F399\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"127911\", \"Unicode hex\": \"1F3A7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"128191\", \"Unicode hex\": \"1F4BF\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"127902\", \"Unicode hex\": \"1F39E\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"128247\", \"Unicode hex\": \"1F4F7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"127903\", \"Unicode hex\": \"1F39F\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"127916\", \"Unicode hex\": \"1F3AC\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"128253\", \"Unicode hex\": \"1F4FD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"128249\", \"Unicode hex\": \"1F4F9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"128254\", \"Unicode hex\": \"1F4FE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"128251\", \"Unicode hex\": \"1F4FB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"127898\", \"Unicode hex\": \"1F39A\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"127899\", \"Unicode hex\": \"1F39B\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"128250\", \"Unicode hex\": \"1F4FA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"128187\", \"Unicode hex\": \"1F4BB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"128421\", \"Unicode hex\": \"1F5A5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"128422\", \"Unicode hex\": \"1F5A6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"128423\", \"Unicode hex\": \"1F5A7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"128377\", \"Unicode hex\": \"1F579\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"127918\", \"Unicode hex\": \"1F3AE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"128379\", \"Unicode hex\": \"1F57B\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"128380\", \"Unicode hex\": \"1F57C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"128223\", \"Unicode hex\": \"1F4DF\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"128385\", \"Unicode hex\": \"1F581\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"128384\", \"Unicode hex\": \"1F580\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"128424\", \"Unicode hex\": \"1F5A8\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"128425\", \"Unicode hex\": \"1F5A9\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"128447\", \"Unicode hex\": \"1F5BF\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"128426\", \"Unicode hex\": \"1F5AA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"128476\", \"Unicode hex\": \"1F5DC\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"128274\", \"Unicode hex\": \"1F512\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"128275\", \"Unicode hex\": \"1F513\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"128477\", \"Unicode hex\": \"1F5DD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"128229\", \"Unicode hex\": \"1F4E5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"128228\", \"Unicode hex\": \"1F4E4\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"128371\", \"Unicode hex\": \"1F573\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"127779\", \"Unicode hex\": \"1F323\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"127780\", \"Unicode hex\": \"1F324\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"127781\", \"Unicode hex\": \"1F325\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"127782\", \"Unicode hex\": \"1F326\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"9729\", \"Unicode hex\": \"2601\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"127784\", \"Unicode hex\": \"1F328\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"127783\", \"Unicode hex\": \"1F327\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"127785\", \"Unicode hex\": \"1F329\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"127786\", \"Unicode hex\": \"1F32A\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"127788\", \"Unicode hex\": \"1F32C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"127787\", \"Unicode hex\": \"1F32B\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"127772\", \"Unicode hex\": \"1F31C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"127777\", \"Unicode hex\": \"1F321\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"128715\", \"Unicode hex\": \"1F6CB\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"128719\", \"Unicode hex\": \"1F6CF\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"127869\", \"Unicode hex\": \"1F37D\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"127864\", \"Unicode hex\": \"1F378\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"128718\", \"Unicode hex\": \"1F6CE\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"128717\", \"Unicode hex\": \"1F6CD\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"9413\", \"Unicode hex\": \"24C5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"9855\", \"Unicode hex\": \"267F\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"128710\", \"Unicode hex\": \"1F6C6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"128392\", \"Unicode hex\": \"1F588\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"127891\", \"Unicode hex\": \"1F393\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"128484\", \"Unicode hex\": \"1F5E4\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"128485\", \"Unicode hex\": \"1F5E5\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"128486\", \"Unicode hex\": \"1F5E6\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"128487\", \"Unicode hex\": \"1F5E7\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"128746\", \"Unicode hex\": \"1F6EA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"128063\", \"Unicode hex\": \"1F43F\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"128038\", \"Unicode hex\": \"1F426\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"128031\", \"Unicode hex\": \"1F41F\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"128021\", \"Unicode hex\": \"1F415\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"128008\", \"Unicode hex\": \"1F408\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"128620\", \"Unicode hex\": \"1F66C\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"128622\", \"Unicode hex\": \"1F66E\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"128621\", \"Unicode hex\": \"1F66D\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"250\", \"Dingbat hex\": \"FA\", \"Unicode dec\": \"128623\", \"Unicode hex\": \"1F66F\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"251\", \"Dingbat hex\": \"FB\", \"Unicode dec\": \"128506\", \"Unicode hex\": \"1F5FA\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"252\", \"Dingbat hex\": \"FC\", \"Unicode dec\": \"127757\", \"Unicode hex\": \"1F30D\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"253\", \"Dingbat hex\": \"FD\", \"Unicode dec\": \"127759\", \"Unicode hex\": \"1F30F\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"254\", \"Dingbat hex\": \"FE\", \"Unicode dec\": \"127758\", \"Unicode hex\": \"1F30E\" },\n    { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"255\", \"Dingbat hex\": \"FF\", \"Unicode dec\": \"128330\", \"Unicode hex\": \"1F54A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"128393\", \"Unicode hex\": \"1F589\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"9986\", \"Unicode hex\": \"2702\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"9985\", \"Unicode hex\": \"2701\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"128083\", \"Unicode hex\": \"1F453\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"128365\", \"Unicode hex\": \"1F56D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"128366\", \"Unicode hex\": \"1F56E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"128367\", \"Unicode hex\": \"1F56F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"128383\", \"Unicode hex\": \"1F57F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"9990\", \"Unicode hex\": \"2706\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"128386\", \"Unicode hex\": \"1F582\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"128387\", \"Unicode hex\": \"1F583\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"128234\", \"Unicode hex\": \"1F4EA\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"128235\", \"Unicode hex\": \"1F4EB\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"128236\", \"Unicode hex\": \"1F4EC\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"128237\", \"Unicode hex\": \"1F4ED\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"128448\", \"Unicode hex\": \"1F5C0\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"128449\", \"Unicode hex\": \"1F5C1\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"128462\", \"Unicode hex\": \"1F5CE\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"128463\", \"Unicode hex\": \"1F5CF\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"128464\", \"Unicode hex\": \"1F5D0\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"128452\", \"Unicode hex\": \"1F5C4\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"8987\", \"Unicode hex\": \"231B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"128430\", \"Unicode hex\": \"1F5AE\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"128432\", \"Unicode hex\": \"1F5B0\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"128434\", \"Unicode hex\": \"1F5B2\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"128435\", \"Unicode hex\": \"1F5B3\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"128436\", \"Unicode hex\": \"1F5B4\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"128427\", \"Unicode hex\": \"1F5AB\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"128428\", \"Unicode hex\": \"1F5AC\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"9991\", \"Unicode hex\": \"2707\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"9997\", \"Unicode hex\": \"270D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"128398\", \"Unicode hex\": \"1F58E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"9996\", \"Unicode hex\": \"270C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"128399\", \"Unicode hex\": \"1F58F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"128077\", \"Unicode hex\": \"1F44D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"128078\", \"Unicode hex\": \"1F44E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"9756\", \"Unicode hex\": \"261C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"9758\", \"Unicode hex\": \"261E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"9757\", \"Unicode hex\": \"261D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"9759\", \"Unicode hex\": \"261F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"128400\", \"Unicode hex\": \"1F590\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"9786\", \"Unicode hex\": \"263A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"128528\", \"Unicode hex\": \"1F610\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"9785\", \"Unicode hex\": \"2639\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"128163\", \"Unicode hex\": \"1F4A3\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"128369\", \"Unicode hex\": \"1F571\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"127987\", \"Unicode hex\": \"1F3F3\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"127985\", \"Unicode hex\": \"1F3F1\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"9992\", \"Unicode hex\": \"2708\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"9788\", \"Unicode hex\": \"263C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"127778\", \"Unicode hex\": \"1F322\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"10052\", \"Unicode hex\": \"2744\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"128326\", \"Unicode hex\": \"1F546\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"10014\", \"Unicode hex\": \"271E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"128328\", \"Unicode hex\": \"1F548\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"10016\", \"Unicode hex\": \"2720\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"10017\", \"Unicode hex\": \"2721\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"9770\", \"Unicode hex\": \"262A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"9775\", \"Unicode hex\": \"262F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"128329\", \"Unicode hex\": \"1F549\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"9784\", \"Unicode hex\": \"2638\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"9800\", \"Unicode hex\": \"2648\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"9801\", \"Unicode hex\": \"2649\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"9802\", \"Unicode hex\": \"264A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"9803\", \"Unicode hex\": \"264B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"9804\", \"Unicode hex\": \"264C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"9805\", \"Unicode hex\": \"264D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"9806\", \"Unicode hex\": \"264E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"9807\", \"Unicode hex\": \"264F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"9808\", \"Unicode hex\": \"2650\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"9809\", \"Unicode hex\": \"2651\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"9810\", \"Unicode hex\": \"2652\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"9811\", \"Unicode hex\": \"2653\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"128624\", \"Unicode hex\": \"1F670\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"128629\", \"Unicode hex\": \"1F675\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"9899\", \"Unicode hex\": \"26AB\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"128318\", \"Unicode hex\": \"1F53E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"9724\", \"Unicode hex\": \"25FC\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"128911\", \"Unicode hex\": \"1F78F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"128912\", \"Unicode hex\": \"1F790\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"10065\", \"Unicode hex\": \"2751\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"10066\", \"Unicode hex\": \"2752\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"128927\", \"Unicode hex\": \"1F79F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"10731\", \"Unicode hex\": \"29EB\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"9670\", \"Unicode hex\": \"25C6\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"10070\", \"Unicode hex\": \"2756\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"11049\", \"Unicode hex\": \"2B29\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"8999\", \"Unicode hex\": \"2327\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"11193\", \"Unicode hex\": \"2BB9\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"8984\", \"Unicode hex\": \"2318\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"127989\", \"Unicode hex\": \"1F3F5\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"127990\", \"Unicode hex\": \"1F3F6\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"128630\", \"Unicode hex\": \"1F676\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"128631\", \"Unicode hex\": \"1F677\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"127\", \"Dingbat hex\": \"7F\", \"Unicode dec\": \"9647\", \"Unicode hex\": \"25AF\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"127243\", \"Unicode hex\": \"1F10B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"10112\", \"Unicode hex\": \"2780\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"10113\", \"Unicode hex\": \"2781\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"10114\", \"Unicode hex\": \"2782\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"10115\", \"Unicode hex\": \"2783\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"10116\", \"Unicode hex\": \"2784\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"10117\", \"Unicode hex\": \"2785\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"10118\", \"Unicode hex\": \"2786\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"10119\", \"Unicode hex\": \"2787\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"10120\", \"Unicode hex\": \"2788\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"10121\", \"Unicode hex\": \"2789\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"127244\", \"Unicode hex\": \"1F10C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"10122\", \"Unicode hex\": \"278A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"10123\", \"Unicode hex\": \"278B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"10124\", \"Unicode hex\": \"278C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"10125\", \"Unicode hex\": \"278D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"10126\", \"Unicode hex\": \"278E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"10127\", \"Unicode hex\": \"278F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"10128\", \"Unicode hex\": \"2790\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"10129\", \"Unicode hex\": \"2791\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"10130\", \"Unicode hex\": \"2792\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"10131\", \"Unicode hex\": \"2793\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"128610\", \"Unicode hex\": \"1F662\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"128608\", \"Unicode hex\": \"1F660\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"128609\", \"Unicode hex\": \"1F661\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"128611\", \"Unicode hex\": \"1F663\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"128606\", \"Unicode hex\": \"1F65E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"128604\", \"Unicode hex\": \"1F65C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"128605\", \"Unicode hex\": \"1F65D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"128607\", \"Unicode hex\": \"1F65F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"8729\", \"Unicode hex\": \"2219\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"8226\", \"Unicode hex\": \"2022\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"11037\", \"Unicode hex\": \"2B1D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"11096\", \"Unicode hex\": \"2B58\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"128902\", \"Unicode hex\": \"1F786\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"128904\", \"Unicode hex\": \"1F788\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"128906\", \"Unicode hex\": \"1F78A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"128907\", \"Unicode hex\": \"1F78B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"128319\", \"Unicode hex\": \"1F53F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"9642\", \"Unicode hex\": \"25AA\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"128910\", \"Unicode hex\": \"1F78E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"128961\", \"Unicode hex\": \"1F7C1\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"128965\", \"Unicode hex\": \"1F7C5\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"9733\", \"Unicode hex\": \"2605\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"128971\", \"Unicode hex\": \"1F7CB\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"128975\", \"Unicode hex\": \"1F7CF\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"128979\", \"Unicode hex\": \"1F7D3\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"128977\", \"Unicode hex\": \"1F7D1\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"11216\", \"Unicode hex\": \"2BD0\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"8982\", \"Unicode hex\": \"2316\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"11214\", \"Unicode hex\": \"2BCE\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"11215\", \"Unicode hex\": \"2BCF\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"11217\", \"Unicode hex\": \"2BD1\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"10026\", \"Unicode hex\": \"272A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"10032\", \"Unicode hex\": \"2730\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"128336\", \"Unicode hex\": \"1F550\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"128337\", \"Unicode hex\": \"1F551\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"128338\", \"Unicode hex\": \"1F552\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"128339\", \"Unicode hex\": \"1F553\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"128340\", \"Unicode hex\": \"1F554\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"128341\", \"Unicode hex\": \"1F555\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"128342\", \"Unicode hex\": \"1F556\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"128343\", \"Unicode hex\": \"1F557\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"128344\", \"Unicode hex\": \"1F558\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"128345\", \"Unicode hex\": \"1F559\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"128346\", \"Unicode hex\": \"1F55A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"128347\", \"Unicode hex\": \"1F55B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"11184\", \"Unicode hex\": \"2BB0\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"11185\", \"Unicode hex\": \"2BB1\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"11186\", \"Unicode hex\": \"2BB2\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"11187\", \"Unicode hex\": \"2BB3\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"11188\", \"Unicode hex\": \"2BB4\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"11189\", \"Unicode hex\": \"2BB5\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"11190\", \"Unicode hex\": \"2BB6\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"11191\", \"Unicode hex\": \"2BB7\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"128618\", \"Unicode hex\": \"1F66A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"128619\", \"Unicode hex\": \"1F66B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"128597\", \"Unicode hex\": \"1F655\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"128596\", \"Unicode hex\": \"1F654\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"128599\", \"Unicode hex\": \"1F657\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"128598\", \"Unicode hex\": \"1F656\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"128592\", \"Unicode hex\": \"1F650\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"128593\", \"Unicode hex\": \"1F651\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"128594\", \"Unicode hex\": \"1F652\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"128595\", \"Unicode hex\": \"1F653\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"9003\", \"Unicode hex\": \"232B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"8998\", \"Unicode hex\": \"2326\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"11160\", \"Unicode hex\": \"2B98\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"11162\", \"Unicode hex\": \"2B9A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"11161\", \"Unicode hex\": \"2B99\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"11163\", \"Unicode hex\": \"2B9B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"11144\", \"Unicode hex\": \"2B88\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"11146\", \"Unicode hex\": \"2B8A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"11145\", \"Unicode hex\": \"2B89\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"11147\", \"Unicode hex\": \"2B8B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"129128\", \"Unicode hex\": \"1F868\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"129130\", \"Unicode hex\": \"1F86A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"129129\", \"Unicode hex\": \"1F869\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"129131\", \"Unicode hex\": \"1F86B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"129132\", \"Unicode hex\": \"1F86C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"129133\", \"Unicode hex\": \"1F86D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"129135\", \"Unicode hex\": \"1F86F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"129134\", \"Unicode hex\": \"1F86E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"129144\", \"Unicode hex\": \"1F878\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"129146\", \"Unicode hex\": \"1F87A\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"129145\", \"Unicode hex\": \"1F879\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"129147\", \"Unicode hex\": \"1F87B\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"129148\", \"Unicode hex\": \"1F87C\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"129149\", \"Unicode hex\": \"1F87D\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"129151\", \"Unicode hex\": \"1F87F\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"129150\", \"Unicode hex\": \"1F87E\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"8678\", \"Unicode hex\": \"21E6\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"8680\", \"Unicode hex\": \"21E8\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"8679\", \"Unicode hex\": \"21E7\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"8681\", \"Unicode hex\": \"21E9\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"11012\", \"Unicode hex\": \"2B04\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"8691\", \"Unicode hex\": \"21F3\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"11009\", \"Unicode hex\": \"2B01\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"11008\", \"Unicode hex\": \"2B00\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"11011\", \"Unicode hex\": \"2B03\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"11010\", \"Unicode hex\": \"2B02\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"129196\", \"Unicode hex\": \"1F8AC\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"250\", \"Dingbat hex\": \"FA\", \"Unicode dec\": \"129197\", \"Unicode hex\": \"1F8AD\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"251\", \"Dingbat hex\": \"FB\", \"Unicode dec\": \"128502\", \"Unicode hex\": \"1F5F6\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"252\", \"Dingbat hex\": \"FC\", \"Unicode dec\": \"10003\", \"Unicode hex\": \"2713\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"253\", \"Dingbat hex\": \"FD\", \"Unicode dec\": \"128503\", \"Unicode hex\": \"1F5F7\" },\n    { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"254\", \"Dingbat hex\": \"FE\", \"Unicode dec\": \"128505\", \"Unicode hex\": \"1F5F9\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"128394\", \"Unicode hex\": \"1F58A\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"128395\", \"Unicode hex\": \"1F58B\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"128396\", \"Unicode hex\": \"1F58C\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"128397\", \"Unicode hex\": \"1F58D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"9988\", \"Unicode hex\": \"2704\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"9984\", \"Unicode hex\": \"2700\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"128382\", \"Unicode hex\": \"1F57E\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"128381\", \"Unicode hex\": \"1F57D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"128453\", \"Unicode hex\": \"1F5C5\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"128454\", \"Unicode hex\": \"1F5C6\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"128455\", \"Unicode hex\": \"1F5C7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"128456\", \"Unicode hex\": \"1F5C8\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"128457\", \"Unicode hex\": \"1F5C9\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"128458\", \"Unicode hex\": \"1F5CA\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"128459\", \"Unicode hex\": \"1F5CB\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"128460\", \"Unicode hex\": \"1F5CC\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"128461\", \"Unicode hex\": \"1F5CD\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"128203\", \"Unicode hex\": \"1F4CB\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"128465\", \"Unicode hex\": \"1F5D1\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"128468\", \"Unicode hex\": \"1F5D4\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"128437\", \"Unicode hex\": \"1F5B5\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"128438\", \"Unicode hex\": \"1F5B6\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"128439\", \"Unicode hex\": \"1F5B7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"128440\", \"Unicode hex\": \"1F5B8\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"128429\", \"Unicode hex\": \"1F5AD\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"128431\", \"Unicode hex\": \"1F5AF\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"128433\", \"Unicode hex\": \"1F5B1\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"128402\", \"Unicode hex\": \"1F592\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"128403\", \"Unicode hex\": \"1F593\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"128408\", \"Unicode hex\": \"1F598\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"128409\", \"Unicode hex\": \"1F599\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"128410\", \"Unicode hex\": \"1F59A\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"128411\", \"Unicode hex\": \"1F59B\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"128072\", \"Unicode hex\": \"1F448\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"128073\", \"Unicode hex\": \"1F449\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"128412\", \"Unicode hex\": \"1F59C\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"128413\", \"Unicode hex\": \"1F59D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"128414\", \"Unicode hex\": \"1F59E\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"128415\", \"Unicode hex\": \"1F59F\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"128416\", \"Unicode hex\": \"1F5A0\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"128417\", \"Unicode hex\": \"1F5A1\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"128070\", \"Unicode hex\": \"1F446\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"128071\", \"Unicode hex\": \"1F447\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"128418\", \"Unicode hex\": \"1F5A2\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"128419\", \"Unicode hex\": \"1F5A3\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"128401\", \"Unicode hex\": \"1F591\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"128500\", \"Unicode hex\": \"1F5F4\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"128504\", \"Unicode hex\": \"1F5F8\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"128501\", \"Unicode hex\": \"1F5F5\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"9745\", \"Unicode hex\": \"2611\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"11197\", \"Unicode hex\": \"2BBD\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"9746\", \"Unicode hex\": \"2612\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"11198\", \"Unicode hex\": \"2BBE\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"11199\", \"Unicode hex\": \"2BBF\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"128711\", \"Unicode hex\": \"1F6C7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"10680\", \"Unicode hex\": \"29B8\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"128625\", \"Unicode hex\": \"1F671\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"128628\", \"Unicode hex\": \"1F674\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"128626\", \"Unicode hex\": \"1F672\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"128627\", \"Unicode hex\": \"1F673\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"8253\", \"Unicode hex\": \"203D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"128633\", \"Unicode hex\": \"1F679\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"128634\", \"Unicode hex\": \"1F67A\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"128635\", \"Unicode hex\": \"1F67B\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"128614\", \"Unicode hex\": \"1F666\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"128612\", \"Unicode hex\": \"1F664\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"128613\", \"Unicode hex\": \"1F665\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"128615\", \"Unicode hex\": \"1F667\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"128602\", \"Unicode hex\": \"1F65A\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"128600\", \"Unicode hex\": \"1F658\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"128601\", \"Unicode hex\": \"1F659\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"128603\", \"Unicode hex\": \"1F65B\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"9450\", \"Unicode hex\": \"24EA\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"9312\", \"Unicode hex\": \"2460\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"9313\", \"Unicode hex\": \"2461\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"9314\", \"Unicode hex\": \"2462\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"9315\", \"Unicode hex\": \"2463\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"9316\", \"Unicode hex\": \"2464\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"9317\", \"Unicode hex\": \"2465\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"9318\", \"Unicode hex\": \"2466\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"9319\", \"Unicode hex\": \"2467\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"9320\", \"Unicode hex\": \"2468\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"9321\", \"Unicode hex\": \"2469\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"9471\", \"Unicode hex\": \"24FF\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"10102\", \"Unicode hex\": \"2776\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"10103\", \"Unicode hex\": \"2777\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"10104\", \"Unicode hex\": \"2778\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"10105\", \"Unicode hex\": \"2779\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"10106\", \"Unicode hex\": \"277A\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"10107\", \"Unicode hex\": \"277B\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"10108\", \"Unicode hex\": \"277C\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"10109\", \"Unicode hex\": \"277D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"10110\", \"Unicode hex\": \"277E\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"10111\", \"Unicode hex\": \"277F\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"9737\", \"Unicode hex\": \"2609\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"127765\", \"Unicode hex\": \"1F315\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"9789\", \"Unicode hex\": \"263D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"9790\", \"Unicode hex\": \"263E\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"11839\", \"Unicode hex\": \"2E3F\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"10013\", \"Unicode hex\": \"271D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"128327\", \"Unicode hex\": \"1F547\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"128348\", \"Unicode hex\": \"1F55C\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"128349\", \"Unicode hex\": \"1F55D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"128350\", \"Unicode hex\": \"1F55E\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"128351\", \"Unicode hex\": \"1F55F\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"128352\", \"Unicode hex\": \"1F560\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"128353\", \"Unicode hex\": \"1F561\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"128354\", \"Unicode hex\": \"1F562\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"128355\", \"Unicode hex\": \"1F563\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"128356\", \"Unicode hex\": \"1F564\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"128357\", \"Unicode hex\": \"1F565\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"128358\", \"Unicode hex\": \"1F566\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"128359\", \"Unicode hex\": \"1F567\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"128616\", \"Unicode hex\": \"1F668\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"128617\", \"Unicode hex\": \"1F669\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"8901\", \"Unicode hex\": \"22C5\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"128900\", \"Unicode hex\": \"1F784\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"10625\", \"Unicode hex\": \"2981\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"9679\", \"Unicode hex\": \"25CF\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"9675\", \"Unicode hex\": \"25CB\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"128901\", \"Unicode hex\": \"1F785\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"128903\", \"Unicode hex\": \"1F787\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"128905\", \"Unicode hex\": \"1F789\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"8857\", \"Unicode hex\": \"2299\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"10687\", \"Unicode hex\": \"29BF\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"128908\", \"Unicode hex\": \"1F78C\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"128909\", \"Unicode hex\": \"1F78D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"9726\", \"Unicode hex\": \"25FE\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"9632\", \"Unicode hex\": \"25A0\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"9633\", \"Unicode hex\": \"25A1\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"128913\", \"Unicode hex\": \"1F791\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"128914\", \"Unicode hex\": \"1F792\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"128915\", \"Unicode hex\": \"1F793\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"128916\", \"Unicode hex\": \"1F794\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"9635\", \"Unicode hex\": \"25A3\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"128917\", \"Unicode hex\": \"1F795\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"128918\", \"Unicode hex\": \"1F796\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"128919\", \"Unicode hex\": \"1F797\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"128920\", \"Unicode hex\": \"1F798\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"11049\", \"Unicode hex\": \"2B29\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"11045\", \"Unicode hex\": \"2B25\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"9671\", \"Unicode hex\": \"25C7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"128922\", \"Unicode hex\": \"1F79A\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"9672\", \"Unicode hex\": \"25C8\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"128923\", \"Unicode hex\": \"1F79B\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"128924\", \"Unicode hex\": \"1F79C\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"128925\", \"Unicode hex\": \"1F79D\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"128926\", \"Unicode hex\": \"1F79E\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"11050\", \"Unicode hex\": \"2B2A\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"11047\", \"Unicode hex\": \"2B27\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"9674\", \"Unicode hex\": \"25CA\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"128928\", \"Unicode hex\": \"1F7A0\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"9686\", \"Unicode hex\": \"25D6\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"9687\", \"Unicode hex\": \"25D7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"11210\", \"Unicode hex\": \"2BCA\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"11211\", \"Unicode hex\": \"2BCB\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"11200\", \"Unicode hex\": \"2BC0\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"11201\", \"Unicode hex\": \"2BC1\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"11039\", \"Unicode hex\": \"2B1F\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"11202\", \"Unicode hex\": \"2BC2\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"11043\", \"Unicode hex\": \"2B23\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"11042\", \"Unicode hex\": \"2B22\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"11203\", \"Unicode hex\": \"2BC3\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"11204\", \"Unicode hex\": \"2BC4\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"128929\", \"Unicode hex\": \"1F7A1\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"128930\", \"Unicode hex\": \"1F7A2\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"128931\", \"Unicode hex\": \"1F7A3\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"128932\", \"Unicode hex\": \"1F7A4\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"128933\", \"Unicode hex\": \"1F7A5\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"128934\", \"Unicode hex\": \"1F7A6\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"128935\", \"Unicode hex\": \"1F7A7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"128936\", \"Unicode hex\": \"1F7A8\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"128937\", \"Unicode hex\": \"1F7A9\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"128938\", \"Unicode hex\": \"1F7AA\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"128939\", \"Unicode hex\": \"1F7AB\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"128940\", \"Unicode hex\": \"1F7AC\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"128941\", \"Unicode hex\": \"1F7AD\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"128942\", \"Unicode hex\": \"1F7AE\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"128943\", \"Unicode hex\": \"1F7AF\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"128944\", \"Unicode hex\": \"1F7B0\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"128945\", \"Unicode hex\": \"1F7B1\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"128946\", \"Unicode hex\": \"1F7B2\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"128947\", \"Unicode hex\": \"1F7B3\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"128948\", \"Unicode hex\": \"1F7B4\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"128949\", \"Unicode hex\": \"1F7B5\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"128950\", \"Unicode hex\": \"1F7B6\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"128951\", \"Unicode hex\": \"1F7B7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"128952\", \"Unicode hex\": \"1F7B8\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"128953\", \"Unicode hex\": \"1F7B9\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"128954\", \"Unicode hex\": \"1F7BA\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"128955\", \"Unicode hex\": \"1F7BB\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"128956\", \"Unicode hex\": \"1F7BC\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"128957\", \"Unicode hex\": \"1F7BD\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"128958\", \"Unicode hex\": \"1F7BE\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"128959\", \"Unicode hex\": \"1F7BF\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"128960\", \"Unicode hex\": \"1F7C0\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"128962\", \"Unicode hex\": \"1F7C2\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"128964\", \"Unicode hex\": \"1F7C4\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"128966\", \"Unicode hex\": \"1F7C6\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"128969\", \"Unicode hex\": \"1F7C9\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"128970\", \"Unicode hex\": \"1F7CA\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"10038\", \"Unicode hex\": \"2736\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"128972\", \"Unicode hex\": \"1F7CC\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"128974\", \"Unicode hex\": \"1F7CE\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"128976\", \"Unicode hex\": \"1F7D0\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"128978\", \"Unicode hex\": \"1F7D2\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"10041\", \"Unicode hex\": \"2739\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"128963\", \"Unicode hex\": \"1F7C3\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"128967\", \"Unicode hex\": \"1F7C7\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"10031\", \"Unicode hex\": \"272F\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"128973\", \"Unicode hex\": \"1F7CD\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"128980\", \"Unicode hex\": \"1F7D4\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"11212\", \"Unicode hex\": \"2BCC\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"11213\", \"Unicode hex\": \"2BCD\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"8251\", \"Unicode hex\": \"203B\" },\n    { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"8258\", \"Unicode hex\": \"2042\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"11104\", \"Unicode hex\": \"2B60\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"11106\", \"Unicode hex\": \"2B62\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"11105\", \"Unicode hex\": \"2B61\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"11107\", \"Unicode hex\": \"2B63\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"11110\", \"Unicode hex\": \"2B66\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"11111\", \"Unicode hex\": \"2B67\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"11113\", \"Unicode hex\": \"2B69\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"11112\", \"Unicode hex\": \"2B68\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"11120\", \"Unicode hex\": \"2B70\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"11122\", \"Unicode hex\": \"2B72\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"11121\", \"Unicode hex\": \"2B71\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"11123\", \"Unicode hex\": \"2B73\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"11126\", \"Unicode hex\": \"2B76\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"11128\", \"Unicode hex\": \"2B78\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"11131\", \"Unicode hex\": \"2B7B\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"11133\", \"Unicode hex\": \"2B7D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"11108\", \"Unicode hex\": \"2B64\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"11109\", \"Unicode hex\": \"2B65\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"11114\", \"Unicode hex\": \"2B6A\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"11116\", \"Unicode hex\": \"2B6C\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"11115\", \"Unicode hex\": \"2B6B\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"11117\", \"Unicode hex\": \"2B6D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"11085\", \"Unicode hex\": \"2B4D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"11168\", \"Unicode hex\": \"2BA0\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"11169\", \"Unicode hex\": \"2BA1\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"11170\", \"Unicode hex\": \"2BA2\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"11171\", \"Unicode hex\": \"2BA3\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"11172\", \"Unicode hex\": \"2BA4\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"11173\", \"Unicode hex\": \"2BA5\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"11174\", \"Unicode hex\": \"2BA6\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"11175\", \"Unicode hex\": \"2BA7\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"11152\", \"Unicode hex\": \"2B90\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"11153\", \"Unicode hex\": \"2B91\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"11154\", \"Unicode hex\": \"2B92\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"11155\", \"Unicode hex\": \"2B93\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"11136\", \"Unicode hex\": \"2B80\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"11139\", \"Unicode hex\": \"2B83\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"11134\", \"Unicode hex\": \"2B7E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"11135\", \"Unicode hex\": \"2B7F\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"11140\", \"Unicode hex\": \"2B84\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"11142\", \"Unicode hex\": \"2B86\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"11141\", \"Unicode hex\": \"2B85\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"11143\", \"Unicode hex\": \"2B87\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"11151\", \"Unicode hex\": \"2B8F\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"11149\", \"Unicode hex\": \"2B8D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"11150\", \"Unicode hex\": \"2B8E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"11148\", \"Unicode hex\": \"2B8C\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"11118\", \"Unicode hex\": \"2B6E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"11119\", \"Unicode hex\": \"2B6F\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"9099\", \"Unicode hex\": \"238B\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"8996\", \"Unicode hex\": \"2324\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"8963\", \"Unicode hex\": \"2303\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"8997\", \"Unicode hex\": \"2325\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"9251\", \"Unicode hex\": \"2423\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"9085\", \"Unicode hex\": \"237D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"8682\", \"Unicode hex\": \"21EA\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"11192\", \"Unicode hex\": \"2BB8\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"129184\", \"Unicode hex\": \"1F8A0\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"129185\", \"Unicode hex\": \"1F8A1\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"129186\", \"Unicode hex\": \"1F8A2\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"129187\", \"Unicode hex\": \"1F8A3\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"129188\", \"Unicode hex\": \"1F8A4\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"129189\", \"Unicode hex\": \"1F8A5\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"129190\", \"Unicode hex\": \"1F8A6\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"129191\", \"Unicode hex\": \"1F8A7\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"129192\", \"Unicode hex\": \"1F8A8\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"129193\", \"Unicode hex\": \"1F8A9\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"129194\", \"Unicode hex\": \"1F8AA\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"129195\", \"Unicode hex\": \"1F8AB\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"129104\", \"Unicode hex\": \"1F850\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"129106\", \"Unicode hex\": \"1F852\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"129105\", \"Unicode hex\": \"1F851\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"129107\", \"Unicode hex\": \"1F853\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"129108\", \"Unicode hex\": \"1F854\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"129109\", \"Unicode hex\": \"1F855\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"129111\", \"Unicode hex\": \"1F857\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"129110\", \"Unicode hex\": \"1F856\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"129112\", \"Unicode hex\": \"1F858\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"129113\", \"Unicode hex\": \"1F859\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"9650\", \"Unicode hex\": \"25B2\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"9660\", \"Unicode hex\": \"25BC\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"9651\", \"Unicode hex\": \"25B3\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"9661\", \"Unicode hex\": \"25BD\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"9664\", \"Unicode hex\": \"25C0\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"9654\", \"Unicode hex\": \"25B6\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"9665\", \"Unicode hex\": \"25C1\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"9655\", \"Unicode hex\": \"25B7\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"9699\", \"Unicode hex\": \"25E3\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"9698\", \"Unicode hex\": \"25E2\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"9700\", \"Unicode hex\": \"25E4\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"9701\", \"Unicode hex\": \"25E5\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"128896\", \"Unicode hex\": \"1F780\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"128898\", \"Unicode hex\": \"1F782\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"128897\", \"Unicode hex\": \"1F781\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"128899\", \"Unicode hex\": \"1F783\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"11205\", \"Unicode hex\": \"2BC5\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"11206\", \"Unicode hex\": \"2BC6\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"11207\", \"Unicode hex\": \"2BC7\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"11208\", \"Unicode hex\": \"2BC8\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"11164\", \"Unicode hex\": \"2B9C\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"11166\", \"Unicode hex\": \"2B9E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"11165\", \"Unicode hex\": \"2B9D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"11167\", \"Unicode hex\": \"2B9F\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"129040\", \"Unicode hex\": \"1F810\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"129042\", \"Unicode hex\": \"1F812\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"129041\", \"Unicode hex\": \"1F811\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"129043\", \"Unicode hex\": \"1F813\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"129044\", \"Unicode hex\": \"1F814\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"129046\", \"Unicode hex\": \"1F816\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"129045\", \"Unicode hex\": \"1F815\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"129047\", \"Unicode hex\": \"1F817\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"129048\", \"Unicode hex\": \"1F818\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"129050\", \"Unicode hex\": \"1F81A\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"129049\", \"Unicode hex\": \"1F819\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"129051\", \"Unicode hex\": \"1F81B\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"129052\", \"Unicode hex\": \"1F81C\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"129054\", \"Unicode hex\": \"1F81E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"129053\", \"Unicode hex\": \"1F81D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"129055\", \"Unicode hex\": \"1F81F\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"129024\", \"Unicode hex\": \"1F800\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"129026\", \"Unicode hex\": \"1F802\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"129025\", \"Unicode hex\": \"1F801\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"129027\", \"Unicode hex\": \"1F803\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"129028\", \"Unicode hex\": \"1F804\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"129030\", \"Unicode hex\": \"1F806\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"129029\", \"Unicode hex\": \"1F805\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"129031\", \"Unicode hex\": \"1F807\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"129032\", \"Unicode hex\": \"1F808\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"129034\", \"Unicode hex\": \"1F80A\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"129033\", \"Unicode hex\": \"1F809\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"129035\", \"Unicode hex\": \"1F80B\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"129056\", \"Unicode hex\": \"1F820\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"129058\", \"Unicode hex\": \"1F822\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"129060\", \"Unicode hex\": \"1F824\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"129062\", \"Unicode hex\": \"1F826\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"129064\", \"Unicode hex\": \"1F828\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"129066\", \"Unicode hex\": \"1F82A\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"129068\", \"Unicode hex\": \"1F82C\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"129180\", \"Unicode hex\": \"1F89C\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"129181\", \"Unicode hex\": \"1F89D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"129182\", \"Unicode hex\": \"1F89E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"129183\", \"Unicode hex\": \"1F89F\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"129070\", \"Unicode hex\": \"1F82E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"129072\", \"Unicode hex\": \"1F830\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"129074\", \"Unicode hex\": \"1F832\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"129076\", \"Unicode hex\": \"1F834\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"129078\", \"Unicode hex\": \"1F836\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"129080\", \"Unicode hex\": \"1F838\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"129082\", \"Unicode hex\": \"1F83A\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"129081\", \"Unicode hex\": \"1F839\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"129083\", \"Unicode hex\": \"1F83B\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"129176\", \"Unicode hex\": \"1F898\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"129178\", \"Unicode hex\": \"1F89A\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"129177\", \"Unicode hex\": \"1F899\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"129179\", \"Unicode hex\": \"1F89B\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"129084\", \"Unicode hex\": \"1F83C\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"129086\", \"Unicode hex\": \"1F83E\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"129085\", \"Unicode hex\": \"1F83D\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"129087\", \"Unicode hex\": \"1F83F\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"129088\", \"Unicode hex\": \"1F840\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"129090\", \"Unicode hex\": \"1F842\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"129089\", \"Unicode hex\": \"1F841\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"129091\", \"Unicode hex\": \"1F843\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"129092\", \"Unicode hex\": \"1F844\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"129094\", \"Unicode hex\": \"1F846\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"129093\", \"Unicode hex\": \"1F845\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"129095\", \"Unicode hex\": \"1F847\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"11176\", \"Unicode hex\": \"2BA8\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"11177\", \"Unicode hex\": \"2BA9\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"11178\", \"Unicode hex\": \"2BAA\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"11179\", \"Unicode hex\": \"2BAB\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"11180\", \"Unicode hex\": \"2BAC\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"11181\", \"Unicode hex\": \"2BAD\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"11182\", \"Unicode hex\": \"2BAE\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"11183\", \"Unicode hex\": \"2BAF\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"129120\", \"Unicode hex\": \"1F860\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"129122\", \"Unicode hex\": \"1F862\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"129121\", \"Unicode hex\": \"1F861\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"129123\", \"Unicode hex\": \"1F863\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"129124\", \"Unicode hex\": \"1F864\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"129125\", \"Unicode hex\": \"1F865\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"129127\", \"Unicode hex\": \"1F867\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"129126\", \"Unicode hex\": \"1F866\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"129136\", \"Unicode hex\": \"1F870\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"129138\", \"Unicode hex\": \"1F872\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"129137\", \"Unicode hex\": \"1F871\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"129139\", \"Unicode hex\": \"1F873\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"129140\", \"Unicode hex\": \"1F874\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"129141\", \"Unicode hex\": \"1F875\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"129143\", \"Unicode hex\": \"1F877\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"129142\", \"Unicode hex\": \"1F876\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"129152\", \"Unicode hex\": \"1F880\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"129154\", \"Unicode hex\": \"1F882\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"129153\", \"Unicode hex\": \"1F881\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"129155\", \"Unicode hex\": \"1F883\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"129156\", \"Unicode hex\": \"1F884\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"129157\", \"Unicode hex\": \"1F885\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"129159\", \"Unicode hex\": \"1F887\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"129158\", \"Unicode hex\": \"1F886\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"129168\", \"Unicode hex\": \"1F890\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"129170\", \"Unicode hex\": \"1F892\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"129169\", \"Unicode hex\": \"1F891\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"129171\", \"Unicode hex\": \"1F893\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"129172\", \"Unicode hex\": \"1F894\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"129174\", \"Unicode hex\": \"1F896\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"129173\", \"Unicode hex\": \"1F895\" },\n    { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"129175\", \"Unicode hex\": \"1F897\" },\n];\nexports.default = dingbats;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hex = exports.dec = exports.codePoint = void 0;\nvar dingbats_1 = __importDefault(require(\"./dingbats\"));\nvar dingbatsByCodePoint = {};\nvar fromCodePoint = String.fromCodePoint ? String.fromCodePoint : fromCodePointPolyfill;\nfor (var _i = 0, dingbats_2 = dingbats_1.default; _i < dingbats_2.length; _i++) {\n    var dingbat = dingbats_2[_i];\n    var codePoint_1 = parseInt(dingbat[\"Unicode dec\"], 10);\n    var scalarValue = {\n        codePoint: codePoint_1,\n        string: fromCodePoint(codePoint_1),\n    };\n    dingbatsByCodePoint[dingbat[\"Typeface name\"].toUpperCase() + \"_\" + dingbat[\"Dingbat dec\"]] = scalarValue;\n}\nfunction codePoint(typeface, codePoint) {\n    return dingbatsByCodePoint[typeface.toUpperCase() + \"_\" + codePoint];\n}\nexports.codePoint = codePoint;\nfunction dec(typeface, dec) {\n    return codePoint(typeface, parseInt(dec, 10));\n}\nexports.dec = dec;\nfunction hex(typeface, hex) {\n    return codePoint(typeface, parseInt(hex, 16));\n}\nexports.hex = hex;\nfunction fromCodePointPolyfill(codePoint) {\n    if (codePoint <= 0xFFFF) {\n        // BMP\n        return String.fromCharCode(codePoint);\n    }\n    else {\n        // Astral\n        // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n        var highSurrogate = Math.floor((codePoint - 0x10000) / 0x400) + 0xD800;\n        var lowSurrogate = (codePoint - 0x10000) % 0x400 + 0xDC00;\n        return String.fromCharCode(highSurrogate, lowSurrogate);\n    }\n}\n;\n","var _ = require(\"underscore\");\n\nexports.paragraph = paragraph;\nexports.run = run;\nexports._elements = elements;\nexports._elementsOfType = elementsOfType;\nexports.getDescendantsOfType = getDescendantsOfType;\nexports.getDescendants = getDescendants;\n\nfunction paragraph(transform) {\n    return elementsOfType(\"paragraph\", transform);\n}\n\nfunction run(transform) {\n    return elementsOfType(\"run\", transform);\n}\n\nfunction elementsOfType(elementType, transform) {\n    return elements(function(element) {\n        if (element.type === elementType) {\n            return transform(element);\n        } else {\n            return element;\n        }\n    });\n}\n\nfunction elements(transform) {\n    return function transformElement(element) {\n        if (element.children) {\n            var children = _.map(element.children, transformElement);\n            element = _.extend(element, {children: children});\n        }\n        return transform(element);\n    };\n}\n\n\nfunction getDescendantsOfType(element, type) {\n    return getDescendants(element).filter(function(descendant) {\n        return descendant.type === type;\n    });\n}\n\nfunction getDescendants(element) {\n    var descendants = [];\n\n    visitDescendants(element, function(descendant) {\n        descendants.push(descendant);\n    });\n\n    return descendants;\n}\n\nfunction visitDescendants(element, visit) {\n    if (element.children) {\n        element.children.forEach(function(child) {\n            visitDescendants(child, visit);\n            visit(child);\n        });\n    }\n}\n","exports.uriToZipEntryName = uriToZipEntryName;\nexports.replaceFragment = replaceFragment;\n\nfunction uriToZipEntryName(base, uri) {\n    if (uri.charAt(0) === \"/\") {\n        return uri.substr(1);\n    } else {\n        // In general, we should check first and second for trailing and leading slashes,\n        // but in our specific case this seems to be sufficient\n        return base + \"/\" + uri;\n    }\n}\n\n\nfunction replaceFragment(uri, fragment) {\n    var hashIndex = uri.indexOf(\"#\");\n    if (hashIndex !== -1) {\n        uri = uri.substring(0, hashIndex);\n    }\n    return uri + \"#\" + fragment;\n}\n","exports.createBodyReader = createBodyReader;\nexports._readNumberingProperties = readNumberingProperties;\n\nvar dingbatToUnicode = require(\"dingbat-to-unicode\");\nvar _ = require(\"underscore\");\n\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\nvar warning = require(\"../results\").warning;\nvar xml = require(\"../xml\");\nvar transforms = require(\"../transforms\");\nvar uris = require(\"./uris\");\n\nfunction createBodyReader(options) {\n    return {\n        readXmlElement: function(element) {\n            return new BodyReader(options).readXmlElement(element);\n        },\n        readXmlElements: function(elements) {\n            return new BodyReader(options).readXmlElements(elements);\n        }\n    };\n}\n\nfunction BodyReader(options) {\n    var complexFieldStack = [];\n    var currentInstrText = [];\n\n    // When a paragraph is marked as deleted, its contents should be combined\n    // with the following paragraph. See 17.13.5.15 del (Deleted Paragraph) of\n    // ECMA-376 4th edition Part 1.\n    var deletedParagraphContents = [];\n\n    var relationships = options.relationships;\n    var contentTypes = options.contentTypes;\n    var docxFile = options.docxFile;\n    var files = options.files;\n    var numbering = options.numbering;\n    var styles = options.styles;\n\n    function readXmlElements(elements) {\n        var results = elements.map(readXmlElement);\n        return combineResults(results);\n    }\n\n    function readXmlElement(element) {\n        if (element.type === \"element\") {\n            var handler = xmlElementReaders[element.name];\n            if (handler) {\n                return handler(element);\n            } else if (!Object.prototype.hasOwnProperty.call(ignoreElements, element.name)) {\n                var message = warning(\"An unrecognised element was ignored: \" + element.name);\n                return emptyResultWithMessages([message]);\n            }\n        }\n        return emptyResult();\n    }\n\n    function readParagraphProperties(element) {\n        return readParagraphStyle(element).map(function(style) {\n            return {\n                type: \"paragraphProperties\",\n                styleId: style.styleId,\n                styleName: style.name,\n                alignment: element.firstOrEmpty(\"w:jc\").attributes[\"w:val\"],\n                numbering: readNumberingProperties(style.styleId, element.firstOrEmpty(\"w:numPr\"), numbering),\n                indent: readParagraphIndent(element.firstOrEmpty(\"w:ind\"))\n            };\n        });\n    }\n\n    function readParagraphIndent(element) {\n        return {\n            start: element.attributes[\"w:start\"] || element.attributes[\"w:left\"],\n            end: element.attributes[\"w:end\"] || element.attributes[\"w:right\"],\n            firstLine: element.attributes[\"w:firstLine\"],\n            hanging: element.attributes[\"w:hanging\"]\n        };\n    }\n\n    function readRunProperties(element) {\n        return readRunStyle(element).map(function(style) {\n            var fontSizeString = element.firstOrEmpty(\"w:sz\").attributes[\"w:val\"];\n            // w:sz gives the font size in half points, so halve the value to get the size in points\n            var fontSize = /^[0-9]+$/.test(fontSizeString) ? parseInt(fontSizeString, 10) / 2 : null;\n\n            return {\n                type: \"runProperties\",\n                styleId: style.styleId,\n                styleName: style.name,\n                verticalAlignment: element.firstOrEmpty(\"w:vertAlign\").attributes[\"w:val\"],\n                font: element.firstOrEmpty(\"w:rFonts\").attributes[\"w:ascii\"],\n                fontSize: fontSize,\n                isBold: readBooleanElement(element.first(\"w:b\")),\n                isUnderline: readUnderline(element.first(\"w:u\")),\n                isItalic: readBooleanElement(element.first(\"w:i\")),\n                isStrikethrough: readBooleanElement(element.first(\"w:strike\")),\n                isAllCaps: readBooleanElement(element.first(\"w:caps\")),\n                isSmallCaps: readBooleanElement(element.first(\"w:smallCaps\")),\n                highlight: readHighlightValue(element.firstOrEmpty(\"w:highlight\").attributes[\"w:val\"])\n            };\n        });\n    }\n\n    function readUnderline(element) {\n        if (element) {\n            var value = element.attributes[\"w:val\"];\n            return value !== undefined && value !== \"false\" && value !== \"0\" && value !== \"none\";\n        } else {\n            return false;\n        }\n    }\n\n    function readBooleanElement(element) {\n        if (element) {\n            var value = element.attributes[\"w:val\"];\n            return value !== \"false\" && value !== \"0\";\n        } else {\n            return false;\n        }\n    }\n\n    function readBooleanAttributeValue(value) {\n        return value !== \"false\" && value !== \"0\";\n    }\n\n    function readHighlightValue(value) {\n        if (!value || value === \"none\") {\n            return null;\n        } else {\n            return value;\n        }\n    }\n\n    function readParagraphStyle(element) {\n        return readStyle(element, \"w:pStyle\", \"Paragraph\", styles.findParagraphStyleById);\n    }\n\n    function readRunStyle(element) {\n        return readStyle(element, \"w:rStyle\", \"Run\", styles.findCharacterStyleById);\n    }\n\n    function readTableStyle(element) {\n        return readStyle(element, \"w:tblStyle\", \"Table\", styles.findTableStyleById);\n    }\n\n    function readStyle(element, styleTagName, styleType, findStyleById) {\n        var messages = [];\n        var styleElement = element.first(styleTagName);\n        var styleId = null;\n        var name = null;\n        if (styleElement) {\n            styleId = styleElement.attributes[\"w:val\"];\n            if (styleId) {\n                var style = findStyleById(styleId);\n                if (style) {\n                    name = style.name;\n                } else {\n                    messages.push(undefinedStyleWarning(styleType, styleId));\n                }\n            }\n        }\n        return elementResultWithMessages({styleId: styleId, name: name}, messages);\n    }\n\n    function readFldChar(element) {\n        var type = element.attributes[\"w:fldCharType\"];\n        if (type === \"begin\") {\n            complexFieldStack.push({type: \"begin\", fldChar: element});\n            currentInstrText = [];\n        } else if (type === \"end\") {\n            var complexFieldEnd = complexFieldStack.pop();\n            if (complexFieldEnd.type === \"begin\") {\n                complexFieldEnd = parseCurrentInstrText(complexFieldEnd);\n            }\n            if (complexFieldEnd.type === \"checkbox\") {\n                return elementResult(documents.checkbox({\n                    checked: complexFieldEnd.checked\n                }));\n            }\n        } else if (type === \"separate\") {\n            var complexFieldSeparate = complexFieldStack.pop();\n            var complexField = parseCurrentInstrText(complexFieldSeparate);\n            complexFieldStack.push(complexField);\n        }\n        return emptyResult();\n    }\n\n    function currentHyperlinkOptions() {\n        var topHyperlink = _.last(complexFieldStack.filter(function(complexField) {\n            return complexField.type === \"hyperlink\";\n        }));\n        return topHyperlink ? topHyperlink.options : null;\n    }\n\n    function parseCurrentInstrText(complexField) {\n        return parseInstrText(\n            currentInstrText.join(''),\n            complexField.type === \"begin\"\n                ? complexField.fldChar\n                : xml.emptyElement\n        );\n    }\n\n    function parseInstrText(instrText, fldChar) {\n        var linkResult = /^\\s*HYPERLINK\\s+(\\\\l\\s+)?(?:\"(.*)\"|([^\\\\]\\S*))/.exec(instrText);\n        if (linkResult) {\n            var location = linkResult[2] === undefined ? linkResult[3] : linkResult[2];\n            var options = linkResult[1] === undefined ? {href: location} : {anchor: location};\n            return {type: \"hyperlink\", options: options};\n        }\n\n        var checkboxResult = /\\s*FORMCHECKBOX\\s*/.exec(instrText);\n        if (checkboxResult) {\n            var checkboxElement = fldChar\n                .firstOrEmpty(\"w:ffData\")\n                .firstOrEmpty(\"w:checkBox\");\n            var checkedElement = checkboxElement.first(\"w:checked\");\n            var checked = checkedElement == null\n                ? readBooleanElement(checkboxElement.first(\"w:default\"))\n                : readBooleanElement(checkedElement);\n            return {type: \"checkbox\", checked: checked};\n        }\n\n        return {type: \"unknown\"};\n    }\n\n    function readInstrText(element) {\n        currentInstrText.push(element.text());\n        return emptyResult();\n    }\n\n    function readSymbol(element) {\n        // See 17.3.3.30 sym (Symbol Character) of ECMA-376 4th edition Part 1\n        var font = element.attributes[\"w:font\"];\n        var char = element.attributes[\"w:char\"];\n        var unicodeCharacter = dingbatToUnicode.hex(font, char);\n        if (unicodeCharacter == null && /^F0..$/.test(char)) {\n            unicodeCharacter = dingbatToUnicode.hex(font, char.substring(2));\n        }\n\n        if (unicodeCharacter == null) {\n            return emptyResultWithMessages([warning(\n                \"A w:sym element with an unsupported character was ignored: char \" +  char + \" in font \" + font\n            )]);\n        } else {\n            return elementResult(new documents.Text(unicodeCharacter.string));\n        }\n    }\n\n    function noteReferenceReader(noteType) {\n        return function(element) {\n            var noteId = element.attributes[\"w:id\"];\n            return elementResult(new documents.NoteReference({\n                noteType: noteType,\n                noteId: noteId\n            }));\n        };\n    }\n\n    function readCommentReference(element) {\n        return elementResult(documents.commentReference({\n            commentId: element.attributes[\"w:id\"]\n        }));\n    }\n\n    function readChildElements(element) {\n        return readXmlElements(element.children);\n    }\n\n    var xmlElementReaders = {\n        \"w:p\": function(element) {\n            var paragraphPropertiesElement = element.firstOrEmpty(\"w:pPr\");\n\n            var isDeleted = !!paragraphPropertiesElement\n                .firstOrEmpty(\"w:rPr\")\n                .first(\"w:del\");\n\n            if (isDeleted) {\n                element.children.forEach(function(child) {\n                    deletedParagraphContents.push(child);\n                });\n                return emptyResult();\n            } else {\n                var childrenXml = element.children;\n                if (deletedParagraphContents.length > 0) {\n                    childrenXml = deletedParagraphContents.concat(childrenXml);\n                    deletedParagraphContents = [];\n                }\n                return ReadResult.map(\n                    readParagraphProperties(paragraphPropertiesElement),\n                    readXmlElements(childrenXml),\n                    function(properties, children) {\n                        return new documents.Paragraph(children, properties);\n                    }\n                ).insertExtra();\n            }\n        },\n        \"w:r\": function(element) {\n            return ReadResult.map(\n                readRunProperties(element.firstOrEmpty(\"w:rPr\")),\n                readXmlElements(element.children),\n                function(properties, children) {\n                    var hyperlinkOptions = currentHyperlinkOptions();\n                    if (hyperlinkOptions !== null) {\n                        children = [new documents.Hyperlink(children, hyperlinkOptions)];\n                    }\n\n                    return new documents.Run(children, properties);\n                }\n            );\n        },\n        \"w:fldChar\": readFldChar,\n        \"w:instrText\": readInstrText,\n        \"w:t\": function(element) {\n            return elementResult(new documents.Text(element.text()));\n        },\n        \"w:tab\": function(element) {\n            return elementResult(new documents.Tab());\n        },\n        \"w:noBreakHyphen\": function() {\n            return elementResult(new documents.Text(\"\\u2011\"));\n        },\n        \"w:softHyphen\": function(element) {\n            return elementResult(new documents.Text(\"\\u00AD\"));\n        },\n        \"w:sym\": readSymbol,\n        \"w:hyperlink\": function(element) {\n            var relationshipId = element.attributes[\"r:id\"];\n            var anchor = element.attributes[\"w:anchor\"];\n            return readXmlElements(element.children).map(function(children) {\n                function create(options) {\n                    var targetFrame = element.attributes[\"w:tgtFrame\"] || null;\n\n                    return new documents.Hyperlink(\n                        children,\n                        _.extend({targetFrame: targetFrame}, options)\n                    );\n                }\n\n                if (relationshipId) {\n                    var href = relationships.findTargetByRelationshipId(relationshipId);\n                    if (anchor) {\n                        href = uris.replaceFragment(href, anchor);\n                    }\n                    return create({href: href});\n                } else if (anchor) {\n                    return create({anchor: anchor});\n                } else {\n                    return children;\n                }\n            });\n        },\n        \"w:tbl\": readTable,\n        \"w:tr\": readTableRow,\n        \"w:tc\": readTableCell,\n        \"w:footnoteReference\": noteReferenceReader(\"footnote\"),\n        \"w:endnoteReference\": noteReferenceReader(\"endnote\"),\n        \"w:commentReference\": readCommentReference,\n        \"w:br\": function(element) {\n            var breakType = element.attributes[\"w:type\"];\n            if (breakType == null || breakType === \"textWrapping\") {\n                return elementResult(documents.lineBreak);\n            } else if (breakType === \"page\") {\n                return elementResult(documents.pageBreak);\n            } else if (breakType === \"column\") {\n                return elementResult(documents.columnBreak);\n            } else {\n                return emptyResultWithMessages([warning(\"Unsupported break type: \" + breakType)]);\n            }\n        },\n        \"w:bookmarkStart\": function(element){\n            var name = element.attributes[\"w:name\"];\n            if (name === \"_GoBack\") {\n                return emptyResult();\n            } else {\n                return elementResult(new documents.BookmarkStart({name: name}));\n            }\n        },\n\n        \"mc:AlternateContent\": function(element) {\n            return readChildElements(element.firstOrEmpty(\"mc:Fallback\"));\n        },\n\n        \"w:sdt\": function(element) {\n            var contentResult = readXmlElements(element.firstOrEmpty(\"w:sdtContent\").children);\n            return contentResult.map(function(content) {\n                // From the WordML standard: https://learn.microsoft.com/en-us/openspecs/office_standards/ms-docx/3350cb64-931f-41f7-8824-f18b2568ce66\n                //\n                // > A CT_SdtCheckbox element that specifies that the parent\n                // > structured document tag is a checkbox when displayed in the\n                // > document. The parent structured document tag contents MUST\n                // > contain a single character and optionally an additional\n                // > character in a deleted run.\n\n                var checkbox = element\n                    .firstOrEmpty(\"w:sdtPr\")\n                    .first(\"wordml:checkbox\");\n\n                if (checkbox) {\n                    var checkedElement = checkbox.first(\"wordml:checked\");\n                    var isChecked = !!checkedElement && readBooleanAttributeValue(\n                        checkedElement.attributes[\"wordml:val\"]\n                    );\n                    var documentCheckbox = documents.checkbox({\n                        checked: isChecked\n                    });\n\n                    var hasCheckbox = false;\n                    var replacedContent = content.map(transforms._elementsOfType(\n                        documents.types.text,\n                        function(text) {\n                            if (text.value.length > 0 && !hasCheckbox) {\n                                hasCheckbox = true;\n                                return documentCheckbox;\n                            } else {\n                                return text;\n                            }\n                        }\n                    ));\n\n                    if (hasCheckbox) {\n                        return replacedContent;\n                    } else {\n                        return documentCheckbox;\n                    }\n\n                } else {\n                    return content;\n                }\n            });\n        },\n\n        \"w:ins\": readChildElements,\n        \"w:object\": readChildElements,\n        \"w:smartTag\": readChildElements,\n        \"w:drawing\": readChildElements,\n        \"w:pict\": function(element) {\n            return readChildElements(element).toExtra();\n        },\n        \"v:roundrect\": readChildElements,\n        \"v:shape\": readChildElements,\n        \"v:textbox\": readChildElements,\n        \"w:txbxContent\": readChildElements,\n        \"wp:inline\": readDrawingElement,\n        \"wp:anchor\": readDrawingElement,\n        \"v:imagedata\": readImageData,\n        \"v:group\": readChildElements,\n        \"v:rect\": readChildElements\n    };\n\n    return {\n        readXmlElement: readXmlElement,\n        readXmlElements: readXmlElements\n    };\n\n\n    function readTable(element) {\n        var propertiesResult = readTableProperties(element.firstOrEmpty(\"w:tblPr\"));\n        return readXmlElements(element.children)\n            .flatMap(calculateRowSpans)\n            .flatMap(function(children) {\n                return propertiesResult.map(function(properties) {\n                    return documents.Table(children, properties);\n                });\n            });\n    }\n\n    function readTableProperties(element) {\n        return readTableStyle(element).map(function(style) {\n            return {\n                styleId: style.styleId,\n                styleName: style.name\n            };\n        });\n    }\n\n    function readTableRow(element) {\n        var properties = element.firstOrEmpty(\"w:trPr\");\n\n        // See 17.13.5.12 del (Deleted Table Row) of ECMA-376 4th edition Part 1\n        var isDeleted = !!properties.first(\"w:del\");\n        if (isDeleted) {\n            return emptyResult();\n        }\n\n        var isHeader = !!properties.first(\"w:tblHeader\");\n        return readXmlElements(element.children).map(function(children) {\n            return documents.TableRow(children, {isHeader: isHeader});\n        });\n    }\n\n    function readTableCell(element) {\n        return readXmlElements(element.children).map(function(children) {\n            var properties = element.firstOrEmpty(\"w:tcPr\");\n\n            var gridSpan = properties.firstOrEmpty(\"w:gridSpan\").attributes[\"w:val\"];\n            var colSpan = gridSpan ? parseInt(gridSpan, 10) : 1;\n\n            var cell = documents.TableCell(children, {colSpan: colSpan});\n            cell._vMerge = readVMerge(properties);\n            return cell;\n        });\n    }\n\n    function readVMerge(properties) {\n        var element = properties.first(\"w:vMerge\");\n        if (element) {\n            var val = element.attributes[\"w:val\"];\n            return val === \"continue\" || !val;\n        } else {\n            return null;\n        }\n    }\n\n    function calculateRowSpans(rows) {\n        var unexpectedNonRows = _.any(rows, function(row) {\n            return row.type !== documents.types.tableRow;\n        });\n        if (unexpectedNonRows) {\n            removeVMergeProperties(rows);\n            return elementResultWithMessages(rows, [warning(\n                \"unexpected non-row element in table, cell merging may be incorrect\"\n            )]);\n        }\n        var unexpectedNonCells = _.any(rows, function(row) {\n            return _.any(row.children, function(cell) {\n                return cell.type !== documents.types.tableCell;\n            });\n        });\n        if (unexpectedNonCells) {\n            removeVMergeProperties(rows);\n            return elementResultWithMessages(rows, [warning(\n                \"unexpected non-cell element in table row, cell merging may be incorrect\"\n            )]);\n        }\n\n        var columns = {};\n\n        rows.forEach(function(row) {\n            var cellIndex = 0;\n            row.children.forEach(function(cell) {\n                if (cell._vMerge && columns[cellIndex]) {\n                    columns[cellIndex].rowSpan++;\n                } else {\n                    columns[cellIndex] = cell;\n                    cell._vMerge = false;\n                }\n                cellIndex += cell.colSpan;\n            });\n        });\n\n        rows.forEach(function(row) {\n            row.children = row.children.filter(function(cell) {\n                return !cell._vMerge;\n            });\n            row.children.forEach(function(cell) {\n                delete cell._vMerge;\n            });\n        });\n\n        return elementResult(rows);\n    }\n\n    function removeVMergeProperties(rows) {\n        rows.forEach(function(row) {\n            var cells = transforms.getDescendantsOfType(row, documents.types.tableCell);\n            cells.forEach(function(cell) {\n                delete cell._vMerge;\n            });\n        });\n    }\n\n    function readDrawingElement(element) {\n        var blips = element\n            .getElementsByTagName(\"a:graphic\")\n            .getElementsByTagName(\"a:graphicData\")\n            .getElementsByTagName(\"pic:pic\")\n            .getElementsByTagName(\"pic:blipFill\")\n            .getElementsByTagName(\"a:blip\");\n\n        return combineResults(blips.map(readBlip.bind(null, element)));\n    }\n\n    function readBlip(element, blip) {\n        var propertiesElement = element.firstOrEmpty(\"wp:docPr\");\n        var properties = propertiesElement.attributes;\n\n        var altText = isBlank(properties.descr) ? properties.title : properties.descr;\n\n        var blipImageFile = findBlipImageFile(blip);\n        if (blipImageFile === null) {\n            return emptyResultWithMessages([warning(\"Could not find image file for a:blip element\")]);\n        }\n\n        return readImage(blipImageFile, altText).map(function(imageElement) {\n            var hlinkClickElement = propertiesElement.firstOrEmpty(\"a:hlinkClick\");\n            var relationshipId = hlinkClickElement.attributes[\"r:id\"];\n            if (relationshipId) {\n                var href = relationships.findTargetByRelationshipId(relationshipId);\n                return new documents.Hyperlink([imageElement], {href: href});\n            } else {\n                return imageElement;\n            }\n        });\n    }\n\n    function isBlank(value) {\n        return value == null || /^\\s*$/.test(value);\n    }\n\n    function findBlipImageFile(blip) {\n        var embedRelationshipId = blip.attributes[\"r:embed\"];\n        var linkRelationshipId = blip.attributes[\"r:link\"];\n        if (embedRelationshipId) {\n            return findEmbeddedImageFile(embedRelationshipId);\n        } else if (linkRelationshipId) {\n            var imagePath = relationships.findTargetByRelationshipId(linkRelationshipId);\n            return {\n                path: imagePath,\n                read: files.read.bind(files, imagePath)\n            };\n        } else {\n            return null;\n        }\n    }\n\n    function readImageData(element) {\n        var relationshipId = element.attributes['r:id'];\n\n        if (relationshipId) {\n            return readImage(\n                findEmbeddedImageFile(relationshipId),\n                element.attributes[\"o:title\"]);\n        } else {\n            return emptyResultWithMessages([warning(\"A v:imagedata element without a relationship ID was ignored\")]);\n        }\n    }\n\n    function findEmbeddedImageFile(relationshipId) {\n        var path = uris.uriToZipEntryName(\"word\", relationships.findTargetByRelationshipId(relationshipId));\n        return {\n            path: path,\n            read: docxFile.read.bind(docxFile, path)\n        };\n    }\n\n    function readImage(imageFile, altText) {\n        var contentType = contentTypes.findContentType(imageFile.path);\n\n        var image = documents.Image({\n            readImage: imageFile.read,\n            altText: altText,\n            contentType: contentType\n        });\n        var warnings = supportedImageTypes[contentType] ?\n            [] : warning(\"Image of type \" + contentType + \" is unlikely to display in web browsers\");\n        return elementResultWithMessages(image, warnings);\n    }\n\n    function undefinedStyleWarning(type, styleId) {\n        return warning(\n            type + \" style with ID \" + styleId + \" was referenced but not defined in the document\");\n    }\n}\n\n\nfunction readNumberingProperties(styleId, element, numbering) {\n    var level = element.firstOrEmpty(\"w:ilvl\").attributes[\"w:val\"];\n    var numId = element.firstOrEmpty(\"w:numId\").attributes[\"w:val\"];\n    if (level !== undefined && numId !== undefined) {\n        return numbering.findLevel(numId, level);\n    }\n\n    if (styleId != null) {\n        var levelByStyleId = numbering.findLevelByParagraphStyleId(styleId);\n        if (levelByStyleId != null) {\n            return levelByStyleId;\n        }\n    }\n\n    // Some malformed documents define numbering levels without an index, and\n    // reference the numbering using a w:numPr element without a w:ilvl child.\n    // To handle such cases, we assume a level of 0 as a fallback.\n    if (numId !== undefined) {\n        return numbering.findLevel(numId, \"0\");\n    }\n\n    return null;\n}\n\nvar supportedImageTypes = {\n    \"image/png\": true,\n    \"image/gif\": true,\n    \"image/jpeg\": true,\n    \"image/svg+xml\": true,\n    \"image/tiff\": true\n};\n\nvar ignoreElements = {\n    \"office-word:wrap\": true,\n    \"v:shadow\": true,\n    \"v:shapetype\": true,\n    \"w:annotationRef\": true,\n    \"w:bookmarkEnd\": true,\n    \"w:sectPr\": true,\n    \"w:proofErr\": true,\n    \"w:lastRenderedPageBreak\": true,\n    \"w:commentRangeStart\": true,\n    \"w:commentRangeEnd\": true,\n    \"w:del\": true,\n    \"w:footnoteRef\": true,\n    \"w:endnoteRef\": true,\n    \"w:pPr\": true,\n    \"w:rPr\": true,\n    \"w:tblPr\": true,\n    \"w:tblGrid\": true,\n    \"w:trPr\": true,\n    \"w:tcPr\": true\n};\n\nfunction emptyResultWithMessages(messages) {\n    return new ReadResult(null, null, messages);\n}\n\nfunction emptyResult() {\n    return new ReadResult(null);\n}\n\nfunction elementResult(element) {\n    return new ReadResult(element);\n}\n\nfunction elementResultWithMessages(element, messages) {\n    return new ReadResult(element, null, messages);\n}\n\nfunction ReadResult(element, extra, messages) {\n    this.value = element || [];\n    this.extra = extra || [];\n    this._result = new Result({\n        element: this.value,\n        extra: extra\n    }, messages);\n    this.messages = this._result.messages;\n}\n\nReadResult.prototype.toExtra = function() {\n    return new ReadResult(null, joinElements(this.extra, this.value), this.messages);\n};\n\nReadResult.prototype.insertExtra = function() {\n    var extra = this.extra;\n    if (extra && extra.length) {\n        return new ReadResult(joinElements(this.value, extra), null, this.messages);\n    } else {\n        return this;\n    }\n};\n\nReadResult.prototype.map = function(func) {\n    var result = this._result.map(function(value) {\n        return func(value.element);\n    });\n    return new ReadResult(result.value, this.extra, result.messages);\n};\n\nReadResult.prototype.flatMap = function(func) {\n    var result = this._result.flatMap(function(value) {\n        return func(value.element)._result;\n    });\n    return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages);\n};\n\nReadResult.map = function(first, second, func) {\n    return new ReadResult(\n        func(first.value, second.value),\n        joinElements(first.extra, second.extra),\n        first.messages.concat(second.messages)\n    );\n};\n\nfunction combineResults(results) {\n    var result = Result.combine(_.pluck(results, \"_result\"));\n    return new ReadResult(\n        _.flatten(_.pluck(result.value, \"element\")),\n        _.filter(_.flatten(_.pluck(result.value, \"extra\")), identity),\n        result.messages\n    );\n}\n\nfunction joinElements(first, second) {\n    return _.flatten([first, second]);\n}\n\nfunction identity(value) {\n    return value;\n}\n","exports.DocumentXmlReader = DocumentXmlReader;\n\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\n\nfunction DocumentXmlReader(options) {\n    var bodyReader = options.bodyReader;\n\n    function convertXmlToDocument(element) {\n        var body = element.first(\"w:body\");\n\n        if (body == null) {\n            throw new Error(\"Could not find the body element: are you sure this is a docx file?\");\n        }\n\n        var result = bodyReader.readXmlElements(body.children)\n            .map(function(children) {\n                return new documents.Document(children, {\n                    notes: options.notes,\n                    comments: options.comments\n                });\n            });\n        return new Result(result.value, result.messages);\n    }\n\n    return {\n        convertXmlToDocument: convertXmlToDocument\n    };\n}\n","exports.readRelationships = readRelationships;\nexports.defaultValue = new Relationships([]);\nexports.Relationships = Relationships;\n\n\nfunction readRelationships(element) {\n    var relationships = [];\n    element.children.forEach(function(child) {\n        if (child.name === \"relationships:Relationship\") {\n            var relationship = {\n                relationshipId: child.attributes.Id,\n                target: child.attributes.Target,\n                type: child.attributes.Type\n            };\n            relationships.push(relationship);\n        }\n    });\n    return new Relationships(relationships);\n}\n\nfunction Relationships(relationships) {\n    var targetsByRelationshipId = {};\n    relationships.forEach(function(relationship) {\n        targetsByRelationshipId[relationship.relationshipId] = relationship.target;\n    });\n\n    var targetsByType = {};\n    relationships.forEach(function(relationship) {\n        if (!targetsByType[relationship.type]) {\n            targetsByType[relationship.type] = [];\n        }\n        targetsByType[relationship.type].push(relationship.target);\n    });\n\n    return {\n        findTargetByRelationshipId: function(relationshipId) {\n            return targetsByRelationshipId[relationshipId];\n        },\n        findTargetsByType: function(type) {\n            return targetsByType[type] || [];\n        }\n    };\n}\n","exports.readContentTypesFromXml = readContentTypesFromXml;\n\nvar fallbackContentTypes = {\n    \"png\": \"png\",\n    \"gif\": \"gif\",\n    \"jpeg\": \"jpeg\",\n    \"jpg\": \"jpeg\",\n    \"tif\": \"tiff\",\n    \"tiff\": \"tiff\",\n    \"bmp\": \"bmp\"\n};\n\nexports.defaultContentTypes = contentTypes({}, {});\n\n\nfunction readContentTypesFromXml(element) {\n    var extensionDefaults = {};\n    var overrides = {};\n    \n    element.children.forEach(function(child) {\n        if (child.name === \"content-types:Default\") {\n            extensionDefaults[child.attributes.Extension] = child.attributes.ContentType;\n        }\n        if (child.name === \"content-types:Override\") {\n            var name = child.attributes.PartName;\n            if (name.charAt(0) === \"/\") {\n                name = name.substring(1);\n            }\n            overrides[name] = child.attributes.ContentType;\n        }\n    });\n    return contentTypes(overrides, extensionDefaults);\n}\n\nfunction contentTypes(overrides, extensionDefaults) {\n    return {\n        findContentType: function(path) {\n            var overrideContentType = overrides[path];\n            if (overrideContentType) {\n                return overrideContentType;\n            } else {\n                var pathParts = path.split(\".\");\n                var extension = pathParts[pathParts.length - 1];\n                if (extensionDefaults.hasOwnProperty(extension)) {\n                    return extensionDefaults[extension];\n                } else {\n                    var fallback = fallbackContentTypes[extension.toLowerCase()];\n                    if (fallback) {\n                        return \"image/\" + fallback;\n                    } else {\n                        return null;\n                    }\n                }\n            }\n        }\n    };\n    \n}\n","var _ = require(\"underscore\");\n\nexports.readNumberingXml = readNumberingXml;\nexports.Numbering = Numbering;\nexports.defaultNumbering = new Numbering({}, {});\n\nfunction Numbering(nums, abstractNums, styles) {\n    var allLevels = _.flatten(_.values(abstractNums).map(function(abstractNum) {\n        return _.values(abstractNum.levels);\n    }));\n\n    var levelsByParagraphStyleId = _.indexBy(\n        allLevels.filter(function(level) {\n            return level.paragraphStyleId != null;\n        }),\n        \"paragraphStyleId\"\n    );\n\n    function findLevel(numId, level) {\n        return findLevelWithSeenNumIds(numId, level, {});\n    }\n\n    function findLevelWithSeenNumIds(numId, level, seenNumIds) {\n        if (seenNumIds[numId]) {\n            return null;\n        }\n        seenNumIds[numId] = true;\n\n        var num = nums[numId];\n        if (!num) {\n            return null;\n        }\n\n        var abstractNum = abstractNums[num.abstractNumId];\n        if (!abstractNum) {\n            return null;\n        } else if (abstractNum.numStyleLink == null) {\n            return abstractNums[num.abstractNumId].levels[level];\n        } else {\n            var style = styles.findNumberingStyleById(abstractNum.numStyleLink);\n            return findLevelWithSeenNumIds(style.numId, level, seenNumIds);\n        }\n    }\n\n    function findLevelByParagraphStyleId(styleId) {\n        return levelsByParagraphStyleId[styleId] || null;\n    }\n\n    return {\n        findLevel: findLevel,\n        findLevelByParagraphStyleId: findLevelByParagraphStyleId\n    };\n}\n\nfunction readNumberingXml(root, options) {\n    if (!options || !options.styles) {\n        throw new Error(\"styles is missing\");\n    }\n\n    var abstractNums = readAbstractNums(root);\n    var nums = readNums(root, abstractNums);\n    return new Numbering(nums, abstractNums, options.styles);\n}\n\nfunction readAbstractNums(root) {\n    var abstractNums = {};\n    root.getElementsByTagName(\"w:abstractNum\").forEach(function(element) {\n        var id = element.attributes[\"w:abstractNumId\"];\n        abstractNums[id] = readAbstractNum(element);\n    });\n    return abstractNums;\n}\n\nfunction readAbstractNum(element) {\n    var levels = {};\n\n    // Some malformed documents define numbering levels without an index, and\n    // reference the numbering using a w:numPr element without a w:ilvl child.\n    // To handle such cases, we assume a level of 0 as a fallback.\n    var levelWithoutIndex = null;\n\n    element.getElementsByTagName(\"w:lvl\").forEach(function(levelElement) {\n        var levelIndex = levelElement.attributes[\"w:ilvl\"];\n        var numFmt = levelElement.firstOrEmpty(\"w:numFmt\").attributes[\"w:val\"];\n        var isOrdered = numFmt !== \"bullet\";\n        var paragraphStyleId = levelElement.firstOrEmpty(\"w:pStyle\").attributes[\"w:val\"];\n\n        if (levelIndex === undefined) {\n            levelWithoutIndex = {\n                isOrdered: isOrdered,\n                level: \"0\",\n                paragraphStyleId: paragraphStyleId\n            };\n        } else {\n            levels[levelIndex] = {\n                isOrdered: isOrdered,\n                level: levelIndex,\n                paragraphStyleId: paragraphStyleId\n            };\n        }\n    });\n\n    if (levelWithoutIndex !== null && levels[levelWithoutIndex.level] === undefined) {\n        levels[levelWithoutIndex.level] = levelWithoutIndex;\n    }\n\n    var numStyleLink = element.firstOrEmpty(\"w:numStyleLink\").attributes[\"w:val\"];\n\n    return {levels: levels, numStyleLink: numStyleLink};\n}\n\nfunction readNums(root) {\n    var nums = {};\n    root.getElementsByTagName(\"w:num\").forEach(function(element) {\n        var numId = element.attributes[\"w:numId\"];\n        var abstractNumId = element.first(\"w:abstractNumId\").attributes[\"w:val\"];\n        nums[numId] = {abstractNumId: abstractNumId};\n    });\n    return nums;\n}\n","exports.readStylesXml = readStylesXml;\nexports.Styles = Styles;\nexports.defaultStyles = new Styles({}, {});\n\nfunction Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) {\n    return {\n        findParagraphStyleById: function(styleId) {\n            return paragraphStyles[styleId];\n        },\n        findCharacterStyleById: function(styleId) {\n            return characterStyles[styleId];\n        },\n        findTableStyleById: function(styleId) {\n            return tableStyles[styleId];\n        },\n        findNumberingStyleById: function(styleId) {\n            return numberingStyles[styleId];\n        }\n    };\n}\n\nStyles.EMPTY = new Styles({}, {}, {}, {});\n\nfunction readStylesXml(root) {\n    var paragraphStyles = {};\n    var characterStyles = {};\n    var tableStyles = {};\n    var numberingStyles = {};\n\n    var styles = {\n        \"paragraph\": paragraphStyles,\n        \"character\": characterStyles,\n        \"table\": tableStyles,\n        \"numbering\": numberingStyles\n    };\n\n    root.getElementsByTagName(\"w:style\").forEach(function(styleElement) {\n        var style = readStyleElement(styleElement);\n        var styleSet = styles[style.type];\n\n        // Per 17.7.4.17 style (Style Definition) of ECMA-376 4th edition Part 1:\n        //\n        // > If multiple style definitions each declare the same value for their\n        // > styleId, then the first such instance shall keep its current\n        // > identifier with all other instances being reassigned in any manner\n        // > desired.\n        //\n        // For the purpose of conversion, there's no point holding onto styles\n        // with reassigned style IDs, so we ignore such style definitions.\n\n        if (styleSet && styleSet[style.styleId] === undefined) {\n            styleSet[style.styleId] = style;\n        }\n    });\n\n    return new Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles);\n}\n\nfunction readStyleElement(styleElement) {\n    var type = styleElement.attributes[\"w:type\"];\n\n    if (type === \"numbering\") {\n        return readNumberingStyleElement(type, styleElement);\n    } else {\n        var styleId = readStyleId(styleElement);\n        var name = styleName(styleElement);\n        return {type: type, styleId: styleId, name: name};\n    }\n}\n\nfunction styleName(styleElement) {\n    var nameElement = styleElement.first(\"w:name\");\n    return nameElement ? nameElement.attributes[\"w:val\"] : null;\n}\n\nfunction readNumberingStyleElement(type, styleElement) {\n    var styleId = readStyleId(styleElement);\n\n    var numId = styleElement\n        .firstOrEmpty(\"w:pPr\")\n        .firstOrEmpty(\"w:numPr\")\n        .firstOrEmpty(\"w:numId\")\n        .attributes[\"w:val\"];\n\n    return {type: type, numId: numId, styleId: styleId};\n}\n\nfunction readStyleId(styleElement) {\n    return styleElement.attributes[\"w:styleId\"];\n}\n","var documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\nexports.createFootnotesReader = createReader.bind(this, \"footnote\");\nexports.createEndnotesReader = createReader.bind(this, \"endnote\");\n\nfunction createReader(noteType, bodyReader) {\n    function readNotesXml(element) {\n        return Result.combine(element.getElementsByTagName(\"w:\" + noteType)\n            .filter(isFootnoteElement)\n            .map(readFootnoteElement));\n    }\n\n    function isFootnoteElement(element) {\n        var type = element.attributes[\"w:type\"];\n        return type !== \"continuationSeparator\" && type !== \"separator\";\n    }\n\n    function readFootnoteElement(footnoteElement) {\n        var id = footnoteElement.attributes[\"w:id\"];\n        return bodyReader.readXmlElements(footnoteElement.children)\n            .map(function(body) {\n                return documents.Note({noteType: noteType, noteId: id, body: body});\n            });\n    }\n    \n    return readNotesXml;\n}\n","var documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\nfunction createCommentsReader(bodyReader) {\n    function readCommentsXml(element) {\n        return Result.combine(element.getElementsByTagName(\"w:comment\")\n            .map(readCommentElement));\n    }\n\n    function readCommentElement(element) {\n        var id = element.attributes[\"w:id\"];\n\n        function readOptionalAttribute(name) {\n            return (element.attributes[name] || \"\").trim() || null;\n        }\n\n        return bodyReader.readXmlElements(element.children)\n            .map(function(body) {\n                return documents.comment({\n                    commentId: id,\n                    body: body,\n                    authorName: readOptionalAttribute(\"w:author\"),\n                    authorInitials: readOptionalAttribute(\"w:initials\")\n                });\n            });\n    }\n    \n    return readCommentsXml;\n}\n\nexports.createCommentsReader = createCommentsReader;\n","var promises = require(\"../../lib/promises\");\n\nexports.Files = Files;\n\n\nfunction Files() {\n    function read(uri) {\n        return promises.reject(new Error(\"could not open external image: '\" + uri + \"'\\ncannot open linked files from a web browser\"));\n    }\n    \n    return {\n        read: read\n    };\n}\n","exports.read = read;\nexports._findPartPaths = findPartPaths;\n\nvar promises = require(\"../promises\");\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\nvar zipfile = require(\"../zipfile\");\n\nvar readXmlFromZipFile = require(\"./office-xml-reader\").readXmlFromZipFile;\nvar createBodyReader = require(\"./body-reader\").createBodyReader;\nvar DocumentXmlReader = require(\"./document-xml-reader\").DocumentXmlReader;\nvar relationshipsReader = require(\"./relationships-reader\");\nvar contentTypesReader = require(\"./content-types-reader\");\nvar numberingXml = require(\"./numbering-xml\");\nvar stylesReader = require(\"./styles-reader\");\nvar notesReader = require(\"./notes-reader\");\nvar commentsReader = require(\"./comments-reader\");\nvar Files = require(\"./files\").Files;\n\n\nfunction read(docxFile, input, options) {\n    input = input || {};\n    options = options || {};\n\n    var files = new Files({\n        externalFileAccess: options.externalFileAccess,\n        relativeToFile: input.path\n    });\n\n    return promises.props({\n        contentTypes: readContentTypesFromZipFile(docxFile),\n        partPaths: findPartPaths(docxFile),\n        docxFile: docxFile,\n        files: files\n    }).also(function(result) {\n        return {\n            styles: readStylesFromZipFile(docxFile, result.partPaths.styles)\n        };\n    }).also(function(result) {\n        return {\n            numbering: readNumberingFromZipFile(docxFile, result.partPaths.numbering, result.styles)\n        };\n    }).also(function(result) {\n        return {\n            footnotes: readXmlFileWithBody(result.partPaths.footnotes, result, function(bodyReader, xml) {\n                if (xml) {\n                    return notesReader.createFootnotesReader(bodyReader)(xml);\n                } else {\n                    return new Result([]);\n                }\n            }),\n            endnotes: readXmlFileWithBody(result.partPaths.endnotes, result, function(bodyReader, xml) {\n                if (xml) {\n                    return notesReader.createEndnotesReader(bodyReader)(xml);\n                } else {\n                    return new Result([]);\n                }\n            }),\n            comments: readXmlFileWithBody(result.partPaths.comments, result, function(bodyReader, xml) {\n                if (xml) {\n                    return commentsReader.createCommentsReader(bodyReader)(xml);\n                } else {\n                    return new Result([]);\n                }\n            })\n        };\n    }).also(function(result) {\n        return {\n            notes: result.footnotes.flatMap(function(footnotes) {\n                return result.endnotes.map(function(endnotes) {\n                    return new documents.Notes(footnotes.concat(endnotes));\n                });\n            })\n        };\n    }).then(function(result) {\n        return readXmlFileWithBody(result.partPaths.mainDocument, result, function(bodyReader, xml) {\n            return result.notes.flatMap(function(notes) {\n                return result.comments.flatMap(function(comments) {\n                    var reader = new DocumentXmlReader({\n                        bodyReader: bodyReader,\n                        notes: notes,\n                        comments: comments\n                    });\n                    return reader.convertXmlToDocument(xml);\n                });\n            });\n        });\n    });\n}\n\nfunction findPartPaths(docxFile) {\n    return readPackageRelationships(docxFile).then(function(packageRelationships) {\n        var mainDocumentPath = findPartPath({\n            docxFile: docxFile,\n            relationships: packageRelationships,\n            relationshipType: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n            basePath: \"\",\n            fallbackPath: \"word/document.xml\"\n        });\n\n        if (!docxFile.exists(mainDocumentPath)) {\n            throw new Error(\"Could not find main document part. Are you sure this is a valid .docx file?\");\n        }\n\n        return xmlFileReader({\n            filename: relationshipsFilename(mainDocumentPath),\n            readElement: relationshipsReader.readRelationships,\n            defaultValue: relationshipsReader.defaultValue\n        })(docxFile).then(function(documentRelationships) {\n            function findPartRelatedToMainDocument(name) {\n                return findPartPath({\n                    docxFile: docxFile,\n                    relationships: documentRelationships,\n                    relationshipType: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/\" + name,\n                    basePath: zipfile.splitPath(mainDocumentPath).dirname,\n                    fallbackPath: \"word/\" + name + \".xml\"\n                });\n            }\n\n            return {\n                mainDocument: mainDocumentPath,\n                comments: findPartRelatedToMainDocument(\"comments\"),\n                endnotes: findPartRelatedToMainDocument(\"endnotes\"),\n                footnotes: findPartRelatedToMainDocument(\"footnotes\"),\n                numbering: findPartRelatedToMainDocument(\"numbering\"),\n                styles: findPartRelatedToMainDocument(\"styles\")\n            };\n        });\n    });\n}\n\nfunction findPartPath(options) {\n    var docxFile = options.docxFile;\n    var relationships = options.relationships;\n    var relationshipType = options.relationshipType;\n    var basePath = options.basePath;\n    var fallbackPath = options.fallbackPath;\n\n    var targets = relationships.findTargetsByType(relationshipType);\n    var normalisedTargets = targets.map(function(target) {\n        return stripPrefix(zipfile.joinPath(basePath, target), \"/\");\n    });\n    var validTargets = normalisedTargets.filter(function(target) {\n        return docxFile.exists(target);\n    });\n    if (validTargets.length === 0) {\n        return fallbackPath;\n    } else {\n        return validTargets[0];\n    }\n}\n\nfunction stripPrefix(value, prefix) {\n    if (value.substring(0, prefix.length) === prefix) {\n        return value.substring(prefix.length);\n    } else {\n        return value;\n    }\n}\n\nfunction xmlFileReader(options) {\n    return function(zipFile) {\n        return readXmlFromZipFile(zipFile, options.filename)\n            .then(function(element) {\n                return element ? options.readElement(element) : options.defaultValue;\n            });\n    };\n}\n\nfunction readXmlFileWithBody(filename, options, func) {\n    var readRelationshipsFromZipFile = xmlFileReader({\n        filename: relationshipsFilename(filename),\n        readElement: relationshipsReader.readRelationships,\n        defaultValue: relationshipsReader.defaultValue\n    });\n\n    return readRelationshipsFromZipFile(options.docxFile).then(function(relationships) {\n        var bodyReader = new createBodyReader({\n            relationships: relationships,\n            contentTypes: options.contentTypes,\n            docxFile: options.docxFile,\n            numbering: options.numbering,\n            styles: options.styles,\n            files: options.files\n        });\n        return readXmlFromZipFile(options.docxFile, filename)\n            .then(function(xml) {\n                return func(bodyReader, xml);\n            });\n    });\n}\n\nfunction relationshipsFilename(filename) {\n    var split = zipfile.splitPath(filename);\n    return zipfile.joinPath(split.dirname, \"_rels\", split.basename + \".rels\");\n}\n\nvar readContentTypesFromZipFile = xmlFileReader({\n    filename: \"[Content_Types].xml\",\n    readElement: contentTypesReader.readContentTypesFromXml,\n    defaultValue: contentTypesReader.defaultContentTypes\n});\n\nfunction readNumberingFromZipFile(zipFile, path, styles) {\n    return xmlFileReader({\n        filename: path,\n        readElement: function(element) {\n            return numberingXml.readNumberingXml(element, {styles: styles});\n        },\n        defaultValue: numberingXml.defaultNumbering\n    })(zipFile);\n}\n\nfunction readStylesFromZipFile(zipFile, path) {\n    return xmlFileReader({\n        filename: path,\n        readElement: stylesReader.readStylesXml,\n        defaultValue: stylesReader.defaultStyles\n    })(zipFile);\n}\n\nvar readPackageRelationships = xmlFileReader({\n    filename: \"_rels/.rels\",\n    readElement: relationshipsReader.readRelationships,\n    defaultValue: relationshipsReader.defaultValue\n});\n","var _ = require(\"underscore\");\n\nvar promises = require(\"../promises\");\nvar xml = require(\"../xml\");\n\nexports.writeStyleMap = writeStyleMap;\nexports.readStyleMap = readStyleMap;\n\n\nvar schema = \"http://schemas.zwobble.org/mammoth/style-map\";\nvar styleMapPath = \"mammoth/style-map\";\nvar styleMapAbsolutePath = \"/\" + styleMapPath;\n\nfunction writeStyleMap(docxFile, styleMap) {\n    docxFile.write(styleMapPath, styleMap);\n    return updateRelationships(docxFile).then(function() {\n        return updateContentTypes(docxFile);\n    });\n}\n\nfunction updateRelationships(docxFile) {\n    var path = \"word/_rels/document.xml.rels\";\n    var relationshipsUri = \"http://schemas.openxmlformats.org/package/2006/relationships\";\n    var relationshipElementName = \"{\" + relationshipsUri + \"}Relationship\";\n    return docxFile.read(path, \"utf8\")\n        .then(xml.readString)\n        .then(function(relationshipsContainer) {\n            var relationships = relationshipsContainer.children;\n            addOrUpdateElement(relationships, relationshipElementName, \"Id\", {\n                \"Id\": \"rMammothStyleMap\",\n                \"Type\": schema,\n                \"Target\": styleMapAbsolutePath\n            });\n            \n            var namespaces = {\"\": relationshipsUri};\n            return docxFile.write(path, xml.writeString(relationshipsContainer, namespaces));\n        });\n}\n\nfunction updateContentTypes(docxFile) {\n    var path = \"[Content_Types].xml\";\n    var contentTypesUri = \"http://schemas.openxmlformats.org/package/2006/content-types\";\n    var overrideName = \"{\" + contentTypesUri + \"}Override\";\n    return docxFile.read(path, \"utf8\")\n        .then(xml.readString)\n        .then(function(typesElement) {\n            var children = typesElement.children;\n            addOrUpdateElement(children, overrideName, \"PartName\", {\n                \"PartName\": styleMapAbsolutePath,\n                \"ContentType\": \"text/prs.mammoth.style-map\"\n            });\n            var namespaces = {\"\": contentTypesUri};\n            return docxFile.write(path, xml.writeString(typesElement, namespaces));\n        });\n}\n\nfunction addOrUpdateElement(elements, name, identifyingAttribute, attributes) {\n    var existingElement = _.find(elements, function(element) {\n        return element.name === name &&\n            element.attributes[identifyingAttribute] === attributes[identifyingAttribute];\n    });\n    if (existingElement) {\n        existingElement.attributes = attributes;\n    } else {\n        elements.push(xml.element(name, attributes));\n    }\n}\n\nfunction readStyleMap(docxFile) {\n    if (docxFile.exists(styleMapPath)) {\n        return docxFile.read(styleMapPath, \"utf8\");\n    } else {\n        return promises.resolve(null);\n    }\n}\n","var htmlPaths = require(\"../styles/html-paths\");\n\n\nfunction nonFreshElement(tagName, attributes, children) {\n    return elementWithTag(\n        htmlPaths.element(tagName, attributes, {fresh: false}),\n        children);\n}\n\nfunction freshElement(tagName, attributes, children) {\n    var tag = htmlPaths.element(tagName, attributes, {fresh: true});\n    return elementWithTag(tag, children);\n}\n\nfunction elementWithTag(tag, children) {\n    return {\n        type: \"element\",\n        tag: tag,\n        children: children || []\n    };\n}\n\nfunction text(value) {\n    return {\n        type: \"text\",\n        value: value\n    };\n}\n\nvar forceWrite = {\n    type: \"forceWrite\"\n};\n\nexports.freshElement = freshElement;\nexports.nonFreshElement = nonFreshElement;\nexports.elementWithTag = elementWithTag;\nexports.text = text;\nexports.forceWrite = forceWrite;\n\nvar voidTagNames = {\n    \"br\": true,\n    \"hr\": true,\n    \"img\": true,\n    \"input\": true\n};\n\nfunction isVoidElement(node) {\n    return (node.children.length === 0) && voidTagNames[node.tag.tagName];\n}\n\nexports.isVoidElement = isVoidElement;\n","var _ = require(\"underscore\");\n\nvar ast = require(\"./ast\");\n\nfunction simplify(nodes) {\n    return collapse(removeEmpty(nodes));\n}\n\nfunction collapse(nodes) {\n    var children = [];\n    \n    nodes.map(collapseNode).forEach(function(child) {\n        appendChild(children, child);\n    });\n    return children;\n}\n\nfunction collapseNode(node) {\n    return collapsers[node.type](node);\n}\n\nvar collapsers = {\n    element: collapseElement,\n    text: identity,\n    forceWrite: identity\n};\n\nfunction collapseElement(node) {\n    return ast.elementWithTag(node.tag, collapse(node.children));\n}\n\nfunction identity(value) {\n    return value;\n}\n\nfunction appendChild(children, child) {\n    var lastChild = children[children.length - 1];\n    if (child.type === \"element\" && !child.tag.fresh && lastChild && lastChild.type === \"element\" && child.tag.matchesElement(lastChild.tag)) {\n        if (child.tag.separator) {\n            appendChild(lastChild.children, ast.text(child.tag.separator));\n        }\n        child.children.forEach(function(grandChild) {\n            // Mutation is fine since simplifying elements create a copy of the children.\n            appendChild(lastChild.children, grandChild);\n        });\n    } else {\n        children.push(child);\n    }\n}\n\nfunction removeEmpty(nodes) {\n    return flatMap(nodes, function(node) {\n        return emptiers[node.type](node);\n    });\n}\n\nfunction flatMap(values, func) {\n    return _.flatten(_.map(values, func), true);\n}\n\nvar emptiers = {\n    element: elementEmptier,\n    text: textEmptier,\n    forceWrite: neverEmpty\n};\n\nfunction neverEmpty(node) {\n    return [node];\n}\n\nfunction elementEmptier(element) {\n    var children = removeEmpty(element.children);\n    if (children.length === 0 && !ast.isVoidElement(element)) {\n        return [];\n    } else {\n        return [ast.elementWithTag(element.tag, children)];\n    }\n}\n\nfunction textEmptier(node) {\n    if (node.value.length === 0) {\n        return [];\n    } else {\n        return [node];\n    }\n}\n\nmodule.exports = simplify;\n","var ast = require(\"./ast\");\n\nexports.freshElement = ast.freshElement;\nexports.nonFreshElement = ast.nonFreshElement;\nexports.elementWithTag = ast.elementWithTag;\nexports.text = ast.text;\nexports.forceWrite = ast.forceWrite;\n\nexports.simplify = require(\"./simplify\");\n\nfunction write(writer, nodes) {\n    nodes.forEach(function(node) {\n        writeNode(writer, node);\n    });\n}\n\nfunction writeNode(writer, node) {\n    toStrings[node.type](writer, node);\n}\n\nvar toStrings = {\n    element: generateElementString,\n    text: generateTextString,\n    forceWrite: function() { }\n};\n\nfunction generateElementString(writer, node) {\n    if (ast.isVoidElement(node)) {\n        writer.selfClosing(node.tag.tagName, node.tag.attributes);\n    } else {\n        writer.open(node.tag.tagName, node.tag.attributes);\n        write(writer, node.children);\n        writer.close(node.tag.tagName);\n    }\n}\n\nfunction generateTextString(writer, node) {\n    writer.text(node.value);\n}\n\nexports.write = write;\n","var _ = require(\"underscore\");\n\nvar html = require(\"../html\");\n\nexports.topLevelElement = topLevelElement;\nexports.elements = elements;\nexports.element = element;\n\nfunction topLevelElement(tagName, attributes) {\n    return elements([element(tagName, attributes, {fresh: true})]);\n}\n\nfunction elements(elementStyles) {\n    return new HtmlPath(elementStyles.map(function(elementStyle) {\n        if (_.isString(elementStyle)) {\n            return element(elementStyle);\n        } else {\n            return elementStyle;\n        }\n    }));\n}\n\nfunction HtmlPath(elements) {\n    this._elements = elements;\n}\n\nHtmlPath.prototype.wrap = function wrap(children) {\n    var result = children();\n    for (var index = this._elements.length - 1; index >= 0; index--) {\n        result = this._elements[index].wrapNodes(result);\n    }\n    return result;\n};\n\nfunction element(tagName, attributes, options) {\n    options = options || {};\n    return new Element(tagName, attributes, options);\n}\n\nfunction Element(tagName, attributes, options) {\n    var tagNames = {};\n    if (_.isArray(tagName)) {\n        tagName.forEach(function(tagName) {\n            tagNames[tagName] = true;\n        });\n        tagName = tagName[0];\n    } else {\n        tagNames[tagName] = true;\n    }\n    \n    this.tagName = tagName;\n    this.tagNames = tagNames;\n    this.attributes = attributes || {};\n    this.fresh = options.fresh;\n    this.separator = options.separator;\n}\n\nElement.prototype.matchesElement = function(element) {\n    return this.tagNames[element.tagName] && _.isEqual(this.attributes || {}, element.attributes || {});\n};\n\nElement.prototype.wrap = function wrap(generateNodes) {\n    return this.wrapNodes(generateNodes());\n};\n\nElement.prototype.wrapNodes = function wrapNodes(nodes) {\n    return [html.elementWithTag(this, nodes)];\n};\n\nexports.empty = elements([]);\nexports.ignore = {\n    wrap: function() {\n        return [];\n    }\n};\n","var _ = require(\"underscore\");\n\nvar promises = require(\"./promises\");\nvar Html = require(\"./html\");\n\nexports.imgElement = imgElement;\n\nfunction imgElement(func) {\n    return function(element, messages) {\n        return promises.when(func(element)).then(function(result) {\n            var attributes = {};\n            if (element.altText) {\n                attributes.alt = element.altText;\n            }\n            _.extend(attributes, result);\n\n            return [Html.freshElement(\"img\", attributes)];\n        });\n    };\n}\n\n// Undocumented, but retained for backwards-compatibility with 0.3.x\nexports.inline = exports.imgElement;\n\nexports.dataUri = imgElement(function(element) {\n    return element.readAsBase64String().then(function(imageBuffer) {\n        return {\n            src: \"data:\" + element.contentType + \";base64,\" + imageBuffer\n        };\n    });\n});\n\nfunction imageFilenameExtension(image) {\n    return image.contentType.split(/\\/|\\\\/)[1];\n}\n\nexports.imageFilenameExtension = imageFilenameExtension;\n","var _ = require(\"underscore\");\n\nexports.writer = writer;\n\nfunction writer(options) {\n    options = options || {};\n    if (options.prettyPrint) {\n        return prettyWriter();\n    } else {\n        return simpleWriter();\n    }\n}\n\n\nvar indentedElements = {\n    div: true,\n    p: true,\n    ul: true,\n    li: true\n};\n\n\nfunction prettyWriter() {\n    var indentationLevel = 0;\n    var indentation = \"  \";\n    var stack = [];\n    var start = true;\n    var inText = false;\n\n    var writer = simpleWriter();\n\n    function open(tagName, attributes) {\n        if (indentedElements[tagName]) {\n            indent();\n        }\n        stack.push(tagName);\n        writer.open(tagName, attributes);\n        if (indentedElements[tagName]) {\n            indentationLevel++;\n        }\n        start = false;\n    }\n\n    function close(tagName) {\n        if (indentedElements[tagName]) {\n            indentationLevel--;\n            indent();\n        }\n        stack.pop();\n        writer.close(tagName);\n    }\n\n    function text(value) {\n        startText();\n        var text = isInPre() ? value : value.replace(\"\\n\", \"\\n\" + indentation);\n        writer.text(text);\n    }\n\n    function selfClosing(tagName, attributes) {\n        indent();\n        writer.selfClosing(tagName, attributes);\n    }\n\n    function insideIndentedElement() {\n        return stack.length === 0 || indentedElements[stack[stack.length - 1]];\n    }\n\n    function startText() {\n        if (!inText) {\n            indent();\n            inText = true;\n        }\n    }\n\n    function indent() {\n        inText = false;\n        if (!start && insideIndentedElement() && !isInPre()) {\n            writer._append(\"\\n\");\n            for (var i = 0; i < indentationLevel; i++) {\n                writer._append(indentation);\n            }\n        }\n    }\n\n    function isInPre() {\n        return _.some(stack, function(tagName) {\n            return tagName === \"pre\";\n        });\n    }\n\n    return {\n        asString: writer.asString,\n        open: open,\n        close: close,\n        text: text,\n        selfClosing: selfClosing\n    };\n}\n\n\nfunction simpleWriter() {\n    var fragments = [];\n\n    function open(tagName, attributes) {\n        var attributeString = generateAttributeString(attributes);\n        fragments.push(\"<\" + tagName + attributeString + \">\");\n    }\n\n    function close(tagName) {\n        fragments.push(\"</\" + tagName + \">\");\n    }\n\n    function selfClosing(tagName, attributes) {\n        var attributeString = generateAttributeString(attributes);\n        fragments.push(\"<\" + tagName + attributeString + \" />\");\n    }\n\n    function generateAttributeString(attributes) {\n        return _.map(attributes, function(value, key) {\n            return \" \" + key + '=\"' + escapeHtmlAttribute(value) + '\"';\n        }).join(\"\");\n    }\n\n    function text(value) {\n        fragments.push(escapeHtmlText(value));\n    }\n\n    function append(html) {\n        fragments.push(html);\n    }\n\n    function asString() {\n        return fragments.join(\"\");\n    }\n\n    return {\n        asString: asString,\n        open: open,\n        close: close,\n        text: text,\n        selfClosing: selfClosing,\n        _append: append\n    };\n}\n\nfunction escapeHtmlText(value) {\n    return value\n        .replace(/&/g, '&amp;')\n        .replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;');\n}\n\nfunction escapeHtmlAttribute(value) {\n    return value\n        .replace(/&/g, '&amp;')\n        .replace(/\"/g, '&quot;')\n        .replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;');\n}\n","var _ = require(\"underscore\");\n\n\nfunction symmetricMarkdownElement(end) {\n    return markdownElement(end, end);\n}\n\nfunction markdownElement(start, end) {\n    return function() {\n        return {start: start, end: end};\n    };\n}\n\nfunction markdownLink(attributes) {\n    var href = attributes.href || \"\";\n    if (href) {\n        return {\n            start: \"[\",\n            end: \"](\" + href + \")\",\n            anchorPosition: \"before\"\n        };\n    } else {\n        return {};\n    }\n}\n\nfunction markdownImage(attributes) {\n    var src = attributes.src || \"\";\n    var altText = attributes.alt || \"\";\n    if (src || altText) {\n        return {start: \"![\" + altText + \"](\" + src + \")\"};\n    } else {\n        return {};\n    }\n}\n\nfunction markdownList(options) {\n    return function(attributes, list) {\n        return {\n            start: list ? \"\\n\" : \"\",\n            end: list ? \"\" : \"\\n\",\n            list: {\n                isOrdered: options.isOrdered,\n                indent: list ? list.indent + 1 : 0,\n                count: 0\n            }\n        };\n    };\n}\n\nfunction markdownListItem(attributes, list, listItem) {\n    list = list || {indent: 0, isOrdered: false, count: 0};\n    list.count++;\n    listItem.hasClosed = false;\n    \n    var bullet = list.isOrdered ? list.count + \".\" : \"-\";\n    var start = repeatString(\"\\t\", list.indent) + bullet + \" \";\n        \n    return {\n        start: start,\n        end: function() {\n            if (!listItem.hasClosed) {\n                listItem.hasClosed = true;\n                return \"\\n\";\n            }\n        }\n    };\n}\n\nvar htmlToMarkdown = {\n    \"p\": markdownElement(\"\", \"\\n\\n\"),\n    \"br\": markdownElement(\"\", \"  \\n\"),\n    \"ul\": markdownList({isOrdered: false}),\n    \"ol\": markdownList({isOrdered: true}),\n    \"li\": markdownListItem,\n    \"strong\": symmetricMarkdownElement(\"__\"),\n    \"em\": symmetricMarkdownElement(\"*\"),\n    \"a\": markdownLink,\n    \"img\": markdownImage\n};\n\n(function() {\n    for (var i = 1; i <= 6; i++) {\n        htmlToMarkdown[\"h\" + i] = markdownElement(repeatString(\"#\", i) + \" \", \"\\n\\n\");\n    }\n})();\n\nfunction repeatString(value, count) {\n    return new Array(count + 1).join(value);\n}\n\nfunction markdownWriter() {\n    var fragments = [];\n    var elementStack = [];\n    var list = null;\n    var listItem = {};\n    \n    function open(tagName, attributes) {\n        attributes = attributes || {};\n        \n        var createElement = htmlToMarkdown[tagName] || function() {\n            return {};\n        };\n        var element = createElement(attributes, list, listItem);\n        elementStack.push({end: element.end, list: list});\n        \n        if (element.list) {\n            list = element.list;\n        }\n        \n        var anchorBeforeStart = element.anchorPosition === \"before\";\n        if (anchorBeforeStart) {\n            writeAnchor(attributes);\n        }\n\n        fragments.push(element.start || \"\");\n        if (!anchorBeforeStart) {\n            writeAnchor(attributes);\n        }\n    }\n    \n    function writeAnchor(attributes) {\n        if (attributes.id) {\n            fragments.push('<a id=\"' + attributes.id + '\"></a>');\n        }\n    }\n    \n    function close(tagName) {\n        var element = elementStack.pop();\n        list = element.list;\n        var end = _.isFunction(element.end) ? element.end() : element.end;\n        fragments.push(end || \"\");\n    }\n    \n    function selfClosing(tagName, attributes) {\n        open(tagName, attributes);\n        close(tagName);\n    }\n    \n    function text(value) {\n        fragments.push(escapeMarkdown(value));\n    }\n    \n    function asString() {\n        return fragments.join(\"\");\n    }\n\n    return {\n        asString: asString,\n        open: open,\n        close: close,\n        text: text,\n        selfClosing: selfClosing\n    };\n}\n\nexports.writer = markdownWriter;\n\nfunction escapeMarkdown(value) {\n    return value\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/([\\`\\*_\\{\\}\\[\\]\\(\\)\\#\\+\\-\\.\\!])/g, '\\\\$1');\n}\n","var htmlWriter = require(\"./html-writer\");\nvar markdownWriter = require(\"./markdown-writer\");\n\nexports.writer = writer;\n\n\nfunction writer(options) {\n    options = options || {};\n    if (options.outputFormat === \"markdown\") {\n        return markdownWriter.writer();\n    } else {\n        return htmlWriter.writer(options);\n    }\n}\n","var _ = require(\"underscore\");\n\nvar promises = require(\"./promises\");\nvar documents = require(\"./documents\");\nvar htmlPaths = require(\"./styles/html-paths\");\nvar results = require(\"./results\");\nvar images = require(\"./images\");\nvar Html = require(\"./html\");\nvar writers = require(\"./writers\");\n\nexports.DocumentConverter = DocumentConverter;\n\n\nfunction DocumentConverter(options) {\n    return {\n        convertToHtml: function(element) {\n            var comments = _.indexBy(\n                element.type === documents.types.document ? element.comments : [],\n                \"commentId\"\n            );\n            var conversion = new DocumentConversion(options, comments);\n            return conversion.convertToHtml(element);\n        }\n    };\n}\n\nfunction DocumentConversion(options, comments) {\n    var noteNumber = 1;\n\n    var noteReferences = [];\n\n    var referencedComments = [];\n\n    options = _.extend({ignoreEmptyParagraphs: true}, options);\n    var idPrefix = options.idPrefix === undefined ? \"\" : options.idPrefix;\n    var ignoreEmptyParagraphs = options.ignoreEmptyParagraphs;\n\n    var defaultParagraphStyle = htmlPaths.topLevelElement(\"p\");\n\n    var styleMap = options.styleMap || [];\n\n    function convertToHtml(document) {\n        var messages = [];\n\n        var html = elementToHtml(document, messages, {});\n\n        var deferredNodes = [];\n        walkHtml(html, function(node) {\n            if (node.type === \"deferred\") {\n                deferredNodes.push(node);\n            }\n        });\n        var deferredValues = {};\n        return promises.mapSeries(deferredNodes, function(deferred) {\n            return deferred.value().then(function(value) {\n                deferredValues[deferred.id] = value;\n            });\n        }).then(function() {\n            function replaceDeferred(nodes) {\n                return flatMap(nodes, function(node) {\n                    if (node.type === \"deferred\") {\n                        return deferredValues[node.id];\n                    } else if (node.children) {\n                        return [\n                            _.extend({}, node, {\n                                children: replaceDeferred(node.children)\n                            })\n                        ];\n                    } else {\n                        return [node];\n                    }\n                });\n            }\n            var writer = writers.writer({\n                prettyPrint: options.prettyPrint,\n                outputFormat: options.outputFormat\n            });\n            Html.write(writer, Html.simplify(replaceDeferred(html)));\n            return new results.Result(writer.asString(), messages);\n        });\n    }\n\n    function convertElements(elements, messages, options) {\n        return flatMap(elements, function(element) {\n            return elementToHtml(element, messages, options);\n        });\n    }\n\n    function elementToHtml(element, messages, options) {\n        if (!options) {\n            throw new Error(\"options not set\");\n        }\n        var handler = elementConverters[element.type];\n        if (handler) {\n            return handler(element, messages, options);\n        } else {\n            return [];\n        }\n    }\n\n    function convertParagraph(element, messages, options) {\n        return htmlPathForParagraph(element, messages).wrap(function() {\n            var content = convertElements(element.children, messages, options);\n            if (ignoreEmptyParagraphs) {\n                return content;\n            } else {\n                return [Html.forceWrite].concat(content);\n            }\n        });\n    }\n\n    function htmlPathForParagraph(element, messages) {\n        var style = findStyle(element);\n\n        if (style) {\n            return style.to;\n        } else {\n            if (element.styleId) {\n                messages.push(unrecognisedStyleWarning(\"paragraph\", element));\n            }\n            return defaultParagraphStyle;\n        }\n    }\n\n    function convertRun(run, messages, options) {\n        var nodes = function() {\n            return convertElements(run.children, messages, options);\n        };\n        var paths = [];\n        if (run.highlight !== null) {\n            var path = findHtmlPath({type: \"highlight\", color: run.highlight});\n            if (path) {\n                paths.push(path);\n            }\n        }\n        if (run.isSmallCaps) {\n            paths.push(findHtmlPathForRunProperty(\"smallCaps\"));\n        }\n        if (run.isAllCaps) {\n            paths.push(findHtmlPathForRunProperty(\"allCaps\"));\n        }\n        if (run.isStrikethrough) {\n            paths.push(findHtmlPathForRunProperty(\"strikethrough\", \"s\"));\n        }\n        if (run.isUnderline) {\n            paths.push(findHtmlPathForRunProperty(\"underline\"));\n        }\n        if (run.verticalAlignment === documents.verticalAlignment.subscript) {\n            paths.push(htmlPaths.element(\"sub\", {}, {fresh: false}));\n        }\n        if (run.verticalAlignment === documents.verticalAlignment.superscript) {\n            paths.push(htmlPaths.element(\"sup\", {}, {fresh: false}));\n        }\n        if (run.isItalic) {\n            paths.push(findHtmlPathForRunProperty(\"italic\", \"em\"));\n        }\n        if (run.isBold) {\n            paths.push(findHtmlPathForRunProperty(\"bold\", \"strong\"));\n        }\n        var stylePath = htmlPaths.empty;\n        var style = findStyle(run);\n        if (style) {\n            stylePath = style.to;\n        } else if (run.styleId) {\n            messages.push(unrecognisedStyleWarning(\"run\", run));\n        }\n        paths.push(stylePath);\n\n        paths.forEach(function(path) {\n            nodes = path.wrap.bind(path, nodes);\n        });\n\n        return nodes();\n    }\n\n    function findHtmlPathForRunProperty(elementType, defaultTagName) {\n        var path = findHtmlPath({type: elementType});\n        if (path) {\n            return path;\n        } else if (defaultTagName) {\n            return htmlPaths.element(defaultTagName, {}, {fresh: false});\n        } else {\n            return htmlPaths.empty;\n        }\n    }\n\n    function findHtmlPath(element, defaultPath) {\n        var style = findStyle(element);\n        return style ? style.to : defaultPath;\n    }\n\n    function findStyle(element) {\n        for (var i = 0; i < styleMap.length; i++) {\n            if (styleMap[i].from.matches(element)) {\n                return styleMap[i];\n            }\n        }\n    }\n\n    function recoveringConvertImage(convertImage) {\n        return function(image, messages) {\n            return promises.attempt(function() {\n                return convertImage(image, messages);\n            }).caught(function(error) {\n                messages.push(results.error(error));\n                return [];\n            });\n        };\n    }\n\n    function noteHtmlId(note) {\n        return referentHtmlId(note.noteType, note.noteId);\n    }\n\n    function noteRefHtmlId(note) {\n        return referenceHtmlId(note.noteType, note.noteId);\n    }\n\n    function referentHtmlId(referenceType, referenceId) {\n        return htmlId(referenceType + \"-\" + referenceId);\n    }\n\n    function referenceHtmlId(referenceType, referenceId) {\n        return htmlId(referenceType + \"-ref-\" + referenceId);\n    }\n\n    function htmlId(suffix) {\n        return idPrefix + suffix;\n    }\n\n    var defaultTablePath = htmlPaths.elements([\n        htmlPaths.element(\"table\", {}, {fresh: true})\n    ]);\n\n    function convertTable(element, messages, options) {\n        return findHtmlPath(element, defaultTablePath).wrap(function() {\n            return convertTableChildren(element, messages, options);\n        });\n    }\n\n    function convertTableChildren(element, messages, options) {\n        var bodyIndex = _.findIndex(element.children, function(child) {\n            return !child.type === documents.types.tableRow || !child.isHeader;\n        });\n        if (bodyIndex === -1) {\n            bodyIndex = element.children.length;\n        }\n        var children;\n        if (bodyIndex === 0) {\n            children = convertElements(\n                element.children,\n                messages,\n                _.extend({}, options, {isTableHeader: false})\n            );\n        } else {\n            var headRows = convertElements(\n                element.children.slice(0, bodyIndex),\n                messages,\n                _.extend({}, options, {isTableHeader: true})\n            );\n            var bodyRows = convertElements(\n                element.children.slice(bodyIndex),\n                messages,\n                _.extend({}, options, {isTableHeader: false})\n            );\n            children = [\n                Html.freshElement(\"thead\", {}, headRows),\n                Html.freshElement(\"tbody\", {}, bodyRows)\n            ];\n        }\n        return [Html.forceWrite].concat(children);\n    }\n\n    function convertTableRow(element, messages, options) {\n        var children = convertElements(element.children, messages, options);\n        return [\n            Html.freshElement(\"tr\", {}, [Html.forceWrite].concat(children))\n        ];\n    }\n\n    function convertTableCell(element, messages, options) {\n        var tagName = options.isTableHeader ? \"th\" : \"td\";\n        var children = convertElements(element.children, messages, options);\n        var attributes = {};\n        if (element.colSpan !== 1) {\n            attributes.colspan = element.colSpan.toString();\n        }\n        if (element.rowSpan !== 1) {\n            attributes.rowspan = element.rowSpan.toString();\n        }\n\n        return [\n            Html.freshElement(tagName, attributes, [Html.forceWrite].concat(children))\n        ];\n    }\n\n    function convertCommentReference(reference, messages, options) {\n        return findHtmlPath(reference, htmlPaths.ignore).wrap(function() {\n            var comment = comments[reference.commentId];\n            var count = referencedComments.length + 1;\n            var label = \"[\" + commentAuthorLabel(comment) + count + \"]\";\n            referencedComments.push({label: label, comment: comment});\n            // TODO: remove duplication with note references\n            return [\n                Html.freshElement(\"a\", {\n                    href: \"#\" + referentHtmlId(\"comment\", reference.commentId),\n                    id: referenceHtmlId(\"comment\", reference.commentId)\n                }, [Html.text(label)])\n            ];\n        });\n    }\n\n    function convertComment(referencedComment, messages, options) {\n        // TODO: remove duplication with note references\n\n        var label = referencedComment.label;\n        var comment = referencedComment.comment;\n        var body = convertElements(comment.body, messages, options).concat([\n            Html.nonFreshElement(\"p\", {}, [\n                Html.text(\" \"),\n                Html.freshElement(\"a\", {\"href\": \"#\" + referenceHtmlId(\"comment\", comment.commentId)}, [\n                    Html.text(\"↑\")\n                ])\n            ])\n        ]);\n\n        return [\n            Html.freshElement(\n                \"dt\",\n                {\"id\": referentHtmlId(\"comment\", comment.commentId)},\n                [Html.text(\"Comment \" + label)]\n            ),\n            Html.freshElement(\"dd\", {}, body)\n        ];\n    }\n\n    function convertBreak(element, messages, options) {\n        return htmlPathForBreak(element).wrap(function() {\n            return [];\n        });\n    }\n\n    function htmlPathForBreak(element) {\n        var style = findStyle(element);\n        if (style) {\n            return style.to;\n        } else if (element.breakType === \"line\") {\n            return htmlPaths.topLevelElement(\"br\");\n        } else {\n            return htmlPaths.empty;\n        }\n    }\n\n    var elementConverters = {\n        \"document\": function(document, messages, options) {\n            var children = convertElements(document.children, messages, options);\n            var notes = noteReferences.map(function(noteReference) {\n                return document.notes.resolve(noteReference);\n            });\n            var notesNodes = convertElements(notes, messages, options);\n            return children.concat([\n                Html.freshElement(\"ol\", {}, notesNodes),\n                Html.freshElement(\"dl\", {}, flatMap(referencedComments, function(referencedComment) {\n                    return convertComment(referencedComment, messages, options);\n                }))\n            ]);\n        },\n        \"paragraph\": convertParagraph,\n        \"run\": convertRun,\n        \"text\": function(element, messages, options) {\n            return [Html.text(element.value)];\n        },\n        \"tab\": function(element, messages, options) {\n            return [Html.text(\"\\t\")];\n        },\n        \"hyperlink\": function(element, messages, options) {\n            var href = element.anchor ? \"#\" + htmlId(element.anchor) : element.href;\n            var attributes = {href: href};\n            if (element.targetFrame != null) {\n                attributes.target = element.targetFrame;\n            }\n\n            var children = convertElements(element.children, messages, options);\n            return [Html.nonFreshElement(\"a\", attributes, children)];\n        },\n        \"checkbox\": function(element) {\n            var attributes = {type: \"checkbox\"};\n            if (element.checked) {\n                attributes[\"checked\"] = \"checked\";\n            }\n            return [Html.freshElement(\"input\", attributes)];\n        },\n        \"bookmarkStart\": function(element, messages, options) {\n            var anchor = Html.freshElement(\"a\", {\n                id: htmlId(element.name)\n            }, [Html.forceWrite]);\n            return [anchor];\n        },\n        \"noteReference\": function(element, messages, options) {\n            noteReferences.push(element);\n            var anchor = Html.freshElement(\"a\", {\n                href: \"#\" + noteHtmlId(element),\n                id: noteRefHtmlId(element)\n            }, [Html.text(\"[\" + (noteNumber++) + \"]\")]);\n\n            return [Html.freshElement(\"sup\", {}, [anchor])];\n        },\n        \"note\": function(element, messages, options) {\n            var children = convertElements(element.body, messages, options);\n            var backLink = Html.elementWithTag(htmlPaths.element(\"p\", {}, {fresh: false}), [\n                Html.text(\" \"),\n                Html.freshElement(\"a\", {href: \"#\" + noteRefHtmlId(element)}, [Html.text(\"↑\")])\n            ]);\n            var body = children.concat([backLink]);\n\n            return Html.freshElement(\"li\", {id: noteHtmlId(element)}, body);\n        },\n        \"commentReference\": convertCommentReference,\n        \"comment\": convertComment,\n        \"image\": deferredConversion(recoveringConvertImage(options.convertImage || images.dataUri)),\n        \"table\": convertTable,\n        \"tableRow\": convertTableRow,\n        \"tableCell\": convertTableCell,\n        \"break\": convertBreak\n    };\n    return {\n        convertToHtml: convertToHtml\n    };\n}\n\nvar deferredId = 1;\n\nfunction deferredConversion(func) {\n    return function(element, messages, options) {\n        return [\n            {\n                type: \"deferred\",\n                id: deferredId++,\n                value: function() {\n                    return func(element, messages, options);\n                }\n            }\n        ];\n    };\n}\n\nfunction unrecognisedStyleWarning(type, element) {\n    return results.warning(\n        \"Unrecognised \" + type + \" style: '\" + element.styleName + \"'\" +\n        \" (Style ID: \" + element.styleId + \")\"\n    );\n}\n\nfunction flatMap(values, func) {\n    return _.flatten(values.map(func), true);\n}\n\nfunction walkHtml(nodes, callback) {\n    nodes.forEach(function(node) {\n        callback(node);\n        if (node.children) {\n            walkHtml(node.children, callback);\n        }\n    });\n}\n\nvar commentAuthorLabel = exports.commentAuthorLabel = function commentAuthorLabel(comment) {\n    return comment.authorInitials || \"\";\n};\n","var documents = require(\"./documents\");\n\nfunction convertElementToRawText(element) {\n    if (element.type === \"text\") {\n        return element.value;\n    } else if (element.type === documents.types.tab) {\n        return \"\\t\";\n    } else {\n        var tail = element.type === \"paragraph\" ? \"\\n\\n\" : \"\";\n        return (element.children || []).map(convertElementToRawText).join(\"\") + tail;\n    }\n}\n\nexports.convertElementToRawText = convertElementToRawText;\n","var TokenIterator = module.exports = function(tokens, startIndex) {\n    this._tokens = tokens;\n    this._startIndex = startIndex || 0;\n};\n\nTokenIterator.prototype.head = function() {\n    return this._tokens[this._startIndex];\n};\n\nTokenIterator.prototype.tail = function(startIndex) {\n    return new TokenIterator(this._tokens, this._startIndex + 1);\n};\n\nTokenIterator.prototype.toArray = function() {\n    return this._tokens.slice(this._startIndex);\n};\n\nTokenIterator.prototype.end = function() {\n    return this._tokens[this._tokens.length - 1];\n};\n\n// TODO: doesn't need to be a method, can be a separate function,\n// which simplifies implementation of the TokenIterator interface\nTokenIterator.prototype.to = function(end) {\n    var start = this.head().source;\n    var endToken = end.head() || end.end();\n    return start.to(endToken.source);\n};\n","var TokenIterator = require(\"./TokenIterator\");\n\nexports.Parser = function(options) {\n    var parseTokens = function(parser, tokens) {\n        return parser(new TokenIterator(tokens));\n    };\n    \n    return {\n        parseTokens: parseTokens\n    };\n};\n","exports.none = Object.create({\n    value: function() {\n        throw new Error('Called value on none');\n    },\n    isNone: function() {\n        return true;\n    },\n    isSome: function() {\n        return false;\n    },\n    map: function() {\n        return exports.none;\n    },\n    flatMap: function() {\n        return exports.none;\n    },\n    filter: function() {\n        return exports.none;\n    },\n    toArray: function() {\n        return [];\n    },\n    orElse: callOrReturn,\n    valueOrElse: callOrReturn\n});\n\nfunction callOrReturn(value) {\n    if (typeof(value) == \"function\") {\n        return value();\n    } else {\n        return value;\n    }\n}\n\nexports.some = function(value) {\n    return new Some(value);\n};\n\nvar Some = function(value) {\n    this._value = value;\n};\n\nSome.prototype.value = function() {\n    return this._value;\n};\n\nSome.prototype.isNone = function() {\n    return false;\n};\n\nSome.prototype.isSome = function() {\n    return true;\n};\n\nSome.prototype.map = function(func) {\n    return new Some(func(this._value));\n};\n\nSome.prototype.flatMap = function(func) {\n    return func(this._value);\n};\n\nSome.prototype.filter = function(predicate) {\n    return predicate(this._value) ? this : exports.none;\n};\n\nSome.prototype.toArray = function() {\n    return [this._value];\n};\n\nSome.prototype.orElse = function(value) {\n    return this;\n};\n\nSome.prototype.valueOrElse = function(value) {\n    return this._value;\n};\n\nexports.isOption = function(value) {\n    return value === exports.none || value instanceof Some;\n};\n\nexports.fromNullable = function(value) {\n    if (value == null) {\n        return exports.none;\n    }\n    return new Some(value);\n}\n","module.exports = {\n    failure: function(errors, remaining) {\n        if (errors.length < 1) {\n            throw new Error(\"Failure must have errors\");\n        }\n        return new Result({\n            status: \"failure\",\n            remaining: remaining,\n            errors: errors\n        });\n    },\n    error: function(errors, remaining) {\n        if (errors.length < 1) {\n            throw new Error(\"Failure must have errors\");\n        }\n        return new Result({\n            status: \"error\",\n            remaining: remaining,\n            errors: errors\n        });\n    },\n    success: function(value, remaining, source) {\n        return new Result({\n            status: \"success\",\n            value: value,\n            source: source,\n            remaining: remaining,\n            errors: []\n        });\n    },\n    cut: function(remaining) {\n        return new Result({\n            status: \"cut\",\n            remaining: remaining,\n            errors: []\n        });\n    }\n};\n\nvar Result = function(options) {\n    this._value = options.value;\n    this._status = options.status;\n    this._hasValue = options.value !== undefined;\n    this._remaining = options.remaining;\n    this._source = options.source;\n    this._errors = options.errors;\n};\n\nResult.prototype.map = function(func) {\n    if (this._hasValue) {\n        return new Result({\n            value: func(this._value, this._source),\n            status: this._status,\n            remaining: this._remaining,\n            source: this._source,\n            errors: this._errors\n        });\n    } else {\n        return this;\n    }\n};\n\nResult.prototype.changeRemaining = function(remaining) {\n    return new Result({\n        value: this._value,\n        status: this._status,\n        remaining: remaining,\n        source: this._source,\n        errors: this._errors\n    });\n};\n\nResult.prototype.isSuccess = function() {\n    return this._status === \"success\" || this._status === \"cut\";\n};\n\nResult.prototype.isFailure = function() {\n    return this._status === \"failure\";\n};\n\nResult.prototype.isError = function() {\n    return this._status === \"error\";\n};\n\nResult.prototype.isCut = function() {\n    return this._status === \"cut\";\n};\n\nResult.prototype.value = function() {\n    return this._value;\n};\n\nResult.prototype.remaining = function() {\n    return this._remaining;\n};\n\nResult.prototype.source = function() {\n    return this._source;\n};\n\nResult.prototype.errors = function() {\n    return this._errors;\n};\n","exports.error = function(options) {\n    return new Error(options);\n};\n\nvar Error = function(options) {\n    this.expected = options.expected;\n    this.actual = options.actual;\n    this._location = options.location;\n};\n\nError.prototype.describe = function() {\n    var locationDescription = this._location ? this._location.describe() + \":\\n\" : \"\";\n    return locationDescription + \"Expected \" + this.expected + \"\\nbut got \" + this.actual;\n};\n\nError.prototype.lineNumber = function() {\n    return this._location.lineNumber();\n};\n\nError.prototype.characterNumber = function() {\n    return this._location.characterNumber();\n};\n","var fromArray = exports.fromArray = function(array) {\n    var index = 0;\n    var hasNext = function() {\n        return index < array.length;\n    };\n    return new LazyIterator({\n        hasNext: hasNext,\n        next: function() {\n            if (!hasNext()) {\n                throw new Error(\"No more elements\");\n            } else {\n                return array[index++];\n            }\n        }\n    });\n};\n\nvar LazyIterator = function(iterator) {\n    this._iterator = iterator;\n};\n\nLazyIterator.prototype.map = function(func) {\n    var iterator = this._iterator;\n    return new LazyIterator({\n        hasNext: function() {\n            return iterator.hasNext();\n        },\n        next: function() {\n            return func(iterator.next());\n        }\n    });\n};\n\nLazyIterator.prototype.filter = function(condition) {\n    var iterator = this._iterator;\n    \n    var moved = false;\n    var hasNext = false;\n    var next;\n    var moveIfNecessary = function() {\n        if (moved) {\n            return;\n        }\n        moved = true;\n        hasNext = false;\n        while (iterator.hasNext() && !hasNext) {\n            next = iterator.next();\n            hasNext = condition(next);\n        }\n    };\n    \n    return new LazyIterator({\n        hasNext: function() {\n            moveIfNecessary();\n            return hasNext;\n        },\n        next: function() {\n            moveIfNecessary();\n            var toReturn = next;\n            moved = false;\n            return toReturn;\n        }\n    });\n};\n\nLazyIterator.prototype.first = function() {\n    var iterator = this._iterator;\n    if (this._iterator.hasNext()) {\n        return iterator.next();\n    } else {\n        return null;\n    }\n};\n\nLazyIterator.prototype.toArray = function() {\n    var result = [];\n    while (this._iterator.hasNext()) {\n        result.push(this._iterator.next());\n    }\n    return result;\n};\n","var _ = require(\"underscore\");\nvar options = require(\"option\");\nvar results = require(\"./parsing-results\");\nvar errors = require(\"./errors\");\nvar lazyIterators = require(\"./lazy-iterators\");\n\nexports.token = function(tokenType, value) {\n    var matchValue = value !== undefined;\n    return function(input) {\n        var token = input.head();\n        if (token && token.name === tokenType && (!matchValue || token.value === value)) {\n            return results.success(token.value, input.tail(), token.source);\n        } else {\n            var expected = describeToken({name: tokenType, value: value});\n            return describeTokenMismatch(input, expected);\n        }\n    };\n};\n\nexports.tokenOfType = function(tokenType) {\n    return exports.token(tokenType);\n};\n\nexports.firstOf = function(name, parsers) {\n    if (!_.isArray(parsers)) {\n        parsers = Array.prototype.slice.call(arguments, 1);\n    }\n    return function(input) {\n        return lazyIterators\n            .fromArray(parsers)\n            .map(function(parser) {\n                return parser(input);\n            })\n            .filter(function(result) {\n                return result.isSuccess() || result.isError();\n            })\n            .first() || describeTokenMismatch(input, name);\n    };\n};\n\nexports.then = function(parser, func) {\n    return function(input) {\n        var result = parser(input);\n        if (!result.map) {\n            console.log(result);\n        }\n        return result.map(func);\n    };\n};\n\nexports.sequence = function() {\n    var parsers = Array.prototype.slice.call(arguments, 0);\n    var rule = function(input) {\n        var result = _.foldl(parsers, function(memo, parser) {\n            var result = memo.result;\n            var hasCut = memo.hasCut;\n            if (!result.isSuccess()) {\n                return {result: result, hasCut: hasCut};\n            }\n            var subResult = parser(result.remaining());\n            if (subResult.isCut()) {\n                return {result: result, hasCut: true};\n            } else if (subResult.isSuccess()) {\n                var values;\n                if (parser.isCaptured) {\n                    values = result.value().withValue(parser, subResult.value());\n                } else {\n                    values = result.value();\n                }\n                var remaining = subResult.remaining();\n                var source = input.to(remaining);\n                return {\n                    result: results.success(values, remaining, source),\n                    hasCut: hasCut\n                };\n            } else if (hasCut) {\n                return {result: results.error(subResult.errors(), subResult.remaining()), hasCut: hasCut};\n            } else {\n                return {result: subResult, hasCut: hasCut};\n            }\n        }, {result: results.success(new SequenceValues(), input), hasCut: false}).result;\n        var source = input.to(result.remaining());\n        return result.map(function(values) {\n            return values.withValue(exports.sequence.source, source);\n        });\n    };\n    rule.head = function() {\n        var firstCapture = _.find(parsers, isCapturedRule);\n        return exports.then(\n            rule,\n            exports.sequence.extract(firstCapture)\n        );\n    };\n    rule.map = function(func) {\n        return exports.then(\n            rule,\n            function(result) {\n                return func.apply(this, result.toArray());\n            }\n        );\n    };\n    \n    function isCapturedRule(subRule) {\n        return subRule.isCaptured;\n    }\n    \n    return rule;\n};\n\nvar SequenceValues = function(values, valuesArray) {\n    this._values = values || {};\n    this._valuesArray = valuesArray || [];\n};\n\nSequenceValues.prototype.withValue = function(rule, value) {\n    if (rule.captureName && rule.captureName in this._values) {\n        throw new Error(\"Cannot add second value for capture \\\"\" + rule.captureName + \"\\\"\");\n    } else {\n        var newValues = _.clone(this._values);\n        newValues[rule.captureName] = value;\n        var newValuesArray = this._valuesArray.concat([value]);\n        return new SequenceValues(newValues, newValuesArray);\n    }\n};\n\nSequenceValues.prototype.get = function(rule) {\n    if (rule.captureName in this._values) {\n        return this._values[rule.captureName];\n    } else {\n        throw new Error(\"No value for capture \\\"\" + rule.captureName + \"\\\"\");\n    }\n};\n\nSequenceValues.prototype.toArray = function() {\n    return this._valuesArray;\n};\n\nexports.sequence.capture = function(rule, name) {\n    var captureRule = function() {\n        return rule.apply(this, arguments);\n    };\n    captureRule.captureName = name;\n    captureRule.isCaptured = true;\n    return captureRule;\n};\n\nexports.sequence.extract = function(rule) {\n    return function(result) {\n        return result.get(rule);\n    };\n};\n\nexports.sequence.applyValues = function(func) {\n    // TODO: check captureName doesn't conflict with source or other captures\n    var rules = Array.prototype.slice.call(arguments, 1);\n    return function(result) {\n        var values = rules.map(function(rule) {\n            return result.get(rule);\n        });\n        return func.apply(this, values);\n    };\n};\n\nexports.sequence.source = {\n    captureName: \"☃source☃\"\n};\n\nexports.sequence.cut = function() {\n    return function(input) {\n        return results.cut(input);\n    };\n};\n\nexports.optional = function(rule) {\n    return function(input) {\n        var result = rule(input);\n        if (result.isSuccess()) {\n            return result.map(options.some);\n        } else if (result.isFailure()) {\n            return results.success(options.none, input);\n        } else {\n            return result;\n        }\n    };\n};\n\nexports.zeroOrMoreWithSeparator = function(rule, separator) {\n    return repeatedWithSeparator(rule, separator, false);\n};\n\nexports.oneOrMoreWithSeparator = function(rule, separator) {\n    return repeatedWithSeparator(rule, separator, true);\n};\n\nvar zeroOrMore = exports.zeroOrMore = function(rule) {\n    return function(input) {\n        var values = [];\n        var result;\n        while ((result = rule(input)) && result.isSuccess()) {\n            input = result.remaining();\n            values.push(result.value());\n        }\n        if (result.isError()) {\n            return result;\n        } else {\n            return results.success(values, input);\n        }\n    };\n};\n\nexports.oneOrMore = function(rule) {\n    return exports.oneOrMoreWithSeparator(rule, noOpRule);\n};\n\nfunction noOpRule(input) {\n    return results.success(null, input);\n}\n\nvar repeatedWithSeparator = function(rule, separator, isOneOrMore) {\n    return function(input) {\n        var result = rule(input);\n        if (result.isSuccess()) {\n            var mainRule = exports.sequence.capture(rule, \"main\");\n            var remainingRule = zeroOrMore(exports.then(\n                exports.sequence(separator, mainRule),\n                exports.sequence.extract(mainRule)\n            ));\n            var remainingResult = remainingRule(result.remaining());\n            return results.success([result.value()].concat(remainingResult.value()), remainingResult.remaining());\n        } else if (isOneOrMore || result.isError()) {\n            return result;\n        } else {\n            return results.success([], input);\n        }\n    };\n};\n\nexports.leftAssociative = function(leftRule, rightRule, func) {\n    var rights;\n    if (func) {\n        rights = [{func: func, rule: rightRule}];\n    } else {\n        rights = rightRule;\n    }\n    rights = rights.map(function(right) {\n        return exports.then(right.rule, function(rightValue) {\n            return function(leftValue, source) {\n                return right.func(leftValue, rightValue, source);\n            };\n        });\n    });\n    var repeatedRule = exports.firstOf.apply(null, [\"rules\"].concat(rights));\n    \n    return function(input) {\n        var start = input;\n        var leftResult = leftRule(input);\n        if (!leftResult.isSuccess()) {\n            return leftResult;\n        }\n        var repeatedResult = repeatedRule(leftResult.remaining());\n        while (repeatedResult.isSuccess()) {\n            var remaining = repeatedResult.remaining();\n            var source = start.to(repeatedResult.remaining());\n            var right = repeatedResult.value();\n            leftResult = results.success(\n                right(leftResult.value(), source),\n                remaining,\n                source\n            );\n            repeatedResult = repeatedRule(leftResult.remaining());\n        }\n        if (repeatedResult.isError()) {\n            return repeatedResult;\n        }\n        return leftResult;\n    };\n};\n\nexports.leftAssociative.firstOf = function() {\n    return Array.prototype.slice.call(arguments, 0);\n};\n\nexports.nonConsuming = function(rule) {\n    return function(input) {\n        return rule(input).changeRemaining(input);\n    };\n};\n\nvar describeToken = function(token) {\n    if (token.value) {\n        return token.name + \" \\\"\" + token.value + \"\\\"\";\n    } else {\n        return token.name;\n    }\n};\n\nfunction describeTokenMismatch(input, expected) {\n    var error;\n    var token = input.head();\n    if (token) {\n        error = errors.error({\n            expected: expected,\n            actual: describeToken(token),\n            location: token.source\n        });\n    } else {\n        error = errors.error({\n            expected: expected,\n            actual: \"end of tokens\"\n        });\n    }\n    return results.failure([error], input);\n}\n","var StringSource = module.exports = function(string, description) {\n    var self = {\n        asString: function() {\n            return string;\n        },\n        range: function(startIndex, endIndex) {\n            return new StringSourceRange(string, description, startIndex, endIndex);\n        }\n    };\n    return self;\n};\n\nvar StringSourceRange = function(string, description, startIndex, endIndex) {\n    this._string = string;\n    this._description = description;\n    this._startIndex = startIndex;\n    this._endIndex = endIndex;\n};\n\nStringSourceRange.prototype.to = function(otherRange) {\n    // TODO: Assert that tokens are the same across both iterators\n    return new StringSourceRange(this._string, this._description, this._startIndex, otherRange._endIndex);\n};\n\nStringSourceRange.prototype.describe = function() {\n    var position = this._position();\n    var description = this._description ? this._description + \"\\n\" : \"\";\n    return description + \"Line number: \" + position.lineNumber + \"\\nCharacter number: \" + position.characterNumber;\n};\n\nStringSourceRange.prototype.lineNumber = function() {\n    return this._position().lineNumber;\n};\n\nStringSourceRange.prototype.characterNumber = function() {\n    return this._position().characterNumber;\n};\n\nStringSourceRange.prototype._position = function() {\n    var self = this;\n    var index = 0;\n    var nextNewLine = function() {\n        return self._string.indexOf(\"\\n\", index);\n    };\n\n    var lineNumber = 1;\n    while (nextNewLine() !== -1 && nextNewLine() < this._startIndex) {\n        index = nextNewLine() + 1;\n        lineNumber += 1;\n    }\n    var characterNumber = this._startIndex - index + 1;\n    return {lineNumber: lineNumber, characterNumber: characterNumber};\n};\n","module.exports = function(name, value, source) {\n    this.name = name;\n    this.value = value;\n    if (source) {\n        this.source = source;\n    }\n};\n","var rules = require(\"./rules\");\nvar results = require(\"./parsing-results\");\n\nexports.parser = function(name, prefixRules, infixRuleBuilders) {\n    var self = {\n        rule: rule,\n        leftAssociative: leftAssociative,\n        rightAssociative: rightAssociative\n    };\n    \n    var infixRules = new InfixRules(infixRuleBuilders.map(createInfixRule));\n    var prefixRule = rules.firstOf(name, prefixRules);\n    \n    function createInfixRule(infixRuleBuilder) {\n        return {\n            name: infixRuleBuilder.name,\n            rule: lazyRule(infixRuleBuilder.ruleBuilder.bind(null, self))\n        };\n    }\n    \n    function rule() {\n        return createRule(infixRules);\n    }\n    \n    function leftAssociative(name) {\n        return createRule(infixRules.untilExclusive(name));\n    }\n    \n    function rightAssociative(name) {\n        return createRule(infixRules.untilInclusive(name));\n    }\n    \n    function createRule(infixRules) {\n        return apply.bind(null, infixRules);\n    }\n    \n    function apply(infixRules, tokens) {\n        var leftResult = prefixRule(tokens);\n        if (leftResult.isSuccess()) {\n            return infixRules.apply(leftResult);\n        } else {\n            return leftResult;\n        }\n    }\n    \n    return self;\n};\n\nfunction InfixRules(infixRules) {\n    function untilExclusive(name) {\n        return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name)));\n    }\n    \n    function untilInclusive(name) {\n        return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name) + 1));\n    }\n    \n    function ruleNames() {\n        return infixRules.map(function(rule) {\n            return rule.name;\n        });\n    }\n    \n    function apply(leftResult) {\n        var currentResult;\n        var source;\n        while (true) {\n            currentResult = applyToTokens(leftResult.remaining());\n            if (currentResult.isSuccess()) {\n                source = leftResult.source().to(currentResult.source());\n                leftResult = results.success(\n                    currentResult.value()(leftResult.value(), source),\n                    currentResult.remaining(),\n                    source\n                )\n            } else if (currentResult.isFailure()) {\n                return leftResult;\n            } else {\n                return currentResult;\n            }\n        }\n    }\n    \n    function applyToTokens(tokens) {\n        return rules.firstOf(\"infix\", infixRules.map(function(infix) {\n            return infix.rule;\n        }))(tokens);\n    }\n    \n    return {\n        apply: apply,\n        untilExclusive: untilExclusive,\n        untilInclusive: untilInclusive\n    }\n}\n\nexports.infix = function(name, ruleBuilder) {\n    function map(func) {\n        return exports.infix(name, function(parser) {\n            var rule = ruleBuilder(parser);\n            return function(tokens) {\n                var result = rule(tokens);\n                return result.map(function(right) {\n                    return function(left, source) {\n                        return func(left, right, source);\n                    };\n                });\n            };\n        });\n    }\n    \n    return {\n        name: name,\n        ruleBuilder: ruleBuilder,\n        map: map\n    };\n}\n\n// TODO: move into a sensible place and remove duplication\nvar lazyRule = function(ruleBuilder) {\n    var rule;\n    return function(input) {\n        if (!rule) {\n            rule = ruleBuilder();\n        }\n        return rule(input);\n    };\n};\n","var Token = require(\"./Token\");\nvar StringSource = require(\"./StringSource\");\n\nexports.RegexTokeniser = RegexTokeniser;\n\nfunction RegexTokeniser(rules) {\n    rules = rules.map(function(rule) {\n        return {\n            name: rule.name,\n            regex: new RegExp(rule.regex.source, \"g\")\n        };\n    });\n    \n    function tokenise(input, description) {\n        var source = new StringSource(input, description);\n        var index = 0;\n        var tokens = [];\n    \n        while (index < input.length) {\n            var result = readNextToken(input, index, source);\n            index = result.endIndex;\n            tokens.push(result.token);\n        }\n        \n        tokens.push(endToken(input, source));\n        return tokens;\n    }\n\n    function readNextToken(string, startIndex, source) {\n        for (var i = 0; i < rules.length; i++) {\n            var regex = rules[i].regex;\n            regex.lastIndex = startIndex;\n            var result = regex.exec(string);\n            \n            if (result) {\n                var endIndex = startIndex + result[0].length;\n                if (result.index === startIndex && endIndex > startIndex) {\n                    var value = result[1];\n                    var token = new Token(\n                        rules[i].name,\n                        value,\n                        source.range(startIndex, endIndex)\n                    );\n                    return {token: token, endIndex: endIndex};\n                }\n            }\n        }\n        var endIndex = startIndex + 1;\n        var token = new Token(\n            \"unrecognisedCharacter\",\n            string.substring(startIndex, endIndex),\n            source.range(startIndex, endIndex)\n        );\n        return {token: token, endIndex: endIndex};\n    }\n    \n    function endToken(input, source) {\n        return new Token(\n            \"end\",\n            null,\n            source.range(input.length, input.length)\n        );\n    }\n    \n    return {\n        tokenise: tokenise\n    }\n}\n\n\n","exports.Parser = require(\"./lib/parser\").Parser;\nexports.rules = require(\"./lib/rules\");\nexports.errors = require(\"./lib/errors\");\nexports.results = require(\"./lib/parsing-results\");\nexports.StringSource = require(\"./lib/StringSource\");\nexports.Token = require(\"./lib/Token\");\nexports.bottomUp = require(\"./lib/bottom-up\");\nexports.RegexTokeniser = require(\"./lib/regex-tokeniser\").RegexTokeniser;\n\nexports.rule = function(ruleBuilder) {\n    var rule;\n    return function(input) {\n        if (!rule) {\n            rule = ruleBuilder();\n        }\n        return rule(input);\n    };\n};\n","exports.paragraph = paragraph;\nexports.run = run;\nexports.table = table;\nexports.bold = new Matcher(\"bold\");\nexports.italic = new Matcher(\"italic\");\nexports.underline = new Matcher(\"underline\");\nexports.strikethrough = new Matcher(\"strikethrough\");\nexports.allCaps = new Matcher(\"allCaps\");\nexports.smallCaps = new Matcher(\"smallCaps\");\nexports.highlight = highlight;\nexports.commentReference = new Matcher(\"commentReference\");\nexports.lineBreak = new BreakMatcher({breakType: \"line\"});\nexports.pageBreak = new BreakMatcher({breakType: \"page\"});\nexports.columnBreak = new BreakMatcher({breakType: \"column\"});\nexports.equalTo = equalTo;\nexports.startsWith = startsWith;\n\n\nfunction paragraph(options) {\n    return new Matcher(\"paragraph\", options);\n}\n\nfunction run(options) {\n    return new Matcher(\"run\", options);\n}\n\nfunction table(options) {\n    return new Matcher(\"table\", options);\n}\n\nfunction highlight(options) {\n    return new HighlightMatcher(options);\n}\n\nfunction Matcher(elementType, options) {\n    options = options || {};\n    this._elementType = elementType;\n    this._styleId = options.styleId;\n    this._styleName = options.styleName;\n    if (options.list) {\n        this._listIndex = options.list.levelIndex;\n        this._listIsOrdered = options.list.isOrdered;\n    }\n}\n\nMatcher.prototype.matches = function(element) {\n    return element.type === this._elementType &&\n        (this._styleId === undefined || element.styleId === this._styleId) &&\n        (this._styleName === undefined || (element.styleName && this._styleName.operator(this._styleName.operand, element.styleName))) &&\n        (this._listIndex === undefined || isList(element, this._listIndex, this._listIsOrdered)) &&\n        (this._breakType === undefined || this._breakType === element.breakType);\n};\n\nfunction HighlightMatcher(options) {\n    options = options || {};\n    this._color = options.color;\n}\n\nHighlightMatcher.prototype.matches = function(element) {\n    return element.type === \"highlight\" &&\n        (this._color === undefined || element.color === this._color);\n};\n\nfunction BreakMatcher(options) {\n    options = options || {};\n    this._breakType = options.breakType;\n}\n\nBreakMatcher.prototype.matches = function(element) {\n    return element.type === \"break\" &&\n        (this._breakType === undefined || element.breakType === this._breakType);\n};\n\nfunction isList(element, levelIndex, isOrdered) {\n    return element.numbering &&\n        element.numbering.level == levelIndex &&\n        element.numbering.isOrdered == isOrdered;\n}\n\nfunction equalTo(value) {\n    return {\n        operator: operatorEqualTo,\n        operand: value\n    };\n}\n\nfunction startsWith(value) {\n    return {\n        operator: operatorStartsWith,\n        operand: value\n    };\n}\n\nfunction operatorEqualTo(first, second) {\n    return first.toUpperCase() === second.toUpperCase();\n}\n\nfunction operatorStartsWith(first, second) {\n    return second.toUpperCase().indexOf(first.toUpperCase()) === 0;\n}\n","var lop = require(\"lop\");\nvar RegexTokeniser = lop.RegexTokeniser;\n\nexports.tokenise = tokenise;\n\nvar stringPrefix = \"'((?:\\\\\\\\.|[^'])*)\";\n\nfunction tokenise(string) {\n    var identifierCharacter = \"(?:[a-zA-Z\\\\-_]|\\\\\\\\.)\";\n    var tokeniser = new RegexTokeniser([\n        {name: \"identifier\", regex: new RegExp(\"(\" + identifierCharacter + \"(?:\" + identifierCharacter + \"|[0-9])*)\")},\n        {name: \"dot\", regex: /\\./},\n        {name: \"colon\", regex: /:/},\n        {name: \"gt\", regex: />/},\n        {name: \"whitespace\", regex: /\\s+/},\n        {name: \"arrow\", regex: /=>/},\n        {name: \"equals\", regex: /=/},\n        {name: \"startsWith\", regex: /\\^=/},\n        {name: \"open-paren\", regex: /\\(/},\n        {name: \"close-paren\", regex: /\\)/},\n        {name: \"open-square-bracket\", regex: /\\[/},\n        {name: \"close-square-bracket\", regex: /\\]/},\n        {name: \"string\", regex: new RegExp(stringPrefix + \"'\")},\n        {name: \"unterminated-string\", regex: new RegExp(stringPrefix)},\n        {name: \"integer\", regex: /([0-9]+)/},\n        {name: \"choice\", regex: /\\|/},\n        {name: \"bang\", regex: /(!)/}\n    ]);\n    return tokeniser.tokenise(string);\n}\n","var _ = require(\"underscore\");\nvar lop = require(\"lop\");\n\nvar documentMatchers = require(\"./styles/document-matchers\");\nvar htmlPaths = require(\"./styles/html-paths\");\nvar tokenise = require(\"./styles/parser/tokeniser\").tokenise;\nvar results = require(\"./results\");\n\nexports.readHtmlPath = readHtmlPath;\nexports.readDocumentMatcher = readDocumentMatcher;\nexports.readStyle = readStyle;\n\n\nfunction readStyle(string) {\n    return parseString(styleRule, string);\n}\n\nfunction createStyleRule() {\n    return lop.rules.sequence(\n        lop.rules.sequence.capture(documentMatcherRule()),\n        lop.rules.tokenOfType(\"whitespace\"),\n        lop.rules.tokenOfType(\"arrow\"),\n        lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(\n            lop.rules.tokenOfType(\"whitespace\"),\n            lop.rules.sequence.capture(htmlPathRule())\n        ).head())),\n        lop.rules.tokenOfType(\"end\")\n    ).map(function(documentMatcher, htmlPath) {\n        return {\n            from: documentMatcher,\n            to: htmlPath.valueOrElse(htmlPaths.empty)\n        };\n    });\n}\n\nfunction readDocumentMatcher(string) {\n    return parseString(documentMatcherRule(), string);\n}\n\nfunction documentMatcherRule() {\n    var sequence = lop.rules.sequence;\n\n    var identifierToConstant = function(identifier, constant) {\n        return lop.rules.then(\n            lop.rules.token(\"identifier\", identifier),\n            function() {\n                return constant;\n            }\n        );\n    };\n\n    var paragraphRule = identifierToConstant(\"p\", documentMatchers.paragraph);\n    var runRule = identifierToConstant(\"r\", documentMatchers.run);\n\n    var elementTypeRule = lop.rules.firstOf(\"p or r or table\",\n        paragraphRule,\n        runRule\n    );\n\n    var styleIdRule = lop.rules.sequence(\n        lop.rules.tokenOfType(\"dot\"),\n        lop.rules.sequence.cut(),\n        lop.rules.sequence.capture(identifierRule)\n    ).map(function(styleId) {\n        return {styleId: styleId};\n    });\n\n    var styleNameMatcherRule = lop.rules.firstOf(\"style name matcher\",\n        lop.rules.then(\n            lop.rules.sequence(\n                lop.rules.tokenOfType(\"equals\"),\n                lop.rules.sequence.cut(),\n                lop.rules.sequence.capture(stringRule)\n            ).head(),\n            function(styleName) {\n                return {styleName: documentMatchers.equalTo(styleName)};\n            }\n        ),\n        lop.rules.then(\n            lop.rules.sequence(\n                lop.rules.tokenOfType(\"startsWith\"),\n                lop.rules.sequence.cut(),\n                lop.rules.sequence.capture(stringRule)\n            ).head(),\n            function(styleName) {\n                return {styleName: documentMatchers.startsWith(styleName)};\n            }\n        )\n    );\n\n    var styleNameRule = lop.rules.sequence(\n        lop.rules.tokenOfType(\"open-square-bracket\"),\n        lop.rules.sequence.cut(),\n        lop.rules.token(\"identifier\", \"style-name\"),\n        lop.rules.sequence.capture(styleNameMatcherRule),\n        lop.rules.tokenOfType(\"close-square-bracket\")\n    ).head();\n\n\n    var listTypeRule = lop.rules.firstOf(\"list type\",\n        identifierToConstant(\"ordered-list\", {isOrdered: true}),\n        identifierToConstant(\"unordered-list\", {isOrdered: false})\n    );\n    var listRule = sequence(\n        lop.rules.tokenOfType(\"colon\"),\n        sequence.capture(listTypeRule),\n        sequence.cut(),\n        lop.rules.tokenOfType(\"open-paren\"),\n        sequence.capture(integerRule),\n        lop.rules.tokenOfType(\"close-paren\")\n    ).map(function(listType, levelNumber) {\n        return {\n            list: {\n                isOrdered: listType.isOrdered,\n                levelIndex: levelNumber - 1\n            }\n        };\n    });\n\n    function createMatcherSuffixesRule(rules) {\n        var matcherSuffix = lop.rules.firstOf.apply(\n            lop.rules.firstOf,\n            [\"matcher suffix\"].concat(rules)\n        );\n        var matcherSuffixes = lop.rules.zeroOrMore(matcherSuffix);\n        return lop.rules.then(matcherSuffixes, function(suffixes) {\n            var matcherOptions = {};\n            suffixes.forEach(function(suffix) {\n                _.extend(matcherOptions, suffix);\n            });\n            return matcherOptions;\n        });\n    }\n\n    var paragraphOrRun = sequence(\n        sequence.capture(elementTypeRule),\n        sequence.capture(createMatcherSuffixesRule([\n            styleIdRule,\n            styleNameRule,\n            listRule\n        ]))\n    ).map(function(createMatcher, matcherOptions) {\n        return createMatcher(matcherOptions);\n    });\n\n    var table = sequence(\n        lop.rules.token(\"identifier\", \"table\"),\n        sequence.capture(createMatcherSuffixesRule([\n            styleIdRule,\n            styleNameRule\n        ]))\n    ).map(function(options) {\n        return documentMatchers.table(options);\n    });\n\n    var bold = identifierToConstant(\"b\", documentMatchers.bold);\n    var italic = identifierToConstant(\"i\", documentMatchers.italic);\n    var underline = identifierToConstant(\"u\", documentMatchers.underline);\n    var strikethrough = identifierToConstant(\"strike\", documentMatchers.strikethrough);\n    var allCaps = identifierToConstant(\"all-caps\", documentMatchers.allCaps);\n    var smallCaps = identifierToConstant(\"small-caps\", documentMatchers.smallCaps);\n\n    var highlight = sequence(\n        lop.rules.token(\"identifier\", \"highlight\"),\n        lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(\n            lop.rules.tokenOfType(\"open-square-bracket\"),\n            lop.rules.sequence.cut(),\n            lop.rules.token(\"identifier\", \"color\"),\n            lop.rules.tokenOfType(\"equals\"),\n            lop.rules.sequence.capture(stringRule),\n            lop.rules.tokenOfType(\"close-square-bracket\")\n        ).head()))\n    ).map(function(color) {\n        return documentMatchers.highlight({\n            color: color.valueOrElse(undefined)\n        });\n    });\n\n    var commentReference = identifierToConstant(\"comment-reference\", documentMatchers.commentReference);\n\n    var breakMatcher = sequence(\n        lop.rules.token(\"identifier\", \"br\"),\n        sequence.cut(),\n        lop.rules.tokenOfType(\"open-square-bracket\"),\n        lop.rules.token(\"identifier\", \"type\"),\n        lop.rules.tokenOfType(\"equals\"),\n        sequence.capture(stringRule),\n        lop.rules.tokenOfType(\"close-square-bracket\")\n    ).map(function(breakType) {\n        switch (breakType) {\n        case \"line\":\n            return documentMatchers.lineBreak;\n        case \"page\":\n            return documentMatchers.pageBreak;\n        case \"column\":\n            return documentMatchers.columnBreak;\n        default:\n            // TODO: handle unknown document matchers\n        }\n    });\n\n    return lop.rules.firstOf(\"element type\",\n        paragraphOrRun,\n        table,\n        bold,\n        italic,\n        underline,\n        strikethrough,\n        allCaps,\n        smallCaps,\n        highlight,\n        commentReference,\n        breakMatcher\n    );\n}\n\nfunction readHtmlPath(string) {\n    return parseString(htmlPathRule(), string);\n}\n\nfunction htmlPathRule() {\n    var capture = lop.rules.sequence.capture;\n    var whitespaceRule = lop.rules.tokenOfType(\"whitespace\");\n    var freshRule = lop.rules.then(\n        lop.rules.optional(lop.rules.sequence(\n            lop.rules.tokenOfType(\"colon\"),\n            lop.rules.token(\"identifier\", \"fresh\")\n        )),\n        function(option) {\n            return option.map(function() {\n                return true;\n            }).valueOrElse(false);\n        }\n    );\n\n    var separatorRule = lop.rules.then(\n        lop.rules.optional(lop.rules.sequence(\n            lop.rules.tokenOfType(\"colon\"),\n            lop.rules.token(\"identifier\", \"separator\"),\n            lop.rules.tokenOfType(\"open-paren\"),\n            capture(stringRule),\n            lop.rules.tokenOfType(\"close-paren\")\n        ).head()),\n        function(option) {\n            return option.valueOrElse(\"\");\n        }\n    );\n\n    var tagNamesRule = lop.rules.oneOrMoreWithSeparator(\n        identifierRule,\n        lop.rules.tokenOfType(\"choice\")\n    );\n\n    var styleElementRule = lop.rules.sequence(\n        capture(tagNamesRule),\n        capture(lop.rules.zeroOrMore(attributeOrClassRule)),\n        capture(freshRule),\n        capture(separatorRule)\n    ).map(function(tagName, attributesList, fresh, separator) {\n        var attributes = {};\n        var options = {};\n        attributesList.forEach(function(attribute) {\n            if (attribute.append && attributes[attribute.name]) {\n                attributes[attribute.name] += \" \" + attribute.value;\n            } else {\n                attributes[attribute.name] = attribute.value;\n            }\n        });\n        if (fresh) {\n            options.fresh = true;\n        }\n        if (separator) {\n            options.separator = separator;\n        }\n        return htmlPaths.element(tagName, attributes, options);\n    });\n\n    return lop.rules.firstOf(\"html path\",\n        lop.rules.then(lop.rules.tokenOfType(\"bang\"), function() {\n            return htmlPaths.ignore;\n        }),\n        lop.rules.then(\n            lop.rules.zeroOrMoreWithSeparator(\n                styleElementRule,\n                lop.rules.sequence(\n                    whitespaceRule,\n                    lop.rules.tokenOfType(\"gt\"),\n                    whitespaceRule\n                )\n            ),\n            htmlPaths.elements\n        )\n    );\n}\n\nvar identifierRule = lop.rules.then(\n    lop.rules.tokenOfType(\"identifier\"),\n    decodeEscapeSequences\n);\nvar integerRule = lop.rules.tokenOfType(\"integer\");\n\nvar stringRule = lop.rules.then(\n    lop.rules.tokenOfType(\"string\"),\n    decodeEscapeSequences\n);\n\nvar escapeSequences = {\n    \"n\": \"\\n\",\n    \"r\": \"\\r\",\n    \"t\": \"\\t\"\n};\n\nfunction decodeEscapeSequences(value) {\n    return value.replace(/\\\\(.)/g, function(match, code) {\n        return escapeSequences[code] || code;\n    });\n}\n\nvar attributeRule = lop.rules.sequence(\n    lop.rules.tokenOfType(\"open-square-bracket\"),\n    lop.rules.sequence.cut(),\n    lop.rules.sequence.capture(identifierRule),\n    lop.rules.tokenOfType(\"equals\"),\n    lop.rules.sequence.capture(stringRule),\n    lop.rules.tokenOfType(\"close-square-bracket\")\n).map(function(name, value) {\n    return {name: name, value: value, append: false};\n});\n\nvar classRule = lop.rules.sequence(\n    lop.rules.tokenOfType(\"dot\"),\n    lop.rules.sequence.cut(),\n    lop.rules.sequence.capture(identifierRule)\n).map(function(className) {\n    return {name: \"class\", value: className, append: true};\n});\n\nvar attributeOrClassRule = lop.rules.firstOf(\n    \"attribute or class\",\n    attributeRule,\n    classRule\n);\n\nfunction parseString(rule, string) {\n    var tokens = tokenise(string);\n    var parser = lop.Parser();\n    var parseResult = parser.parseTokens(rule, tokens);\n    if (parseResult.isSuccess()) {\n        return results.success(parseResult.value());\n    } else {\n        return new results.Result(null, [results.warning(describeFailure(string, parseResult))]);\n    }\n}\n\nfunction describeFailure(input, parseResult) {\n    return \"Did not understand this style mapping, so ignored it: \" + input + \"\\n\" +\n        parseResult.errors().map(describeError).join(\"\\n\");\n}\n\nfunction describeError(error) {\n    return \"Error was at character number \" + error.characterNumber() + \": \" +\n        \"Expected \" + error.expected + \" but got \" + error.actual;\n}\n\nvar styleRule = createStyleRule();\n","exports.readOptions = readOptions;\n\n\nvar _ = require(\"underscore\");\n\nvar defaultStyleMap = exports._defaultStyleMap = [\n    \"p.Heading1 => h1:fresh\",\n    \"p.Heading2 => h2:fresh\",\n    \"p.Heading3 => h3:fresh\",\n    \"p.Heading4 => h4:fresh\",\n    \"p.Heading5 => h5:fresh\",\n    \"p.Heading6 => h6:fresh\",\n    \"p[style-name='Heading 1'] => h1:fresh\",\n    \"p[style-name='Heading 2'] => h2:fresh\",\n    \"p[style-name='Heading 3'] => h3:fresh\",\n    \"p[style-name='Heading 4'] => h4:fresh\",\n    \"p[style-name='Heading 5'] => h5:fresh\",\n    \"p[style-name='Heading 6'] => h6:fresh\",\n    \"p[style-name='heading 1'] => h1:fresh\",\n    \"p[style-name='heading 2'] => h2:fresh\",\n    \"p[style-name='heading 3'] => h3:fresh\",\n    \"p[style-name='heading 4'] => h4:fresh\",\n    \"p[style-name='heading 5'] => h5:fresh\",\n    \"p[style-name='heading 6'] => h6:fresh\",\n\n    // Apple Pages\n    \"p.Heading => h1:fresh\",\n    \"p[style-name='Heading'] => h1:fresh\",\n\n    \"r[style-name='Strong'] => strong\",\n\n    \"p[style-name='footnote text'] => p:fresh\",\n    \"r[style-name='footnote reference'] =>\",\n    \"p[style-name='endnote text'] => p:fresh\",\n    \"r[style-name='endnote reference'] =>\",\n    \"p[style-name='annotation text'] => p:fresh\",\n    \"r[style-name='annotation reference'] =>\",\n\n    // LibreOffice\n    \"p[style-name='Footnote'] => p:fresh\",\n    \"r[style-name='Footnote anchor'] =>\",\n    \"p[style-name='Endnote'] => p:fresh\",\n    \"r[style-name='Endnote anchor'] =>\",\n\n    \"p:unordered-list(1) => ul > li:fresh\",\n    \"p:unordered-list(2) => ul|ol > li > ul > li:fresh\",\n    \"p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh\",\n    \"p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh\",\n    \"p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh\",\n    \"p:ordered-list(1) => ol > li:fresh\",\n    \"p:ordered-list(2) => ul|ol > li > ol > li:fresh\",\n    \"p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh\",\n    \"p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh\",\n    \"p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh\",\n\n    \"r[style-name='Hyperlink'] =>\",\n\n    \"p[style-name='Normal'] => p:fresh\",\n\n    // Apple Pages\n    \"p.Body => p:fresh\",\n    \"p[style-name='Body'] => p:fresh\"\n];\n\nvar standardOptions = exports._standardOptions = {\n    externalFileAccess: false,\n    transformDocument: identity,\n    includeDefaultStyleMap: true,\n    includeEmbeddedStyleMap: true\n};\n\nfunction readOptions(options) {\n    options = options || {};\n    return _.extend({}, standardOptions, options, {\n        customStyleMap: readStyleMap(options.styleMap),\n        readStyleMap: function() {\n            var styleMap = this.customStyleMap;\n            if (this.includeEmbeddedStyleMap) {\n                styleMap = styleMap.concat(readStyleMap(this.embeddedStyleMap));\n            }\n            if (this.includeDefaultStyleMap) {\n                styleMap = styleMap.concat(defaultStyleMap);\n            }\n            return styleMap;\n        }\n    });\n}\n\nfunction readStyleMap(styleMap) {\n    if (!styleMap) {\n        return [];\n    } else if (_.isString(styleMap)) {\n        return styleMap.split(\"\\n\")\n            .map(function(line) {\n                return line.trim();\n            })\n            .filter(function(line) {\n                return line !== \"\" && line.charAt(0) !== \"#\";\n            });\n    } else {\n        return styleMap;\n    }\n}\n\nfunction identity(value) {\n    return value;\n}\n","var promises = require(\"../lib/promises\");\nvar zipfile = require(\"../lib/zipfile\");\n\nexports.openZip = openZip;\n\nfunction openZip(options) {\n    if (options.arrayBuffer) {\n        return promises.resolve(zipfile.openArrayBuffer(options.arrayBuffer));\n    } else {\n        return promises.reject(new Error(\"Could not find file in options\"));\n    }\n}\n","var htmlPaths = require(\"./styles/html-paths\");\nvar Html = require(\"./html\");\n\n\nexports.element = element;\n\nfunction element(name) {\n    return function(html) {\n        return Html.elementWithTag(htmlPaths.element(name), [html]);\n    };\n}\n","var _ = require(\"underscore\");\n\nvar docxReader = require(\"./docx/docx-reader\");\nvar docxStyleMap = require(\"./docx/style-map\");\nvar DocumentConverter = require(\"./document-to-html\").DocumentConverter;\nvar convertElementToRawText = require(\"./raw-text\").convertElementToRawText;\nvar readStyle = require(\"./style-reader\").readStyle;\nvar readOptions = require(\"./options-reader\").readOptions;\nvar unzip = require(\"./unzip\");\nvar Result = require(\"./results\").Result;\n\nexports.convertToHtml = convertToHtml;\nexports.convertToMarkdown = convertToMarkdown;\nexports.convert = convert;\nexports.extractRawText = extractRawText;\nexports.images = require(\"./images\");\nexports.transforms = require(\"./transforms\");\nexports.underline = require(\"./underline\");\nexports.embedStyleMap = embedStyleMap;\nexports.readEmbeddedStyleMap = readEmbeddedStyleMap;\n\nfunction convertToHtml(input, options) {\n    return convert(input, options);\n}\n\nfunction convertToMarkdown(input, options) {\n    var markdownOptions = Object.create(options || {});\n    markdownOptions.outputFormat = \"markdown\";\n    return convert(input, markdownOptions);\n}\n\nfunction convert(input, options) {\n    options = readOptions(options);\n\n    return unzip.openZip(input)\n        .tap(function(docxFile) {\n            return docxStyleMap.readStyleMap(docxFile).then(function(styleMap) {\n                options.embeddedStyleMap = styleMap;\n            });\n        })\n        .then(function(docxFile) {\n            return docxReader.read(docxFile, input, options)\n                .then(function(documentResult) {\n                    return documentResult.map(options.transformDocument);\n                })\n                .then(function(documentResult) {\n                    return convertDocumentToHtml(documentResult, options);\n                });\n        });\n}\n\nfunction readEmbeddedStyleMap(input) {\n    return unzip.openZip(input)\n        .then(docxStyleMap.readStyleMap);\n}\n\nfunction convertDocumentToHtml(documentResult, options) {\n    var styleMapResult = parseStyleMap(options.readStyleMap());\n    var parsedOptions = _.extend({}, options, {\n        styleMap: styleMapResult.value\n    });\n    var documentConverter = new DocumentConverter(parsedOptions);\n\n    return documentResult.flatMapThen(function(document) {\n        return styleMapResult.flatMapThen(function(styleMap) {\n            return documentConverter.convertToHtml(document);\n        });\n    });\n}\n\nfunction parseStyleMap(styleMap) {\n    return Result.combine((styleMap || []).map(readStyle))\n        .map(function(styleMap) {\n            return styleMap.filter(function(styleMapping) {\n                return !!styleMapping;\n            });\n        });\n}\n\n\nfunction extractRawText(input) {\n    return unzip.openZip(input)\n        .then(docxReader.read)\n        .then(function(documentResult) {\n            return documentResult.map(convertElementToRawText);\n        });\n}\n\nfunction embedStyleMap(input, styleMap) {\n    return unzip.openZip(input)\n        .tap(function(docxFile) {\n            return docxStyleMap.writeStyleMap(docxFile, styleMap);\n        })\n        .then(function(docxFile) {\n            return docxFile.toArrayBuffer();\n        })\n        .then(function(arrayBuffer) {\n            return {\n                toArrayBuffer: function() {\n                    return arrayBuffer;\n                },\n                toBuffer: function() {\n                    return Buffer.from(arrayBuffer);\n                }\n            };\n        });\n}\n\nexports.styleMapping = function() {\n    throw new Error('Use a raw string instead of mammoth.styleMapping e.g. \"p[style-name=\\'Title\\'] => h1\" instead of mammoth.styleMapping(\"p[style-name=\\'Title\\'] => h1\")');\n};\n","function extend(destination) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) destination[key] = source[key];\n    }\n  }\n  return destination;\n}\nfunction repeat(character, count) {\n  return Array(count + 1).join(character);\n}\nfunction trimLeadingNewlines(string) {\n  return string.replace(/^\\n*/, '');\n}\nfunction trimTrailingNewlines(string) {\n  // avoid match-at-end regexp bottleneck, see #370\n  var indexEnd = string.length;\n  while (indexEnd > 0 && string[indexEnd - 1] === '\\n') indexEnd--;\n  return string.substring(0, indexEnd);\n}\nfunction trimNewlines(string) {\n  return trimTrailingNewlines(trimLeadingNewlines(string));\n}\nvar blockElements = ['ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS', 'CENTER', 'DD', 'DIR', 'DIV', 'DL', 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER', 'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES', 'NOSCRIPT', 'OL', 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD', 'TFOOT', 'TH', 'THEAD', 'TR', 'UL'];\nfunction isBlock(node) {\n  return is(node, blockElements);\n}\nvar voidElements = ['AREA', 'BASE', 'BR', 'COL', 'COMMAND', 'EMBED', 'HR', 'IMG', 'INPUT', 'KEYGEN', 'LINK', 'META', 'PARAM', 'SOURCE', 'TRACK', 'WBR'];\nfunction isVoid(node) {\n  return is(node, voidElements);\n}\nfunction hasVoid(node) {\n  return has(node, voidElements);\n}\nvar meaningfulWhenBlankElements = ['A', 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TH', 'TD', 'IFRAME', 'SCRIPT', 'AUDIO', 'VIDEO'];\nfunction isMeaningfulWhenBlank(node) {\n  return is(node, meaningfulWhenBlankElements);\n}\nfunction hasMeaningfulWhenBlank(node) {\n  return has(node, meaningfulWhenBlankElements);\n}\nfunction is(node, tagNames) {\n  return tagNames.indexOf(node.nodeName) >= 0;\n}\nfunction has(node, tagNames) {\n  return node.getElementsByTagName && tagNames.some(function (tagName) {\n    return node.getElementsByTagName(tagName).length;\n  });\n}\nvar markdownEscapes = [[/\\\\/g, '\\\\\\\\'], [/\\*/g, '\\\\*'], [/^-/g, '\\\\-'], [/^\\+ /g, '\\\\+ '], [/^(=+)/g, '\\\\$1'], [/^(#{1,6}) /g, '\\\\$1 '], [/`/g, '\\\\`'], [/^~~~/g, '\\\\~~~'], [/\\[/g, '\\\\['], [/\\]/g, '\\\\]'], [/^>/g, '\\\\>'], [/_/g, '\\\\_'], [/^(\\d+)\\. /g, '$1\\\\. ']];\nfunction escapeMarkdown(string) {\n  return markdownEscapes.reduce(function (accumulator, escape) {\n    return accumulator.replace(escape[0], escape[1]);\n  }, string);\n}\n\nvar rules = {};\nrules.paragraph = {\n  filter: 'p',\n  replacement: function (content) {\n    return '\\n\\n' + content + '\\n\\n';\n  }\n};\nrules.lineBreak = {\n  filter: 'br',\n  replacement: function (content, node, options) {\n    return options.br + '\\n';\n  }\n};\nrules.heading = {\n  filter: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n  replacement: function (content, node, options) {\n    var hLevel = Number(node.nodeName.charAt(1));\n    if (options.headingStyle === 'setext' && hLevel < 3) {\n      var underline = repeat(hLevel === 1 ? '=' : '-', content.length);\n      return '\\n\\n' + content + '\\n' + underline + '\\n\\n';\n    } else {\n      return '\\n\\n' + repeat('#', hLevel) + ' ' + content + '\\n\\n';\n    }\n  }\n};\nrules.blockquote = {\n  filter: 'blockquote',\n  replacement: function (content) {\n    content = trimNewlines(content).replace(/^/gm, '> ');\n    return '\\n\\n' + content + '\\n\\n';\n  }\n};\nrules.list = {\n  filter: ['ul', 'ol'],\n  replacement: function (content, node) {\n    var parent = node.parentNode;\n    if (parent.nodeName === 'LI' && parent.lastElementChild === node) {\n      return '\\n' + content;\n    } else {\n      return '\\n\\n' + content + '\\n\\n';\n    }\n  }\n};\nrules.listItem = {\n  filter: 'li',\n  replacement: function (content, node, options) {\n    var prefix = options.bulletListMarker + '   ';\n    var parent = node.parentNode;\n    if (parent.nodeName === 'OL') {\n      var start = parent.getAttribute('start');\n      var index = Array.prototype.indexOf.call(parent.children, node);\n      prefix = (start ? Number(start) + index : index + 1) + '.  ';\n    }\n    var isParagraph = /\\n$/.test(content);\n    content = trimNewlines(content) + (isParagraph ? '\\n' : '');\n    content = content.replace(/\\n/gm, '\\n' + ' '.repeat(prefix.length)); // indent\n    return prefix + content + (node.nextSibling ? '\\n' : '');\n  }\n};\nrules.indentedCodeBlock = {\n  filter: function (node, options) {\n    return options.codeBlockStyle === 'indented' && node.nodeName === 'PRE' && node.firstChild && node.firstChild.nodeName === 'CODE';\n  },\n  replacement: function (content, node, options) {\n    return '\\n\\n    ' + node.firstChild.textContent.replace(/\\n/g, '\\n    ') + '\\n\\n';\n  }\n};\nrules.fencedCodeBlock = {\n  filter: function (node, options) {\n    return options.codeBlockStyle === 'fenced' && node.nodeName === 'PRE' && node.firstChild && node.firstChild.nodeName === 'CODE';\n  },\n  replacement: function (content, node, options) {\n    var className = node.firstChild.getAttribute('class') || '';\n    var language = (className.match(/language-(\\S+)/) || [null, ''])[1];\n    var code = node.firstChild.textContent;\n    var fenceChar = options.fence.charAt(0);\n    var fenceSize = 3;\n    var fenceInCodeRegex = new RegExp('^' + fenceChar + '{3,}', 'gm');\n    var match;\n    while (match = fenceInCodeRegex.exec(code)) {\n      if (match[0].length >= fenceSize) {\n        fenceSize = match[0].length + 1;\n      }\n    }\n    var fence = repeat(fenceChar, fenceSize);\n    return '\\n\\n' + fence + language + '\\n' + code.replace(/\\n$/, '') + '\\n' + fence + '\\n\\n';\n  }\n};\nrules.horizontalRule = {\n  filter: 'hr',\n  replacement: function (content, node, options) {\n    return '\\n\\n' + options.hr + '\\n\\n';\n  }\n};\nrules.inlineLink = {\n  filter: function (node, options) {\n    return options.linkStyle === 'inlined' && node.nodeName === 'A' && node.getAttribute('href');\n  },\n  replacement: function (content, node) {\n    var href = escapeLinkDestination(node.getAttribute('href'));\n    var title = escapeLinkTitle(cleanAttribute(node.getAttribute('title')));\n    var titlePart = title ? ' \"' + title + '\"' : '';\n    return '[' + content + '](' + href + titlePart + ')';\n  }\n};\nrules.referenceLink = {\n  filter: function (node, options) {\n    return options.linkStyle === 'referenced' && node.nodeName === 'A' && node.getAttribute('href');\n  },\n  replacement: function (content, node, options) {\n    var href = escapeLinkDestination(node.getAttribute('href'));\n    var title = cleanAttribute(node.getAttribute('title'));\n    if (title) title = ' \"' + escapeLinkTitle(title) + '\"';\n    var replacement;\n    var reference;\n    switch (options.linkReferenceStyle) {\n      case 'collapsed':\n        replacement = '[' + content + '][]';\n        reference = '[' + content + ']: ' + href + title;\n        break;\n      case 'shortcut':\n        replacement = '[' + content + ']';\n        reference = '[' + content + ']: ' + href + title;\n        break;\n      default:\n        var id = this.references.length + 1;\n        replacement = '[' + content + '][' + id + ']';\n        reference = '[' + id + ']: ' + href + title;\n    }\n    this.references.push(reference);\n    return replacement;\n  },\n  references: [],\n  append: function (options) {\n    var references = '';\n    if (this.references.length) {\n      references = '\\n\\n' + this.references.join('\\n') + '\\n\\n';\n      this.references = []; // Reset references\n    }\n    return references;\n  }\n};\nrules.emphasis = {\n  filter: ['em', 'i'],\n  replacement: function (content, node, options) {\n    if (!content.trim()) return '';\n    return options.emDelimiter + content + options.emDelimiter;\n  }\n};\nrules.strong = {\n  filter: ['strong', 'b'],\n  replacement: function (content, node, options) {\n    if (!content.trim()) return '';\n    return options.strongDelimiter + content + options.strongDelimiter;\n  }\n};\nrules.code = {\n  filter: function (node) {\n    var hasSiblings = node.previousSibling || node.nextSibling;\n    var isCodeBlock = node.parentNode.nodeName === 'PRE' && !hasSiblings;\n    return node.nodeName === 'CODE' && !isCodeBlock;\n  },\n  replacement: function (content) {\n    if (!content) return '';\n    content = content.replace(/\\r?\\n|\\r/g, ' ');\n    var extraSpace = /^`|^ .*?[^ ].* $|`$/.test(content) ? ' ' : '';\n    var delimiter = '`';\n    var matches = content.match(/`+/gm) || [];\n    while (matches.indexOf(delimiter) !== -1) delimiter = delimiter + '`';\n    return delimiter + extraSpace + content + extraSpace + delimiter;\n  }\n};\nrules.image = {\n  filter: 'img',\n  replacement: function (content, node) {\n    var alt = escapeMarkdown(cleanAttribute(node.getAttribute('alt')));\n    var src = escapeLinkDestination(node.getAttribute('src') || '');\n    var title = cleanAttribute(node.getAttribute('title'));\n    var titlePart = title ? ' \"' + escapeLinkTitle(title) + '\"' : '';\n    return src ? '![' + alt + ']' + '(' + src + titlePart + ')' : '';\n  }\n};\nfunction cleanAttribute(attribute) {\n  return attribute ? attribute.replace(/(\\n+\\s*)+/g, '\\n') : '';\n}\nfunction escapeLinkDestination(destination) {\n  var escaped = destination.replace(/([<>()])/g, '\\\\$1');\n  return escaped.indexOf(' ') >= 0 ? '<' + escaped + '>' : escaped;\n}\nfunction escapeLinkTitle(title) {\n  return title.replace(/\"/g, '\\\\\"');\n}\n\n/**\n * Manages a collection of rules used to convert HTML to Markdown\n */\n\nfunction Rules(options) {\n  this.options = options;\n  this._keep = [];\n  this._remove = [];\n  this.blankRule = {\n    replacement: options.blankReplacement\n  };\n  this.keepReplacement = options.keepReplacement;\n  this.defaultRule = {\n    replacement: options.defaultReplacement\n  };\n  this.array = [];\n  for (var key in options.rules) this.array.push(options.rules[key]);\n}\nRules.prototype = {\n  add: function (key, rule) {\n    this.array.unshift(rule);\n  },\n  keep: function (filter) {\n    this._keep.unshift({\n      filter: filter,\n      replacement: this.keepReplacement\n    });\n  },\n  remove: function (filter) {\n    this._remove.unshift({\n      filter: filter,\n      replacement: function () {\n        return '';\n      }\n    });\n  },\n  forNode: function (node) {\n    if (node.isBlank) return this.blankRule;\n    var rule;\n    if (rule = findRule(this.array, node, this.options)) return rule;\n    if (rule = findRule(this._keep, node, this.options)) return rule;\n    if (rule = findRule(this._remove, node, this.options)) return rule;\n    return this.defaultRule;\n  },\n  forEach: function (fn) {\n    for (var i = 0; i < this.array.length; i++) fn(this.array[i], i);\n  }\n};\nfunction findRule(rules, node, options) {\n  for (var i = 0; i < rules.length; i++) {\n    var rule = rules[i];\n    if (filterValue(rule, node, options)) return rule;\n  }\n  return undefined;\n}\nfunction filterValue(rule, node, options) {\n  var filter = rule.filter;\n  if (typeof filter === 'string') {\n    if (filter === node.nodeName.toLowerCase()) return true;\n  } else if (Array.isArray(filter)) {\n    if (filter.indexOf(node.nodeName.toLowerCase()) > -1) return true;\n  } else if (typeof filter === 'function') {\n    if (filter.call(rule, node, options)) return true;\n  } else {\n    throw new TypeError('`filter` needs to be a string, array, or function');\n  }\n}\n\n/**\n * The collapseWhitespace function is adapted from collapse-whitespace\n * by Luc Thevenard.\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014 Luc Thevenard <lucthevenard@gmail.com>\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/**\n * collapseWhitespace(options) removes extraneous whitespace from an the given element.\n *\n * @param {Object} options\n */\nfunction collapseWhitespace(options) {\n  var element = options.element;\n  var isBlock = options.isBlock;\n  var isVoid = options.isVoid;\n  var isPre = options.isPre || function (node) {\n    return node.nodeName === 'PRE';\n  };\n  if (!element.firstChild || isPre(element)) return;\n  var prevText = null;\n  var keepLeadingWs = false;\n  var prev = null;\n  var node = next(prev, element, isPre);\n  while (node !== element) {\n    if (node.nodeType === 3 || node.nodeType === 4) {\n      // Node.TEXT_NODE or Node.CDATA_SECTION_NODE\n      var text = node.data.replace(/[ \\r\\n\\t]+/g, ' ');\n      if ((!prevText || / $/.test(prevText.data)) && !keepLeadingWs && text[0] === ' ') {\n        text = text.substr(1);\n      }\n\n      // `text` might be empty at this point.\n      if (!text) {\n        node = remove(node);\n        continue;\n      }\n      node.data = text;\n      prevText = node;\n    } else if (node.nodeType === 1) {\n      // Node.ELEMENT_NODE\n      if (isBlock(node) || node.nodeName === 'BR') {\n        if (prevText) {\n          prevText.data = prevText.data.replace(/ $/, '');\n        }\n        prevText = null;\n        keepLeadingWs = false;\n      } else if (isVoid(node) || isPre(node)) {\n        // Avoid trimming space around non-block, non-BR void elements and inline PRE.\n        prevText = null;\n        keepLeadingWs = true;\n      } else if (prevText) {\n        // Drop protection if set previously.\n        keepLeadingWs = false;\n      }\n    } else {\n      node = remove(node);\n      continue;\n    }\n    var nextNode = next(prev, node, isPre);\n    prev = node;\n    node = nextNode;\n  }\n  if (prevText) {\n    prevText.data = prevText.data.replace(/ $/, '');\n    if (!prevText.data) {\n      remove(prevText);\n    }\n  }\n}\n\n/**\n * remove(node) removes the given node from the DOM and returns the\n * next node in the sequence.\n *\n * @param {Node} node\n * @return {Node} node\n */\nfunction remove(node) {\n  var next = node.nextSibling || node.parentNode;\n  node.parentNode.removeChild(node);\n  return next;\n}\n\n/**\n * next(prev, current, isPre) returns the next node in the sequence, given the\n * current and previous nodes.\n *\n * @param {Node} prev\n * @param {Node} current\n * @param {Function} isPre\n * @return {Node}\n */\nfunction next(prev, current, isPre) {\n  if (prev && prev.parentNode === current || isPre(current)) {\n    return current.nextSibling || current.parentNode;\n  }\n  return current.firstChild || current.nextSibling || current.parentNode;\n}\n\n/*\n * Set up window for Node.js\n */\n\nvar root = typeof window !== 'undefined' ? window : {};\n\n/*\n * Parsing HTML strings\n */\n\nfunction canParseHTMLNatively() {\n  var Parser = root.DOMParser;\n  var canParse = false;\n\n  // Adapted from https://gist.github.com/1129031\n  // Firefox/Opera/IE throw errors on unsupported types\n  try {\n    // WebKit returns null on unsupported types\n    if (new Parser().parseFromString('', 'text/html')) {\n      canParse = true;\n    }\n  } catch (e) {}\n  return canParse;\n}\nfunction createHTMLParser() {\n  var Parser = function () {};\n  {\n    if (shouldUseActiveX()) {\n      Parser.prototype.parseFromString = function (string) {\n        var doc = new window.ActiveXObject('htmlfile');\n        doc.designMode = 'on'; // disable on-page scripts\n        doc.open();\n        doc.write(string);\n        doc.close();\n        return doc;\n      };\n    } else {\n      Parser.prototype.parseFromString = function (string) {\n        var doc = document.implementation.createHTMLDocument('');\n        doc.open();\n        doc.write(string);\n        doc.close();\n        return doc;\n      };\n    }\n  }\n  return Parser;\n}\nfunction shouldUseActiveX() {\n  var useActiveX = false;\n  try {\n    document.implementation.createHTMLDocument('').open();\n  } catch (e) {\n    if (root.ActiveXObject) useActiveX = true;\n  }\n  return useActiveX;\n}\nvar HTMLParser = canParseHTMLNatively() ? root.DOMParser : createHTMLParser();\n\nfunction RootNode(input, options) {\n  var root;\n  if (typeof input === 'string') {\n    var doc = htmlParser().parseFromString(\n    // DOM parsers arrange elements in the <head> and <body>.\n    // Wrapping in a custom element ensures elements are reliably arranged in\n    // a single element.\n    '<x-turndown id=\"turndown-root\">' + input + '</x-turndown>', 'text/html');\n    root = doc.getElementById('turndown-root');\n  } else {\n    root = input.cloneNode(true);\n  }\n  collapseWhitespace({\n    element: root,\n    isBlock: isBlock,\n    isVoid: isVoid,\n    isPre: options.preformattedCode ? isPreOrCode : null\n  });\n  return root;\n}\nvar _htmlParser;\nfunction htmlParser() {\n  _htmlParser = _htmlParser || new HTMLParser();\n  return _htmlParser;\n}\nfunction isPreOrCode(node) {\n  return node.nodeName === 'PRE' || node.nodeName === 'CODE';\n}\n\nfunction Node(node, options) {\n  node.isBlock = isBlock(node);\n  node.isCode = node.nodeName === 'CODE' || node.parentNode.isCode;\n  node.isBlank = isBlank(node);\n  node.flankingWhitespace = flankingWhitespace(node, options);\n  return node;\n}\nfunction isBlank(node) {\n  return !isVoid(node) && !isMeaningfulWhenBlank(node) && /^\\s*$/i.test(node.textContent) && !hasVoid(node) && !hasMeaningfulWhenBlank(node);\n}\nfunction flankingWhitespace(node, options) {\n  if (node.isBlock || options.preformattedCode && node.isCode) {\n    return {\n      leading: '',\n      trailing: ''\n    };\n  }\n  var edges = edgeWhitespace(node.textContent);\n\n  // abandon leading ASCII WS if left-flanked by ASCII WS\n  if (edges.leadingAscii && isFlankedByWhitespace('left', node, options)) {\n    edges.leading = edges.leadingNonAscii;\n  }\n\n  // abandon trailing ASCII WS if right-flanked by ASCII WS\n  if (edges.trailingAscii && isFlankedByWhitespace('right', node, options)) {\n    edges.trailing = edges.trailingNonAscii;\n  }\n  return {\n    leading: edges.leading,\n    trailing: edges.trailing\n  };\n}\nfunction edgeWhitespace(string) {\n  var m = string.match(/^(([ \\t\\r\\n]*)(\\s*))(?:(?=\\S)[\\s\\S]*\\S)?((\\s*?)([ \\t\\r\\n]*))$/);\n  return {\n    leading: m[1],\n    // whole string for whitespace-only strings\n    leadingAscii: m[2],\n    leadingNonAscii: m[3],\n    trailing: m[4],\n    // empty for whitespace-only strings\n    trailingNonAscii: m[5],\n    trailingAscii: m[6]\n  };\n}\nfunction isFlankedByWhitespace(side, node, options) {\n  var sibling;\n  var regExp;\n  var isFlanked;\n  if (side === 'left') {\n    sibling = node.previousSibling;\n    regExp = / $/;\n  } else {\n    sibling = node.nextSibling;\n    regExp = /^ /;\n  }\n  if (sibling) {\n    if (sibling.nodeType === 3) {\n      isFlanked = regExp.test(sibling.nodeValue);\n    } else if (options.preformattedCode && sibling.nodeName === 'CODE') {\n      isFlanked = false;\n    } else if (sibling.nodeType === 1 && !isBlock(sibling)) {\n      isFlanked = regExp.test(sibling.textContent);\n    }\n  }\n  return isFlanked;\n}\n\nvar reduce = Array.prototype.reduce;\nfunction TurndownService(options) {\n  if (!(this instanceof TurndownService)) return new TurndownService(options);\n  var defaults = {\n    rules: rules,\n    headingStyle: 'setext',\n    hr: '* * *',\n    bulletListMarker: '*',\n    codeBlockStyle: 'indented',\n    fence: '```',\n    emDelimiter: '_',\n    strongDelimiter: '**',\n    linkStyle: 'inlined',\n    linkReferenceStyle: 'full',\n    br: '  ',\n    preformattedCode: false,\n    blankReplacement: function (content, node) {\n      return node.isBlock ? '\\n\\n' : '';\n    },\n    keepReplacement: function (content, node) {\n      return node.isBlock ? '\\n\\n' + node.outerHTML + '\\n\\n' : node.outerHTML;\n    },\n    defaultReplacement: function (content, node) {\n      return node.isBlock ? '\\n\\n' + content + '\\n\\n' : content;\n    }\n  };\n  this.options = extend({}, defaults, options);\n  this.rules = new Rules(this.options);\n}\nTurndownService.prototype = {\n  /**\n   * The entry point for converting a string or DOM node to Markdown\n   * @public\n   * @param {String|HTMLElement} input The string or DOM node to convert\n   * @returns A Markdown representation of the input\n   * @type String\n   */\n\n  turndown: function (input) {\n    if (!canConvert(input)) {\n      throw new TypeError(input + ' is not a string, or an element/document/fragment node.');\n    }\n    if (input === '') return '';\n    var output = process.call(this, new RootNode(input, this.options));\n    return postProcess.call(this, output);\n  },\n  /**\n   * Add one or more plugins\n   * @public\n   * @param {Function|Array} plugin The plugin or array of plugins to add\n   * @returns The Turndown instance for chaining\n   * @type Object\n   */\n\n  use: function (plugin) {\n    if (Array.isArray(plugin)) {\n      for (var i = 0; i < plugin.length; i++) this.use(plugin[i]);\n    } else if (typeof plugin === 'function') {\n      plugin(this);\n    } else {\n      throw new TypeError('plugin must be a Function or an Array of Functions');\n    }\n    return this;\n  },\n  /**\n   * Adds a rule\n   * @public\n   * @param {String} key The unique key of the rule\n   * @param {Object} rule The rule\n   * @returns The Turndown instance for chaining\n   * @type Object\n   */\n\n  addRule: function (key, rule) {\n    this.rules.add(key, rule);\n    return this;\n  },\n  /**\n   * Keep a node (as HTML) that matches the filter\n   * @public\n   * @param {String|Array|Function} filter The unique key of the rule\n   * @returns The Turndown instance for chaining\n   * @type Object\n   */\n\n  keep: function (filter) {\n    this.rules.keep(filter);\n    return this;\n  },\n  /**\n   * Remove a node that matches the filter\n   * @public\n   * @param {String|Array|Function} filter The unique key of the rule\n   * @returns The Turndown instance for chaining\n   * @type Object\n   */\n\n  remove: function (filter) {\n    this.rules.remove(filter);\n    return this;\n  },\n  /**\n   * Escapes Markdown syntax\n   * @public\n   * @param {String} string The string to escape\n   * @returns A string with Markdown syntax escaped\n   * @type String\n   */\n\n  escape: function (string) {\n    return escapeMarkdown(string);\n  }\n};\n\n/**\n * Reduces a DOM node down to its Markdown string equivalent\n * @private\n * @param {HTMLElement} parentNode The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction process(parentNode) {\n  var self = this;\n  return reduce.call(parentNode.childNodes, function (output, node) {\n    node = new Node(node, self.options);\n    var replacement = '';\n    if (node.nodeType === 3) {\n      replacement = node.isCode ? node.nodeValue : self.escape(node.nodeValue);\n    } else if (node.nodeType === 1) {\n      replacement = replacementForNode.call(self, node);\n    }\n    return join(output, replacement);\n  }, '');\n}\n\n/**\n * Appends strings as each rule requires and trims the output\n * @private\n * @param {String} output The conversion output\n * @returns A trimmed version of the ouput\n * @type String\n */\n\nfunction postProcess(output) {\n  var self = this;\n  this.rules.forEach(function (rule) {\n    if (typeof rule.append === 'function') {\n      output = join(output, rule.append(self.options));\n    }\n  });\n  return output.replace(/^[\\t\\r\\n]+/, '').replace(/[\\t\\r\\n\\s]+$/, '');\n}\n\n/**\n * Converts an element node to its Markdown equivalent\n * @private\n * @param {HTMLElement} node The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction replacementForNode(node) {\n  var rule = this.rules.forNode(node);\n  var content = process.call(this, node);\n  var whitespace = node.flankingWhitespace;\n  if (whitespace.leading || whitespace.trailing) content = content.trim();\n  return whitespace.leading + rule.replacement(content, node, this.options) + whitespace.trailing;\n}\n\n/**\n * Joins replacement to the current output with appropriate number of new lines\n * @private\n * @param {String} output The current conversion output\n * @param {String} replacement The string to append to the output\n * @returns Joined output\n * @type String\n */\n\nfunction join(output, replacement) {\n  var s1 = trimTrailingNewlines(output);\n  var s2 = trimLeadingNewlines(replacement);\n  var nls = Math.max(output.length - s1.length, replacement.length - s2.length);\n  var separator = '\\n\\n'.substring(0, nls);\n  return s1 + separator + s2;\n}\n\n/**\n * Determines whether an input can be converted\n * @private\n * @param {String|HTMLElement} input Describe this parameter\n * @returns Describe what it returns\n * @type String|Object|Array|Boolean|Number\n */\n\nfunction canConvert(input) {\n  return input != null && (typeof input === 'string' || input.nodeType && (input.nodeType === 1 || input.nodeType === 9 || input.nodeType === 11));\n}\n\nexport { TurndownService as default };\n"],"names":["TURN_GAP_MS","genId","_b","_a","normalizeText","s","asRole","r","isCallActive","status","planTranscriptTurn","role","snapshot","nowMonotonic","generateId","existingId","lastAt","roleChanged","turnExpired","applyTranscriptTurn","prev","plan","content","isFinal","wallClock","next","idx","l","isTranscriptEvent","m","DEFAULT_API_URL","MAX_BUFFER_CHARS","extractContent","chunk","streamChat","url","publicKey","body","onChunk","signal","maxBufferChars","response","reader","decoder","buffer","done","value","sepIndex","rawEvent","dataLines","line","data","mergeChannelType","variableValues","channelType","ChatEngine","options","input","sessionEnd","assistantId","apiUrl","assistantOverrides","controller","assistantMessageId","assistantContent","error","text","trimmed","hasAttachments","wireText","closingText","e","n","i","t","o","a","c","u","d","p","h","f","v","g","y","b","_","w","S","k","M","C","E","T","O","P","A","j","I","x","L$1","D$1","L","N","R","F","B","U","V","J","$","q","z","W","H","G","Q","K","Y","X","Z","ee","te","ne","re","ie","oe","se","ae","ce","le","ue","de","pe","he","fe","ve","Ce","ge","me","ye","be","_e","we","Se","ke","Me","Ee","Te","Oe","Pe","Ae","je","Ie","xe","Le","Ne","De","Re","Fe","Ue","Be","Ve","Je","$e","qe","ze","We","He","Ge","Qe","Ke","Ye","Xe","et","Ze","tt","nt","rt","it","ot","st","at","ct","lt","ut","dt","pt","ht","ft","vt","gt","mt","yt","bt","_t","wt","St","kt","Mt","Ct","Et","Pt","Tt","Ot","At","jt","It","xt","Lt","Dt","Nt","Rt","Ft","Bt","Ut","Jt","Vt","$t","qt","zt","Wt","Ht","Gt","Qt","Kt","Yt","Xt","Zt","en","tn","nn","rn","on","sn","an","cn","un","dn","pn","hn","fn","vn","gn","mn","yn","bn","_n","wn","kn","Sn","Mn","Cn","En","Tn","On","Pn","An","jn","In","xn","Ln","Dn","Nn","Rn","Fn","Bn","Un","Vn","Jn","$n","zn","qn","Wn","Hn","Gn","Qn","Kn","Yn","Zn","Xn","er","tr","nr","rr","ir","or","sr","lr","pr","hr","ar","gr","cr","ur","dr","fr","vr","mr","yr","br","_r","wr","Sr","kr","Mr","Cr","Er","Tr","Or","Pr","Ar","jr","Ir","xr","Lr","Dr","Nr","Rr","Fr","Br","Ur","Vr","Jr","$r","qr","zr","Wr","Hr","Gr","Qr","Kr","Xr","Yr","Zr","ei","ti","ni","ri","ii","oi","si","ai","ci","li","ui","di","pi","hi","fi","vi","gi","mi","yi","bi","_i","wi","Si","ki","Mi","Ci","Ei","Ti","Oi","Pi","Ai","ji","Ii","xi","Li","Di","Ni","Ri","Fi","Bi","Ui","Vi","Ji","$i","qi","zi","Wi","Hi","Gi","Qi","Ki","Yi","Xi","Zi","eo","to","no","ro","io","oo","so","ao","co","lo","uo","po","ho","fo","vo","go","mo","yo","bo","_o","wo","So","ko","Mo","Co","Eo","To","Oo","Po","Ao","jo","Io","xo","Lo","Do","No","Ro","Fo","Bo","Uo","Vo","Jo","$o","qo","zo","Wo","Ho","Go","Qo","Ko","Yo","Xo","Zo","es","ts","ns","rs","is","os","ss","ms","ys","as","cs","ls","us","ds","ps","gs","Ss","bs","ks","hs","vs","fs","_s","ws","Ms","Cs","Es","Ts","Os","Ps","As","js","Is","xs","Ls","Ds","Ns","Rs","Fs","Bs","Us","Vs","qs","Js","$s","zs","Ws","Hs","Ks","Gs","Qs","Ys","Xs","Zs","ea","ta","na","ra","ia","oa","sa","aa","ca","la","ua","da","ha","pa","fa","va","ga","ma","ya","ba","wa","Sa","ka","Ma","Ca","Ea","Ta","Oa","Pa","Aa","ja","Ia","xa","La","Da","Na","Ra","Fa","Ba","Ua","Va","Ja","$a","qa","za","gc","fc","vc","mc","oc","sc","hc","ac","cc","pc","Wa","Ha","wc","rc","tc","Ka","Xa","Qa","ic","Za","Ya","_c","bc","Ga","yc","ec","nc","D","uc","dc","lc","ReflectApply","target","receiver","args","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","listener","arg","_getMaxListeners","that","type","doError","events","err","handler","len","listeners","arrayClone","_addListener","prepend","existing","onceWrapper","_onceWrap","state","wrapped","list","position","originalListener","spliceOne","keys","key","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","arr","copy","index","ret","name","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","api","ContentType","HttpClient","apiConfig","__publicField","fetchParams","formData","property","cancelToken","abortController","secure","path","query","format","baseUrl","params","secureParams","requestParams","queryString","payloadFormatter","responseFormat","responseToParse","rawQuery","params1","params2","Api","id","version","draftId","fileId","testSuiteId","itemId","memberId","invitationId","provider","resourceName","workflowId","client","api_1","require$$0","securityData","dailyGuards","createSafeDailyConfig","safeSetLocalAudio","safeSetInputDevicesAsync","createSafeDailyFactoryOptions","config","alwaysIncludeMicInPermissionPrompt","rest","call","enabled","audioSource","safeOptions","__importDefault","this","mod","vapi","daily_js_1","events_1","require$$1","client_1","require$$2","daily_guards_1","require$$3","serializeError","serialized","errorAsAny","errorObj","startAudioPlayer","player","track","buildAudioPlayer","participantId","volume","destroyAudioPlayer","subscribeToTracks","isVideoRecordingEnabled","isVideoEnabled","VapiEventEmitter","event","Vapi","apiToken","apiBaseUrl","dailyCallConfig","dailyCallObject","userAgent","stage","assistant","squad","workflow","workflowOverrides","startTime","webCallStartTime","webCall","webCallDuration","_d","_f","callToken","_g","dailyCallStartTime","dailyCallDuration","serializedError","_h","recordingRequestedTime","totalRecordingDelay","isMobile","mobileWaitStartTime","mobileWaitDuration","joinStartTime","joinDuration","recordingStartTime","recordingSetupDuration","audioObserverStartTime","audioObserverDuration","audioProcessingStartTime","audioProcessingDuration","totalDuration","parsedMessage","parseError","speechLevel","message","build","stillPending","mute","endCallAfterSpoken","interruptionsEnabled","interruptAssistantEnabled","gain","stream","audioContext","source","gainNode","destination","boostedTrack","interval","displayMediaOptions","screenVideoSendSettings","_k","_j","_l","_m","results","tempCall","videoTrack","networkTest","websocketTest","callQualityTest","startCameraError","VoiceEngine","payload","keyChanged","clean","nowWallClock","VoiceClient","Ctor","ctx","analyser","tick","sum","buf","tryAttach","candidate","el","src","elemSrc","retry","hexToRgb","hex","normalized","full","num","relativeLuminance","channel","contrastRatio","hexA","hexB","rgbA","rgbB","lA","lB","lighter","darker","getAccessibleTextColor","backgroundHex","blackRatio","whiteRatio","getSecondaryTextColor","primaryTextColor","DICTIONARIES","resolveTranslations","lang","overrides","prefix","base","parseInline","nodes","pattern","lastIndex","match","LIST_ITEM_RE","ORDERED_MARKER_RE","parseSafeMarkdown","blocks","lines","ordered","items","paragraphLines","SILENCE_TIMEOUT_MS","getSpeechRecognitionConstructor","isSpeechRecognitionSupported","SpeechDictationController","RecognitionCtor","recognition","interim","result","transcript","combined","POSITION_STYLES","n$4","y$1","i$1","ALLOWED_MIME_TYPES_BY_EXTENSION","MAX_FILES_PER_MESSAGE","MAX_FILE_SIZE_BYTES","MAX_EXTRACTED_TEXT_CHARS","getExtension","filename","dot","validateFile","file","allowedMimeTypes","validateFileCount","existingCount","addingCount","truncateExtractedText","maxChars","formatAttachmentForMessage","fileName","extractedMarkdown","parseCsvRows","rows","row","field","inQuotes","csvToMarkdownTable","escapeCell","cell","header","headerLine","separatorLine","bodyLines","jsonToMarkdown","parsed","extractPdfMarkdown","pdfjsLib","pdf","_documentCurrentScript","pages","pageNum","item","extractDocxMarkdown","mammoth","TurndownService","index$1","turndown_browser_es","htmlContent","extractMarkdownFromFile","widgetStyles","css","icon","pathD","svg","chatBubbleIcon","micIcon","micOffIcon","smartToyIcon","closeIcon","restartAltIcon","callEndIcon","sendIcon","personIcon","attachIcon","documentIcon","renderFloatingLauncher","label","textColor","logoSrc","logoAlt","onLogoError","onClick","html","renderPanelHeader","title","statusText","showResetButton","resetLabel","minimizeLabel","onReset","onClose","renderVoiceStatusOrb","level","iconColor","scale","renderVoiceControls","isMuted","startButtonText","endButtonText","muteLabel","accentTextColor","onToggleCall","onToggleMute","isActive","renderChatInputBar","placeholder","disabled","micSupported","isListening","micLabel","sendLabel","attachments","attachLabel","removeAttachmentLabel","processingLabel","accept","onInput","onKeydown","onMicClick","onSend","onAttachClick","onFilesSelected","onRemoveAttachment","hasReadyAttachment","hasExtractingAttachment","canSend","renderChatControls","inputOptions","renderHybridControls","chatInput","callStatus","toggleCallLabel","renderInline","node","renderBlocks","block","renderMarkdown","typingDots","renderMessageBubble","isAssistant","isStreaming","renderEmptyState","renderConversationList","messages","emptyMessage","logLabel","lastFinalAssistantMessage","renderMicPermissionAlert","MIC_PERMISSION_COPY","resolveMicPermissionCopy","SPEECH_LANG_BY_PREFIX","DEFAULT_SPEECH_LANG","resolveSpeechLang","resolveLogoDisplay","logoUrl","logoLoadFailed","DEFAULT_ACCENT","DEFAULT_BASE_BG","ATTACHMENT_ACCEPT","trueByDefaultBooleanConverter","CalliflyWidget","LitElement","changed","bgTextColor","display","readyAttachments","wireExtra","files","validation","staged","errorMessage","listening","chatMessages","voiceStatus","voiceTranscript","chatPlaceholder","startTextByMode","endTextByMode","nothing","logo","styleMap","callActive","showOrb","hasConversation","__decorateClass","customElement","isNodeJS","BBOX_INIT","F32_BBOX_INIT","FONT_IDENTITY_MATRIX","SVG_NS","RenderingIntentFlag","AnnotationMode","AnnotationPrefix","AnnotationEditorPrefix","AnnotationEditorType","AnnotationEditorParamsType","PermissionFlag","TextRenderingMode","ImageKind","AnnotationType","AnnotationBorderStyleType","VerbosityLevel","OPS","DrawOPS","PasswordResponses","verbosity","setVerbosityLevel","getVerbosityLevel","info","msg","warn","unreachable","assert","cond","_isValidProtocol","createValidAbsoluteUrl","dots","stringToUTF8String","absoluteUrl","updateUrlHash","hash","allowRel","res","stripPath","str","shadow","obj","prop","nonSerializable","BaseException","PasswordException","code","UnknownErrorException","details","InvalidPDFException","ResponseException","missing","FormatError","AbortException","bytesToString","bytes","length","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","stringToBytes","FeatureTest","buffer8","view32","platform","Util","m1","m2","md","pos","p0","p1","transform","m0","m3","m4","m5","pI","pI1","rect","output","r0","r1","r2","r3","a0","a2","a1","a3","b0","b2","b1","b3","m1r0","m1r2","m2r1","m2r3","matrix","first","second","rect1","rect2","xLow","xHigh","yLow","yHigh","minMax","x0","y0","x1","y1","x2","y2","x3","y3","__privateMethod","_Util_static","getExtremum_fn","getExtremumOnCurve_fn","ttt","delta","sqrtDelta","__privateAdd","NormalizeRegex","NormalizationMap","normalizeUnicode","p2","getUuid","_isValidExplicitDest","validRef","validName","dest","page","zoom","argsLen","allowNull","makeArr","makeMap","makeObj","makeSet","separator","MathClamp","min","max","PageViewport","viewBox","userUnit","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","width","height","dims","XfaText","xfa","walk","child","disallowedRichTextStyleRegExp","disallowedEventHandlerAttrRegExp","XfaLayer","element","storage","intent","storedData","option","linkService","attributes","isHTMLAnchorElement","allowedStyles","styleName","styleValue","parameters","root","rootHtml","_XfaLayer_static","createElement_fn","isNotForRichText","rootDiv","textDivs","stack","parent","childHtml","xfaPage","xmlns","_PixelsPerInch","PixelsPerInch","fetchData","isValidFetchUrl","request","RenderingCancelledException","extraDelay","isDataScheme","isPdfFile","getFilenameFromUrl","getPdfFilenameFromUrl","defaultFilename","newURL","urlString","decode","decoded","pdfRegex","getLast","iterator","hashFilename","StatTimer","_started","__privateGet","longest","noContextMenu","stopEvent","PDFDateString","_regex","__privateSet","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","getRGBA","color","parts","getRGB","rgba","getColorValues","colors","span","computedColor","getCurrentTransform","getCurrentTransformInverse","setLayerDimensions","div","viewport","mustFlip","mustRotate","pageWidth","pageHeight","style","widthStr","heightStr","OutputScale","pixelRatio","maxPixels","maxDim","capAreaFactor","maxAreaScale","maxWidthScale","maxHeightScale","maxScale","winPixels","SupportedImageMimeTypes","ColorScheme","CSSConstants","applyOpacity","opacity","white","RGBToHSL","rgb","HSLToRGB","hsl","computeLuminance","hsl1","hsl2","lum1","lum2","contrastCache","findContrastColor","baseColor","fixedColor","cachedValue","array","baseHSL","fixedHSL","isFixedColorDark","minContrast","start","end","PRECISION","mid","renderRichText","dir","className","container","fragment","makePathFromDrawOPS","_EditorToolbar","editor","_EditorToolbar_instances","_toolbar","_colorPicker","_editor","_buttons","_altText","_comment","_commentButtonDivider","_signatureDescriptionButton","_l10nRemove","editToolbar","_EditorToolbar_static","pointerDown_fn","buttons","editorType","_uiManager","button","addListenersToElement_fn","altText","divider_get","comment","beforeElement","divider","colorPicker","signatureManager","tool","beforeSelector","description","focusIn_fn","focusOut_fn","EditorToolbar","FloatingToolbar","uiManager","_FloatingToolbar_instances","boxes","isLTR","getLastPoint_fn","render_fn","makeButton_fn","lastY","lastX","box","buttonClass","l10nId","labelL10nId","clickHandler","internalOpt","bindEvents","names","_CurrentPointers","pointerId","_pointerIds","pointerType","_pointerId","_pointerType","timeStamp","_moveTimestamp","CurrentPointers","IdManager","_id","__privateWrapper","_ImageManager","_ImageManager_instances","_baseId","_cache","image","promise","lastModified","size","get_fn","blobPromise","blob","canvas","offscreen","bitmap","rawData","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","ImageManager","CommandManager","maxSize","_commands","_locked","_maxSize","_position","cmd","undo","post","mustExec","overwriteIfSameType","keepUndo","save","_KeyboardManager","callbacks","isMac","callback","hasMacOverride","shortcut","isMacKey","keyName","modifiers","_KeyboardManager_static","parseShortcut_fn","self","shortcuts","fallback","codeToKey_fn","eventModifiers","bubbles","checker","keyPart","part","upper","modifier","KeyboardManager","_ColorManager","RGB","ColorManager","_AnnotationEditorUIManager","viewer","viewerAlert","altTextManager","commentManager","eventBus","pdfDocument","pageColors","highlightColors","enableHighlightFloatingButton","enableUpdatedAddImage","enableNewAltTextWhenAddingImage","mlManager","editorUndoBar","supportsPinchToZoom","_AnnotationEditorUIManager_instances","_abortController","_activeEditor","_allEditableAnnotations","_allEditors","_allLayers","_savedAllLayers","_altTextManager","_annotationStorage","_changedExistingAnnotations","_commandManager","_commentManager","_copyPasteAC","_currentDrawingSession","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_enableHighlightFloatingButton","_enableUpdatedAddImage","_enableNewAltTextWhenAddingImage","_filterFactory","_focusMainContainerTimeoutId","_focusManagerAC","_highlightColors","_highlightWhenShiftUp","_floatingToolbar","_idManager","_isEnabled","_isPointerDown","_isWaiting","_keyboardManagerAC","_lastActiveElement","_mainHighlightColorPicker","_missingCanvases","_mlManager","_mode","_selectedEditors","_selectedTextNode","_signatureManager","_pageColors","_showAllStates","_pdfDocument","_previousStates","_translation","_translationTimeoutId","_container","_viewer","_viewerAlert","_updateModeCapability","evtOpts","evt","addSelectionListener_fn","addDragAndDropListeners_fn","addKeyboardManager_fn","proto","arrowChecker","textInputChecker","_self","small","big","layer","pair","map","hasHCM","isNameForHCM","colorName","firstTime","posX","posY","pageIndex","uid","savedData","isSelected","visibility","pageNumber","onEditorsRendered","mode","layerX","layerY","pagesRotation","methodOfCreation","selection","anchorNode","anchorOffset","focusNode","focusOffset","textLayer","getAnchorElementForSelection_fn","getLayerForTextLayer_fn","isNoneMode","annotationId","storedValue","messageId","onSelectEnd_fn","activeElement","lastEditor","lastActiveElement","removeKeyboardManager_fn","editors","clipboardData","ex","newEditors","deserializedEditor","addEditorToLayer_fn","selectEditors_fn","oldPageIndex","newPageIndex","promises","isEditing","addFocusManager_fn","addCopyPasteListeners_fn","dispatchUpdateStates_fn","isEmpty_fn","removeFocusManager_fn","removeCopyPasteListeners_fn","types","dispatchUpdateUI_fn","editId","isFromUser","isFromKeyboard","mustEnterInEditMode","editComment","disableAll_fn","enableAll_fn","editorClass","elementIds","allComments","annotationElementId","hasComment","deleted","annotation","popupRef","contentsObj","visible","updateButton","mustWait","lastSelectedEditor_get","ed","drawingEditor","noCommit","totalX","totalY","TIME_TO_WAIT","mustBeAddedInUndoStack","move","newX","newY","savedX","savedY","savedPageIndex","tx","ty","parentWidth","parentHeight","rotator","range","editorId","currentLayer","displayFloatingToolbar_fn","selectionChange_fn","activeLayer","pointerup","AnnotationEditorUIManager","_AltText","_AltText_instances","_altTextDecorative","_altTextButton","_altTextButtonLabel","_altTextTooltip","_altTextTooltipTimeout","_altTextWasFromKeyBoard","_badge","_guessedText","_textWithDisclaimer","_useNewAltTextFlow","_l10nNewButton","l10n","label_get","setState_fn","guessedText","badge","isForCopying","decorative","textWithDisclaimer","cancel","tooltip","DELAY_TO_SHOW_TOOLTIP","AltText","Comment","_Comment_instances","_commentStandaloneButton","_commentToolbarButton","_commentWasFromKeyBoard","_initialText","_richText","_text","_date","_deleted","_popupPosition","parentX","parentY","selected","hasPopup","parentDimensions","richText","date","isStandalone","_TouchManager","isPinchingDisabled","isPinchingStopped","onPinchStart","onPinching","onPinchEnd","_TouchManager_instances","_isPinching","_isPinchingStopped","_isPinchingDisabled","_onPinchStart","_onPinching","_onPinchEnd","_pointerDownAC","_signal","_touchInfo","_touchManagerAC","_touchMoveAC","onTouchStart_fn","pointerDownAC","opts","cancelPointerDown","opt","onTouchMove_fn","onTouchEnd","onTouchEnd_fn","touch0","touch1","screen0X","screen0Y","screen1X","screen1Y","touchInfo","pTouch0X","pTouch0Y","pTouch1X","pTouch1Y","prevGapX","prevGapY","currGapX","currGapY","distance","pDistance","origin","TouchManager","_AnnotationEditor","_AnnotationEditor_instances","_accessibilityData","_allResizerDivs","_disabled","_dragPointerId","_dragPointerType","_resizersDiv","_lastPointerCoords","_savedDimensions","_fakeAnnotation","_focusAC","_focusedResizerName","_hasBeenClicked","_initialRect","_isEditing","_isInEditMode","_isResizerEnabledForKeyboard","_moveInDOMTimeout","_prevDragX","_prevDragY","_telemetryTimeouts","_touchManager","_isDraggable","_zIndex","pageX","pageY","resize","fakeEditor","FakeEditor","_type","_value","mime","stopResizing_fn","baseX","baseY","translate_fn","bx","by","_borderLineWidth","_AnnotationEditor_static","rotatePoint_fn","parentScale","toolbarButtons","editToolbarDiv","trY","blX","blY","trX","contents","addFocusListeners_fn","touchPinchStartCallback_fn","touchPinchCallback_fn","touchPinchEndCallback_fn","setUpDragSession_fn","selectOnPointerEvent_fn","shiftX","shiftY","creationDate","modificationDate","focus","top","left","bottom","right","innerHeight","innerWidth","_angle","context","timeout","createResizers_fn","children","boundResizerKeydown","resizerKeydown_fn","boundResizerBlur","resizerBlur_fn","resizerFocus_fn","firstPosition","nextFirstPosition","setResizerTabIndex_fn","resizerPointermove_fn","action","annotationLayer","firstElementChild","angle","getRotationMatrix_fn","classes","resizerPointerdown_fn","savedDraggable","savedParentCursor","savedCursor","pointerUpCallback","addResizeToUndoStack_fn","resize_fn","savedWidth","savedHeight","newWidth","newHeight","minWidth","minHeight","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","screenX","screenY","lastScreenX","lastScreenY","oldDiag","_origin","prevDistance","factor","transfCenterPoint","newTransfCenterPoint","hasDraggingStarted","cancelDrag","AnnotationEditor","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","h1","h2","C1","C2","C1_LOW","C2_LOW","SerializableEmpty","AnnotationStorage","_AnnotationStorage_instances","_modified","_modifiedIds","_editorsMap","_storage","defaultValue","modified","entry","val","setModified_fn","PrintAnnotationStorage","transfer","hasBitmap","stats","typeToEditor","numberOfEditedComments","numberOfDeletedComments","editorStats","counters","ids","_serializable","serializable","clone","FORCED_DEPENDENCY_LABEL","floor","ceil","expandBBox","minX","minY","maxX","maxY","scaleCharBBox","scaleX","scaleY","bbox","temp","EMPTY_BBOX","BBoxReader","bboxes","coords","_bboxes","_coords","ensureDebugMetadata","CanvasBBoxTracker","operationsCount","_CanvasBBoxTracker_instances","_baseTransformStack","_clipBox","_pendingBBox","_canvasWidth","_canvasHeight","_bboxesCoords","initializeBBoxes_fn","opIdx","onSavePopped","previous","lastSave","clipBox","intersection","preserve","dependencyLists","dependencies","depIdx","depName","fallbackIdx","font","getMeasure","dependencyName","dependencyNames","oldBBoxes","CanvasDependencyTracker","bboxTracker","recordDebugMetadata","_simple","_incremental","_namedDependencies","_pendingDependencies","_fontBBoxTrustworthy","_debugMetadata","_recordDebugMetadataDepenencyAfterRestore","_bboxTracker","dep","fontBBox","isBBoxTrustworthy","computedBBox","measure","pendingDependencies","simple","incremental","metadata","needsCleanup","deps","_CanvasNestedDependencyTracker","dependencyTracker","ignoreBBoxes","_dependencyTracker","_opIdx","_ignoreBBoxes","_nestingLevel","_savesLevel","CanvasNestedDependencyTracker","Dependencies","_CanvasImagesTracker","_capacity","_count","_CoordsArray","newCoords","finalBBox","rotationAngle","sin","cos","finalBBoxWidth","finalBBoxHeight","sin2","cos2","cosSin","denom","CanvasImagesTracker","FontLoader","ownerDocument","styleElement","_FontLoader_instances","_systemFonts","_styleSheet","nativeFontFace","rule","styleSheet","getStyleSheet_fn","adoptedStyleSheets","disableFontFace","_inspectFont","loadedName","fontFace","hasFonts","completeRequest","loadingRequests","otherRequest","testFont","int32","offset","string32","spliceString","remove","insert","chunk1","chunk2","called","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","StyleSheet","FontFaceObject","translatedData","inspectFont","charProcOperatorList","extra","_fontData","objs","character","objId","cmds","CSS_FONT_INFO","SYSTEM_FONT_INFO","_FONT_INFO","FONT_INFO","PATTERN_INFO","CssFontInfo","_CssFontInfo_instances","_buffer","_decoder","_view","readString_fn","SystemFontInfo","_SystemFontInfo_instances","styleLength","weightLength","weight","FontInfo","_FontInfo_instances","readBoolean_fn","readNumber_fn","readArray_fn","getDataOffsets_fn","stringsLength","systemFontInfoLength","cssFontInfoLength","cssFontInfoData","systemFontInfoData","byteOffset","bitOffset","arrLen","lookupName","increment","PatternInfo","dataView","kind","hasBBox","hasBackground","nCoord","nColor","nStop","stops","background","shadingType","bounds","FontPathInfo","getUrlProp","getDataProp","getFactoryUrlProp","isRefProxy","isNameProxy","isValidExplicitDest","LoopbackPort","_deferred","rmAbort","onAbort","CallbackKind","StreamKind","onFn","wrapReason","MessageHandler","sourceName","targetName","comObj","_MessageHandler_instances","_messageAC","onMessage_fn","actionName","ah","transfers","callbackId","capability","queueingStrategy","streamId","startCapability","pullCapability","reason","cancelCapability","processStreamMessage_fn","createStreamSink_fn","streamSink","lastDesiredSize","streamController","deleteStreamController_fn","dataReason","BaseBinaryDataFactory","cMapUrl","standardFontDataUrl","wasmUrl","_errorStr","DOMBinaryDataFactory","BaseCanvasFactory","enableHWA","_enableHWA","canvasAndContext","DOMCanvasFactory","BaseFilterFactory","maps","fgColor","bgColor","alpha","filterName","newFgColor","newBgColor","keepHCM","DOMFilterFactory","docId","_DOMFilterFactory_instances","_baseUrl","__cache","__defs","_docId","_document","__hcmCache","cache_get","tableR","tableG","tableB","createTables_fn","createUrl_fn","filter","createFilter_fn","addTransferMapConversion_fn","hcmCache_get","fgRGB","getRGB_fn","bgRGB","resetDefsColor_fn","table","addGrayConversion_fn","getSteps","tableA","addTransferMapAlphaConversion_fn","addLuminosityConversion_fn","slope","feComponentTransfer","feFuncA","fgGray","bgGray","newFgRGB","newBgRGB","getOpaqueTextColor_fn","fg","bg","step","newStart","newStep","defs_get","mapR","mapG","mapB","bufferR","bufferG","bufferB","feColorMatrix","appendFeFunc_fn","func","feFunc","rTable","gTable","bTable","aTable","getRGBA_fn","canvasR","canvasG","canvasB","blend","node_utils_fetchData","NodeFilterFactory","NodeCanvasFactory","NodeBinaryDataFactory","convertBlackAndWhiteToRGBA","srcPos","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","xorMask","srcLength","destPos","elem","convertRGBToRGBA","len32","src32","alphaMask","s1","s2","s3","jj","MESH_WGSL","WebGPU","_WebGPU_instances","_initPromise","_device","_meshPipeline","_preferredFormat","initGPU_fn","shaderModule","posData","colData","vertexCount","backgroundColor","paddedWidth","paddedHeight","borderSize","device","posBuffer","colBuffer","uniformBuffer","bindGroup","gpuCtx","clearValue","commandEncoder","renderPass","adapter","_webGPU","initGPU","isGPUReady","loadMeshShader","drawMeshWithGPU","PathType","applyBoundingBox","region","BaseShadingPattern","RadialAxialShadingPattern","IR","dist","grad","firstPoint","secondPoint","colorStop","reversedStops","owner","inverse","pathType","precision","n1","n2","ownerBBox","tmpCanvas","tmpCtx","domMatrix","drawTriangle","p3","c1","c2","c3","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","MeshShadingPattern","combinedScale","canvasFactory","boundsWidth","boundsHeight","matrixScaleX","matrixScaleY","temporaryPatternCanvas","DummyShadingPattern","getShadingPattern","PaintType","_TilingPattern","canvasGraphicsFactory","baseTransform","absXStep","absYStep","nXFirst","nXLast","nYFirst","nYLast","clippedBBox","inv","dimx","dimy","graphics","useEOFill","bboxWidth","bboxHeight","combinedScaleX","combinedScaleY","xstep","ystep","canvasWidth","canvasHeight","redrawHorizontally","redrawVertically","dimx2","dimy2","xSize","ySize","tmpCanvas2","tmpCtx2","realOutputSize","clip","paintType","current","fillStyle","strokeStyle","TilingPattern","MIN_FONT_SIZE","MAX_FONT_SIZE","EXECUTION_TIME","EXECUTION_STEPS","FULL_CHUNK_HEIGHT","SCALE_MATRIX","XY","mirrorContextOperations","destCtx","originalMethods","original","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","CanvasExtraState","xStrokePad","yStrokePad","intersect","putBinaryImageData","imgData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","elemsInThisChunk","putBinaryImageMask","copyCtxState","sourceCtx","properties","resetCtxToDefault","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics","canvasCtx","commonObjs","filterFactory","optionalContentConfig","markedContentStack","annotationCanvasMap","imagesTracker","_CanvasGraphics_instances","_knockoutGroupLevel","_knockoutElementDepth","_knockoutTempCanvasEntry","_knockoutSavedCtx","_knockoutSavedSMaskCtx","_knockoutSavedGCO","_knockoutElementAlpha","_knockoutFilterCache","_knockoutElementGroupMeta","_groupStackMeta","transparency","savedFillStyle","transparentCanvas","operatorList","executionStartIdx","continueCallback","stepper","operationsFilter","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","steps","fnId","fnArgs","depObjId","objsPool","restoreInitialState_fn","meta","destroyKnockoutPools_fn","cache","drawFilter_fn","img","inverseTransform","widthScale","heightScale","scaleSteps","pw","ph","nw","nh","readEntry","writeEntry","paintWidth","paintHeight","fillColor","isPatternFill","currentTransform","cacheKey","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","drawnWidth","drawnHeight","fillCanvas","fillCtx","scaledEntry","scaleResult","limit","dashArray","dashPhase","flatness","states","smask","inSMaskMode","subtype","backdrop","transferMap","hasFilter","filteredOOBAlpha","inputAlpha","SMASK_LAYER_TO_MASK_AREA_RATIO","layerW","layerH","maskArea","useLayerSize","filterSpec","bakedBackdrop","preparedEntry","drawX","drawY","srcEntry","sCtx","pCtx","filterApplied","scratchCanvas","dirtyBox","suspendedCtx","applySMaskInPlace","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","clipX","clipY","clipW","clipH","oobAlpha","hasOOBAlpha","maskX0","maskY0","maskX1","maskY1","hasInnerCutout","maskCtx","maskOffsetX","maskOffsetY","old","op","outerExtraSize","tilingDims","consumePath","started","beginKnockoutElement_fn","strokeColor","newPath","endKnockoutElement_fn","needRestore","tileIdx","paths","fontSize","spacing","leading","fontRefName","fontObj","typeface","bold","italic","browserFontSize","rise","patternFillTransform","patternStrokeTransform","textRenderingMode","fillStrokeMode","isAddToPathSet","patternFill","patternStroke","scaledPath","getScaledPath_fn","invPatternTransform","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","needsFill","needsStroke","lineWidth","chars","glyph","joinedChars","restoreNeeded","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","fontMatrix","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","renderingOpIdx","group","currentCtx","canvasBounds","groupCtx","backdropCtx","hasInnerBackdrop","knockoutMaskEntry","savedKnockoutLevel","needsBackdropCopy","replaceBackdrop","groupMeta","convertGroupToGray_fn","currentMtx","parentGroupMeta","colorEntry","colorCtx","shapeMaskEntry","createKnockoutMaskCanvas_fn","sourceCompositeOperation","sourceAlpha","sourceFilter","compositeKnockoutSurface_fn","hasOwnCanvas","canvasName","viewportScale","canvases","count","mask","skewX","skewY","positions","trans","images","imgToPaint","inlineImgCanvas","tag","isEmpty","absDet","normX","normY","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","hcmFilterId","savedFilter","sourceCanvas","reuseEntry","maskEntry","needsAlphaScaling","knockoutFilter","sourceData","maskData","sourcePixels","maskPixels","alphaScale","getOrCreatePooledEntry_fn","surfaceCanvas","backdropCanvas","destTransform","backdropOffset","reuseMaskEntry","poolMeta","knockoutAlpha","backdropEntry","tempEntry","tempCtx","savedCtx","savedSMaskCtx","imageData","gray","CanvasGraphics","BasePDFStream","PDFStreamReader","PDFStreamRangeReader","_PDFStreamReader","_PDFStreamRangeReader","begin","BasePDFStreamReader","BasePDFStreamRangeReader","getFilenameFromContentDispositionHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","textdecode","encoding","contentDispositionStr","iter","quot","quotindex","extvalue","encodingend","charset","createHeaders","isHttp","httpHeaders","headers","getResponseOrigin","validateRangeRequestCapabilities","responseHeaders","rangeChunkSize","disableRange","rv","extractFilenameFromHeader","createResponseError","ensureResponseOrigin","rangeOrigin","fetchUrl","withCredentials","ensureResponseStatus","getArrayBuffer","PDFFetchStream","PDFFetchStreamReader","PDFFetchStreamRangeReader","disableStream","contentLength","isRangeSupported","responseOrigin","transport_stream_getArrayBuffer","endRequests","PDFDataTransportStream","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_PDFDataTransportStream_instances","pdfDataRangeTransport","initialData","progressiveDone","onReceiveData_fn","rangeReader","_endRequests","contentDispositionFilename","loaded","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","network_getArrayBuffer","PDFNetworkStream","PDFNetworkStreamReader","PDFNetworkStreamRangeReader","_PDFNetworkStream_instances","_pendingRequests","xhr","pendingRequest","onStateChange_fn","onProgress_fn","xhrStatus","rangeHeader","_PDFNetworkStreamReader_instances","onHeadersReceived_fn","onDone_fn","onError_fn","fullRequestXhr","rawResponseHeaders","_PDFNetworkStreamRangeReader_instances","getReadableStream","Readable","readStream","PDFNodeStream","PDFNodeStreamReader","PDFNodeStreamRangeReader","stat","readableStream","getNetworkStream","GlobalWorkerOptions","_port","_src","Metadata","parsedData","_map","_data","INTERNAL","OptionalContentGroup","renderingIntent","usage","rbGroups","_isDisplay","_isPrint","_userSet","_visible","print","view","internal","userSet","_OptionalContentConfig","groupState","_OptionalContentConfig_instances","_cachedGetHash","_groups","_initialHash","_order","_rawData","off","evaluateVisibilityExpression_fn","preserveRB","rbGroup","otherId","operator","OptionalContentConfig","PagesMapper","_PagesMapper_instances","_pageNumberToId","_prevPageNumbers","_pagesNumber","_clipboard","_savedData","selectedPages","pagesToMove","ensureInit_fn","pageNumberToId","prevIdToPageNumber","buildIdToPageNumber_fn","movedCount","mappedPagesToMove","removedBeforeTarget","pagesNumber","remainingLen","adjustedTarget","updatePrevPageNumbers_fn","pagesToDelete","newN","newPageNumberToId","sourceIndex","destIndex","pagesToCopy","copiedPageNumbers","copiedPageIds","idToPageNumber","nCopy","pageNumbers","extractParams","includePages","pageIndices","extractedPageNumbers","usedIds","deletedPageNumbers","pasteIndex","prevPageNumbers","pasteEnd","idsIndices","oldPositions","INITIAL_DATA","dataObj","PDFObjects","_objs","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","_TextLayer","textContentSource","_TextLayer_instances","_capability","_disableProcessItems","_fontInspectorEnabled","_imagesHandler","_lang","_layoutTextParams","_pageHeight","_pageWidth","_reader","_rootContainer","_rotation","_scale","_styleCache","_textContentItemsStr","_textContentSource","_textDivs","_textDivProperties","_transform","_TextLayer_static","ensureMinFontSizeComputed_fn","_minFontSize","_pendingTextLayers","isWindows","isFirefox","pump","processItems_fn","onBefore","getCtx_fn","layout_fn","abortEx","_ascentCache","_canvasContexts","_canvasCtxFonts","textContentItemsStr","appendText_fn","geom","textDiv","textDivProperties","fontFamily","fontHeight","fontAscent","getAscent_fn","divStyle","shouldScaleText","absScaleX","absScaleY","ensureCtxFont_fn","family","cached","cachedAscent","metrics","ascent","descent","ratio","TextLayer","RENDERING_CANCELLED_TIMEOUT","getDocument","task","PDFDocumentLoadingTask","password","rangeTransport","PDFDataRangeTransport","worker","PDFWorker","docBaseUrl","cMapPacked","iccUrl","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","isImageDecoderSupported","canvasMaxAreaInBytes","fontExtraProperties","enableXfa","disableAutoFetch","pdfBug","CanvasFactory","FilterFactory","BinaryDataFactory","gpuPromise","useWasm","pagesMapper","useSystemFonts","useWorkerFetch","transportFactory","docParams","transportParams","hasGPU","workerIdPromise","networkStream","NetworkStream","workerId","messageHandler","transport","WorkerTransport","_PDFDocumentLoadingTask","_listener","PDFDocumentProxy","pdfInfo","ref","pageIndexesToSkip","pageInfos","keepLoadedFonts","_PDFPageProxy","pageInfo","_PDFPageProxy_instances","_pendingCleanup","_pagesMapper","canvasContext","annotationMode","optionalContentConfigPromise","printAnnotationStorage","recordImages","recordOperations","intentArgs","intentState","intentPrint","recordForDebugger","shouldRecordOperations","shouldRecordImages","complete","internalRenderTask","recordedBBoxes","tryCleanup_fn","InternalRenderTask","renderTask","operatorListChanged","opListTask","includeMarkedContent","disableNormalization","textContent","waitOn","resetStats","success","operatorListChunk","annotationStorageSerializable","modifiedIds","force","delay","curCacheKey","curIntentState","renderTasks","PDFPageProxy","_PDFWorker","port","_PDFWorker_instances","_messageHandler","_webWorker","_workerPorts","initializeFromPort_fn","initialize_fn","cachedPort","_PDFWorker_static","mainThreadWorkerMessageHandler_get","_fakeWorkerId","_isWorkerDisabled","resolve_fn","setupFakeWorker_fn","workerSrc","terminateEarly","sendTest","testObj","WorkerMessageHandler","workerHandler","otherUrl","other","wrapper","loadingTask","factory","_WorkerTransport_instances","_fullReader","_methodPromises","_networkStream","_pageCache","_pagePromises","_pageRefCache","_passwordCapability","_pageIndex","isOpList","annotationStorage","modifiedIdsHash","cacheKeyBuf","terminated","sink","readyReason","isStreamingSupported","updatePassword","exportedData","exportedError","fontData","imageRef","pageProxy","ImageBitmapCtor","infos","mapping","remapped","sourceIdx","cachedPromise","cacheSimpleMethod_fn","refStr","total","RenderTask","separateAnnots","_InternalRenderTask","useRequestAnimationFrame","_rAF","_canvasInUse","_ColorPicker","_ColorPicker_instances","_button","_buttonSwatch","_defaultColor","_dropdown","_dropdownWasFromKeyboard","_isMainColorPicker","_eventBus","_openDropdownAC","_l10nColor","openDropdown_fn","keyDown_fn","swatch","dropdown","getDropdownRoot_fn","colorSelect_fn","isDropdownVisible_get","ColorPicker","_BasicColorPicker","_input","_hasAlpha","colorType","colorAndOpacityType","opacityType","hasAlpha","alphaHex","BasicColorPicker","makeColorComp","scaleAndClamp","ColorConverters","components","BaseSVGFactory","skipDimensions","DOMSVGFactory","annotation_layer_DEFAULT_FONT_SIZE","GetElementsByNameSet","TIMEZONE_OFFSET","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","MediaAnnotationElement","AnnotationElement","_AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","_AnnotationElement_instances","_updates","_hasBorder","_popupElement","quadPoints","inkLists","inkList","popup","newPopup","setRectEdited_fn","horizontalRadius","verticalRadius","radius","borderColor","setColor","jsName","colorArray","hidden","actions","jsEvent","commonActions","detail","eventProxy","rectBlX","rectBlY","rectTrX","rectTrY","svgBuffer","borderWidth","svgFactory","defs","clipPath","rectWidth","rectHeight","popupData","skipId","fields","fieldObj","exportValues","exportValue","domElement","triggers","currentRect","EditorAnnotationElement","_LinkAnnotationElement_instances","link","isBound","bindAttachment_fn","bindSetOCGState_fn","overlaidText","setInternalLink_fn","resetForm","otherClickAction","resetFormFields","resetFormRefs","include","allFields","fieldIds","fieldName","allIds","attachmentId","attachment","openAttachment","elementData","baseName","eventName","valueGetter","getter","TEXT_ALIGNMENT","fontColor","computedFontSize","BORDER_SIZE","roundToOneDecimal","numberOfLines","lineHeight","isRequired","keyInStorage","maxLen","fieldFormattedValues","datetimeFormat","datetimeType","timeStep","hasDateOrTime","blurListener","formattedValue","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","alignment","setCombOffset","free","checked","checkbox","curChecked","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","fixDisplayValue","newValue","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","values","displayValue","selectChild","indices","change","elements","hasCommentManager","_PopupAnnotationElement_instances","createPopup_fn","PopupElement","titleObj","parentRect","open","_PopupElement_instances","_boundKeyDown","_boundHide","hide_fn","_boundShow","show_fn","_boundToggle","toggle_fn","_color","_contentsObj","_dateObj","_elements","_parent","_parentRect","_pinned","_popup","_popupAbortController","_commentButton","_commentButtonPosition","_rect","_titleObj","_wasVisible","_firstElement","_commentText","addEventListeners_fn","setCommentButtonPosition_fn","hasOwnButton","togglePopup","showPopup","hidePopup","parentContainer","updateColor_fn","updateCommentButtonPosition_fn","html_get","makePopupContent_fn","fontSize_get","fontColor_get","popupLines","popupContent","lineAttributes","setPosition_fn","useParentRect","normalizedRect","popupLeft","popupTop","lineSpan","_line","_square","square","_circle","circle","_polyline","vertices","borderStyle","points","polyline","_InkAnnotationElement_instances","_polylinesGroupElement","_polylines","getTransform_fn","thickness","mark","underline","strikeout","_FileAttachmentAnnotationElement_instances","_trigger","trigger","download_fn","fallbackContent","_MediaAnnotationElement_instances","_contentUrl","_media","load_fn","revokeContentUrl_fn","contentType","isAudio","media","hovered","focused","updateControls","_AnnotationLayer","accessibilityManager","annotationEditorUIManager","structTreeLayer","_AnnotationLayer_instances","_accessibilityManager","_annotationCanvasMap","_editableAnnotations","_structTreeLayer","_linkService","_hasAriaAttributesFromStructTree","annotations","popupToElements","popupAnnotations","elementParams","isPopupAnnotation","rendered","addElementsToDOM_fn","setAnnotationCanvasMap_fn","contentElement","ariaAttributes","top1","bot1","mid1","top2","bot2","mid2","centerX1","centerX2","cvs","toRemove","firstCanvas","firstChild","lastCanvas","editableAnnotation","AnnotationLayer","EOL_PATTERN","_FreeTextEditor","_FreeTextEditor_instances","_content","_editorDivId","_editModeAC","_fontSize","updateFontSize_fn","savedText","newText","extractText_fn","setText","setContent_fn","setEditorDimensions_fn","paste","_FreeTextEditor_static","deserializeContent_fn","startContainer","startOffset","bufferBefore","bufferAfter","getNodeContent_fn","newRange","beforeLength","padding","textPosition","serializeContent_fn","hasElementChanged_fn","setFontsize","savedFontsize","col","savedColor","prevChild","savedDisplay","savedVisibility","FreeTextEditor","Outline","_bbox","sx","sy","_FreeDrawOutliner","scaleFactor","innerMargin","_FreeDrawOutliner_instances","_box","_bottom","_innerMargin","_isLTR","_top","_last","_lastX","_lastY","_min","_min_dist","_scaleFactor","_thickness","_points","_MIN_DIST","_MIN","diffX","diffY","diffD","nX","nY","thX","thY","toSVGPathTwoPoints_fn","toSVGPathEnd_fn","toSVGPathStart_fn","outline","FreeDrawOutline","last","getOutlineTwoPoints_fn","getOutlineEnd_fn","getOutlineStart_fn","_MIN_DIFF","getLastCoords_fn","lastTop","lastBottom","lastTopX","lastTopY","lastBottomX","lastBottomY","FreeDrawOutliner","_FreeDrawOutline_instances","_outline","computeMinMax_fn","outliner","firstPointX","firstPointY","lastPointX","lastPointY","ltrCallback","bezierBbox","HighlightOutliner","_HighlightOutliner_instances","_firstPoint","_lastPoint","_verticalEdges","_intervals","EPSILON","shiftedMinX","shiftedMinY","lastEdge","lastPoint","edge","outlineVerticalEdges","breakEdge_fn","insert_fn","remove_fn","getOutlines_fn","edges","allEdges","edge1","edge2","outlines","HighlightOutline","binarySearch_fn","middle","y4","_outlines","polygon","prevX","prevY","FreeHighlightOutliner","FreeHighlightOutline","_HighlightEditor","_HighlightEditor_instances","_anchorNode","_anchorOffset","_boxes","_clipPathId","_focusOutlines","_focusNode","_focusOffset","_highlightDiv","_highlightOutlines","_isFreeHighlight","_outlineId","_methodOfCreation","createFreeOutlines_fn","addToDrawLayer_fn","createOutlines_fn","updateThickness_fn","getRotation_fn","cleanDrawLayer_fn","mustBeSelected","drawLayer","_HighlightEditor_static","rotateBbox_fn","keydown_fn","highlightDiv","direction","setCaret_fn","endHighlight_fn","highlightMove_fn","clipPathId","serializeBoxes_fn","serializeOutlines_fn","outlinerForOutline","highlightOutlines","highlightId","setColorAndOpacity","opa","savedOpacity","savedThickness","setThickness","th","changeThickness_fn","HighlightEditor","DrawingOptions","_svgProperties","_DrawingEditor","_DrawingEditor_instances","_drawOutlines","_mustBeCommitted","createDrawOutlines_fn","p1Keys","_options","propertyName","_currentDraw","_drawingOptions","savedValue","setter","updateBbox_fn","opacityName","convertToDrawSpace_fn","rotateBox_fn","_x","_y","drawDiv","_parentWidth","_parentHeight","_currentDrawingAC","_currentDrawingOptions","all","draw","drawId","lastElement","isAborted","_pageX","_pageY","_innerWidth","drawOutlines","drawingOptions","createDrawing_fn","convertToParentSpace_fn","pW","pH","parentRotation","DrawingEditor","InkDrawOutliner","_InkDrawOutliner_instances","_lines","_lastSVGPath","_lastIndex","InkDrawOutline","normalizePoint_fn","firstX","firstY","secondX","secondY","c1x","c1y","c2x","c2y","_InkDrawOutline_instances","_currentRotation","_parentScale","computeBbox_fn","serializedLines","serializedPoints","getBBoxWithNoMargin_fn","rescaleFn","newLines","oldMarginX","oldMarginY","getMarginComponents_fn","newMarginX","newMarginY","diffMarginX","diffMarginY","marginX","marginY","s1x","s1y","s2x","s2y","newParentWidth","newParentHeight","margin","InkDrawingOptions","viewerParameters","_InkEditor","_InkEditor_instances","_drawId","stroke","InkEditor","ContourDrawOutline","BASE_HEADER_LENGTH","POINTS_PROPERTIES_NUMBER","SignatureExtractor","fontStyle","fontWeight","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","fontBoundingBoxAscent","fontBoundingBoxDescent","SCALE","uint8Buf","_SignatureExtractor_static","toUint8_fn","histogram","getHistogram_fn","threshold","guessThreshold_fn","contourList","findContours_fn","getGrayPixels_fn","bilateralFilter_fn","_PARAMETERS","mustSmooth","areContours","curves","linesAndPoints","xScale","yScale","newCurves","reducedPoints","douglasPeucker_fn","newPoints","minDiff","maxDiff","outlinesLength","dx","bufferType","headerLength","writer","BufferCtor","diffs","signatureData","readable","writable","numberOfDrawings","diffsOffset","neighborIndexToId_fn","i0","j0","_neighborIdToIndex","clockwiseNonZero_fn","kk","shiftI","shiftJ","counterClockwiseNonZero_fn","nbd","lnbd","contours","ij","pix","i2","j2","isHole","contour","contour0","i1","j1","i3","j3","i4","j4","ij3","douglasPeuckerHelper_fn","ax","ay","abx","aby","nabx","naby","invS","phi","cosPhi","sinPhi","tmax","poly","partialPhi","dmax","sigmaS","sigmaR","kernelSize","kernel","sigmaS2","halfSize","rangeValues","sigmaR2","out","center","norm","neighbour","spos","originalBitmap","prevWidth","prevHeight","isteps","grayImage","SignatureOptions","DrawnSignatureOptions","_SignatureEditor","_isExtracted","_description","_signatureData","_signatureUUID","hasDescriptionStats","_isCopy","uuid","heightInPage","toolbar","outlineData","fontInfo","SignatureEditor","StampEditor","_StampEditor_instances","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_bitmapFileName","_canvas","_missingCanvas","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","hasAltTextStats","updateAltTextData","getBitmap_fn","createCanvas_fn","bitmapId","drawBitmap_fn","maxDataDimension","maxPreviewDimension","createImageData","bitmapWidth","bitmapHeight","outputScale","scaledWidth","scaledHeight","scaleBitmap_fn","boxDim","boxDimWidth","boxDimHeight","patternCtx","dataWidth","dataHeight","offscreenCtx","missingCanvas","structParent","bitmapUrl","isSvg","accessibilityData","serializeBitmap_fn","changes","area","prevData","getBitmapFetched_fn","fromId","getBitmapDone_fn","MAX_RATIO","toUrl","isSamePageIndex","isSameAltText","_AnnotationEditorLayer","_AnnotationEditorLayer_instances","_allowClick","_annotationLayer","_clickAC","_editorFocusTimeoutId","_editors","_hadPointerDown","_isDisabling","_isEnabling","_drawingAC","_focusedElement","_textLayer","_textSelectionAC","_textLayerDblClickAC","_lastPointerDownTimestamp","editorTypes","cleanup_fn","classList","annotationElementIds","allEditorsIterator_get","editable","clientX","clientY","lastPointerDownTimestamp","regex","needFakeAnnotation","changedAnnotations","resetAnnotations","textLayerPointerDown_fn","currentEditorType_get","getCenterPoint_fn","createNewEditor_fn","isCentered","currentMode","relatedTarget","oldRotation","AnnotationEditorLayer","compareTextLayers","getTextLayer","isPointBefore","nodeA","offsetA","nodeB","offsetB","relation","normalizeEdgeBoundary","lastNode","_DrawLayer","_DrawLayer_instances","_mapping","_textLayerObserver","_toUpdate","previousData","_textLayers","_selections","_textLayerSet","records","_DrawLayer_static","hasSelection_fn","addedNodes","_selectionChangeAC","_isSelecting","isPathUpdatable","hasClip","createSVG_fn","pathId","createClipPath_fn","use","mustRemoveSelfIntersections","maskId","use1","use2","elementOrId","rootClass","updateProperties_fn","setBox_fn","pathElement","cleanupTextLayerSelection_fn","_selectionId","textLayerData","getOrderedTextLayers_fn","rotators","orderedTextLayers","ranges","endContainer","endOffset","startTextLayer","endTextLayer","startMissing","endMissing","anchorLayer","focusLayer","anchorBeforeFocus","activeTextLayers","boundarySubstituted","previousNode","normalizedEnd","normalizedStart","firstNode","subRange","lastTextNode","selectedTextLayers","clientRect","selectionStyle","clipPathUse","DrawLayer","percentage","_TextLayerImages","minSize","coordinates","getPageCanvas","_TextLayerImages_instances","_coordinates","_coordinatesByElement","_getPageCanvas","_minSize","createImagePlaceholder_fn","imgElement","activeImage","_activeImage","pageCanvas","imageX1","imageY1","imageX2","imageY2","TextLayerImages","VERSION","ArrayProto","ObjProto","SymbolProto","push","slice","toString","hasOwnProperty","supportsArrayBuffer","supportsDataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","restArguments","startIndex","isObject","isNull","isUndefined","isBoolean","isElement","tagTester","isString","isNumber","isDate","isRegExp","isError","isSymbol","isArrayBuffer","isFunction","nodelist","hasObjectTag","hasDataViewBug","isIE11","isDataView","alternateIsDataView","isArray","has","isArguments","isFinite","isNaN","constant","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","shallowProperty","getByteLength","isBufferLike","typedArrayPattern","isTypedArray","getLength","emulatedSet","collectNonEnumProps","nonEnumIdx","constructor","isMatch","object","attrs","_keys","toBufferView","bufferSource","tagDataView","isEqual","todo","aStack","bStack","frame","areArrays","byteLength","aCtor","bCtor","allKeys","ie11fingerprint","methods","weakMapMethods","forEachName","hasName","commonInit","mapTail","mapMethods","setMethods","isMap","isWeakMap","isSet","isWeakSet","pairs","invert","functions","createAssigner","keysFunc","defaults","extend$1","extendOwn","ctor","baseCreate","prototype","create","props","extend","tap","interceptor","toPath","deepGet","get","_has","identity","matcher","optimizeCb","argCount","accumulator","baseIteratee","iteratee","cb","mapObject","currentKey","noop","propertyOf","times","accum","random","now","createEscaper","escaper","testRegexp","replaceRegexp","string","escapeMap","escape$1","unescapeMap","unescape$1","templateSettings","noMatch","escapes","escapeRegExp","escapeChar","bareIdentifier","template","settings","oldSettings","escape","evaluate","argument","render","idCounter","uniqueId","chain","instance","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","bound","bind$1","callArgs","isArrayLike","flatten","depth","strict","bindAll","bind","memoize","hasher","address","wait","defer","throttle","later","throttled","_now","remaining","debounce","immediate","passed","debounced","_args","wrap","negate","predicate","compose","after","before","memo","findKey","createPredicateIndexFinder","findIndex","findLastIndex","sortedIndex","low","high","createIndexFinder","predicateFind","indexOf","lastIndexOf","find","keyFinder","findWhere","each","createReduce","reducer","initial","reduce$2","reduceRight","every","some","contains","fromIndex","guard","invoke","contextPath","method","pluck","where","lastComputed","computed","reStrSymbol","toArray","sample","rand","shuffle","sortBy","behavior","partition","groupBy","indexBy","countBy","pass","keyInObj","pick","omit","compact","_flatten","difference","without","otherArrays","uniq","isSorted","seen","union","arrays","argsLength","unzip","zip","stop","chainResult","mixin","isES5","es5Module","descriptor","ObjectKeys","ObjectGetDescriptor","ObjectDefineProperty","desc","ObjectFreeze","ObjectGetPrototypeOf","ArrayIsArray","es5","canEvaluate","tryCatchTarget","globalObject","global","tryCatcher","tryCatch","inherits","Child","Parent","hasProp","isPrimitive","maybeWrapAsError","maybeError","safeToString","withAppended","appendee","getDataPropertyOrDefault","notEnumerableProp","thrower","inheritedDataKeys","excludedPrototypes","isExcludedProto","getKeys","visitedKeys","enumeration","thisAssignmentPattern","isClass","hasMethods","hasMethodsOtherThanConstructor","hasThisAssignmentAndStaticMethods","toFastProperties","rident","isIdentifier","filledRange","suffix","markAsOriginatingFromRejection","originatesFromRejection","canAttachTrace","ensureErrorObject","classString","copyDescriptors","from","asArray","ArrayFrom","itResult","isNode","hasEnvVariables","env","getNativePromise","domainBind","util","schedule","noAsyncScheduler","NativePromise","GlobalSetImmediate","ProcessNextTick","nativePromise","toggleScheduled","div2","o2","scheduleToggle","schedule_1","arrayMove","srcIndex","dst","dstIndex","Queue","capacity","wrapMask","front","oldCapacity","moveItemsCount","queue","firstLineError","Async","AsyncInvokeLater","AsyncInvoke","AsyncSettlePromises","asyncModule","Objectfreeze","subError","nameProperty","defaultMessage","SubError","_TypeError","_RangeError","Warning","CancellationError","TimeoutError","AggregateError","indent","OperationalError","errorTypes","errors","thenables","Promise","tryConvertToPromise","then","getThen","isAnyBluebirdPromise","doThenable","doGetThen","synchronous","promise_array","apiRejection","Proxyable","toResolutionValue","PromiseArray","init","resolveValueIfEmpty","bitField","isResolved","maybePromise","totalResolved","longStackTraces","contextStack","Context","peekContext","trace","createContext","Promise_pushContext","Promise_popContext","Promise_PeekContext","Promise_peekContext","Promise_promiseCreated","debuggability","getDomain","async","unhandledRejectionHandled","possiblyUnhandledRejection","bluebirdFramePattern","nodeFramePattern","parseLinePattern","stackFramePattern","formatStack","indentStackFrames","printWarning","debugging","warnings","wForgottenReturn","fireRejectionEvent","shouldUseOwnTrace","domain","disableLongStackTraces","longStackTracesIsSupported","Promise_captureStackTrace","Promise_attachExtraTrace","longStackTracesCaptureStackTrace","longStackTracesAttachExtraTrace","fireDomEvent","domEvent","fireGlobalEvent","methodName","generatePromiseLifecycleEventObject","eventToObjectGenerator","activeFireEvent","globalEventFired","domEventFired","warningsOption","cancellationClearCancellationData","cancellationPropagateFrom","cancellationOnCancel","cancellationSetOnCancel","cancellationAttachCancellationCallback","cancellationExecute","propagateFromFunction","defaultFireEvent","executor","onCancel","previousOnCancel","branchesRemainingToCancel","bindingPropagateFrom","boundValueFunction","CapturedTrace","ignoreSelf","parseStackAndMessage","checkForgottenReturns","returnValue","promiseCreated","handlerLine","creatorLine","traceLines","cleanStack","lineMatches","firstUserLine","deprecated","replacement","formatAndLogError","reconstructStack","stacks","removeDuplicateOrEmptyJumps","removeCommonRoots","currentLastIndex","currentLastLine","commonRootMeetPoint","isTraceLine","isInternalFrame","shouldIgnore","stackFramesAsArray","isSoft","localHandler","localEventFired","formatNonError","ruselessToString","newStr","snip","captureStackTrace","parseLineInfoRegex","parseLineInfo","setBounds","lastLineError","firstStackLines","lastStackLines","firstIndex","firstFileName","lastFileName","stackToIndex","currentStack","cycleEdgeNode","currentChildLength","v8stackFramePattern","v8stackFormatter","ignoreUntil","hasStackAfterThrow","_finally","PassThroughHandlerContext","FinallyHandlerCancelReaction","finallyHandler","checkCancel","succeed","fail","reasonOrValue","catch_filter","NEXT_FILTER","catchFilter","instances","boundTo","predicateLoop","matchesPredicate","isUntypedError","rErrorKey","wrapAsOperationalError","nodebackForPromise","multiArgs","$_len","$_i","nodeback","debug","calledBind","rejectThis","targetRejected","bindingResolved","thisArg","bindingRejected","canceller","onCancelCallback","internalOnly","direct_resolve","returner","_reason","synchronous_inspection","PromiseInspection","isFulfilled","isRejected","isPending","join","thenCallback","promiseSetter","generateHolderClass","assignment","cancellationCode","passedArguments","holderClasses","thenCallbacks","promiseSetters","HolderClass","holder","MappingPromiseArray","_filter","preservedValues","booleans","callerCache","getterCache","call_get","getMethodCaller","getGetter","makeMethodCaller","ensureMethod","makeGetter","getCompiled","compiler","caller","maybeCaller","namedGetter","indexedGetter","isIndex","maybeGetter","using","TypeError","NULL","castPreservingDisposable","thenable","dispose","resources","inspection","Disposer","resource","FunctionDisposer","maybeUnwrapDisposer","ResourceList","spreadArgs","disposer","reflectedResources","resultPromise","inspections","timers","HandleWrapper","handle","afterValue","afterTimeout","successClear","failureClear","handleWrapper","generators","yieldHandlers","promiseFromYieldHandler","traceParent","PromiseSpawn","generatorFunction","yieldHandler","_finallyPromise","implementsReturn","PromiseSpawn$","generator","spawn","nodeify","spreadAdapter","successAdapter","errorAdapter","newReason","promisify","THIS","defaultSuffix","defaultPromisified","noCopyProps","noCopyPropsPattern","defaultFilter","propsFilter","isPromisified","hasPromisified","checkValid","suffixRegexp","keyWithoutAsyncSuffix","promisifiableMethods","passesDefaultFilter","escapeIdentRegex","makeNodePromisifiedEval","switchCaseArgumentOrder","likelyArgumentCount","argumentSequence","argumentCount","parameterDeclaration","parameterCount","originalName","newParameterCount","argumentOrder","shouldProxyThis","generateCallForArgumentCount","comma","generateArgumentSwitchCase","getFunctionCode","makeNodePromisifiedClosure","__","defaultThis","promisified","_receiver","makeNodePromisified","promisifyAll","promisifier","promisifiedKey","Es6Map","mapToEntries","extractEntry","entriesToMap","entries","PropertiesPromiseArray","keyOffset","castValue","race","raceLater","fulfill","reduce","ReductionPromiseArray","initialValue","_each","sender","gotAccum","completed","valueOrReason","gotValue","settle","SettledPromiseArray","RangeError","CANCELLATION","SomePromiseArray","isArrayResolved","howMany","PromiseMap","PromiseReduce","PromiseAll","promiseAllThis","PromiseMapSeries","any","module","makeSelfResolutionError","reflectHandler","UNDEFINED_BINDING","APPLY","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","check","catchInstances","didFulfill","didReject","internalData","haveInternalData","settler","follower","proxyable","shouldBind","ignoreNonErrorWarnings","hasStack","isPromise","asyncGuaranteed","deferResolve","deferReject","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","fillTypes","bluebird","promisedFunc","resolveArg","rejectArg","documents","Document","Notes","Paragraph","Run","verticalAlignment","Text","Tab","Checkbox","Hyperlink","NoteReference","notes","note","noteKey","reference","Note","commentReference","noteType","Image","arrayBuffer","Table","TableRow","TableCell","Break","breakType","BookmarkStart","Result","funcResult","combineMessages","otherResult","exception","containsMessage","isSameMessage","base64Js","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","require","base64js","JSZip","zipfile","openArrayBuffer","splitPath","joinPath","zipFile","exists","read","write","toArrayBuffer","nonEmptyPaths","relevantPaths","Element","emptyElement","toElementList","elementListPrototype","freeze","assign","MIME_TYPE","NAMESPACE","uri","nameStartChar","nameChar","tagNamePattern","conventions","notEmptyString","splitOnASCIIWhitespace","orderedSetReducer","toOrderedSet","arrayIncludes","_extends","Class","Super","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INVALID_CHARACTER_ERR","NOT_FOUND_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","DOMException","NodeList","isHTML","nodeFilter","requireWellFormed","serializeToString","LiveNodeList","refresh","_updateLiveList","inc","__set__","NamedNodeMap","_findNodeIndex","_nnmIndexAdd","attr","_nnmIndexRemove","_addNamedNode","newAttr","oldAttr","doc","_onRemoveAttribute","_onAddAttribute","_removeNamedNode","namespaceURI","localName","DOMImplementation","feature","qualifiedName","doctype","publicId","systemId","DocumentType","Node","newChild","refChild","_insertBefore","oldChild","assertPreReplacementValidityInDocument","_removeChild","deep","cloneNode","walkDOM","tail","sibling","removed","following","_onUpdateChild","_xmlEncoder","_visitNode","childContext","parentNode","hasValidParentNodeType","hasInsertableNodeType","isElementNode","isTextNode","isDocTypeNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","hasElementChildThatIsNotChild","assertPreInsertionValidity1to5","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","_inDocumentAssertion","cp","newFirst","newLast","pre","targetDoc","_updateOwnerDocument","newOwnerDocument","_appendSingleChild","importedNode","importNode","rtv","classNames","classNamesSet","nodeClassNames","nodeClassNamesSet","tagName","DocumentFragment","CDATASection","ProcessingInstruction","Attr","EntityReference","pl","CharacterData","newNode","Notation","Entity","XMLSerializer","isHtml","nodeSerializeToString","refNode","visibleNamespaces","needNamespaceDefine","addSerializedAttribute","nodeName","prefixedNodeName","defaultNS","nsi","nsEntry","childNs","attrPrefix","filteredAttr","nodePrefix","pubid","sysid","sub","childCtx","destRoot","srcNode","destParent","destNode","shouldDeep","attrs2","dom","exports","S_TAG","S_ATTR","S_ATTR_SPACE","S_EQ","S_ATTR_NOQUOT_VALUE","S_ATTR_END","S_TAG_SPACE","S_TAG_CLOSE","ParseError","locator","XMLReader","defaultNSMap","entityMap","domBuilder","_copy","parse","defaultNSMapCopy","errorHandler","fixedFromCharCode","surrogate1","surrogate2","entityReplacer","appendText","lineEnd","linePattern","lineStart","parseStack","closeMap","tagStart","localNSMap","endMatch","endIgnoreCaseMach","parseInstruction","parseDCC","ElementAttributes","currentNSMap","parseElementStartPart","fixSelfClosed","locator2","copyLocator","appendElement","parseHtmlSpecialContent","addAttribute","qname","attrName","qName","nsp","nsPrefix","elStartEnd","elEndStart","matchs","split","lastMatch","reg","sax","entities","normalizeLineEndings","DOMParser","mimeType","DOMHandler","buildErrorHandler","normalize","errorImpl","isCallback","_locator","ins","ch","_toString","charNode","comm","impl","hander","domParser","lib","xmldom","parseFromString","document","xmldom_1","readString","xmlString","namespaceMap","convertNode","convertElement","convertedName","convertName","convertedChildren","childNode","convertedNode","convertedAttributes","attribute","mappedPrefix","isPlainObject","sources","Utility","XMLAttributeModule","XMLAttribute","XMLNode","XMLElementModule","superClass","XMLElement","att","attName","clonedSelf","ref1","clonedChild","attValue","XMLCDataModule","XMLCData","XMLCommentModule","XMLComment","XMLDeclarationModule","XMLDeclaration","standalone","XMLDTDAttListModule","XMLDTDAttList","elementName","attributeName","attributeType","defaultValueType","XMLDTDEntityModule","XMLDTDEntity","XMLDTDElementModule","XMLDTDElement","XMLDTDNotationModule","XMLDTDNotation","XMLDocTypeModule","XMLDocType","pubID","sysID","XMLRawModule","XMLRaw","XMLTextModule","XMLText","XMLProcessingInstructionModule","XMLProcessingInstruction","XMLDummyModule","XMLDummy","XMLNodeModule","lastChild","len1","ref2","insTarget","insValue","instruction","xmldec","clonedRoot","XMLStringifierModule","XMLStringifier","ampregex","XMLWriterBaseModule","XMLWriterBase","ref3","ref4","ref5","ref6","XMLStringWriterModule","XMLStringWriter","space","textispresentwasset","XMLDocumentModule","XMLDocument","writerOptions","XMLDocumentCBModule","XMLDocumentCB","onData","onEnd","XMLStreamWriterModule","XMLStreamWriter","xmlbuilder","writeString","namespaces","uriToPrefix","nodeWriters","writeElement","writeTextNode","writeNode","builder","elementBuilder","mapElementName","longFormMatch","writeDocument","xml","officeXmlReader","readXmlFromZipFile","xmlNamespaceMap","collapseAlternateContent","docxFile","stripUtf8Bom","dingbats_1","dingbats","dingbatsByCodePoint","fromCodePoint","fromCodePointPolyfill","dingbats_2","dingbat","codePoint_1","scalarValue","codePoint","dec","highSurrogate","lowSurrogate","transforms","paragraph","run","elementsOfType","getDescendantsOfType","getDescendants","elementType","transformElement","descendant","descendants","visitDescendants","visit","uris","uriToZipEntryName","replaceFragment","hashIndex","bodyReader","createBodyReader","readNumberingProperties","dingbatToUnicode","BodyReader","complexFieldStack","currentInstrText","deletedParagraphContents","relationships","contentTypes","numbering","styles","readXmlElements","readXmlElement","combineResults","xmlElementReaders","ignoreElements","emptyResultWithMessages","emptyResult","readParagraphProperties","readParagraphStyle","readParagraphIndent","readRunProperties","readRunStyle","fontSizeString","readBooleanElement","readUnderline","readHighlightValue","readBooleanAttributeValue","readStyle","readTableStyle","styleTagName","styleType","findStyleById","styleId","undefinedStyleWarning","elementResultWithMessages","readFldChar","complexFieldEnd","parseCurrentInstrText","elementResult","complexFieldSeparate","complexField","currentHyperlinkOptions","topHyperlink","parseInstrText","instrText","fldChar","linkResult","location","checkboxResult","checkboxElement","checkedElement","readInstrText","readSymbol","char","unicodeCharacter","noteReferenceReader","noteId","readCommentReference","readChildElements","paragraphPropertiesElement","isDeleted","childrenXml","ReadResult","hyperlinkOptions","relationshipId","anchor","targetFrame","href","readTable","readTableRow","readTableCell","contentResult","isChecked","documentCheckbox","hasCheckbox","replacedContent","readDrawingElement","readImageData","propertiesResult","readTableProperties","calculateRowSpans","isHeader","gridSpan","colSpan","readVMerge","unexpectedNonRows","removeVMergeProperties","unexpectedNonCells","columns","cellIndex","cells","blips","readBlip","blip","propertiesElement","isBlank","blipImageFile","findBlipImageFile","readImage","hlinkClickElement","embedRelationshipId","linkRelationshipId","findEmbeddedImageFile","imagePath","imageFile","supportedImageTypes","numId","levelByStyleId","joinElements","documentXmlReader","DocumentXmlReader","convertXmlToDocument","relationshipsReader","readRelationships","Relationships","relationship","targetsByRelationshipId","targetsByType","contentTypesReader","readContentTypesFromXml","fallbackContentTypes","extensionDefaults","overrideContentType","pathParts","extension","numberingXml","readNumberingXml","Numbering","nums","abstractNums","allLevels","abstractNum","levelsByParagraphStyleId","findLevel","findLevelWithSeenNumIds","seenNumIds","findLevelByParagraphStyleId","readAbstractNums","readNums","readAbstractNum","levels","levelWithoutIndex","levelElement","levelIndex","numFmt","isOrdered","paragraphStyleId","numStyleLink","abstractNumId","stylesReader","readStylesXml","Styles","paragraphStyles","characterStyles","tableStyles","numberingStyles","readStyleElement","styleSet","readNumberingStyleElement","readStyleId","nameElement","notesReader","createReader","readNotesXml","isFootnoteElement","readFootnoteElement","footnoteElement","createCommentsReader","readCommentsXml","readCommentElement","readOptionalAttribute","commentsReader","Files","docxReader","findPartPaths","readContentTypesFromZipFile","readStylesFromZipFile","readNumberingFromZipFile","readXmlFileWithBody","footnotes","endnotes","comments","readPackageRelationships","packageRelationships","mainDocumentPath","findPartPath","xmlFileReader","relationshipsFilename","documentRelationships","findPartRelatedToMainDocument","relationshipType","basePath","fallbackPath","targets","normalisedTargets","stripPrefix","validTargets","readRelationshipsFromZipFile","writeStyleMap","readStyleMap","schema","styleMapPath","styleMapAbsolutePath","updateRelationships","updateContentTypes","relationshipsUri","relationshipElementName","relationshipsContainer","addOrUpdateElement","contentTypesUri","overrideName","typesElement","identifyingAttribute","existingElement","htmlPaths","nonFreshElement","elementWithTag","freshElement","forceWrite","ast","voidTagNames","isVoidElement","simplify","collapse","removeEmpty","collapseNode","appendChild","collapsers","collapseElement","grandChild","flatMap","emptiers","elementEmptier","textEmptier","neverEmpty","simplify_1","toStrings","generateElementString","generateTextString","topLevelElement","elementStyles","HtmlPath","elementStyle","tagNames","generateNodes","Html","imageBuffer","imageFilenameExtension","htmlWriter","prettyWriter","simpleWriter","indentedElements","indentationLevel","indentation","inText","close","startText","isInPre","selfClosing","insideIndentedElement","fragments","attributeString","generateAttributeString","escapeHtmlAttribute","escapeHtmlText","append","asString","symmetricMarkdownElement","markdownElement","markdownLink","markdownImage","markdownList","markdownListItem","listItem","bullet","repeatString","htmlToMarkdown","markdownWriter","elementStack","createElement","anchorBeforeStart","writeAnchor","escapeMarkdown","markdownWriter_1","writers","documentToHtml","DocumentConverter","conversion","DocumentConversion","noteNumber","noteReferences","referencedComments","idPrefix","ignoreEmptyParagraphs","defaultParagraphStyle","convertToHtml","elementToHtml","deferredNodes","walkHtml","deferredValues","deferred","replaceDeferred","convertElements","elementConverters","convertParagraph","htmlPathForParagraph","findStyle","unrecognisedStyleWarning","convertRun","findHtmlPath","findHtmlPathForRunProperty","stylePath","defaultTagName","defaultPath","recoveringConvertImage","convertImage","noteHtmlId","referentHtmlId","noteRefHtmlId","referenceHtmlId","referenceType","referenceId","htmlId","defaultTablePath","convertTable","convertTableChildren","bodyIndex","headRows","bodyRows","convertTableRow","convertTableCell","convertCommentReference","commentAuthorLabel","convertComment","referencedComment","convertBreak","htmlPathForBreak","noteReference","notesNodes","backLink","deferredConversion","deferredId","convertElementToRawText","rawText","TokenIterator","TokenIteratorModule","tokens","endToken","parser","parseTokens","callOrReturn","Some","parsingResults","Error","locationDescription","lazyIterators","hasNext","LazyIterator","condition","moved","moveIfNecessary","toReturn","tokenType","matchValue","token","expected","describeToken","describeTokenMismatch","parsers","hasCut","subResult","SequenceValues","firstCapture","isCapturedRule","subRule","valuesArray","newValues","newValuesArray","captureRule","rules","repeatedWithSeparator","zeroOrMore","noOpRule","isOneOrMore","mainRule","remainingRule","remainingResult","leftRule","rightRule","rights","rightValue","leftValue","repeatedRule","leftResult","repeatedResult","StringSourceModule","endIndex","StringSourceRange","otherRange","nextNewLine","lineNumber","characterNumber","Token","prefixRules","infixRuleBuilders","leftAssociative","rightAssociative","infixRules","InfixRules","createInfixRule","prefixRule","infixRuleBuilder","lazyRule","createRule","apply","untilExclusive","ruleNames","untilInclusive","currentResult","applyToTokens","infix","ruleBuilder","StringSource","regexTokeniser","RegexTokeniser","tokenise","readNextToken","lop","documentMatchers","Matcher","highlight","BreakMatcher","equalTo","startsWith","HighlightMatcher","isList","operatorEqualTo","operatorStartsWith","tokeniser","stringPrefix","identifierCharacter","styleReader","readHtmlPath","readDocumentMatcher","parseString","styleRule","createStyleRule","documentMatcherRule","htmlPathRule","documentMatcher","htmlPath","sequence","identifierToConstant","identifier","paragraphRule","runRule","elementTypeRule","styleIdRule","identifierRule","styleNameMatcherRule","stringRule","styleNameRule","listTypeRule","listRule","integerRule","listType","levelNumber","createMatcherSuffixesRule","matcherSuffix","matcherSuffixes","suffixes","matcherOptions","paragraphOrRun","createMatcher","strikethrough","allCaps","smallCaps","breakMatcher","capture","whitespaceRule","freshRule","separatorRule","tagNamesRule","styleElementRule","attributeOrClassRule","attributesList","fresh","decodeEscapeSequences","escapeSequences","attributeRule","classRule","parseResult","describeFailure","describeError","optionsReader","readOptions","defaultStyleMap","standardOptions","openZip","docxStyleMap","convertToMarkdown","convert","extractRawText","embedStyleMap","readEmbeddedStyleMap","markdownOptions","documentResult","convertDocumentToHtml","styleMapResult","parseStyleMap","parsedOptions","documentConverter","styleMapping","repeat","trimLeadingNewlines","trimTrailingNewlines","indexEnd","trimNewlines","blockElements","isBlock","voidElements","isVoid","hasVoid","meaningfulWhenBlankElements","isMeaningfulWhenBlank","hasMeaningfulWhenBlank","markdownEscapes","hLevel","isParagraph","language","fenceChar","fenceSize","fenceInCodeRegex","fence","escapeLinkDestination","escapeLinkTitle","cleanAttribute","titlePart","references","hasSiblings","isCodeBlock","extraSpace","delimiter","alt","escaped","Rules","findRule","filterValue","collapseWhitespace","isPre","prevText","keepLeadingWs","nextNode","canParseHTMLNatively","Parser","canParse","createHTMLParser","shouldUseActiveX","useActiveX","HTMLParser","RootNode","htmlParser","isPreOrCode","_htmlParser","flankingWhitespace","edgeWhitespace","isFlankedByWhitespace","side","regExp","isFlanked","canConvert","process","postProcess","plugin","replacementForNode","whitespace","nls"],"mappings":"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AAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,ECD5B,SAASC,GAAKC,EAAkC,CAC9C,OAAOC,gGAAiGD,CAAK,iBAC/G,CAEO,MAAME,GAAiB,IAC5BH,GACE,+FACF,EAEWI,GAAU,IACrBJ,GACE,gLACF,EAEWK,GAAa,IACxBL,GACE,wVACF,EAEWM,GAAe,IAC1BN,GACE,6WACF,EAEWO,GAAY,IACvBP,GACE,uGACF,EAEWQ,GAAiB,IAC5BR,GACE,0NACF,EAEWS,GAAc,IACzBT,GACE,4WACF,EAEWU,GAAW,IAAyBV,GAAK,uCAAuC,EAEhFW,GAAa,IACxBX,GACE,+GACF,EAEWY,GAAa,IACxBZ,GACE,8PACF,EAEWa,GAAe,IAC1Bb,GACE,qHACF,ECnCK,SAASc,GAAuBz1B,EAAkD,CACvF,KAAM,CAAE,MAAA01B,EAAO,KAAAf,EAAM,UAAAgB,EAAW,QAAAC,EAAS,QAAAC,EAAS,YAAAC,EAAa,QAAAC,GAAY/1B,EAC3E,OAAOg2B;AAAAA;AAAAA;AAAAA;AAAAA,qBAIYL,CAAS;AAAA,oBACVD,CAAK;AAAA;AAAA,gBAETK,CAAO;AAAA;AAAA,QAEfH,EACEI,qCAAuCJ,CAAO,UAAUC,GAAWH,CAAK,aAAaI,CAAW,OAChGnB,CAAI;AAAA,cACAe,CAAK;AAAA;AAAA,GAGnB,CCvBO,SAASO,GAAkBj2B,EAA6C,CAC7E,KAAM,CAAE,MAAAk2B,EAAO,WAAAC,EAAY,gBAAAC,EAAiB,WAAAC,EAAY,cAAAC,EAAe,QAAAV,EAAS,QAAAC,EAAS,YAAAC,EAAa,QAAAS,EAAS,QAAAC,CAAA,EAAYx2B,EAC3H,OAAOg2B;AAAAA;AAAAA;AAAAA,UAGCJ,EACEI,yCAA2CJ,CAAO,UAAUC,GAAWK,CAAK,aAAaJ,CAAW,OACpG,EAAE;AAAA;AAAA,6CAE+BI,CAAK;AAAA,YACtCC,EAAaH,wEAA0EG,CAAU,UAAY,EAAE;AAAA;AAAA;AAAA;AAAA,UAIjHC,EACEJ;AAAAA,sEAC0DK,CAAU,YAAYA,CAAU,aAAaE,CAAO;AAAA,kBACxGpB,IAAgB;AAAA;AAAA,cAGtB,EAAE;AAAA,gEACkDmB,CAAa,YAAYA,CAAa,aAAaE,CAAO;AAAA,YAC9GtB,IAAW;AAAA;AAAA;AAAA;AAAA,GAKvB,CClCO,SAASuB,GAAqBz2B,EAAgD,CACnF,KAAM,CAAE,OAAA/C,EAAQ,MAAAy5B,EAAO,UAAAC,CAAA,EAAc32B,EAC/B42B,EAAQ35B,IAAW,UAAY,EAAI,KAAK,IAAIy5B,EAAQ,IAAK,GAAI,EAAI,EAEvE,OAAOV;AAAAA;AAAAA;AAAAA,+BAGsB/4B,IAAW,OAAS,UAAY,EAAE,4BAA4B25B,CAAK;AAAA,6CACrDD,CAAS;AAAA,YAC1C15B,IAAW,aAAe+4B,sCAA0CjB,GAAA,CAAS;AAAA;AAAA;AAAA;AAAA,GAKzF,CCfO,SAAS8B,GAAoB72B,EAA+C,CACjF,KAAM,CAAE,OAAA/C,EAAQ,QAAA65B,EAAS,gBAAAC,EAAiB,cAAAC,EAAe,UAAAC,EAAW,gBAAAC,EAAiB,aAAAC,EAAc,aAAAC,CAAA,EAAiBp3B,EAC9Gq3B,EAAWr6B,GAAaC,CAAM,EAEpC,OAAO+4B;AAAAA;AAAAA,QAEDqB,EACErB;AAAAA;AAAAA;AAAAA,iCAGuBc,EAAU,SAAW,EAAE;AAAA,4BAC5BG,CAAS;AAAA,uBACdA,CAAS;AAAA,wBACRG,CAAY;AAAA;AAAA,gBAEpBN,EAAU9B,GAAA,EAAeD,GAAA,CAAS;AAAA;AAAA,YAGxC,EAAE;AAAA;AAAA;AAAA,qBAGSsC,EAAW,SAAW,EAAE;AAAA,iBAC5BA,EAAW,GAAK,SAASH,CAAe,EAAE;AAAA,kBACzCC,CAAY;AAAA;AAAA,UAEpBE,EAAWjC,GAAA,EAAgBL,GAAA,CAAS;AAAA,gBAC9BsC,EAAWL,EAAgBD,CAAe;AAAA;AAAA;AAAA,GAI1D,CCTO,SAASO,GAAmBt3B,EAA8C,CAC/E,KAAM,CACJ,GAAAwlB,EACA,MAAAlmB,EACA,YAAAi4B,EACA,SAAAC,EACA,aAAAC,EACA,YAAAC,EACA,SAAAC,EACA,UAAAC,EACA,YAAAC,EACA,YAAAC,EACA,sBAAAC,EACA,gBAAAC,EACA,OAAAC,EACA,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,OAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,mBAAAC,CAAA,EACEx4B,EAEEy4B,EAAqBZ,EAAY,KAAMz2B,GAAMA,EAAE,SAAW,OAAO,EACjEs3B,EAA0Bb,EAAY,KAAMz2B,GAAMA,EAAE,SAAW,YAAY,EAC3Eu3B,GAAWr5B,EAAM,KAAA,EAAO,OAAS,GAAKm5B,IAAuB,CAACjB,GAAY,CAACkB,EAEjF,OAAO1C;AAAAA;AAAAA,QAED6B,EAAY,OAAS,EACnB7B;AAAAA;AAAAA,gBAEM6B,EAAY,IACXz2B,GAAM40B;AAAAA,iDAC0B50B,EAAE,MAAM;AAAA,sBACnCo0B,IAAc;AAAA,yDACqBp0B,EAAE,IAAI;AAAA,sBACzCA,EAAE,SAAW,aACX40B,8FAAgGgC,CAAe,UAC/G,EAAE;AAAA,sBACJ52B,EAAE,SAAW,QAAU40B,mCAAqC50B,EAAE,YAAY,UAAY,EAAE;AAAA;AAAA;AAAA;AAAA,oCAI1E22B,CAAqB,KAAK32B,EAAE,IAAI;AAAA,gCACpC,IAAMo3B,EAAmBp3B,EAAE,EAAE,CAAC;AAAA;AAAA,wBAEtC8zB,IAAW;AAAA;AAAA;AAAA,iBAAA,CAIpB;AAAA;AAAA,YAGL,EAAE;AAAA;AAAA;AAAA,gBAGI1P,CAAE;AAAA;AAAA,oBAEElmB,CAAK;AAAA,yBACAi4B,CAAW;AAAA,uBACbC,CAAQ;AAAA,oBACXU,CAAO;AAAA,sBACLC,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKf3S,CAAE;AAAA;AAAA;AAAA,oBAGEyS,CAAM;AAAA;AAAA,qBAELM,CAAe;AAAA;AAAA;AAAA;AAAA;AAAA,uBAKbf,CAAQ;AAAA,wBACPM,CAAW;AAAA,mBAChBA,CAAW;AAAA,oBACVQ,CAAa;AAAA;AAAA,YAErB/C,IAAY;AAAA;AAAA,UAEdkC,EACEzB;AAAAA;AAAAA;AAAAA,qCAGyB0B,EAAc,YAAc,EAAE;AAAA,6BACtCF,CAAQ;AAAA,8BACPG,CAAQ;AAAA,gCACND,CAAW;AAAA,yBAClBC,CAAQ;AAAA,0BACPS,CAAU;AAAA;AAAA,kBAElBrD,IAAS;AAAA;AAAA,cAGf,EAAE;AAAA,+DACiD,CAAC4D,CAAO,iBAAiBf,CAAS,YAAYA,CAAS,aAAaS,CAAM;AAAA,YAC7HhD,IAAU;AAAA;AAAA;AAAA;AAAA,GAKtB,CC9IO,SAASuD,GAAmBC,EAAmD,CACpF,OAAO7C,2BAA6BsB,GAAmBuB,CAAY,CAAC,QACtE,CCUO,SAASC,GAAqB94B,EAAgD,CACnF,KAAM,CAAE,UAAA+4B,EAAW,WAAAC,EAAY,gBAAAC,EAAiB,gBAAA/B,EAAiB,aAAAC,GAAiBn3B,EAC5Eq3B,EAAWr6B,GAAag8B,CAAU,EAExC,OAAOhD;AAAAA;AAAAA,0CAEiCsB,GAAmByB,CAAS,CAAC;AAAA;AAAA;AAAA,kCAGrC1B,EAAW,SAAW,EAAE;AAAA,iBACzCA,EAAW,GAAK,SAASH,CAAe,EAAE;AAAA,sBACrC+B,CAAe;AAAA,iBACpBA,CAAe;AAAA,kBACd9B,CAAY;AAAA;AAAA,UAEpBE,EAAWjC,GAAA,EAAgBL,GAAA,CAAS;AAAA;AAAA;AAAA,GAI9C,CCtBA,SAASmE,GAAajJ,EAAuC,CAC3D,OAAOA,EAAM,IAAKkJ,GAAS,CACzB,OAAQA,EAAK,KAAA,CACX,IAAK,OACH,OAAOnD,KAAOmD,EAAK,KAAK,GAC1B,IAAK,OACH,OAAOnD,aAAekD,GAAaC,EAAK,QAAQ,CAAC,YACnD,IAAK,SACH,OAAOnD,SAAWkD,GAAaC,EAAK,QAAQ,CAAC,QAC/C,IAAK,OACH,OAAOnD,WAAamD,EAAK,KAAK,SAAA,CAEpC,CAAC,CACH,CAEA,SAASC,GAAa5I,EAAuC,CAC3D,OAAOA,EAAO,IAAK6I,GAAU,CAC3B,GAAIA,EAAM,OAAS,YACjB,OAAOrD,QAAUkD,GAAaG,EAAM,QAAQ,CAAC,OAE/C,MAAM1I,EAAQ0I,EAAM,MAAM,IAAKpF,GAAS+B,SAAWkD,GAAajF,CAAI,CAAC,OAAO,EAI5E,OAAOoF,EAAM,QAAUrD,SAAWrF,CAAK,QAAUqF,SAAWrF,CAAK,OACnE,CAAC,CACH,CAEA,SAAS2I,GAAex7B,EAAmC,CACzD,OAAOs7B,GAAa7I,GAAkBzyB,CAAO,CAAC,CAChD,CAEA,MAAMy7B,GAAa,IAAsBvD;AAAAA;AAAAA,EAalC,SAASwD,GAAoBlO,EAAsC,CACxE,MAAMmO,EAAcnO,EAAQ,OAAS,YAC/BoO,EAAcD,GAAe,CAACnO,EAAQ,OAASA,EAAQ,UAAY,GACnEuM,EAAcvM,EAAQ,aAAe,CAAA,EAE3C,OAAO0K;AAAAA;AAAAA,kCAEyByD,EAAc,YAAc,MAAM;AAAA,UAC1DA,EAAcxE,GAAA,EAAiBK,GAAA,CAAY;AAAA;AAAA,mCAElBmE,EAAc,YAAc,MAAM;AAAA,UAC3DC,EAAcH,GAAA,EAAeE,EAAcH,GAAehO,EAAQ,OAAO,EAAI0K,6BAA+B1K,EAAQ,OAAO,SAAS;AAAA,UACpIuM,EAAY,OAAS,EACnB7B;AAAAA;AAAAA,kBAEM6B,EAAY,IACXz2B,GAAM40B,2CAA6CR,IAAc,SAASp0B,EAAE,IAAI,gBAAA,CAClF;AAAA;AAAA,cAGL,EAAE;AAAA;AAAA;AAAA,GAId,CC/EO,SAASu4B,GAAiBrO,EAAiC,CAChE,OAAO0K,iCAAmC1K,CAAO,YACnD,CC6BO,SAASsO,GAAuB55B,EAAkD,CACvF,KAAM,CAAE,SAAA65B,EAAU,aAAAC,EAAc,SAAAC,CAAA,EAAa/5B,EACvCg6B,EAA4B,CAAC,GAAGH,CAAQ,EAAE,QAAA,EAAU,KAAMx7B,GAAMA,EAAE,OAAS,aAAeA,EAAE,KAAK,EAEvG,OAAO23B;AAAAA,MACH6D,EAAS,SAAW,EAClBF,GAAiBG,CAAY,EAC7B9D;AAAAA,+FACuF+D,CAAQ;AAAA,cACzFF,EAAS,IAAKvO,GAAYkO,GAAoBlO,CAAO,CAAC,CAAC;AAAA;AAAA,SAE5D;AAAA,uDAC6C0O,GAAA,YAAAA,EAA2B,UAAW,EAAE;AAAA,GAE9F,CChCO,SAASC,GAAyBj6B,EAAoD,CAC3F,OAAOg2B;AAAAA;AAAAA,gBAEOh2B,EAAQ,KAAK;AAAA,cACfA,EAAQ,IAAI;AAAA;AAAA,GAG1B,CCdA,MAAMk6B,GAAyD,CAC7D,GAAI,CACF,MAAO,4BACP,KAAM,4FAAA,EAER,GAAI,CACF,MAAO,6BACP,KAAM,wHAAA,CAEV,EAEO,SAASC,GAAyBvK,EAA6C,CACpF,MAAME,GAAUF,GAAQ,MAAM,MAAM,EAAG,CAAC,EAAE,YAAA,EAC1C,OAAOsK,GAAoBpK,CAAM,GAAKoK,GAAoB,EAC5D,CCnBA,MAAME,GAAgD,CACpD,GAAI,QACJ,GAAI,OACN,EAEMC,GAAsBD,GAAsB,GAE3C,SAASE,GAAkB1K,EAAkC,CAClE,MAAME,GAAUF,GAAQ,MAAM,MAAM,EAAG,CAAC,EAAE,YAAA,EAC1C,OAAOwK,GAAsBtK,CAAM,GAAKuK,EAC1C,CCQO,SAASE,GAAmBC,EAA6BC,EAAyBvE,EAA4B,CACnH,MAAMv1B,EAAU65B,GAAA,YAAAA,EAAS,OACzB,MAAI,CAAC75B,GAAW85B,EAAuB,CAAE,KAAM,MAAA,EACxC,CAAE,KAAM,OAAQ,IAAK95B,EAAS,IAAKu1B,GAAS,aAAA,CACrD,sMCMA,MAAMwE,GAAiB,UACjBC,GAAkB,UAClBC,GAAoB,iCAEpBn+B,GAAQ,IAAA,SAAc,QAAAC,GAAAC,EAAA,WAAW,SAAX,YAAAA,EAAmB,aAAnB,YAAAD,EAAA,KAAAC,KAAqC,GAAG,KAAK,IAAA,CAAK,IAAI,KAAK,QAAQ,IAoBzFk+B,GAAgC,CACpC,cAAgBv7B,GAAkCA,IAAU,MAAQA,IAAU,QAC9E,YAAcA,GAA2B,OAAOA,CAAK,CACvD,EAuBaw7B,GAAAA,eAAN,cAA6BC,EAAW,CAAxC,aAAA,CAAA,MAAA,GAAA,SAAA,EAgBoC,KAAA,YAAc,GAChB,KAAA,UAAY,GACK,KAAA,YAAc,GAC9B,KAAA,WAAyB,SACZ,KAAA,SAAW,GAEhE,KAAA,oBAAsB,GACV,KAAA,SAA2B,eAC3B,KAAA,KAAmB,OAYnB,KAAA,MAAQ,GAQS,KAAA,KAAO,KAM3B,KAAQ,YAAc,GACtB,KAAQ,gBAAkB,GAC1B,KAAQ,oBAAsB,GAC9B,KAAQ,sBAAwB,GAChC,KAAQ,uBAAyB,GACjC,KAAQ,gBAAkB,GAC1B,KAAQ,eAAqC,CAAA,EAC7C,KAAQ,wBAA0B,GAIlC,KAAQ,gBAAkB,GAKnC,KAAQ,kBAAoB,GAK5B,KAAQ,cAAgB,GACxB,KAAQ,qBAAuB,GAG/B,KAAQ,iBAAkC,CAAA,EAE1C,KAAiB,mBAAqB,IAAY,CAChD,KAAK,cAAA,CACP,EAwEA,KAAQ,qBAA6C,KAkCrD,KAAQ,gBAAkB,IAAY,CACpC,KAAK,gBAAkB,EACzB,CAAA,CA1GA,mBAA0B,CACxB,MAAM,kBAAA,EACN,KAAK,iBAAA,EACL,KAAK,kBAAA,EACD,KAAK,WAAU,KAAK,YAAc,GACxC,CAEA,sBAA6B,WAC3B,MAAM,qBAAA,EACN,KAAK,mBAAA,GACLp+B,EAAA,KAAK,aAAL,MAAAA,EAAiB,oBAAoB,SAAU,KAAK,qBACpDD,EAAA,KAAK,aAAL,MAAAA,EAAiB,UACjB,KAAK,WAAa,QAClBijB,EAAA,KAAK,sBAAL,MAAAA,EAA0B,UAC1B,KAAK,oBAAsB,OAC3B,cAAc,KAAK,eAAe,EAClC,aAAa,KAAK,gBAAgB,EAClC,aAAa,KAAK,uBAAuB,EACzC,aAAa,KAAK,wBAAwB,CAC5C,CAEU,QAAQqb,EAA+B,SAgB/C,IAfIA,EAAQ,IAAI,aAAa,GAAKA,EAAQ,IAAI,WAAW,MACvDr+B,EAAA,KAAK,cAAL,MAAAA,EAAkB,cAAc,CAAE,YAAa,KAAK,YAAa,UAAW,KAAK,aACjFD,EAAA,KAAK,aAAL,MAAAA,EAAiB,cAAc,CAAE,YAAa,KAAK,YAAa,UAAW,KAAK,aAE9Es+B,EAAQ,IAAI,YAAY,GAM1B,KAAK,kBAAA,EAEHA,EAAQ,IAAI,UAAU,GAAK,KAAK,WAClC,KAAK,YAAc,IAEjB,CAAC,KAAK,sBAAwBA,EAAQ,IAAI,aAAa,GAAKA,EAAQ,IAAI,aAAa,EAAG,CAC1F,KAAK,qBAAuB,GAC5B,KAAK,MAAM,YAAY,0BAA2B,KAAK,eAAe,EACtE,KAAK,MAAM,YAAY,sBAAuB,KAAK,eAAe,EAMlE,MAAMC,EAAc7L,GAAuB,KAAK,eAAe,EAC/D,KAAK,MAAM,YAAY,wBAAyB6L,CAAW,EAC3D,KAAK,MAAM,YAAY,kCAAmCzL,GAAsByL,CAAW,CAAC,CAC9F,CACID,EAAQ,IAAI,SAAS,IAIvB,KAAK,gBAAkB,IAErBA,EAAQ,IAAI,aAAa,IACvB,KAAK,aACP,KAAK,cAAgB,GACrB,KAAK,WAAA,GACI,KAAK,eACd,KAAK,cAAA,GAGL,KAAK,mBAAqB,KAAK,uBACjC,KAAK,qBAAuB,KAAK,iBACjC,KAAK,2BAAA,EAET,CAIQ,YAAmB,QACzBr+B,EAAA,KAAK,WAAW,cAA2B,QAAQ,IAAnD,MAAAA,EAAsD,OACxD,CAEQ,eAAsB,QAC5BA,EAAA,KAAK,WAAW,cAA2B,WAAW,IAAtD,MAAAA,EAAyD,OAC3D,CAEQ,4BAAmC,CACzC,MAAM0lB,EAAO,KAAK,WAAW,cAA2B,oBAAoB,EACxEA,IAAMA,EAAK,UAAYA,EAAK,aAClC,CAEA,IAAY,iBAA0B,OACpC,QAAO1lB,EAAA,KAAK,cAAL,YAAAA,EAAkB,SAAU+9B,EACrC,CAEA,IAAY,iBAA0B,OACpC,QAAO/9B,EAAA,KAAK,cAAL,YAAAA,EAAkB,SAAUg+B,EACrC,CAEA,IAAY,qBAA8B,CACxC,OAAOvL,GAAuB,KAAK,eAAe,CACpD,CAEA,IAAY,sBAA2C,CACrD,OAAOO,GAAoB,KAAK,KAAM,KAAK,YAAY,CACzD,CAYA,IAAY,cAAyD,CACnE,MAAMuL,EAAUX,GAAmB,KAAK,QAAS,KAAK,gBAAiB,KAAK,SAAW,KAAK,KAAK,EACjG,OAAOW,EAAQ,OAAS,OAAS,CAAE,IAAKA,EAAQ,IAAK,IAAKA,EAAQ,GAAA,EAAQ,MAC5E,CAEQ,kBAAyB,CAC3B,KAAK,aACT,KAAK,WAAa,IAAIn7B,GAAW,CAAE,YAAa,KAAK,YAAa,UAAW,KAAK,UAAW,EAC7F,KAAK,WAAW,iBAAiB,SAAU,KAAK,kBAAkB,EACpE,CAEQ,mBAA0B,CAChC,GAAI,KAAK,aAAe,OAAQ,CAC9B,KAAK,mBAAA,EACL,MACF,CACI,KAAK,cACT,KAAK,YAAc,IAAImtB,GAAY,CAAE,YAAa,KAAK,YAAa,UAAW,KAAK,UAAW,EAC/F,KAAK,YAAY,iBAAiB,SAAU,KAAK,kBAAkB,EAC9D,KAAK,YAAY,OAAA,EACxB,CAIQ,oBAA2B,CAC5B,KAAK,cACV,KAAK,YAAY,oBAAoB,SAAU,KAAK,kBAAkB,EACtE,KAAK,YAAY,QAAA,EACjB,KAAK,YAAc,OACrB,CAIQ,qBAA4B,CAClC,GAAI,KAAK,YAAa,CACpB,KAAK,gBAAkB,GACvB,aAAa,KAAK,gBAAgB,EAClC,KAAK,iBAAmB,WAAW,IAAM,CACvC,KAAK,gBAAkB,EACzB,EAAG,GAAI,EACP,MACF,CACA,KAAK,YAAc,EACrB,CAEQ,aAAoB,UAC1BvwB,EAAA,KAAK,aAAL,MAAAA,EAAiB,iBACjBD,EAAA,KAAK,cAAL,MAAAA,EAAkB,iBACpB,CAEQ,aAAoB,CAC1B,KAAK,YAAc,EACrB,CAEQ,mBAAmBmsB,EAA4B,CACjDA,EAAM,MAAQ,WAChBA,EAAM,eAAA,EACN,KAAK,YAAc,GAEvB,CAEQ,gBAAgBA,EAAyB,CAC/C,KAAK,gBAAmBA,EAAM,OAA4B,KAC5D,CAEQ,kBAAkBA,EAA4B,CAChDA,EAAM,MAAQ,UAChBA,EAAM,eAAA,EACN,KAAK,eAAA,EAET,CAEQ,gBAAuB,OAO7B,GANI,KAAK,qBAAqB,KAAK,cAAA,EAM/B,KAAK,eAAe,KAAMznB,GAAMA,EAAE,SAAW,YAAY,EAAG,OAChE,MAAMT,EAAU,KAAK,gBAAgB,KAAA,EAC/Bw6B,EAAmB,KAAK,eAAe,OAAQ/5B,GAAMA,EAAE,SAAW,OAAO,EAC/E,GAAI,CAACT,GAAWw6B,EAAiB,SAAW,EAAG,OAE/C,MAAMC,EAAYD,EACf,IAAK/5B,GAAMsxB,GAA2BtxB,EAAE,KAAK,KAAMA,EAAE,mBAAqB,EAAE,CAAC,EAC7E,KAAK;AAAA;AAAA,CAAM,EACRy2B,EAAmCsD,EAAiB,IAAK/5B,IAAO,CAAE,KAAMA,EAAE,KAAK,KAAM,UAAWA,EAAE,KAAK,MAAO,EAEpH,KAAK,gBAAkB,GACvB,KAAK,eAAiB,CAAA,GACjBzE,EAAA,KAAK,aAAL,MAAAA,EAAiB,YAAYgE,EAAS,CACzC,UAAWy6B,GAAa,OACxB,YAAavD,EAAY,OAAS,EAAIA,EAAc,MAAA,EAExD,CAEQ,mBAA0B,QAChCl7B,EAAA,KAAK,WAAW,cAAgC,iCAAiC,IAAjF,MAAAA,EAAoF,OACtF,CAEQ,oBAAoBksB,EAAoB,CAC9C,MAAM5oB,EAAQ4oB,EAAM,OACdwS,EAAQ,MAAM,KAAKp7B,EAAM,OAAS,CAAA,CAAE,EAE1C,GADAA,EAAM,MAAQ,GACVo7B,EAAM,SAAW,EAAG,OAExB,MAAMn6B,EAAI,KAAK,qBACf,GAAI,CAACmxB,GAAkB,KAAK,eAAe,OAAQgJ,EAAM,MAAM,EAAE,GAAI,CACnE,KAAK,oBAAoBn6B,EAAE,iBAAiB,EAC5C,MACF,CAEA,UAAWixB,KAAQkJ,EAAO,CACxB,MAAMC,EAAapJ,GAAaC,CAAI,EACpC,GAAI,CAACmJ,EAAW,GAAI,CAClB,KAAK,oBAAoBA,EAAW,QAAU,YAAcp6B,EAAE,mBAAqBA,EAAE,yBAAyB,EAC9G,QACF,CACA,MAAMq6B,EAA2B,CAAE,GAAI9+B,KAAS,KAAA01B,EAAM,OAAQ,YAAA,EAC9D,KAAK,eAAiB,CAAC,GAAG,KAAK,eAAgBoJ,CAAM,EAChD,KAAK,kBAAkBA,EAAO,GAAIpJ,CAAI,CAC7C,CACF,CAEA,MAAc,kBAAkB3M,EAAY2M,EAA2B,CACrE,GAAI,CACF,MAAMS,EAAoB,MAAM4B,GAAwBrC,CAAI,EAC5D,KAAK,eAAiB,KAAK,eAAe,IAAK/wB,GAAOA,EAAE,KAAOokB,EAAK,CAAE,GAAGpkB,EAAG,OAAQ,QAAS,kBAAAwxB,CAAA,EAAsBxxB,CAAE,CACvH,OAASL,EAAG,CACV,QAAQ,KAAK,gCAAiCA,CAAC,EAC/C,MAAMy6B,EAAe,KAAK,qBAAqB,iBAC/C,KAAK,eAAiB,KAAK,eAAe,IAAKp6B,GAAOA,EAAE,KAAOokB,EAAK,CAAE,GAAGpkB,EAAG,OAAQ,QAAS,aAAAo6B,CAAA,EAAiBp6B,CAAE,CAClH,CACF,CAEQ,uBAAuBokB,EAAkB,CAC/C,KAAK,eAAiB,KAAK,eAAe,OAAQpkB,GAAMA,EAAE,KAAOokB,CAAE,CACrE,CAEQ,oBAAoB8F,EAAuB,CACjD,KAAK,wBAA0BA,EAC/B,aAAa,KAAK,wBAAwB,EAC1C,KAAK,yBAA2B,WAAW,IAAM,CAC/C,KAAK,wBAA0B,EACjC,EAAG,GAAI,CACT,CAEQ,gBAAuB,CAC7B,GAAI,KAAK,oBAAqB,CAC5B,KAAK,cAAA,EACL,MACF,CACA,KAAK,sBAAwB,GAC7B,KAAK,kBAAoB,KAAK,gBAAgB,KAAA,EACzC,KAAK,eAAA,CACZ,CAEQ,2BAAuD,CAC7D,OAAK,KAAK,sBACR,KAAK,oBAAsB,IAAI0F,GAA0B,CACvD,KAAMsJ,GAAkB,KAAK,IAAI,EACjC,aAAe55B,GAAS,CACtB,KAAK,gBAAkB,KAAK,kBAAoB,GAAG,KAAK,iBAAiB,IAAIA,CAAI,GAAKA,CACxF,EACA,QAAUD,GAAU,CACdA,IAAU,cACZ,KAAK,sBAAwB,IAE7B,KAAK,uBAAyB,GAC9B,aAAa,KAAK,uBAAuB,EACzC,KAAK,wBAA0B,WAAW,IAAM,CAC9C,KAAK,uBAAyB,EAChC,EAAG,GAAI,EAEX,CAAA,CACD,GAEI,KAAK,mBACd,CAEA,MAAc,gBAAgC,CAC5C,MAAMH,EAAa,KAAK,0BAAA,EACxB,MAAMA,EAAW,MAAA,EACjB,KAAK,oBAAsBA,EAAW,YAClC,KAAK,qBAAqB,KAAK,sBAAA,CACrC,CAEQ,eAAsB,QAC5B3D,EAAA,KAAK,sBAAL,MAAAA,EAA0B,OAC1B,KAAK,oBAAsB,GAC3B,cAAc,KAAK,eAAe,CACpC,CASQ,uBAA8B,CACpC,cAAc,KAAK,eAAe,EAClC,KAAK,gBAAkB,YAAY,IAAM,OACvC,MAAM8+B,IAAY9+B,EAAA,KAAK,sBAAL,YAAAA,EAA0B,cAAe,GACvD8+B,IAAc,KAAK,sBAAqB,KAAK,oBAAsBA,GAClEA,GAAW,cAAc,KAAK,eAAe,CACpD,EAAG,GAAG,CACR,CAIQ,sBAAsBlE,EAA0C,OACtE,MAAMr2B,EAAI,KAAK,qBACf,MAAO,CACL,GAAI,sBACJ,MAAO,KAAK,gBACZ,YAAa,KAAK,oBAAsBA,EAAE,UAAYq2B,EACtD,WAAU56B,EAAA,KAAK,aAAL,YAAAA,EAAiB,WAAY,GACvC,aAAco0B,GAAA,EACd,YAAa,KAAK,oBAClB,SAAU,KAAK,oBAAsB7vB,EAAE,cAAgBA,EAAE,eACzD,UAAWA,EAAE,YACb,YAAa,KAAK,eAAe,IAAKE,IAAO,CAC3C,GAAIA,EAAE,GACN,KAAMA,EAAE,KAAK,KACb,OAAQA,EAAE,OACV,aAAcA,EAAE,YAAA,EAChB,EACF,YAAaF,EAAE,WACf,sBAAuBA,EAAE,iBACzB,gBAAiBA,EAAE,qBACnB,OAAQ05B,GACR,QAAU/R,GAAU,KAAK,gBAAgBA,CAAK,EAC9C,UAAYA,GAAU,KAAK,kBAAkBA,CAAK,EAClD,WAAY,IAAM,KAAK,eAAA,EACvB,OAAQ,IAAM,KAAK,eAAA,EACnB,cAAe,IAAM,KAAK,kBAAA,EAC1B,gBAAkBA,GAAU,KAAK,oBAAoBA,CAAK,EAC1D,mBAAqBrD,GAAO,KAAK,uBAAuBA,CAAE,CAAA,CAE9D,CAEQ,qBAAkC,aACxC,MAAM,EAAI,KAAK,qBACTkW,IAAe/+B,EAAA,KAAK,aAAL,YAAAA,EAAiB,WAAY,CAAA,EAC5Cg/B,IAAcj/B,EAAA,KAAK,cAAL,YAAAA,EAAkB,SAAU,OAC1Ck/B,IAAkBjc,EAAA,KAAK,cAAL,YAAAA,EAAkB,aAAc,CAAA,EAClDmX,IAAUjN,EAAA,KAAK,cAAL,YAAAA,EAAkB,UAAW,GACvCgS,EAAkB,KAAK,iBAAmB,EAAE,gBAE5CC,EAA8C,CAClD,KAAM,EAAE,eACR,MAAO,EAAE,gBACT,OAAQ,EAAE,iBAAA,EAENC,EAA4C,CAChD,KAAM,EAAE,aACR,MAAO,EAAE,cACT,OAAQ,EAAE,eAAA,EAENhF,EAAkB,KAAK,iBAAmB+E,EAAgB,KAAK,UAAU,EACzE9E,EAAgB,KAAK,eAAiB+E,EAAc,KAAK,UAAU,EA6CzE,MA3CgD,CAC9C,KAAM,CACJ,MAAO,KAAK,OAAS,EAAE,eACvB,KAAMjH,GAAA,EACN,UAAW,GACX,aAAc,KAAK,kBAAoB,EAAE,iBACzC,SAAU4G,EACV,eAAgB,IAAM9C,GAAmB,KAAK,sBAAsBiD,CAAe,CAAC,CAAA,EAEtF,MAAO,CACL,MAAO,KAAK,OAAS,EAAE,eACvB,KAAM9G,GAAA,EACN,UAAW,GACX,aAAc,KAAK,mBAAqB,EAAE,kBAC1C,SAAU6G,EACV,eAAgB,IACd/E,GAAoB,CAClB,OAAQ8E,EACR,QAAA7E,EACA,gBAAAC,EACA,cAAAC,EACA,UAAWF,EAAU,EAAE,UAAY,EAAE,QACrC,gBAAiB,KAAK,oBACtB,aAAc,IAAA,OAAM,aAAKn6B,EAAA,KAAK,cAAL,YAAAA,EAAkB,eAC3C,aAAc,IAAA,OAAM,OAAAA,EAAA,KAAK,cAAL,YAAAA,EAAkB,aAAW,CAClD,CAAA,EAEL,OAAQ,CACN,MAAO,KAAK,OAAS,EAAE,YACvB,KAAMs4B,GAAA,EACN,UAAW,GACX,aAAc,KAAK,oBAAsB,EAAE,mBAC3C,SAAUj4B,GAAa2+B,CAAW,EAAIC,EAAkBF,EACxD,eAAgB,IACd5C,GAAqB,CACnB,UAAW,KAAK,sBAAsB+C,CAAe,EACrD,WAAYF,EACZ,gBAAiB3+B,GAAa2+B,CAAW,EAAI,EAAE,QAAU,EAAE,eAC3D,gBAAiB,KAAK,oBACtB,aAAc,IAAA,OAAM,aAAKh/B,EAAA,KAAK,cAAL,YAAAA,EAAkB,cAAW,CACvD,CAAA,CACL,EAEa,KAAK,UAAU,CAChC,CAEQ,iCAAiCiqB,EAAqD,OAC5F,GAAIA,EAAO,aAAajqB,EAAA,KAAK,cAAL,YAAAA,EAAkB,cAAe,GAAO,CAC9D,MAAMumB,EAAOiX,GAAyB,KAAK,IAAI,EAC/C,OAAOF,GAAyB/W,CAAI,CACtC,CACA,OAAO8Y,EACT,CAEQ,uBAAyD,CAC/D,MAAM,EAAI,KAAK,qBACf,GAAI,KAAK,sBAAuB,CAC9B,MAAM9Y,EAAOiX,GAAyB,KAAK,IAAI,EAC/C,OAAOF,GAAyB/W,CAAI,CACtC,CACA,OAAI,KAAK,uBACA8S,4CAA8C,EAAE,cAAc,SAEnE,KAAK,wBACAA,4CAA8C,KAAK,uBAAuB,SAE5EgG,EACT,CAIA,QAAyB,CACvB,MAAMpV,EAAS,KAAK,oBAAA,EACpB,YAAK,iBAAmBA,EAAO,SACxB,KAAK,YAAc,KAAK,eAAeA,CAAM,EAAI,KAAK,gBAAgBA,CAAM,CACrF,CAEQ,gBAAgBA,EAAoC,CAC1D,MAAM1lB,EAAI,KAAK,qBACT+6B,EAAO,KAAK,aAClB,OAAOjG;AAAAA,2CACgCkG,GAAS3K,GAAgB,KAAK,QAAQ,CAAC,CAAC;AAAA,UACzEkE,GAAuB,CACvB,MAAO7O,EAAO,MACd,KAAMA,EAAO,KACb,UAAW,KAAK,oBAChB,QAASqV,GAAA,YAAAA,EAAM,IACf,QAASA,GAAA,YAAAA,EAAM,IACf,YAAa,KAAK,gBAClB,QAAS,IAAM,KAAK,oBAAA,CAAoB,CACzC,CAAC;AAAA;AAAA,QAEF,KAAK,gBAAkBjG,4CAA8C90B,EAAE,sBAAsB,SAAW86B,EAAO;AAAA,QAC/G,KAAK,iCAAiCpV,CAAM,CAAC;AAAA,KAEnD,CAEQ,eAAeA,EAAoC,WACzD,MAAM1lB,EAAI,KAAK,qBACTy6B,IAAch/B,EAAA,KAAK,cAAL,YAAAA,EAAkB,SAAU,OAC1Cw/B,EAAavV,EAAO,WAAa5pB,GAAa2+B,CAAW,EACzDS,EAAUD,GAAc,CAAC,KAAK,oBAC9BE,EAAkBzV,EAAO,SAAS,OAAS,EAC3CkT,EAAeqC,EAAaj7B,EAAE,UAAY0lB,EAAO,aACjDuP,EAAagG,EAAcR,IAAgB,aAAez6B,EAAE,WAAaA,EAAE,WAAc,OACzFw1B,EAAQ,KAAK,MAAIh6B,EAAA,KAAK,cAAL,YAAAA,EAAkB,YAAa,IAAGijB,EAAA,KAAK,cAAL,YAAAA,EAAkB,iBAAkB,CAAC,EACxFsc,EAAO,KAAK,aAElB,OAAOjG;AAAAA,2CACgCkG,GAAS3K,GAAgB,KAAK,QAAQ,CAAC,CAAC;AAAA;AAAA,8BAErD,KAAK,IAAI;AAAA;AAAA,wBAEf3K,EAAO,KAAK;AAAA;AAAA,sBAEbiC,GAAyB,KAAK,mBAAmBA,CAAK,CAAC;AAAA;AAAA,YAElEoN,GAAkB,CAClB,MAAOrP,EAAO,MACd,WAAAuP,EACA,gBAAiBkG,EACjB,WAAYn7B,EAAE,kBACd,cAAeA,EAAE,SACjB,QAAS+6B,GAAA,YAAAA,EAAM,IACf,QAASA,GAAA,YAAAA,EAAM,IACf,YAAa,KAAK,gBAClB,QAAS,IAAM,KAAK,YAAA,EACpB,QAAS,IAAM,KAAK,YAAA,CAAY,CACjC,CAAC;AAAA,mCACuBG,EAAU,SAAW,QAAQ;AAAA,cAClDA,EACE3F,GAAqB,CAAE,OAAQkF,EAAa,MAAAjF,EAAO,UAAW,KAAK,mBAAA,CAAqB,EACxFkD,GAAuB,CAAE,SAAUhT,EAAO,SAAU,aAAAkT,EAAc,SAAU54B,EAAE,gBAAiB,CAAC;AAAA;AAAA,YAEpG0lB,EAAO,gBAAgB;AAAA;AAAA;AAAA,QAG3B,KAAK,iCAAiCA,CAAM,CAAC,IAAI,KAAK,uBAAuB;AAAA,KAEnF,CACF,EAplBakU,GAAAA,eACJ,OAASrG,GADLqG,GAAAA,eAaK,kBAAoC,CAAE,GAAGC,GAAW,kBAAmB,eAAgB,EAAA,EAG9DuB,GAAA,CAAxCjY,GAAS,CAAE,UAAW,cAAA,CAAgB,CAAA,EAhB5ByW,kBAgB8B,UAAA,cAAA,CAAA,EACFwB,GAAA,CAAtCjY,GAAS,CAAE,UAAW,YAAA,CAAc,CAAA,EAjB1ByW,kBAiB4B,UAAA,YAAA,CAAA,EACiBwB,GAAA,CAAvDjY,GAAS,CAAE,KAAM,QAAS,UAAW,eAAgB,CAAA,EAlB3CyW,kBAkB6C,UAAA,cAAA,CAAA,EAChBwB,GAAA,CAAvCjY,GAAS,CAAE,UAAW,aAAA,CAAe,CAAA,EAnB3ByW,kBAmB6B,UAAA,aAAA,CAAA,EACawB,GAAA,CAApDjY,GAAS,CAAE,KAAM,QAAS,UAAW,YAAa,CAAA,EApBxCyW,kBAoB0C,UAAA,WAAA,CAAA,EAErDwB,GAAA,CADCjY,GAAS,CAAE,UAAW,wBAAyB,UAAWwW,GAA+B,CAAA,EArB/EC,kBAsBX,UAAA,sBAAA,CAAA,EACYwB,GAAA,CAAXjY,GAAA,CAAS,EAvBCyW,kBAuBC,UAAA,WAAA,CAAA,EACAwB,GAAA,CAAXjY,GAAA,CAAS,EAxBCyW,kBAwBC,UAAA,OAAA,CAAA,EAC6BwB,GAAA,CAAxCjY,GAAS,CAAE,UAAW,cAAA,CAAgB,CAAA,EAzB5ByW,kBAyB8B,UAAA,cAAA,CAAA,EACCwB,GAAA,CAAzCjY,GAAS,CAAE,UAAW,eAAA,CAAiB,CAAA,EA1B7ByW,kBA0B+B,UAAA,cAAA,CAAA,EAILwB,GAAA,CAApCjY,GAAS,CAAE,UAAW,UAAA,CAAY,CAAA,EA9BxByW,kBA8B0B,UAAA,UAAA,CAAA,EAGAwB,GAAA,CAApCjY,GAAS,CAAE,UAAW,UAAA,CAAY,CAAA,EAjCxByW,kBAiC0B,UAAA,UAAA,CAAA,EAGzBwB,GAAA,CAAXjY,GAAA,CAAS,EApCCyW,kBAoCC,UAAA,QAAA,CAAA,EACkCwB,GAAA,CAA7CjY,GAAS,CAAE,UAAW,mBAAA,CAAqB,CAAA,EArCjCyW,kBAqCmC,UAAA,kBAAA,CAAA,EACFwB,GAAA,CAA3CjY,GAAS,CAAE,UAAW,iBAAA,CAAmB,CAAA,EAtC/ByW,kBAsCiC,UAAA,gBAAA,CAAA,EACCwB,GAAA,CAA5CjY,GAAS,CAAE,UAAW,kBAAA,CAAoB,CAAA,EAvChCyW,kBAuCkC,UAAA,kBAAA,CAAA,EACGwB,GAAA,CAA/CjY,GAAS,CAAE,UAAW,qBAAA,CAAuB,CAAA,EAxCnCyW,kBAwCqC,UAAA,oBAAA,CAAA,EACDwB,GAAA,CAA9CjY,GAAS,CAAE,UAAW,oBAAA,CAAsB,CAAA,EAzClCyW,kBAyCoC,UAAA,mBAAA,CAAA,EACEwB,GAAA,CAAhDjY,GAAS,CAAE,UAAW,sBAAA,CAAwB,CAAA,EA1CpCyW,kBA0CsC,UAAA,qBAAA,CAAA,EAEpBwB,GAAA,CAA5BjY,GAAS,CAAE,QAAS,EAAA,CAAM,CAAA,EA5ChByW,kBA4CkB,UAAA,OAAA,CAAA,EAGGwB,GAAA,CAA/BjY,GAAS,CAAE,UAAW,EAAA,CAAO,CAAA,EA/CnByW,kBA+CqB,UAAA,eAAA,CAAA,EAGfwB,GAAA,CAAhBna,GAAA,CAAM,EAlDI2Y,kBAkDM,UAAA,cAAA,CAAA,EACAwB,GAAA,CAAhBna,GAAA,CAAM,EAnDI2Y,kBAmDM,UAAA,kBAAA,CAAA,EACAwB,GAAA,CAAhBna,GAAA,CAAM,EApDI2Y,kBAoDM,UAAA,sBAAA,CAAA,EACAwB,GAAA,CAAhBna,GAAA,CAAM,EArDI2Y,kBAqDM,UAAA,wBAAA,CAAA,EACAwB,GAAA,CAAhBna,GAAA,CAAM,EAtDI2Y,kBAsDM,UAAA,yBAAA,CAAA,EACAwB,GAAA,CAAhBna,GAAA,CAAM,EAvDI2Y,kBAuDM,UAAA,kBAAA,CAAA,EACAwB,GAAA,CAAhBna,GAAA,CAAM,EAxDI2Y,kBAwDM,UAAA,iBAAA,CAAA,EACAwB,GAAA,CAAhBna,GAAA,CAAM,EAzDI2Y,kBAyDM,UAAA,0BAAA,CAAA,EAIAwB,GAAA,CAAhBna,GAAA,CAAM,EA7DI2Y,kBA6DM,UAAA,kBAAA,CAAA,EA7DNA,GAAAA,eAANwB,GAAA,CADNC,GAAc,iBAAiB,CAAA,EACnBzB,iBAAA,ECtDb,MAAM0B,GAAW,OAAO,SAAY,UAAY,QAAU,IAAO,oBAAsB,CAAC,QAAQ,SAAS,IAAM,EAAE,QAAQ,SAAS,UAAY,QAAQ,MAAQ,QAAQ,OAAS,WACzKC,GAAY,CAAC,IAAU,IAAU,KAAW,IAAS,EACrDC,GAAgB,IAAI,aAAaD,EAAS,EAC1CE,GAAuB,CAAC,KAAO,EAAG,EAAG,KAAO,EAAG,CAAC,EAIhDC,GAAS,6BACTC,GAAsB,CAC1B,IAAK,EACL,QAAS,EACT,MAAO,EAEP,kBAAmB,GACnB,oBAAqB,GACrB,oBAAqB,GACrB,WAAY,IACZ,OAAQ,GACV,EACMC,GAAiB,CACrB,QAAS,EACT,OAAQ,EACR,aAAc,EACd,eAAgB,CAClB,EACMC,GAAmB,qBACnBC,GAAyB,yBACzBC,GAAuB,CAC3B,QAAS,GACT,KAAM,EACN,SAAU,EACV,UAAW,EACX,MAAO,GACP,IAAK,GACL,MAAO,GACP,UAAW,IACX,QAAS,GACX,EACMC,GAA6B,CACjC,OAAQ,EACR,OAAQ,EACR,cAAe,GACf,eAAgB,GAChB,iBAAkB,GAClB,UAAW,GACX,cAAe,GACf,YAAa,GACb,sBAAuB,GACvB,gBAAiB,GACjB,oBAAqB,GACrB,eAAgB,GAChB,mBAAoB,GACpB,UAAW,EACb,EACMC,GAAiB,CACrB,MAAO,EACP,gBAAiB,EACjB,KAAM,GACN,mBAAoB,GACpB,uBAAwB,IACxB,uBAAwB,IACxB,SAAU,KACV,mBAAoB,IACtB,EAMMC,GAAoB,CACxB,KAAM,EACN,OAAQ,EACR,YAAa,EACb,UAAW,EAKX,iBAAkB,EAClB,iBAAkB,CACpB,EACMC,GAAY,CAChB,eAAgB,EAChB,UAAW,EACX,WAAY,CACd,EACMC,GAAiB,CACrB,KAAM,EACN,KAAM,EACN,SAAU,EACV,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,QAAS,EACT,SAAU,EACV,UAAW,EACX,UAAW,GACX,SAAU,GACV,UAAW,GACX,MAAO,GACP,MAAO,GACP,IAAK,GACL,MAAO,GACP,eAAgB,GAChB,MAAO,GACP,MAAO,GACP,OAAQ,GACR,OAAQ,GACR,YAAa,GACb,QAAS,GACT,UAAW,GACX,OAAQ,GACR,OAAQ,GACR,UAAW,EACb,EA6CMC,GAA4B,CAChC,MAAO,EACP,OAAQ,EACR,QAAS,EACT,MAAO,EACP,UAAW,CACb,EA4BMC,GAAiB,CACrB,OAAQ,EACR,SAAU,EACV,MAAO,CACT,EACMC,GAAM,CACV,WAAY,EACZ,aAAc,EACd,WAAY,EACZ,YAAa,EACb,cAAe,EACf,QAAS,EACT,mBAAoB,EACpB,YAAa,EACb,UAAW,EACX,KAAM,GACN,QAAS,GACT,UAAW,GACX,OAAQ,GACR,OAAQ,GACR,QAAS,GACT,SAAU,GACV,SAAU,GACV,UAAW,GACX,UAAW,GACX,OAAQ,GACR,YAAa,GACb,KAAM,GACN,OAAQ,GACR,WAAY,GACZ,aAAc,GACd,gBAAiB,GACjB,kBAAmB,GACnB,QAAS,GACT,KAAM,GACN,OAAQ,GACR,UAAW,GACX,QAAS,GACT,eAAgB,GAChB,eAAgB,GAChB,UAAW,GACX,WAAY,GACZ,QAAS,GACT,qBAAsB,GACtB,YAAa,GACb,SAAU,GACV,mBAAoB,GACpB,cAAe,GACf,SAAU,GACV,SAAU,GACV,eAAgB,GAChB,iBAAkB,GAClB,2BAA4B,GAC5B,aAAc,GACd,sBAAuB,GACvB,oBAAqB,GACrB,kBAAmB,GACnB,eAAgB,GAChB,gBAAiB,GACjB,aAAc,GACd,cAAe,GACf,cAAe,GACf,YAAa,GACb,kBAAmB,GACnB,gBAAiB,GACjB,mBAAoB,GACpB,iBAAkB,GAClB,YAAa,GACb,iBAAkB,GAClB,eAAgB,GAChB,eAAgB,GAChB,aAAc,GACd,UAAW,GACX,eAAgB,GAChB,mBAAoB,GACpB,wBAAyB,GACzB,iBAAkB,GAClB,YAAa,GACb,UAAW,GACX,sBAAuB,GACvB,oBAAqB,GACrB,WAAY,GACZ,SAAU,GACV,gBAAiB,GACjB,cAAe,GACf,sBAAuB,GACvB,2BAA4B,GAC5B,kBAAmB,GACnB,wBAAyB,GACzB,6BAA8B,GAC9B,wBAAyB,GACzB,4BAA6B,GAC7B,yBAA0B,GAC1B,cAAe,GACf,qBAAsB,GACtB,mBAAoB,GACpB,YAAa,EACf,EACMC,GAAU,CACd,OAAQ,EACR,OAAQ,EACR,QAAS,EACT,iBAAkB,EAClB,UAAW,CACb,EACMC,GAAoB,CACxB,cAAe,EACf,mBAAoB,CACtB,EACA,IAAIC,GAAYJ,GAAe,SAC/B,SAASK,GAAkBnH,EAAO,CAC5B,OAAO,UAAUA,CAAK,IACxBkH,GAAYlH,EAEhB,CACA,SAASoH,IAAoB,CAC3B,OAAOF,EACT,CACA,SAASG,GAAKC,EAAK,CACbJ,IAAaJ,GAAe,OAC9B,QAAQ,KAAK,SAASQ,CAAG,EAAE,CAE/B,CACA,SAASC,GAAKD,EAAK,CACbJ,IAAaJ,GAAe,UAC9B,QAAQ,KAAK,YAAYQ,CAAG,EAAE,CAElC,CACA,SAASE,GAAYF,EAAK,CACxB,MAAM,IAAI,MAAMA,CAAG,CACrB,CACA,SAASG,GAAOC,EAAMJ,EAAK,CACpBI,GACHF,GAAYF,CAAG,CAEnB,CACA,SAASK,GAAiB1/B,EAAK,CAC7B,OAAQA,GAAA,YAAAA,EAAK,SAAQ,CACnB,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,OACH,MAAO,GACT,QACE,MAAO,EACb,CACA,CACA,SAAS2/B,GAAuB3/B,EAAKimB,EAAU,KAAM5kB,EAAU,KAAM,CACnE,GAAI,CAACrB,EACH,OAAO,KAET,GAAIqB,GAAW,OAAOrB,GAAQ,SAAU,CACtC,GAAIqB,EAAQ,oBAAsBrB,EAAI,WAAW,MAAM,EAAG,CACxD,MAAM4/B,EAAO5/B,EAAI,MAAM,KAAK,GACxB4/B,GAAA,YAAAA,EAAM,SAAU,IAClB5/B,EAAM,UAAUA,CAAG,GAEvB,CACA,GAAIqB,EAAQ,mBACV,GAAI,CACFrB,EAAM6/B,GAAmB7/B,CAAG,CAC9B,MAAQ,CAAC,CAEb,CACA,MAAM8/B,EAAc7Z,EAAU,IAAI,MAAMjmB,EAAKimB,CAAO,EAAI,IAAI,MAAMjmB,CAAG,EACrE,OAAO0/B,GAAiBI,CAAW,EAAIA,EAAc,IACvD,CACA,SAASC,GAAc//B,EAAKggC,EAAMC,EAAW,GAAO,CAClD,MAAMC,EAAM,IAAI,MAAMlgC,CAAG,EACzB,OAAIkgC,GACFA,EAAI,KAAOF,EACJE,EAAI,MAETD,GAAYN,GAAuB3/B,EAAK,oBAAoB,EACvDA,EAAI,MAAM,IAAK,CAAC,EAAE,CAAC,EAAI,GAAGggC,EAAO,IAAIA,CAAI,GAAK,EAAE,GAElD,EACT,CACA,SAASG,GAAUC,EAAK,CACtB,OAAOA,EAAI,UAAUA,EAAI,YAAY,GAAG,EAAI,CAAC,CAC/C,CACA,SAASC,GAAOC,EAAKC,EAAM5/B,EAAO6/B,EAAkB,GAAO,CACzD,cAAO,eAAeF,EAAKC,EAAM,CAC/B,MAAA5/B,EACA,WAAY,CAAC6/B,EACb,aAAc,GACd,SAAU,EACd,CAAG,EACM7/B,CACT,CACA,MAAM8/B,IAAgB,UAAgC,CACpD,SAASA,EAAc9T,EAASjI,EAAM,CACpC,KAAK,QAAUiI,EACf,KAAK,KAAOjI,CACd,CACA,OAAA+b,EAAc,UAAY,IAAI,MAC9BA,EAAc,YAAcA,EACrBA,CACT,GAAC,EACD,MAAMC,WAA0BD,EAAc,CAC5C,YAAYpB,EAAKsB,EAAM,CACrB,MAAMtB,EAAK,mBAAmB,EAC9B,KAAK,KAAOsB,CACd,CACF,CACA,MAAMC,WAA8BH,EAAc,CAChD,YAAYpB,EAAKwB,EAAS,CACxB,MAAMxB,EAAK,uBAAuB,EAClC,KAAK,QAAUwB,CACjB,CACF,CACA,MAAMC,WAA4BL,EAAc,CAC9C,YAAYpB,EAAK,CACf,MAAMA,EAAK,qBAAqB,CAClC,CACF,CACA,MAAM0B,WAA0BN,EAAc,CAC5C,YAAYpB,EAAK/gC,EAAQ0iC,EAAS,CAChC,MAAM3B,EAAK,mBAAmB,EAC9B,KAAK,OAAS/gC,EACd,KAAK,QAAU0iC,CACjB,CACF,CACA,MAAMC,WAAoBR,EAAc,CACtC,YAAYpB,EAAK,CACf,MAAMA,EAAK,aAAa,CAC1B,CACF,CACA,MAAM6B,WAAuBT,EAAc,CACzC,YAAYpB,EAAK,CACf,MAAMA,EAAK,gBAAgB,CAC7B,CACF,CACA,SAAS8B,GAAcC,EAAO,EACxB,OAAOA,GAAU,WAAYA,GAAA,YAAAA,EAAO,UAAW,SACjD7B,GAAY,oCAAoC,EAElD,MAAM8B,EAASD,EAAM,OACfE,EAAqB,KAC3B,GAAID,EAASC,EACX,OAAO,OAAO,aAAa,MAAM,KAAMF,CAAK,EAE9C,MAAMG,EAAS,CAAA,EACf,QAASj/B,EAAI,EAAGA,EAAI++B,EAAQ/+B,GAAKg/B,EAAoB,CACnD,MAAME,EAAW,KAAK,IAAIl/B,EAAIg/B,EAAoBD,CAAM,EAClDvhC,EAAQshC,EAAM,SAAS9+B,EAAGk/B,CAAQ,EACxCD,EAAO,KAAK,OAAO,aAAa,MAAM,KAAMzhC,CAAK,CAAC,CACpD,CACA,OAAOyhC,EAAO,KAAK,EAAE,CACvB,CACA,SAASE,GAAcrB,EAAK,CACtB,OAAOA,GAAQ,UACjBb,GAAY,oCAAoC,EAElD,MAAM8B,EAASjB,EAAI,OACbgB,EAAQ,IAAI,WAAWC,CAAM,EACnC,QAAS,EAAI,EAAG,EAAIA,EAAQ,EAAE,EAC5BD,EAAM,CAAC,EAAIhB,EAAI,WAAW,CAAC,EAAI,IAEjC,OAAOgB,CACT,CACA,MAAMM,EAAY,CAChB,WAAW,gBAAiB,CAC1B,MAAMC,EAAU,IAAI,WAAW,CAAC,EAChCA,EAAQ,CAAC,EAAI,EACb,MAAMC,EAAS,IAAI,YAAYD,EAAQ,OAAQ,EAAG,CAAC,EACnD,OAAOtB,GAAO,KAAM,iBAAkBuB,EAAO,CAAC,IAAM,CAAC,CACvD,CACA,WAAW,4BAA6B,CACtC,OAAOvB,GAAO,KAAM,6BAA8B,OAAO,gBAAoB,GAAW,CAC1F,CACA,WAAW,yBAA0B,CACnC,OAAOA,GAAO,KAAM,0BAA2B,OAAO,aAAiB,GAAW,CACpF,CACA,WAAW,yBAA0B,CACnC,OAAOA,GAAO,KAAM,0BAA2B,OAAO,aAAiB,GAAW,CACpF,CACA,WAAW,sBAAuB,CAChC,OAAOA,GAAO,KAAM,uBAAwB,OAAO,UAAc,GAAW,CAC9E,CACA,WAAW,UAAW,CACpB,KAAM,CACJ,SAAAwB,EACA,UAAArX,CACN,EAAQ,UACJ,OAAO6V,GAAO,KAAM,WAAY,CAC9B,UAAW7V,EAAU,SAAS,SAAS,EACvC,QAASqX,EAAS,SAAS,OAAO,EAClC,MAAOA,EAAS,SAAS,KAAK,EAC9B,UAAWA,EAAS,SAAS,KAAK,EAClC,UAAWrX,EAAU,SAAS,SAAS,CAC7C,CAAK,CACH,CACA,WAAW,yBAA0B,CACnC,IAAIsE,EACJ,OAAI,KAAK,2BACPA,EAAM,IAAI,gBAAgB,EAAG,CAAC,EAAE,WAAW,IAAI,EACtC,OAAO,SAAa,MAC7BA,EAAM,SAAS,cAAc,QAAQ,EAAE,WAAW,IAAI,GAEjDuR,GAAO,KAAM,2BAA2BvR,GAAA,YAAAA,EAAK,UAAW,MAAS,CAC1E,CACA,WAAW,4BAA6B,CACtC,GAAI,OAAO,SAAa,IACtB,OAAOuR,GAAO,KAAM,6BAA8B,EAAK,EAEzD,MAAM/+B,EAAQ,SAAS,cAAc,OAAO,EAC5C,OAAAA,EAAM,KAAO,QACbA,EAAM,aAAa,QAAS,EAAE,EAC9BA,EAAM,MAAQ,YACP++B,GAAO,KAAM,6BAA8B/+B,EAAM,QAAU,SAAS,CAC7E,CACA,WAAW,2BAA4B,CACrC,OAAO++B,GAAO,KAAM,4BAA6B,OAAO,IAAQ,KAAe,IAAI,SAAS,kBAAmB,WAAW,CAAC,CAC7H,CACF,CACA,MAAMyB,EAAK,CACT,WAAW,SAAU,CACnB,OAAOzB,GAAO,KAAM,UAAW,MAAM,KAAK,MAAM,GAAG,EAAE,KAAI,EAAIh+B,GAAKA,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,CAAC,CACpG,CACA,OAAO,aAAajE,EAAG6E,EAAGE,EAAG,CAC3B,MAAO,IAAI,KAAK,QAAQ/E,CAAC,CAAC,GAAG,KAAK,QAAQ6E,CAAC,CAAC,GAAG,KAAK,QAAQE,CAAC,CAAC,EAChE,CACA,OAAO,UAAU4+B,EAAIC,EAAI,CACvB,MAAO,CAACD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAGD,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAGA,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,EAAIC,EAAG,CAAC,EAAID,EAAG,CAAC,CAAC,CAClN,CACA,OAAO,oBAAoBriC,EAAGuiC,EAAI,CAChC,MAAO,CAACviC,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,EAAIuiC,EAAG,EAAGviC,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,EAAIuiC,EAAG,EAAGviC,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,EAAIuiC,EAAG,EAAGviC,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,EAAIuiC,EAAG,EAAGviC,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,EAAIuiC,EAAG,EAAIviC,EAAE,CAAC,CAAC,CACxL,CACA,OAAO,eAAemD,EAAGnD,EAAGwiC,EAAM,EAAG,CACnC,MAAMC,EAAKt/B,EAAEq/B,CAAG,EACVE,EAAKv/B,EAAEq/B,EAAM,CAAC,EACpBr/B,EAAEq/B,CAAG,EAAIC,EAAKziC,EAAE,CAAC,EAAI0iC,EAAK1iC,EAAE,CAAC,EAAIA,EAAE,CAAC,EACpCmD,EAAEq/B,EAAM,CAAC,EAAIC,EAAKziC,EAAE,CAAC,EAAI0iC,EAAK1iC,EAAE,CAAC,EAAIA,EAAE,CAAC,CAC1C,CACA,OAAO,uBAAuBmD,EAAGw/B,EAAWH,EAAM,EAAG,CACnD,MAAMI,EAAKD,EAAU,CAAC,EAChBN,EAAKM,EAAU,CAAC,EAChBL,EAAKK,EAAU,CAAC,EAChBE,EAAKF,EAAU,CAAC,EAChBG,EAAKH,EAAU,CAAC,EAChBI,EAAKJ,EAAU,CAAC,EACtB,QAAS//B,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7B,MAAMogC,EAAK7/B,EAAEq/B,EAAM5/B,CAAC,EACdqgC,EAAM9/B,EAAEq/B,EAAM5/B,EAAI,CAAC,EACzBO,EAAEq/B,EAAM5/B,CAAC,EAAIogC,EAAKJ,EAAKK,EAAMX,EAAKQ,EAClC3/B,EAAEq/B,EAAM5/B,EAAI,CAAC,EAAIogC,EAAKX,EAAKY,EAAMJ,EAAKE,CACxC,CACF,CACA,OAAO,sBAAsB5/B,EAAGnD,EAAG,CACjC,MAAMyiC,EAAKt/B,EAAE,CAAC,EACRu/B,EAAKv/B,EAAE,CAAC,EACRD,EAAIlD,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAClCmD,EAAE,CAAC,GAAKs/B,EAAKziC,EAAE,CAAC,EAAI0iC,EAAK1iC,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKkD,EAC7DC,EAAE,CAAC,GAAK,CAACs/B,EAAKziC,EAAE,CAAC,EAAI0iC,EAAK1iC,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKkD,CAChE,CACA,OAAO,wBAAwBggC,EAAMP,EAAWQ,EAAQ,CACtD,MAAMP,EAAKD,EAAU,CAAC,EAChBN,EAAKM,EAAU,CAAC,EAChBL,EAAKK,EAAU,CAAC,EAChBE,EAAKF,EAAU,CAAC,EAChBG,EAAKH,EAAU,CAAC,EAChBI,EAAKJ,EAAU,CAAC,EAChBS,EAAKF,EAAK,CAAC,EACXG,EAAKH,EAAK,CAAC,EACXI,EAAKJ,EAAK,CAAC,EACXK,EAAKL,EAAK,CAAC,EACjB,IAAIM,EAAKZ,EAAKQ,EAAKN,EACfW,EAAKD,EACLE,EAAKd,EAAKU,EAAKR,EACfa,EAAKD,EACLE,EAAKf,EAAKQ,EAAKN,EACfc,EAAKD,EACLE,EAAKjB,EAAKU,EAAKR,EACfgB,EAAKD,EACT,GAAIzB,IAAO,GAAKC,IAAO,EAAG,CACxB,MAAM0B,EAAO3B,EAAKe,EACZa,EAAO5B,EAAKiB,EACZY,EAAO5B,EAAKe,EACZc,EAAO7B,EAAKiB,EAClBC,GAAMU,EACNP,GAAMO,EACNR,GAAMS,EACNV,GAAMU,EACNP,GAAMI,EACND,GAAMC,EACNF,GAAMG,EACNJ,GAAMI,CACR,CACAd,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGK,EAAIE,EAAID,EAAIE,CAAE,EAC9CR,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGS,EAAIE,EAAID,EAAIE,CAAE,EAC9CZ,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGK,EAAIE,EAAID,EAAIE,CAAE,EAC9CR,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGS,EAAIE,EAAID,EAAIE,CAAE,CAChD,CACA,OAAO,iBAAiB/jC,EAAG,CACzB,MAAMkD,EAAIlD,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAClC,MAAO,CAACA,EAAE,CAAC,EAAIkD,EAAG,CAAClD,EAAE,CAAC,EAAIkD,EAAG,CAAClD,EAAE,CAAC,EAAIkD,EAAGlD,EAAE,CAAC,EAAIkD,GAAIlD,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKkD,GAAIlD,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAKkD,CAAC,CACpH,CACA,OAAO,8BAA8BkhC,EAAQjB,EAAQ,CACnD,MAAMP,EAAKwB,EAAO,CAAC,EACb/B,EAAK+B,EAAO,CAAC,EACb9B,EAAK8B,EAAO,CAAC,EACbvB,EAAKuB,EAAO,CAAC,EACb,EAAIxB,GAAM,EAAIP,GAAM,EACpB5+B,EAAIm/B,EAAKN,EAAKD,EAAKQ,EACnB7/B,EAAIs/B,GAAM,EAAIO,GAAM,EACpBwB,GAAS,EAAIrhC,GAAK,EAClBshC,EAAS,KAAK,KAAKD,GAAS,GAAK,EAAIrhC,EAAIS,GAAK,EAAE,EACtD0/B,EAAO,CAAC,EAAI,KAAK,KAAKkB,EAAQC,GAAU,CAAC,EACzCnB,EAAO,CAAC,EAAI,KAAK,KAAKkB,EAAQC,GAAU,CAAC,CAC3C,CACA,OAAO,cAAcpB,EAAM,CACzB,MAAMxkC,EAAIwkC,EAAK,MAAM,CAAC,EACtB,OAAIA,EAAK,CAAC,EAAIA,EAAK,CAAC,IAClBxkC,EAAE,CAAC,EAAIwkC,EAAK,CAAC,EACbxkC,EAAE,CAAC,EAAIwkC,EAAK,CAAC,GAEXA,EAAK,CAAC,EAAIA,EAAK,CAAC,IAClBxkC,EAAE,CAAC,EAAIwkC,EAAK,CAAC,EACbxkC,EAAE,CAAC,EAAIwkC,EAAK,CAAC,GAERxkC,CACT,CACA,OAAO,UAAU6lC,EAAOC,EAAO,CAC7B,MAAMC,EAAO,KAAK,IAAI,KAAK,IAAIF,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EAC1EE,EAAQ,KAAK,IAAI,KAAK,IAAIH,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EACjF,GAAIC,EAAOC,EACT,OAAO,KAET,MAAMC,EAAO,KAAK,IAAI,KAAK,IAAIJ,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EAC1EI,EAAQ,KAAK,IAAI,KAAK,IAAIL,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAAG,KAAK,IAAIC,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,EACjF,OAAIG,EAAOC,EACF,KAEF,CAACH,EAAME,EAAMD,EAAOE,CAAK,CAClC,CACA,OAAO,iBAAiBrgC,EAAGf,EAAGqhC,EAAQ,CACpCA,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGtgC,CAAC,EACjCsgC,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGrhC,CAAC,EACjCqhC,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGtgC,CAAC,EACjCsgC,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGrhC,CAAC,CACnC,CACA,OAAO,gBAAgBshC,EAAIC,EAAIC,EAAIC,EAAIJ,EAAQ,CAC7CA,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGC,EAAIE,CAAE,EACtCH,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGE,EAAIE,CAAE,EACtCJ,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGC,EAAIE,CAAE,EACtCH,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGE,EAAIE,CAAE,CACxC,CA+BA,OAAO,kBAAkBH,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIR,EAAQ,CAC/DA,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGC,EAAIM,CAAE,EACtCP,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGE,EAAIM,CAAE,EACtCR,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGC,EAAIM,CAAE,EACtCP,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGE,EAAIM,CAAE,EACtCC,EAAA,KAAKC,GAAAC,IAAL,UAAkBV,EAAIE,EAAIE,EAAIE,EAAIL,EAAIE,EAAIE,EAAIE,EAAI,GAAK,CAACP,EAAK,GAAKE,EAAKE,GAAME,GAAK,GAAKN,EAAK,EAAIE,EAAKE,GAAK,GAAKF,EAAKF,GAAKD,GACzHS,EAAA,KAAKC,GAAAC,IAAL,UAAkBV,EAAIE,EAAIE,EAAIE,EAAIL,EAAIE,EAAIE,EAAIE,EAAI,GAAK,CAACN,EAAK,GAAKE,EAAKE,GAAME,GAAK,GAAKN,EAAK,EAAIE,EAAKE,GAAK,GAAKF,EAAKF,GAAKF,EAC3H,CACF,CA1KAU,GAAA,YAoISE,GAAmB,SAACX,EAAIE,EAAIE,EAAIE,EAAIL,EAAIE,EAAIE,EAAIE,EAAIxiC,EAAGgiC,EAAQ,CACpE,GAAIhiC,GAAK,GAAKA,GAAK,EACjB,OAEF,MAAMuH,EAAK,EAAIvH,EACTuG,EAAKvG,EAAIA,EACT6iC,EAAMt8B,EAAKvG,EACX0B,EAAI6F,GAAMA,GAAMA,EAAK06B,EAAK,EAAIjiC,EAAImiC,GAAM,EAAI57B,EAAK87B,GAAMQ,EAAMN,EAC7D5hC,EAAI4G,GAAMA,GAAMA,EAAK26B,EAAK,EAAIliC,EAAIoiC,GAAM,EAAI77B,EAAK+7B,GAAMO,EAAML,EACnER,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGtgC,CAAC,EACjCsgC,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGrhC,CAAC,EACjCqhC,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGtgC,CAAC,EACjCsgC,EAAO,CAAC,EAAI,KAAK,IAAIA,EAAO,CAAC,EAAGrhC,CAAC,CACnC,EACOgiC,GAAY,SAACV,EAAIE,EAAIE,EAAIE,EAAIL,EAAIE,EAAIE,EAAIE,EAAItiC,EAAGU,EAAGT,EAAG6hC,EAAQ,CACnE,GAAI,KAAK,IAAI9hC,CAAC,EAAI,MAAO,CACnB,KAAK,IAAIU,CAAC,GAAK,OACjB6hC,EAAA,KAAKC,GAAAE,IAAL,UAAyBX,EAAIE,EAAIE,EAAIE,EAAIL,EAAIE,EAAIE,EAAIE,EAAI,CAACriC,EAAIS,EAAGohC,GAEnE,MACF,CACA,MAAMc,EAAQliC,GAAK,EAAI,EAAIT,EAAID,EAC/B,GAAI4iC,EAAQ,EACV,OAEF,MAAMC,EAAY,KAAK,KAAKD,CAAK,EAC3BlC,EAAK,EAAI1gC,EACfuiC,EAAA,KAAKC,GAAAE,IAAL,UAAyBX,EAAIE,EAAIE,EAAIE,EAAIL,EAAIE,EAAIE,EAAIE,GAAK,CAAC5hC,EAAImiC,GAAanC,EAAIoB,GAChFS,EAAA,KAAKC,GAAAE,IAAL,UAAyBX,EAAIE,EAAIE,EAAIE,EAAIL,EAAIE,EAAIE,EAAIE,GAAK,CAAC5hC,EAAImiC,GAAanC,EAAIoB,EAClF,EAjKFgB,EAAMzD,GAANmD,IA2KA,SAASpF,GAAmBO,EAAK,CAC/B,OAAO,mBAAmB,OAAOA,CAAG,CAAC,CACvC,CAeA,IAAIoF,GAAiB,KACjBC,GAAmB,KACvB,SAASC,GAAiBtF,EAAK,CAC7B,OAAKoF,KACHA,GAAiB,uUACjBC,GAAmB,IAAI,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,CAAC,GAEnCrF,EAAI,WAAWoF,GAAgB,CAACpiC,EAAGg/B,EAAIuD,IAAOvD,EAAKA,EAAG,UAAU,MAAM,EAAIqD,GAAiB,IAAIE,CAAE,CAAC,CAC3G,CACA,SAASC,IAAU,CACjB,GAAI,OAAO,OAAO,YAAe,WAC/B,OAAO,OAAO,WAAU,EAE1B,MAAM1W,EAAM,IAAI,WAAW,EAAE,EAC7B,cAAO,gBAAgBA,CAAG,EACnBiS,GAAcjS,CAAG,CAC1B,CACA,SAAS2W,GAAqBC,EAAUC,EAAWC,EAAM,CACvD,GAAI,CAAC,MAAM,QAAQA,CAAI,GAAKA,EAAK,OAAS,EACxC,MAAO,GAET,KAAM,CAACC,EAAMC,EAAM,GAAGrkB,CAAI,EAAImkB,EAI9B,GAHI,CAACF,EAASG,CAAI,GAAK,CAAC,OAAO,UAAUA,CAAI,GAGzC,CAACF,EAAUG,CAAI,EACjB,MAAO,GAET,MAAMC,EAAUtkB,EAAK,OACrB,IAAIukB,EAAY,GAChB,OAAQF,EAAK,KAAI,CACf,IAAK,MACH,GAAIC,EAAU,GAAKA,EAAU,EAC3B,MAAO,GAET,MACF,IAAK,MACL,IAAK,OACH,OAAOA,IAAY,EACrB,IAAK,OACL,IAAK,QACL,IAAK,OACL,IAAK,QACH,GAAIA,EAAU,EACZ,MAAO,GAET,MACF,IAAK,OACH,GAAIA,IAAY,EACd,MAAO,GAETC,EAAY,GACZ,MACF,QACE,MAAO,EACb,CACE,UAAW5jB,KAAOX,EAChB,GAAI,SAAOW,GAAQ,UAAY4jB,GAAa5jB,IAAQ,MAGpD,MAAO,GAET,MAAO,EACT,CACA,MAAM6jB,GAAU,IAAM,CAAA,EAChBC,GAAU,IAAM,IAAI,IACpBC,GAAU,IAAM,OAAO,OAAO,IAAI,EAClCC,GAAU,IAAM,IAAI,IACtB,OAAO,SAAS,UAAU,MAAS,aACrC,SAAS,UAAU,KAAO,SAAUC,EAAW,CAC7C,MAAO,CAAC,GAAG,IAAI,EAAE,KAAKA,CAAS,CACjC,GAIF,SAASC,GAAU1jC,EAAG2jC,EAAKC,EAAK,CAC9B,OAAO,KAAK,IAAI,KAAK,IAAI5jC,EAAG2jC,CAAG,EAAGC,CAAG,CACvC,CAIA,MAAMC,EAAa,CACjB,YAAY,CACV,QAAAC,EACA,SAAAC,EACA,MAAA9O,EACA,SAAA+O,EACA,QAAAC,EAAU,EACV,QAAAC,EAAU,EACV,SAAAC,EAAW,EACf,EAAK,CACD,KAAK,QAAUL,EACf,KAAK,SAAWC,EAChB,KAAK,MAAQ9O,EACb,KAAK,SAAW+O,EAChB,KAAK,QAAUC,EACf,KAAK,QAAUC,EACfjP,GAAS8O,EACT,MAAMK,GAAWN,EAAQ,CAAC,EAAIA,EAAQ,CAAC,GAAK,EACtCO,GAAWP,EAAQ,CAAC,EAAIA,EAAQ,CAAC,GAAK,EAC5C,IAAIQ,EAASC,EAASC,EAASC,EAK/B,OAJAT,GAAY,IACRA,EAAW,IACbA,GAAY,KAENA,EAAQ,CACd,IAAK,KACHM,EAAU,GACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MACF,IAAK,IACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MACF,IAAK,KACHH,EAAU,EACVC,EAAU,GACVC,EAAU,GACVC,EAAU,EACV,MACF,IAAK,GACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,GACV,MACF,QACE,MAAM,IAAI,MAAM,mEAAmE,CAC3F,CACQN,IACFK,EAAU,CAACA,EACXC,EAAU,CAACA,GAEb,IAAIC,EAAeC,EACfC,EAAOC,EACPP,IAAY,GACdI,EAAgB,KAAK,IAAIL,EAAUP,EAAQ,CAAC,CAAC,EAAI7O,EAAQgP,EACzDU,EAAgB,KAAK,IAAIP,EAAUN,EAAQ,CAAC,CAAC,EAAI7O,EAAQiP,EACzDU,GAASd,EAAQ,CAAC,EAAIA,EAAQ,CAAC,GAAK7O,EACpC4P,GAAUf,EAAQ,CAAC,EAAIA,EAAQ,CAAC,GAAK7O,IAErCyP,EAAgB,KAAK,IAAIN,EAAUN,EAAQ,CAAC,CAAC,EAAI7O,EAAQgP,EACzDU,EAAgB,KAAK,IAAIN,EAAUP,EAAQ,CAAC,CAAC,EAAI7O,EAAQiP,EACzDU,GAASd,EAAQ,CAAC,EAAIA,EAAQ,CAAC,GAAK7O,EACpC4P,GAAUf,EAAQ,CAAC,EAAIA,EAAQ,CAAC,GAAK7O,GAEvC,KAAK,UAAY,CAACqP,EAAUrP,EAAOsP,EAAUtP,EAAOuP,EAAUvP,EAAOwP,EAAUxP,EAAOyP,EAAgBJ,EAAUrP,EAAQmP,EAAUI,EAAUvP,EAAQoP,EAASM,EAAgBJ,EAAUtP,EAAQmP,EAAUK,EAAUxP,EAAQoP,CAAO,EAClO,KAAK,MAAQO,EACb,KAAK,OAASC,CAChB,CACA,IAAI,SAAU,CACZ,MAAMC,EAAO,KAAK,QAClB,OAAOzH,GAAO,KAAM,UAAW,CAC7B,UAAWyH,EAAK,CAAC,EAAIA,EAAK,CAAC,EAC3B,WAAYA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAC5B,MAAOA,EAAK,CAAC,EACb,MAAOA,EAAK,CAAC,CACnB,CAAK,CACH,CACA,MAAM,CACJ,MAAA7P,EAAQ,KAAK,MACb,SAAA+O,EAAW,KAAK,SAChB,QAAAC,EAAU,KAAK,QACf,QAAAC,EAAU,KAAK,QACf,SAAAC,EAAW,EACf,EAAM,GAAI,CACN,OAAO,IAAIN,GAAa,CACtB,QAAS,KAAK,QAAQ,MAAK,EAC3B,SAAU,KAAK,SACf,MAAA5O,EACA,SAAA+O,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,CACN,CAAK,CACH,CACA,uBAAuBljC,EAAGf,EAAG,CAC3B,MAAML,EAAI,CAACoB,EAAGf,CAAC,EACf,OAAA4+B,GAAK,eAAej/B,EAAG,KAAK,SAAS,EAC9BA,CACT,CACA,kBAAkBoB,EAAGf,EAAG,CACtB,MAAML,EAAI,CAACoB,EAAGf,CAAC,EACf,OAAA4+B,GAAK,sBAAsBj/B,EAAG,KAAK,SAAS,EACrCA,CACT,CACF,CAGA,MAAMklC,EAAQ,CACZ,OAAO,YAAYC,EAAK,CACtB,MAAMhW,EAAQ,CAAA,EACR6Q,EAAS,CACb,MAAA7Q,EACA,OAAQ,OAAO,OAAO,IAAI,CAChC,EACI,SAASiW,EAAKzN,EAAM,OAClB,GAAI,CAACA,EACH,OAEF,IAAI4F,EAAM,KACV,MAAM1b,EAAO8V,EAAK,KAClB,GAAI9V,IAAS,QACX0b,EAAM5F,EAAK,cACDuN,GAAQ,gBAAgBrjB,CAAI,GAE7B1mB,EAAAw8B,GAAA,YAAAA,EAAM,aAAN,MAAAx8B,EAAkB,YAC3BoiC,EAAM5F,EAAK,WAAW,YACbA,EAAK,QACd4F,EAAM5F,EAAK,WAJX,QAWF,GALI4F,IAAQ,MACVpO,EAAM,KAAK,CACT,IAAAoO,CACV,CAAS,EAEC,EAAC5F,EAAK,SAGV,UAAW0N,KAAS1N,EAAK,SACvByN,EAAKC,CAAK,CAEd,CACA,OAAAD,EAAKD,CAAG,EACDnF,CACT,CACA,OAAO,gBAAgBne,EAAM,CAC3B,MAAO,EAAEA,IAAS,YAAcA,IAAS,SAAWA,IAAS,UAAYA,IAAS,SACpF,CACF,CAMA,MAAMyjB,GAAgC,qBAChCC,GAAmC,OACzC,MAAMC,EAAS,CACb,WAAW,sBAAuB,CAChC,OAAOhI,GAAO,KAAM,uBAAwB,IAAI,IAAI,CAAC,IAAK,IAAK,KAAM,SAAU,MAAO,IAAK,MAAO,QAAS,QAAS,KAAM,KAAM,SAAU,IAAK,SAAU,OAAQ,MAAO,MAAO,WAAY,IAAI,CAAC,CAAC,CACnM,CACA,WAAW,qBAAsB,CAC/B,OAAOA,GAAO,KAAM,sBAAuB,IAAI,IAAI,CAAC,UAAW,OAAQ,OAAQ,OAAQ,KAAK,CAAC,CAAC,CAChG,CACA,WAAW,0BAA2B,CACpC,OAAOA,GAAO,KAAM,2BAA4B,IAAI,IAAI,CAAC,IAAK,IAAK,KAAM,MAAO,IAAK,KAAM,KAAM,IAAK,OAAQ,MAAO,MAAO,IAAI,CAAC,CAAC,CACpI,CACA,WAAW,4BAA6B,CACtC,OAAOA,GAAO,KAAM,6BAA8B,IAAI,IAAI,CAAC,QAAS,MAAO,OAAO,CAAC,CAAC,CACtF,CACA,WAAW,wBAAyB,CAClC,OAAOA,GAAO,KAAM,yBAA0B,IAAI,IAAI,CAAC,QAAS,OAAQ,aAAc,WAAY,cAAe,YAAa,aAAc,cAAe,gBAAiB,aAAc,SAAU,eAAgB,aAAc,cAAe,YAAa,UAAW,cAAe,eAAgB,aAAc,cAAe,cAAe,cAAe,UAAW,YAAa,iBAAkB,aAAc,YAAa,gBAAiB,QAAQ,CAAC,CAAC,CACrc,CACA,OAAO,aAAahJ,EAAMxQ,EAAIyhB,EAASC,EAASC,EAAQ,CACtD,MAAMC,EAAaF,EAAQ,SAAS1hB,EAAI,CACtC,MAAO,IACb,CAAK,EACD,OAAQyhB,EAAQ,KAAI,CAClB,IAAK,WAIH,GAHIG,EAAW,QAAU,OACvBpR,EAAK,YAAcoR,EAAW,OAE5BD,IAAW,QACb,MAEFnR,EAAK,iBAAiB,QAASnN,GAAS,CACtCqe,EAAQ,SAAS1hB,EAAI,CACnB,MAAOqD,EAAM,OAAO,KAChC,CAAW,CACH,CAAC,EACD,MACF,IAAK,QACH,GAAIoe,EAAQ,WAAW,OAAS,SAAWA,EAAQ,WAAW,OAAS,WAAY,CAMjF,GALIG,EAAW,QAAUH,EAAQ,WAAW,MAC1CjR,EAAK,aAAa,UAAW,EAAI,EACxBoR,EAAW,QAAUH,EAAQ,WAAW,QACjDjR,EAAK,gBAAgB,SAAS,EAE5BmR,IAAW,QACb,MAEFnR,EAAK,iBAAiB,SAAUnN,GAAS,CACvCqe,EAAQ,SAAS1hB,EAAI,CACnB,MAAOqD,EAAM,OAAO,QAAUA,EAAM,OAAO,aAAa,OAAO,EAAIA,EAAM,OAAO,aAAa,QAAQ,CACnH,CAAa,CACH,CAAC,CACH,KAAO,CAIL,GAHIue,EAAW,QAAU,MACvBpR,EAAK,aAAa,QAASoR,EAAW,KAAK,EAEzCD,IAAW,QACb,MAEFnR,EAAK,iBAAiB,QAASnN,GAAS,CACtCqe,EAAQ,SAAS1hB,EAAI,CACnB,MAAOqD,EAAM,OAAO,KAClC,CAAa,CACH,CAAC,CACH,CACA,MACF,IAAK,SACH,GAAIue,EAAW,QAAU,KAAM,CAC7BpR,EAAK,aAAa,QAASoR,EAAW,KAAK,EAC3C,UAAWC,KAAUJ,EAAQ,SACvBI,EAAO,WAAW,QAAUD,EAAW,MACzCC,EAAO,WAAW,SAAW,GACpB,OAAO,OAAOA,EAAO,WAAY,UAAU,GACpD,OAAOA,EAAO,WAAW,QAG/B,CACArR,EAAK,iBAAiB,QAASnN,GAAS,CACtC,MAAM7oB,EAAU6oB,EAAM,OAAO,QACvBvpB,EAAQU,EAAQ,gBAAkB,GAAK,GAAKA,EAAQA,EAAQ,aAAa,EAAE,MACjFknC,EAAQ,SAAS1hB,EAAI,CACnB,MAAAlmB,CACZ,CAAW,CACH,CAAC,EACD,KACR,CACE,CACA,OAAO,cAAc,CACnB,KAAA02B,EACA,QAAAiR,EACA,QAAAC,EAAU,KACV,OAAAC,EACA,YAAAG,CACJ,EAAK,CACD,KAAM,CACJ,WAAAC,CACN,EAAQN,EACEO,EAAsBxR,aAAgB,kBACxCuR,EAAW,OAAS,UACtBA,EAAW,KAAO,GAAGA,EAAW,IAAI,IAAIJ,CAAM,IAEhD,SAAW,CAACzkB,EAAKpjB,CAAK,IAAK,OAAO,QAAQioC,CAAU,EAClD,GAAIjoC,GAAU,MAGV,CAAAynC,GAAiC,KAAKrkB,CAAG,GAGzC,EAAAykB,IAAW,YAAc,CAAC,KAAK,2BAA2B,IAAIzkB,CAAG,GAGrE,OAAQA,EAAG,CACT,IAAK,QACCpjB,EAAM,QACR02B,EAAK,aAAatT,EAAKpjB,EAAM,KAAK,GAAG,CAAC,EAExC,MACF,IAAK,SACH,MACF,IAAK,KACH02B,EAAK,aAAa,kBAAmB12B,CAAK,EAC1C,MACF,IAAK,QACH,GAAI6nC,IAAW,WAAY,CACzB,MAAMM,EAAgB,KAAK,uBAC3B,SAAW,CAACC,EAAWC,CAAU,IAAK,OAAO,QAAQroC,CAAK,EACpDmoC,EAAc,IAAIC,CAAS,GAAK,CAACZ,GAA8B,KAAKa,CAAU,IAChF3R,EAAK,MAAM0R,CAAS,EAAIC,EAG9B,MACE,OAAO,OAAO3R,EAAK,MAAO12B,CAAK,EAEjC,MACF,IAAK,cACH02B,EAAK,YAAc12B,EACnB,MACF,SACM,CAACkoC,GAAuB9kB,IAAQ,QAAUA,IAAQ,cACpDsT,EAAK,aAAatT,EAAKpjB,CAAK,CAExC,CAEQkoC,IACFF,GAAA,MAAAA,EAAa,kBAAkBtR,EAAMuR,EAAW,KAAMA,EAAW,YAE/DL,GAAWK,EAAW,QACxB,KAAK,aAAavR,EAAMuR,EAAW,OAAQN,EAASC,CAAO,CAE/D,CAUA,OAAO,OAAOU,EAAY,WACxB,MAAMV,EAAUU,EAAW,kBACrBN,EAAcM,EAAW,YACzBC,EAAOD,EAAW,QAClBT,EAASS,EAAW,QAAU,UAC9BE,EAAWnE,EAAA,KAAKoE,GAAAC,IAAL,UAAoBH,EAAK,MAAMlrC,EAAAkrC,EAAK,aAAL,YAAAlrC,EAAiB,MAAOwqC,IAAW,SAAS,cAAc,KAAK,EAC3GU,EAAK,YACP,KAAK,cAAc,CACjB,KAAMC,EACN,QAASD,EACT,OAAAV,EACA,YAAAG,CACR,CAAO,EAEH,MAAMW,EAAmBd,IAAW,WAC9Be,EAAUN,EAAW,IAE3B,GADAM,EAAQ,OAAOJ,CAAQ,EACnBF,EAAW,SAAU,CACvB,MAAM5G,EAAY,UAAU4G,EAAW,SAAS,UAAU,KAAK,GAAG,CAAC,IACnEM,EAAQ,MAAM,UAAYlH,CAC5B,CACIiH,GACFC,EAAQ,aAAa,QAAS,kBAAkB,EAElD,MAAMC,EAAW,CAAA,EACjB,GAAIN,EAAK,SAAS,SAAW,EAAG,CAC9B,GAAIA,EAAK,MAAO,CACd,MAAM1O,EAAO,SAAS,eAAe0O,EAAK,KAAK,EAC/CC,EAAS,OAAO3O,CAAI,EAChB8O,GAAoBvB,GAAQ,gBAAgBmB,EAAK,IAAI,GACvDM,EAAS,KAAKhP,CAAI,CAEtB,CACA,MAAO,CACL,SAAAgP,CACR,CACI,CACA,MAAMC,EAAQ,CAAC,CAACP,EAAM,GAAIC,CAAQ,CAAC,EACnC,KAAOM,EAAM,OAAS,GAAG,CACvB,KAAM,CAACC,EAAQpnC,EAAG+0B,CAAI,EAAIoS,EAAM,GAAG,EAAE,EACrC,GAAInnC,EAAI,IAAMonC,EAAO,SAAS,OAAQ,CACpCD,EAAM,IAAG,EACT,QACF,CACA,MAAMvB,EAAQwB,EAAO,SAAS,EAAED,EAAM,GAAG,EAAE,EAAE,CAAC,CAAC,EAC/C,GAAIvB,IAAU,KACZ,SAEF,KAAM,CACJ,KAAAxjB,CACR,EAAUwjB,EACJ,GAAIxjB,IAAS,QAAS,CACpB,MAAM8V,EAAO,SAAS,eAAe0N,EAAM,KAAK,EAChDsB,EAAS,KAAKhP,CAAI,EAClBnD,EAAK,OAAOmD,CAAI,EAChB,QACF,CACA,MAAMmP,EAAY3E,EAAA,KAAKoE,GAAAC,IAAL,UAAoB3kB,GAAM3mB,EAAAmqC,EAAM,aAAN,YAAAnqC,EAAkB,MAAOyqC,GACrE,GAAKmB,GAaL,GAVAtS,EAAK,OAAOsS,CAAS,EACjBzB,EAAM,YACR,KAAK,cAAc,CACjB,KAAMyB,EACN,QAASzB,EACT,QAAAK,EACA,OAAAC,EACA,YAAAG,CACV,CAAS,IAEC3nB,EAAAknB,EAAM,WAAN,YAAAlnB,EAAgB,QAAS,EAC3ByoB,EAAM,KAAK,CAACvB,EAAO,GAAIyB,CAAS,CAAC,UACxBzB,EAAM,MAAO,CACtB,MAAM1N,EAAO,SAAS,eAAe0N,EAAM,KAAK,EAC5CoB,GAAoBvB,GAAQ,gBAAgBrjB,CAAI,GAClD8kB,EAAS,KAAKhP,CAAI,EAEpBmP,EAAU,OAAOnP,CAAI,CACvB,EACF,CACA,UAAWnL,KAAMka,EAAQ,iBAAiB,uDAAuD,EAC/Fla,EAAG,aAAa,WAAY,EAAI,EAElC,MAAO,CACL,SAAAma,CACN,CACE,CACA,OAAO,OAAOP,EAAY,CACxB,MAAM5G,EAAY,UAAU4G,EAAW,SAAS,UAAU,KAAK,GAAG,CAAC,IACnEA,EAAW,IAAI,MAAM,UAAY5G,EACjC4G,EAAW,IAAI,OAAS,EAC1B,CACA,OAAO,gBAAgBW,EAAS,CAC9B,MAAA3R,EAAQ,EACR,SAAA+O,EAAW,CACf,EAAK,CACD,KAAM,CACJ,MAAAY,EACA,OAAAC,CACN,EAAQ+B,EAAQ,WAAW,MACvB,OAAO,IAAI/C,GAAa,CACtB,QAAS,CAAC,EAAG,EAAG,SAASe,EAAO,EAAE,EAAG,SAASC,EAAQ,EAAE,CAAC,EACzD,SAAU,EACV,MAAA5P,EACA,SAAA+O,CACN,CAAK,CACH,CACF,CAxQAoC,GAAA,YAmJSC,GAAc,SAAC3kB,EAAMmlB,EAAOrB,EAAQ,CACzC,OAAIA,IAAW,WACN,CAACqB,GAAS,KAAK,yBAAyB,IAAInlB,CAAI,EAAI,SAAS,cAAcA,CAAI,EAAI,KAExFmlB,EACKA,IAAU5L,IAAU,KAAK,oBAAoB,IAAIvZ,CAAI,EAAI,SAAS,gBAAgBuZ,GAAQvZ,CAAI,EAAI,KAEpG,KAAK,qBAAqB,IAAIA,CAAI,EAAI,SAAS,cAAcA,CAAI,EAAI,IAC9E,EA3JF6gB,EAAM8C,GAANe,IA+QA,MAAMU,GAAN,MAAMA,EAAc,CAIpB,EAHEvkB,GADIukB,GACG,MAAM,IACbvkB,GAFIukB,GAEG,MAAM,IACbvkB,GAHIukB,GAGG,mBAAmBA,GAAK,IAAMA,GAAK,KAH5C,IAAMC,GAAND,GAKA,eAAeE,GAAUhqC,EAAK2iB,EAAO,OAAQ,CAC3C,GAAIsnB,GAAgBjqC,EAAK,SAAS,OAAO,EAAG,CAC1C,MAAMM,EAAW,MAAM,MAAMN,CAAG,EAChC,GAAI,CAACM,EAAS,GACZ,MAAM,IAAI,MAAMA,EAAS,UAAU,EAErC,OAAQqiB,EAAI,CACV,IAAK,OACH,OAAOriB,EAAS,KAAI,EACtB,IAAK,QACH,OAAOA,EAAS,MAAK,EACvB,IAAK,OACH,OAAOA,EAAS,KAAI,CAC5B,CACI,OAAOA,EAAS,KAAI,CACtB,CACA,OAAO,IAAI,QAAQ,CAACqkB,EAASC,IAAW,CACtC,MAAMslB,EAAU,IAAI,eACpBA,EAAQ,KAAK,MAAOlqC,EAAK,EAAI,EAC7BkqC,EAAQ,aAAevnB,IAAS,QAAU,cAAgBA,EAC1DunB,EAAQ,mBAAqB,IAAM,CACjC,GAAIA,EAAQ,aAAe,eAAe,KAG1C,IAAIA,EAAQ,SAAW,KAAOA,EAAQ,SAAW,EAAG,CAClD,OAAQvnB,EAAI,CACV,IAAK,QACHgC,EAAQ,IAAI,WAAWulB,EAAQ,QAAQ,CAAC,EACxC,OACF,IAAK,OACL,IAAK,OACHvlB,EAAQulB,EAAQ,QAAQ,EACxB,MACZ,CACQvlB,EAAQulB,EAAQ,YAAY,EAC5B,MACF,CACAtlB,EAAO,IAAI,MAAMslB,EAAQ,UAAU,CAAC,EACtC,EACAA,EAAQ,KAAK,IAAI,CACnB,CAAC,CACH,CACA,MAAMC,WAAoC1J,EAAc,CACtD,YAAYpB,EAAK+K,EAAa,EAAG,CAC/B,MAAM/K,EAAK,6BAA6B,EACxC,KAAK,WAAa+K,CACpB,CACF,CACA,SAASC,GAAarqC,EAAK,CACzB,MAAMiT,EAAKjT,EAAI,OACf,IAAIsC,EAAI,EACR,KAAOA,EAAI2Q,GAAMjT,EAAIsC,CAAC,EAAE,KAAI,IAAO,IACjCA,IAEF,OAAOtC,EAAI,UAAUsC,EAAGA,EAAI,CAAC,EAAE,YAAW,IAAO,OACnD,CACA,SAASgoC,GAAUjX,EAAU,CAC3B,OAAO,OAAOA,GAAa,UAAY,UAAU,KAAKA,CAAQ,CAChE,CACA,SAASkX,GAAmBvqC,EAAK,CAC/B,OAACA,CAAG,EAAIA,EAAI,MAAM,OAAQ,CAAC,EACpBmgC,GAAUngC,CAAG,CACtB,CACA,SAASwqC,GAAsBxqC,EAAKyqC,EAAkB,eAAgB,CACpE,GAAI,OAAOzqC,GAAQ,SACjB,OAAOyqC,EAET,GAAIJ,GAAarqC,CAAG,EAClB,OAAAs/B,GAAK,oEAAoE,EAClEmL,EAiBT,MAAMC,GAfSC,GAAa,CAC1B,GAAI,CACF,OAAO,IAAI,IAAIA,CAAS,CAC1B,MAAQ,CAAC,CACT,GAAI,CACF,OAAO,IAAI,IAAI,mBAAmBA,CAAS,CAAC,CAC9C,MAAQ,CAAC,CACT,GAAI,CACF,OAAO,IAAI,IAAIA,EAAW,iBAAiB,CAC7C,MAAQ,CAAC,CACT,GAAI,CACF,OAAO,IAAI,IAAI,mBAAmBA,CAAS,EAAG,iBAAiB,CACjE,MAAQ,CAAC,CACT,OAAO,IACT,GACsB3qC,CAAG,EACzB,GAAI,CAAC0qC,EACH,OAAOD,EAET,MAAMG,EAASlmB,GAAQ,CACrB,GAAI,CACF,IAAImmB,EAAU,mBAAmBnmB,CAAI,EACrC,OAAImmB,EAAQ,SAAS,GAAG,IACtBA,EAAU1K,GAAU0K,CAAO,EACvBA,EAAQ,SAAW,GAAKC,EAAS,KAAKD,CAAO,GACxCnmB,EAGJmmB,CACT,MAAQ,CACN,OAAOnmB,CACT,CACF,EACMomB,EAAW,UACXzX,EAAW8M,GAAUuK,EAAO,QAAQ,EAC1C,GAAII,EAAS,KAAKzX,CAAQ,EACxB,OAAOuX,EAAOvX,CAAQ,EAExB,GAAIqX,EAAO,aAAa,KAAO,EAAG,CAChC,MAAMK,EAAUC,GAAY,CAAC,GAAGA,CAAQ,EAAE,SAAShoC,GAAK8nC,EAAS,KAAK9nC,CAAC,CAAC,EAClE0hB,EAAOqmB,EAAQL,EAAO,aAAa,QAAQ,GAAKK,EAAQL,EAAO,aAAa,KAAI,CAAE,EACxF,GAAIhmB,EACF,OAAOkmB,EAAOlmB,CAAI,CAEtB,CACA,GAAIgmB,EAAO,KAAM,CAEf,MAAMO,EADa,gCACa,KAAKP,EAAO,IAAI,EAChD,GAAIO,EACF,OAAOL,EAAOK,EAAa,CAAC,CAAC,CAEjC,CACA,OAAOR,CACT,CACA,MAAMS,EAAU,CAAhB,cACE3F,EAAA,KAAA4F,GAAW,IAAI,KACf5lB,GAAA,aAAQ,CAAA,GACR,KAAKb,EAAM,CACL0mB,EAAA,KAAKD,IAAS,IAAIzmB,CAAI,GACxB4a,GAAK,gCAAgC5a,CAAI,EAAE,EAE7C0mB,EAAA,KAAKD,IAAS,IAAIzmB,EAAM,KAAK,IAAG,CAAE,CACpC,CACA,QAAQA,EAAM,CACP0mB,EAAA,KAAKD,IAAS,IAAIzmB,CAAI,GACzB4a,GAAK,kCAAkC5a,CAAI,EAAE,EAE/C,KAAK,MAAM,KAAK,CACd,KAAAA,EACA,MAAO0mB,EAAA,KAAKD,IAAS,IAAIzmB,CAAI,EAC7B,IAAK,KAAK,IAAG,CACnB,CAAK,EACD0mB,EAAA,KAAKD,IAAS,OAAOzmB,CAAI,CAC3B,CACA,UAAW,CACT,MAAM2mB,EAAU,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI9oC,GAAKA,EAAE,KAAK,MAAM,CAAC,EAC9D,OAAO,KAAK,MAAM,IAAIA,GAAK,GAAGA,EAAE,KAAK,OAAO8oC,CAAO,CAAC,IAAI9oC,EAAE,IAAMA,EAAE,KAAK;AAAA,CAAM,EAAE,KAAK,EAAE,CACxF,CACF,CAvBE4oC,GAAA,YAwBF,SAASlB,GAAgBjqC,EAAKimB,EAAS,CACrC,MAAMia,EAAMja,EAAU,IAAI,MAAMjmB,EAAKimB,CAAO,EAAI,IAAI,MAAMjmB,CAAG,EAC7D,MAAO,UAAU,MAAKkgC,GAAA,YAAAA,EAAK,WAAY,EAAE,CAC3C,CACA,SAASoL,GAAclpC,EAAG,CACxBA,EAAE,eAAc,CAClB,CACA,SAASmpC,GAAUnpC,EAAG,CACpBA,EAAE,eAAc,EAChBA,EAAE,gBAAe,CACnB,CAIA,MAAMopC,EAAc,CAElB,OAAO,aAAalqC,EAAO,CACzB,GAAIA,aAAiB,KACnB,OAAOA,EAET,GAAI,CAACA,GAAS,OAAOA,GAAU,SAC7B,OAAO,KAET8pC,EAAA,KAAKK,KAALC,EAAA,KAAKD,GAAW,IAAI,OAAO,2FAAkJ,GAC7K,MAAME,EAAUP,EAAA,KAAKK,IAAO,KAAKnqC,CAAK,EACtC,GAAI,CAACqqC,EACH,OAAO,KAET,MAAMC,EAAO,SAASD,EAAQ,CAAC,EAAG,EAAE,EACpC,IAAIE,EAAQ,SAASF,EAAQ,CAAC,EAAG,EAAE,EACnCE,EAAQA,GAAS,GAAKA,GAAS,GAAKA,EAAQ,EAAI,EAChD,IAAIC,EAAM,SAASH,EAAQ,CAAC,EAAG,EAAE,EACjCG,EAAMA,GAAO,GAAKA,GAAO,GAAKA,EAAM,EACpC,IAAIC,EAAO,SAASJ,EAAQ,CAAC,EAAG,EAAE,EAClCI,EAAOA,GAAQ,GAAKA,GAAQ,GAAKA,EAAO,EACxC,IAAIC,EAAS,SAASL,EAAQ,CAAC,EAAG,EAAE,EACpCK,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,IAAIhI,EAAS,SAAS2H,EAAQ,CAAC,EAAG,EAAE,EACpC3H,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,MAAMiI,EAAwBN,EAAQ,CAAC,GAAK,IAC5C,IAAIO,EAAa,SAASP,EAAQ,CAAC,EAAG,EAAE,EACxCO,EAAaA,GAAc,GAAKA,GAAc,GAAKA,EAAa,EAChE,IAAIC,EAAe,SAASR,EAAQ,CAAC,EAAG,EAAE,GAAK,EAC/C,OAAAQ,EAAeA,GAAgB,GAAKA,GAAgB,GAAKA,EAAe,EACpEF,IAA0B,KAC5BF,GAAQG,EACRF,GAAUG,GACDF,IAA0B,MACnCF,GAAQG,EACRF,GAAUG,GAEL,IAAI,KAAK,KAAK,IAAIP,EAAMC,EAAOC,EAAKC,EAAMC,EAAQhI,CAAM,CAAC,CAClE,CACF,CAtCSyH,GAAA,YAAPlG,EADIiG,GACGC,IAuCT,SAASW,GAAQC,EAAO,CACtB,GAAIA,EAAM,WAAW,GAAG,EAAG,CACzB,MAAM3c,EAAM2c,EAAM,MAAM,CAAC,EACzB,MAAO,CAAC,SAAS3c,EAAI,MAAM,EAAG,CAAC,EAAG,EAAE,EAAG,SAASA,EAAI,MAAM,EAAG,CAAC,EAAG,EAAE,EAAG,SAASA,EAAI,MAAM,EAAG,CAAC,EAAG,EAAE,EAAGA,EAAI,QAAU,EAAI,SAASA,EAAI,MAAM,EAAG,CAAC,EAAG,EAAE,EAAI,IAAM,CAAC,CAChK,CACA,GAAI2c,EAAM,WAAW,MAAM,EAAG,CAC5B,KAAM,CAACjuC,EAAG6E,EAAGE,CAAC,EAAIkpC,EAAM,MAAM,EAAG,EAAE,EAAE,MAAM,GAAG,EAAE,IAAIpoC,GAAK,SAASA,EAAG,EAAE,CAAC,EACxE,MAAO,CAAC7F,EAAG6E,EAAGE,EAAG,CAAC,CACpB,CACA,GAAIkpC,EAAM,WAAW,OAAO,EAAG,CAC7B,MAAMC,EAAQD,EAAM,MAAM,EAAG,EAAE,EAAE,MAAM,GAAG,EAC1C,MAAO,CAAC,SAASC,EAAM,CAAC,EAAG,EAAE,EAAG,SAASA,EAAM,CAAC,EAAG,EAAE,EAAG,SAASA,EAAM,CAAC,EAAG,EAAE,EAAG,WAAWA,EAAM,CAAC,CAAC,CAAC,CACtG,CACA,MAAM5sC,EAAI2sC,EAAM,MAAM,4EAA4E,EAClG,OAAI3sC,EACK,CAAC,KAAK,MAAM,WAAWA,EAAE,CAAC,CAAC,EAAI,GAAG,EAAG,KAAK,MAAM,WAAWA,EAAE,CAAC,CAAC,EAAI,GAAG,EAAG,KAAK,MAAM,WAAWA,EAAE,CAAC,CAAC,EAAI,GAAG,EAAGA,EAAE,CAAC,IAAM,QAAaA,EAAE,CAAC,IAAM,OAAS,WAAWA,EAAE,CAAC,CAAC,EAAI,CAAC,EAE3K,IACT,CACA,SAAS6sC,GAAOF,EAAO,CACrB,MAAMG,EAAOJ,GAAQC,CAAK,EAC1B,OAAKG,EAIEA,EAAK,MAAM,EAAG,CAAC,GAHpBlN,GAAK,8BAA8B+M,CAAK,GAAG,EACpC,CAAC,EAAG,EAAG,CAAC,EAGnB,CACA,SAASI,GAAeC,EAAQ,CAC9B,MAAMC,EAAO,SAAS,cAAc,MAAM,EAC1CA,EAAK,MAAM,WAAa,SACxBA,EAAK,MAAM,YAAc,aACzB,SAAS,KAAK,OAAOA,CAAI,EACzB,UAAWjoB,KAAQgoB,EAAO,OAAQ,CAChCC,EAAK,MAAM,MAAQjoB,EACnB,MAAMkoB,EAAgB,OAAO,iBAAiBD,CAAI,EAAE,MACpDD,EAAO,IAAIhoB,EAAM6nB,GAAOK,CAAa,CAAC,CACxC,CACAD,EAAK,OAAM,CACb,CACA,SAASE,GAAoB/d,EAAK,CAChC,KAAM,CACJ,EAAArsB,EACA,EAAAU,EACA,EAAAT,EACA,EAAAE,EACA,EAAAR,EACA,EAAAW,CACJ,EAAM+rB,EAAI,aAAY,EACpB,MAAO,CAACrsB,EAAGU,EAAGT,EAAGE,EAAGR,EAAGW,CAAC,CAC1B,CACA,SAAS+pC,GAA2Bhe,EAAK,CACvC,KAAM,CACJ,EAAArsB,EACA,EAAAU,EACA,EAAAT,EACA,EAAAE,EACA,EAAAR,EACA,EAAAW,CACJ,EAAM+rB,EAAI,aAAY,EAAG,WAAU,EACjC,MAAO,CAACrsB,EAAGU,EAAGT,EAAGE,EAAGR,EAAGW,CAAC,CAC1B,CACA,SAASgqC,GAAmBC,EAAKC,EAAUC,EAAW,GAAOC,EAAa,GAAM,CAC9E,GAAIF,aAAoBpG,GAAc,CACpC,KAAM,CACJ,UAAAuG,EACA,WAAAC,CACN,EAAQJ,EAAS,QACP,CACJ,MAAAK,CACN,EAAQN,EACEO,EAAW,2CAA2CH,CAAS,4BACnEI,EAAY,2CAA2CH,CAAU,4BAC/D,CAACH,GAAYD,EAAS,SAAW,MAAQ,GAC3CK,EAAM,MAAQC,EACdD,EAAM,OAASE,IAEfF,EAAM,MAAQE,EACdF,EAAM,OAASC,EAEnB,CACIJ,GACFH,EAAI,aAAa,qBAAsBC,EAAS,QAAQ,CAE5D,CACA,MAAMQ,EAAY,CAChB,aAAc,CACZ,KAAM,CACJ,WAAAC,CACN,EAAQD,GACJ,KAAK,GAAKC,EACV,KAAK,GAAKA,CACZ,CACA,IAAI,QAAS,CACX,OAAO,KAAK,KAAO,GAAK,KAAK,KAAO,CACtC,CACA,IAAI,WAAY,CACd,OAAO,KAAK,KAAO,KAAK,EAC1B,CACA,YAAY9F,EAAOC,EAAQ8F,EAAWC,EAAQC,EAAgB,GAAI,CAChE,IAAIC,EAAe,IACjBC,EAAgB,IAChBC,EAAiB,IACnBL,EAAYF,GAAY,UAAUE,EAAWE,CAAa,EACtDF,EAAY,IACdG,EAAe,KAAK,KAAKH,GAAa/F,EAAQC,EAAO,GAEnD+F,IAAW,KACbG,EAAgBH,EAAShG,EACzBoG,EAAiBJ,EAAS/F,GAE5B,MAAMoG,EAAW,KAAK,IAAIH,EAAcC,EAAeC,CAAc,EACrE,OAAI,KAAK,GAAKC,GAAY,KAAK,GAAKA,GAClC,KAAK,GAAKA,EACV,KAAK,GAAKA,EACH,IAEF,EACT,CACA,WAAW,YAAa,CACtB,OAAO,WAAW,kBAAoB,CACxC,CACA,OAAO,UAAUN,EAAWE,EAAe,CACzC,GAAIA,GAAiB,EAAG,CACtB,MAAMK,EAAY,KAAK,KAAK,OAAO,OAAO,WAAa,OAAO,OAAO,YAAc,KAAK,YAAc,GAAK,EAAIL,EAAgB,IAAI,EACnI,OAAOF,EAAY,EAAI,KAAK,IAAIA,EAAWO,CAAS,EAAIA,CAC1D,CACA,OAAOP,CACT,CACF,CACA,MAAMQ,GAA0B,CAAC,aAAc,aAAc,YAAa,YAAa,aAAc,YAAa,gBAAiB,aAAc,cAAc,EAC/J,MAAMC,EAAY,CAChB,WAAW,YAAa,OACtB,OAAO/N,GAAO,KAAM,aAAc,CAAC,GAACriC,EAAA,2BAAQ,aAAR,MAAAA,EAAA,YAAqB,gCAAgC,QAAO,CAClG,CACF,CACA,MAAMqwC,EAAa,CACjB,WAAW,wBAAyB,CAClC,MAAM/F,EAAU,SAAS,cAAc,MAAM,EAC7CA,EAAQ,UAAU,IAAI,UAAW,SAAS,EAC1C,KAAM,CACJ,MAAAgF,CACN,EAAQhF,EACJgF,EAAM,MAAQA,EAAM,OAAS,IAC7BA,EAAM,QAAU,OAChBA,EAAM,MAAQ,0BACd,SAAS,KAAK,OAAOhF,CAAO,EAC5B,KAAM,CACJ,MAAA+D,CACN,EAAQ,OAAO,iBAAiB/D,CAAO,EACnC,OAAAA,EAAQ,OAAM,EACPjI,GAAO,KAAM,yBAA0BkM,GAAOF,CAAK,CAAC,CAC7D,CACF,CACA,SAASiC,GAAajC,EAAOkC,EAAS,CACpCA,EAAU7H,GAAU6H,GAAW,EAAG,EAAG,CAAC,EACtC,MAAMC,EAAQ,KAAO,EAAID,GACzB,OAAOlC,EAAM,IAAI3pC,GAAK,KAAK,MAAMA,EAAI6rC,EAAUC,CAAK,CAAC,CACvD,CACA,SAASC,GAASC,EAAK7L,EAAQ,CAC7B,MAAMzkC,EAAIswC,EAAI,CAAC,EAAI,IACbzrC,EAAIyrC,EAAI,CAAC,EAAI,IACbvrC,EAAIurC,EAAI,CAAC,EAAI,IACb9H,EAAM,KAAK,IAAIxoC,EAAG6E,EAAGE,CAAC,EACtBwjC,EAAM,KAAK,IAAIvoC,EAAG6E,EAAGE,CAAC,EACtB3D,GAAKonC,EAAMD,GAAO,EACxB,GAAIC,IAAQD,EACV9D,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAI,MACnB,CACL,MAAM,EAAI+D,EAAMD,EAEhB,OADA9D,EAAO,CAAC,EAAIrjC,EAAI,GAAM,GAAKonC,EAAMD,GAAO,GAAK,EAAIC,EAAMD,GAC/CC,EAAG,CACT,KAAKxoC,EACHykC,EAAO,CAAC,IAAM5/B,EAAIE,GAAK,GAAKF,EAAIE,EAAI,EAAI,IAAM,GAC9C,MACF,KAAKF,EACH4/B,EAAO,CAAC,IAAM1/B,EAAI/E,GAAK,EAAI,GAAK,GAChC,MACF,KAAK+E,EACH0/B,EAAO,CAAC,IAAMzkC,EAAI6E,GAAK,EAAI,GAAK,GAChC,KACR,CACE,CACA4/B,EAAO,CAAC,EAAIrjC,CACd,CACA,SAASmvC,GAASC,EAAK/L,EAAQ,CAC7B,MAAM//B,EAAI8rC,EAAI,CAAC,EACT1wC,EAAI0wC,EAAI,CAAC,EACTpvC,EAAIovC,EAAI,CAAC,EACTlsC,GAAK,EAAI,KAAK,IAAI,EAAIlD,EAAI,CAAC,GAAKtB,EAChC+F,EAAIvB,GAAK,EAAI,KAAK,IAAII,EAAI,GAAK,EAAI,CAAC,GACpCpD,EAAIF,EAAIkD,EAAI,EAClB,OAAQ,KAAK,MAAMI,EAAI,EAAE,EAAC,CACxB,IAAK,GACH+/B,EAAO,CAAC,EAAIngC,EAAIhD,EAChBmjC,EAAO,CAAC,EAAI5+B,EAAIvE,EAChBmjC,EAAO,CAAC,EAAInjC,EACZ,MACF,IAAK,GACHmjC,EAAO,CAAC,EAAI5+B,EAAIvE,EAChBmjC,EAAO,CAAC,EAAIngC,EAAIhD,EAChBmjC,EAAO,CAAC,EAAInjC,EACZ,MACF,IAAK,GACHmjC,EAAO,CAAC,EAAInjC,EACZmjC,EAAO,CAAC,EAAIngC,EAAIhD,EAChBmjC,EAAO,CAAC,EAAI5+B,EAAIvE,EAChB,MACF,IAAK,GACHmjC,EAAO,CAAC,EAAInjC,EACZmjC,EAAO,CAAC,EAAI5+B,EAAIvE,EAChBmjC,EAAO,CAAC,EAAIngC,EAAIhD,EAChB,MACF,IAAK,GACHmjC,EAAO,CAAC,EAAI5+B,EAAIvE,EAChBmjC,EAAO,CAAC,EAAInjC,EACZmjC,EAAO,CAAC,EAAIngC,EAAIhD,EAChB,MACF,IAAK,GACL,IAAK,GACHmjC,EAAO,CAAC,EAAIngC,EAAIhD,EAChBmjC,EAAO,CAAC,EAAInjC,EACZmjC,EAAO,CAAC,EAAI5+B,EAAIvE,EAChB,KACN,CACA,CACA,SAASmvC,GAAiB5qC,EAAG,CAC3B,OAAOA,GAAK,OAAUA,EAAI,QAAUA,EAAI,MAAS,QAAU,GAC7D,CACA,SAAS+rB,GAAc8e,EAAMC,EAAMlM,EAAQ,CACzC8L,GAASG,EAAMjM,CAAM,EACrBA,EAAO,IAAIgM,EAAgB,EAC3B,MAAMG,EAAO,MAASnM,EAAO,CAAC,EAAI,MAASA,EAAO,CAAC,EAAI,MAASA,EAAO,CAAC,EACxE8L,GAASI,EAAMlM,CAAM,EACrBA,EAAO,IAAIgM,EAAgB,EAC3B,MAAMI,EAAO,MAASpM,EAAO,CAAC,EAAI,MAASA,EAAO,CAAC,EAAI,MAASA,EAAO,CAAC,EACxE,OAAOmM,EAAOC,GAAQD,EAAO,MAASC,EAAO,MAASA,EAAO,MAASD,EAAO,IAC/E,CACA,MAAME,GAAgB,IAAI,IAC1B,SAASC,GAAkBC,EAAWC,EAAY,CAChD,MAAMtrB,EAAMqrB,EAAU,CAAC,EAAIA,EAAU,CAAC,EAAI,IAAQA,EAAU,CAAC,EAAI,MAAUC,EAAW,CAAC,EAAI,SAAYA,EAAW,CAAC,EAAI,WAAcA,EAAW,CAAC,EAAI,cACrJ,IAAIC,EAAcJ,GAAc,IAAInrB,CAAG,EACvC,GAAIurB,EACF,OAAOA,EAET,MAAMC,EAAQ,IAAI,aAAa,CAAC,EAC1B1M,EAAS0M,EAAM,SAAS,EAAG,CAAC,EAC5BC,EAAUD,EAAM,SAAS,EAAG,CAAC,EACnCd,GAASW,EAAWI,CAAO,EAC3B,MAAMC,EAAWF,EAAM,SAAS,EAAG,CAAC,EACpCd,GAASY,EAAYI,CAAQ,EAC7B,MAAMC,EAAmBD,EAAS,CAAC,EAAI,GACjCE,EAAcD,EAAmB,GAAK,IAE5C,GADAF,EAAQ,CAAC,EAAIE,EAAmB,KAAK,KAAKF,EAAQ,CAAC,CAAC,EAAI,EAAI,KAAK,KAAK,EAAIA,EAAQ,CAAC,CAAC,EAChFxf,GAAcwf,EAASC,EAAU5M,CAAM,EAAI8M,EAAa,CAC1D,IAAIC,EAAOC,EACPH,GACFE,EAAQJ,EAAQ,CAAC,EACjBK,EAAM,IAEND,EAAQ,EACRC,EAAML,EAAQ,CAAC,GAEjB,MAAMM,EAAY,KAClB,KAAOD,EAAMD,EAAQE,GAAW,CAC9B,MAAMC,EAAMP,EAAQ,CAAC,GAAKI,EAAQC,GAAO,EACrCH,IAAqB1f,GAAcwf,EAASC,EAAU5M,CAAM,EAAI8M,EAClEC,EAAQG,EAERF,EAAME,CAEV,CACAP,EAAQ,CAAC,EAAIE,EAAmBG,EAAMD,CACxC,CACA,OAAAjB,GAASa,EAAS3M,CAAM,EACxByM,EAAcxN,GAAK,aAAa,KAAK,MAAMe,EAAO,CAAC,EAAI,GAAG,EAAG,KAAK,MAAMA,EAAO,CAAC,EAAI,GAAG,EAAG,KAAK,MAAMA,EAAO,CAAC,EAAI,GAAG,CAAC,EACrHqM,GAAc,IAAInrB,EAAKurB,CAAW,EAC3BA,CACT,CACA,SAASU,GAAe,CACtB,KAAA3Y,EACA,IAAA4Y,EACA,UAAAC,CACF,EAAGC,EAAW,CACZ,MAAMC,EAAW,SAAS,uBAAsB,EAChD,GAAI,OAAO/Y,GAAS,SAAU,CAC5B,MAAMx0B,EAAI,SAAS,cAAc,GAAG,EACpCA,EAAE,IAAMotC,GAAO,OACf,MAAMne,EAAQuF,EAAK,MAAM,UAAU,EACnC,QAAS/0B,EAAI,EAAG2Q,EAAK6e,EAAM,OAAQxvB,EAAI2Q,EAAI,EAAE3Q,EAAG,CAC9C,MAAMvB,EAAO+wB,EAAMxvB,CAAC,EACpBO,EAAE,OAAO,SAAS,eAAe9B,CAAI,CAAC,EAClCuB,EAAI2Q,EAAK,GACXpQ,EAAE,OAAO,SAAS,cAAc,IAAI,CAAC,CAEzC,CACAutC,EAAS,OAAOvtC,CAAC,CACnB,MACEwlC,GAAS,OAAO,CACd,QAAShR,EACT,IAAK+Y,EACL,OAAQ,UACd,CAAK,EAEHA,EAAS,kBAAkB,UAAU,IAAI,WAAYF,CAAS,EAC9DC,EAAU,OAAOC,CAAQ,CAC3B,CACA,SAASC,GAAoBrvC,EAAM,CACjC,MAAM8kB,EAAO,IAAI,OACjB,GAAI,CAAC9kB,EACH,OAAO8kB,EAET,QAASxjB,EAAI,EAAG2Q,EAAKjS,EAAK,OAAQsB,EAAI2Q,GACpC,OAAQjS,EAAKsB,GAAG,EAAC,CACf,KAAKy8B,GAAQ,OACXjZ,EAAK,OAAO9kB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,CAAC,EAChC,MACF,KAAKy8B,GAAQ,OACXjZ,EAAK,OAAO9kB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,CAAC,EAChC,MACF,KAAKy8B,GAAQ,QACXjZ,EAAK,cAAc9kB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,CAAC,EACnF,MACF,KAAKy8B,GAAQ,iBACXjZ,EAAK,iBAAiB9kB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,EAAGtB,EAAKsB,GAAG,CAAC,EAChE,MACF,KAAKy8B,GAAQ,UACXjZ,EAAK,UAAS,EACd,MACF,QACEwZ,GAAK,uCAAuCt+B,EAAKsB,EAAI,CAAC,CAAC,EAAE,EACzD,KACR,CAEE,OAAOwjB,CACT,CAIA,MAAMwqB,GAAN,MAAMA,EAAc,CAUlB,YAAYC,EAAQ,CAVtBhL,EAAA,KAAAiL,IACEjL,EAAA,KAAAkL,GAAW,MACXlL,EAAA,KAAAmL,GAAe,MACfnL,EAAA,KAAAoL,IACApL,EAAA,KAAAqL,GAAW,MACXrL,EAAA,KAAAsL,GAAW,MACXtL,EAAA,KAAAuL,GAAW,MACXvL,EAAA,KAAAwL,GAAwB,MACxBxL,EAAA,KAAAyL,GAA8B,MAG5BtF,EAAA,KAAKiF,GAAUJ,GACfnF,EAAAkF,GAAcW,KAAdvF,EAAA4E,GAAcW,GAAgB,OAAO,OAAO,CAC1C,SAAU,sCACV,UAAW,uCACX,IAAK,iCACL,MAAO,mCACP,UAAW,sCACjB,CAAK,EACH,CACA,QAAS,CACP,MAAMC,EAAcxF,EAAA,KAAK+E,GAAW,SAAS,cAAc,KAAK,GAChES,EAAY,UAAU,IAAI,cAAe,QAAQ,EACjDA,EAAY,aAAa,OAAQ,SAAS,EAC1C,MAAM9wC,EAASgrC,EAAA,KAAKuF,IAAQ,WAAW,QACnCvwC,aAAkB,aAAe,CAACA,EAAO,UAC3C8wC,EAAY,iBAAiB,cAAe5F,GAAe,CACzD,OAAAlrC,CACR,CAAO,EACD8wC,EAAY,iBAAiB,cAAelM,EAAAsL,GAAca,GAAAC,IAAc,CACtE,OAAAhxC,CACR,CAAO,GAEH,MAAMixC,EAAU3F,EAAA,KAAKkF,GAAW,SAAS,cAAc,KAAK,GAC5DS,EAAQ,UAAY,UACpBH,EAAY,OAAOG,CAAO,EAC1B,MAAM1tB,EAAWynB,EAAA,KAAKuF,IAAQ,gBAC9B,GAAIhtB,EAAU,CACZ,KAAM,CACJ,MAAA2pB,CACR,EAAU4D,EACEjtC,EAAImnC,EAAA,KAAKuF,IAAQ,WAAW,YAAc,MAAQ,EAAIhtB,EAAS,CAAC,EAAIA,EAAS,CAAC,EACpF2pB,EAAM,eAAiB,GAAG,IAAMrpC,CAAC,IACjCqpC,EAAM,IAAM,QAAQ,IAAM3pB,EAAS,CAAC,CAAC,wCACvC,CACA,OAAOutB,CACT,CACA,IAAI,KAAM,CACR,OAAO9F,EAAA,KAAKqF,GACd,CA8BA,MAAO,OACLrF,EAAA,KAAKqF,IAAS,UAAU,IAAI,QAAQ,GACpCzyC,EAAAotC,EAAA,KAAKsF,MAAL,MAAA1yC,EAAmB,cACrB,CACA,MAAO,SACLotC,EAAA,KAAKqF,IAAS,UAAU,OAAO,QAAQ,GACvCzyC,EAAAotC,EAAA,KAAKyF,MAAL,MAAA7yC,EAAe,SACfD,EAAAqtC,EAAA,KAAK0F,MAAL,MAAA/yC,EAAe,OACjB,CACA,iBAAkB,CAChB,KAAM,CACJ,WAAAuzC,EACA,WAAAC,CACN,EAAQnG,EAAA,KAAKuF,IACHa,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,UAAU,IAAI,QAAS,cAAc,EAC5CA,EAAO,SAAW,EAClBA,EAAO,aAAa,eAAgBpG,EAAAkF,GAAcW,IAAYK,CAAU,CAAC,EACrEtM,EAAA,KAAKwL,GAAAiB,IAAL,UAA4BD,IAC9BA,EAAO,iBAAiB,QAASpvC,GAAK,CACpCmvC,EAAW,OAAM,CACnB,EAAG,CACD,OAAQA,EAAW,OAC3B,CAAO,EAEHnG,EAAA,KAAKwF,IAAS,OAAOY,CAAM,CAC7B,CAMA,MAAM,WAAWE,EAAS,CACxB,MAAMF,EAAS,MAAME,EAAQ,OAAM,EACnC1M,EAAA,KAAKwL,GAAAiB,IAAL,UAA4BD,GAC5BpG,EAAA,KAAKwF,IAAS,OAAOY,EAAQpG,EAAA,KAAKoF,GAAAmB,GAAQ,EAC1CjG,EAAA,KAAKmF,GAAWa,EAClB,CACA,WAAWE,EAASC,EAAgB,KAAM,CACxC,GAAIzG,EAAA,KAAK0F,IACP,OAEF,MAAMU,EAASI,EAAQ,iBAAgB,EACvC,GAAI,CAACJ,EACH,OAEFxM,EAAA,KAAKwL,GAAAiB,IAAL,UAA4BD,GAC5B,MAAMM,EAAUpG,EAAA,KAAKqF,GAAwB3F,EAAA,KAAKoF,GAAAmB,KAC7CE,GAGHzG,EAAA,KAAKwF,IAAS,aAAaY,EAAQK,CAAa,EAChDzG,EAAA,KAAKwF,IAAS,aAAakB,EAASD,CAAa,GAHjDzG,EAAA,KAAKwF,IAAS,OAAOY,EAAQM,CAAO,EAKtCpG,EAAA,KAAKoF,GAAWc,GAChBA,EAAQ,QAAU,IACpB,CACA,eAAeG,EAAa,CAC1B,GAAI3G,EAAA,KAAKsF,IACP,OAEFhF,EAAA,KAAKgF,GAAeqB,GACpB,MAAMP,EAASO,EAAY,aAAY,EACvC/M,EAAA,KAAKwL,GAAAiB,IAAL,UAA4BD,GAC5BpG,EAAA,KAAKwF,IAAS,OAAOY,EAAQpG,EAAA,KAAKoF,GAAAmB,GAAQ,CAC5C,CACA,MAAM,uBAAuBK,EAAkB,CAC7C,MAAMR,EAAS9F,EAAA,KAAKsF,GAA8B,MAAMgB,EAAiB,iBAAiB5G,EAAA,KAAKuF,GAAO,GACtG3L,EAAA,KAAKwL,GAAAiB,IAAL,UAA4BD,GAC5BpG,EAAA,KAAKwF,IAAS,OAAOY,EAAQpG,EAAA,KAAKoF,GAAAmB,GAAQ,CAC5C,CACA,aAAajtB,EAAM,SACjB,OAAQA,EAAI,CACV,IAAK,WACH1mB,EAAAotC,EAAA,KAAK0F,MAAL,MAAA9yC,EAAe,6BACf0tC,EAAA,KAAKoF,GAAW,OAChB/yC,EAAAqtC,EAAA,KAAK2F,MAAL,MAAAhzC,EAA4B,SAC5B2tC,EAAA,KAAKqF,GAAwB,MAC7B,KACR,CACE,CACA,MAAM,UAAUrsB,EAAMutB,EAAM,CAC1B,OAAQvtB,EAAI,CACV,IAAK,cACCutB,GACF,KAAK,eAAeA,CAAI,EAE1B,MACF,IAAK,UACCA,GACF,MAAM,KAAK,WAAWA,CAAI,EAE5B,MACF,IAAK,gBACCA,GACF,MAAM,KAAK,uBAAuBA,CAAI,EAExC,MACF,IAAK,SACH,KAAK,gBAAe,EACpB,MACF,IAAK,UACCA,GACF,KAAK,WAAWA,CAAI,EAEtB,KACR,CACE,CACA,MAAM,gBAAgBvtB,EAAMutB,EAAMC,EAAgB,CAChD,GAAI,CAACD,GAAQvtB,IAAS,UACpB,OAEF,MAAMmtB,EAAgBzG,EAAA,KAAKwF,IAAS,cAAcsB,CAAc,EAC3DL,GAGDntB,IAAS,WACX,KAAK,WAAWutB,EAAMJ,CAAa,CAEvC,CACA,0BAA0BM,EAAa,CACjC/G,EAAA,KAAK4F,MACP5F,EAAA,KAAK4F,IAA4B,MAAQmB,EAE7C,CACA,QAAS,OACP/G,EAAA,KAAKqF,IAAS,OAAM,GACpBzyC,EAAAotC,EAAA,KAAKsF,MAAL,MAAA1yC,EAAmB,UACnB0tC,EAAA,KAAKgF,GAAe,KACtB,CACF,EAhNED,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACOC,GAAA,YATTE,GAAA,YAkDSC,GAAY,SAAChvC,EAAG,CACrBA,EAAE,gBAAe,CACnB,EApDFouC,GAAA,YAqDE4B,GAAQ,SAAChwC,EAAG,CACVgpC,EAAA,KAAKuF,IAAQ,oBAAsB,GACnCpF,GAAUnpC,CAAC,CACb,EACAiwC,GAAS,SAACjwC,EAAG,CACXgpC,EAAA,KAAKuF,IAAQ,oBAAsB,GACnCpF,GAAUnpC,CAAC,CACb,EACAqvC,GAAsB,SAACnJ,EAAS,CAC9B,MAAMloC,EAASgrC,EAAA,KAAKuF,IAAQ,WAAW,QACvC,MAAI,EAAEvwC,aAAkB,cAAgBA,EAAO,QACtC,IAETkoC,EAAQ,iBAAiB,UAAWtD,EAAA,KAAKwL,GAAA4B,IAAS,KAAK,IAAI,EAAG,CAC5D,QAAS,GACT,OAAAhyC,CACN,CAAK,EACDkoC,EAAQ,iBAAiB,WAAYtD,EAAA,KAAKwL,GAAA6B,IAAU,KAAK,IAAI,EAAG,CAC9D,QAAS,GACT,OAAAjyC,CACN,CAAK,EACDkoC,EAAQ,iBAAiB,cAAegD,GAAe,CACrD,OAAAlrC,CACN,CAAK,EACM,GACT,EA4BIuxC,GAAQ,UAAG,CACb,MAAMG,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAAA,EAAQ,UAAY,UACbA,CACT,EA9GFvM,EAAM+K,GAANa,IASE5L,EATI+K,GASGW,GAAc,MATvB,IAAMqB,GAANhC,GAkNA,MAAMiC,EAAgB,CAIpB,YAAYC,EAAW,CAJzBjN,EAAA,KAAAkN,IACElN,EAAA,KAAAqL,GAAW,MACXrL,EAAA,KAAAkL,GAAW,MACXlL,EAAA,KAAAgM,IAEE7F,EAAA,KAAK6F,GAAaiB,EACpB,CAgDA,KAAK9I,EAAQgJ,EAAOC,EAAO,CACzB,KAAM,CAAC1uC,EAAGf,CAAC,EAAI8hC,EAAA,KAAKyN,GAAAG,IAAL,UAAmBF,EAAOC,GACnC,CACJ,MAAArF,CACN,EAAQlC,EAAA,KAAKqF,KAAL/E,EAAA,KAAK+E,GAAazL,EAAA,KAAKyN,GAAAI,IAAL,YACtBnJ,EAAO,OAAO0B,EAAA,KAAKqF,GAAQ,EAC3BnD,EAAM,eAAiB,GAAG,IAAMrpC,CAAC,IACjCqpC,EAAM,IAAM,QAAQ,IAAMpqC,CAAC,wCAC7B,CACA,MAAO,CACLkoC,EAAA,KAAKqF,IAAS,OAAM,CACtB,CAqBF,CArFEG,GAAA,YACAH,GAAA,YACAc,GAAA,YAHFkB,GAAA,YAOEI,GAAO,UAAG,CACR,MAAM3B,EAAcxF,EAAA,KAAK+E,GAAW,SAAS,cAAc,KAAK,GAChES,EAAY,UAAY,cACxBA,EAAY,aAAa,OAAQ,SAAS,EAC1C,MAAM9wC,EAASgrC,EAAA,KAAKmG,IAAW,QAC3BnxC,aAAkB,aAAe,CAACA,EAAO,SAC3C8wC,EAAY,iBAAiB,cAAe5F,GAAe,CACzD,OAAAlrC,CACR,CAAO,EAEH,MAAMixC,EAAU3F,EAAA,KAAKkF,GAAW,SAAS,cAAc,KAAK,GAC5D,OAAAS,EAAQ,UAAY,UACpBH,EAAY,OAAOG,CAAO,EACtBjG,EAAA,KAAKmG,IAAW,qBAClBvM,EAAA,KAAKyN,GAAAK,IAAL,UAAiB,gBAAiB,gCAAiC,sCAAuC,IAAM,CAC9G1H,EAAA,KAAKmG,IAAW,iBAAiB,iBAAiB,CACpD,GAEFvM,EAAA,KAAKyN,GAAAK,IAAL,UAAiB,kBAAmB,mCAAoC,wCAAyC,IAAM,CACrH1H,EAAA,KAAKmG,IAAW,mBAAmB,iBAAiB,CACtD,GACOL,CACT,EACA0B,GAAa,SAACF,EAAOC,EAAO,CAC1B,IAAII,EAAQ,EACRC,EAAQ,EACZ,UAAWC,KAAOP,EAAO,CACvB,MAAMxvC,EAAI+vC,EAAI,EAAIA,EAAI,OACtB,GAAI/vC,EAAI6vC,EACN,SAEF,MAAM9uC,EAAIgvC,EAAI,GAAKN,EAAQM,EAAI,MAAQ,GACvC,GAAI/vC,EAAI6vC,EAAO,CACbC,EAAQ/uC,EACR8uC,EAAQ7vC,EACR,QACF,CACIyvC,EACE1uC,EAAI+uC,IACNA,EAAQ/uC,GAEDA,EAAI+uC,IACbA,EAAQ/uC,EAEZ,CACA,MAAO,CAAC0uC,EAAQ,EAAIK,EAAQA,EAAOD,CAAK,CAC1C,EAaAD,GAAW,SAACI,EAAaC,EAAQC,EAAaC,EAAc,CAC1D,MAAM7B,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,UAAU,IAAI,QAAS0B,CAAW,EACzC1B,EAAO,SAAW,EAClBA,EAAO,aAAa,eAAgB2B,CAAM,EAC1C,MAAMxG,EAAO,SAAS,cAAc,MAAM,EAC1C6E,EAAO,OAAO7E,CAAI,EAClBA,EAAK,UAAY,iBACjBA,EAAK,aAAa,eAAgByG,CAAW,EAC7C,MAAMhzC,EAASgrC,EAAA,KAAKmG,IAAW,QAC3BnxC,aAAkB,aAAe,CAACA,EAAO,UAC3CoxC,EAAO,iBAAiB,cAAelG,GAAe,CACpD,OAAAlrC,CACR,CAAO,EACDoxC,EAAO,iBAAiB,QAAS6B,EAAc,CAC7C,OAAAjzC,CACR,CAAO,GAEHgrC,EAAA,KAAKwF,IAAS,OAAOY,CAAM,CAC7B,EAKF,MAAM8B,GAAc,OAAO,OAAO,CAChC,SAFmB,sCAGrB,CAAC,EAOD,SAASC,GAAWjT,EAAKgI,EAASkL,EAAO,CACvC,UAAW9uB,KAAQ8uB,EACjBlL,EAAQ,iBAAiB5jB,EAAM4b,EAAI5b,CAAI,EAAE,KAAK4b,CAAG,CAAC,CAEtD,CACA,MAAMmT,GAAN,MAAMA,EAAgB,CAKpB,OAAO,0BAA0BC,EAAW,EACzCtI,EAAAqI,GAAgBE,KAAhBjI,EAAA+H,GAAgBE,GAAgB,IAAI,MAAO,IAAID,CAAS,CAC3D,CACA,OAAO,WAAWE,EAAaF,EAAW,CACxCtI,EAAAqI,GAAgBI,KAAhBnI,EAAA+H,GAAgBI,GAAeH,GAC/BtI,EAAAqI,GAAgBK,KAAhBpI,EAAA+H,GAAgBK,GAAiBF,EACnC,CACA,OAAO,aAAaG,EAAW,CAC7BrI,EAAA+H,GAAgBO,GAAiBD,EACnC,CACA,OAAO,gBAAgBL,EAAW,CAChC,OAAOtI,EAAAqI,GAAgBI,MAAeH,CACxC,CACA,OAAO,wBAAwBA,EAAW,OACxC,OAAItI,EAAAqI,GAAgBI,MAAeH,EAC1B,KAET11C,EAAAotC,EAAAqI,GAAgBE,MAAhB,MAAA31C,EAA6B,OAAO01C,GAC7B,GACT,CACA,OAAO,kBAAkBE,EAAa,CACpC,OAAOxI,EAAAqI,GAAgBK,MAAiBF,CAC1C,CACA,OAAO,qCAAqCA,EAAa,CACvD,OAAOxI,EAAAqI,GAAgBK,MAAiB,MAAQ,CAACL,GAAgB,kBAAkBG,CAAW,CAChG,CACA,OAAO,gBAAgBG,EAAW,CAChC,OAAO3I,EAAAqI,GAAgBO,MAAmBD,CAC5C,CACA,OAAO,yBAA0B,OAC/B,QAAO/1C,EAAAotC,EAAAqI,GAAgBE,MAAhB,YAAA31C,EAA6B,OAAQ,CAC9C,CACA,OAAO,kBAAmB,CACxB0tC,EAAA+H,GAAgBK,GAAe,KACjC,CACA,OAAO,iBAAkB,CACvBpI,EAAA+H,GAAgBI,GAAa,KAC7BnI,EAAA+H,GAAgBE,GAAc,KAChC,CACA,OAAO,gBAAiB,CACtBjI,EAAA+H,GAAgBO,GAAiB,IACnC,CACF,EA9CSH,GAAA,YACAF,GAAA,YACAK,GAAA,YACAF,GAAA,YAHPvO,EADIkO,GACGI,GAAa,KACpBtO,EAFIkO,GAEGE,GAAc,MACrBpO,EAHIkO,GAGGO,GAAiB,KACxBzO,EAJIkO,GAIGK,GAAe,MAJxB,IAAMG,GAANR,GAgDA,MAAMS,EAAU,CAAhB,cACE3O,EAAA,KAAA4O,GAAM,GACN,IAAI,IAAK,CACP,MAAO,GAAG9V,EAAsB,GAAG+V,GAAA,KAAKD,IAAL,GAAU,EAC/C,CACF,CAJEA,GAAA,YAKF,MAAME,GAAN,MAAMA,EAAa,CAAnB,cAAA9O,EAAA,KAAA+O,IACE/O,EAAA,KAAAgP,GAAU3O,GAAO,GACjBL,EAAA,KAAA4O,GAAM,GACN5O,EAAA,KAAAiP,GAAS,MACT,WAAW,qBAAsB,CAC/B,MAAMte,EAAM,uFAAuF+H,EAAM,yDAEnGnP,EADS,IAAI,gBAAgB,EAAG,CAAC,EACpB,WAAW,KAAM,CAClC,mBAAoB,EAC1B,CAAK,EACK2lB,EAAQ,IAAI,MAClBA,EAAM,IAAMve,EACZ,MAAMwe,EAAUD,EAAM,OAAM,EAAG,KAAK,KAClC3lB,EAAI,UAAU2lB,EAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACpC,IAAI,YAAY3lB,EAAI,aAAa,EAAG,EAAG,EAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC,IAAM,EACzE,EACD,OAAOuR,GAAO,KAAM,sBAAuBqU,CAAO,CACpD,CA2DA,MAAM,YAAYlhB,EAAM,CACtB,KAAM,CACJ,aAAAmhB,EACA,KAAAjwB,EACA,KAAAkwB,EACA,KAAAjyB,CACN,EAAQ6Q,EACJ,OAAOwR,EAAA,KAAKsP,GAAAO,IAAL,UAAU,GAAGF,CAAY,IAAIjwB,CAAI,IAAIkwB,CAAI,IAAIjyB,CAAI,GAAI6Q,EAC9D,CACA,MAAM,WAAWxzB,EAAK,CACpB,OAAOglC,EAAA,KAAKsP,GAAAO,IAAL,UAAU70C,EAAKA,EACxB,CACA,MAAM,YAAY6mB,EAAIiuB,EAAa,CACjC,MAAMC,EAAO,MAAMD,EACnB,OAAO9P,EAAA,KAAKsP,GAAAO,IAAL,UAAUhuB,EAAIkuB,EACvB,CACA,MAAM,UAAUluB,EAAI,CAClBukB,EAAA,KAAKoJ,KAAL9I,EAAA,KAAK8I,GAAW,IAAI,KACpB,MAAMxzC,EAAOoqC,EAAA,KAAKoJ,IAAO,IAAI3tB,CAAE,EAC/B,GAAI,CAAC7lB,EACH,OAAO,KAET,GAAIA,EAAK,OACP,OAAAA,EAAK,YAAc,EACZA,EAET,GAAIA,EAAK,KACP,OAAO,KAAK,YAAYA,EAAK,IAAI,EAEnC,GAAIA,EAAK,YAAa,CACpB,KAAM,CACJ,YAAA8zC,CACR,EAAU9zC,EACJ,cAAOA,EAAK,YACL,KAAK,YAAYA,EAAK,GAAI8zC,CAAW,CAC9C,CACA,OAAO,KAAK,WAAW9zC,EAAK,GAAG,CACjC,CACA,cAAc6lB,EAAImuB,EAAQ,CACxB5J,EAAA,KAAKoJ,KAAL9I,EAAA,KAAK8I,GAAW,IAAI,KACpB,IAAIxzC,EAAOoqC,EAAA,KAAKoJ,IAAO,IAAI3tB,CAAE,EAC7B,GAAI7lB,GAAA,MAAAA,EAAM,OACR,OAAAA,EAAK,YAAc,EACZA,EAET,MAAMi0C,EAAY,IAAI,gBAAgBD,EAAO,MAAOA,EAAO,MAAM,EAEjE,OADYC,EAAU,WAAW,IAAI,EACjC,UAAUD,EAAQ,EAAG,CAAC,EAC1Bh0C,EAAO,CACL,OAAQi0C,EAAU,sBAAqB,EACvC,GAAI,SAAS7J,EAAA,KAAKmJ,GAAO,IAAIH,GAAA,KAAKD,IAAL,GAAU,GACvC,WAAY,EACZ,MAAO,EACb,EACI/I,EAAA,KAAKoJ,IAAO,IAAI3tB,EAAI7lB,CAAI,EACxBoqC,EAAA,KAAKoJ,IAAO,IAAIxzC,EAAK,GAAIA,CAAI,EACtBA,CACT,CACA,UAAU6lB,EAAI,CACZ,MAAM7lB,EAAOoqC,EAAA,KAAKoJ,IAAO,IAAI3tB,CAAE,EAC/B,OAAK7lB,GAAA,MAAAA,EAAM,MAGJA,EAAK,OAFH,IAGX,CACA,SAAS6lB,EAAI,OACXukB,EAAA,KAAKoJ,KAAL9I,EAAA,KAAK8I,GAAW,IAAI,KACpB,MAAMxzC,EAAOoqC,EAAA,KAAKoJ,IAAO,IAAI3tB,CAAE,EAK/B,GAJI,CAAC7lB,IAGLA,EAAK,YAAc,EACfA,EAAK,aAAe,GACtB,OAEF,KAAM,CACJ,OAAAk0C,CACN,EAAQl0C,EACJ,GAAI,CAACA,EAAK,KAAO,CAACA,EAAK,KAAM,CAC3B,MAAMg0C,EAAS,IAAI,gBAAgBE,EAAO,MAAOA,EAAO,MAAM,EAClDF,EAAO,WAAW,gBAAgB,EAC1C,wBAAwBE,CAAM,EAClCl0C,EAAK,YAAcg0C,EAAO,cAAa,CACzC,EACAh3C,EAAAk3C,EAAO,QAAP,MAAAl3C,EAAA,KAAAk3C,GACAl0C,EAAK,OAAS,IAChB,CACA,UAAU6lB,EAAI,CACZ,OAAOA,EAAG,WAAW,SAASukB,EAAA,KAAKmJ,GAAO,GAAG,CAC/C,CACF,EArKEA,GAAA,YACAJ,GAAA,YACAK,GAAA,YAHFF,GAAA,YAkBQO,GAAI,eAAC9wB,EAAKoxB,EAAS,CACvB/J,EAAA,KAAKoJ,KAAL9I,EAAA,KAAK8I,GAAW,IAAI,KACpB,IAAIxzC,EAAOoqC,EAAA,KAAKoJ,IAAO,IAAIzwB,CAAG,EAC9B,GAAI/iB,IAAS,KACX,OAAO,KAET,GAAIA,GAAA,MAAAA,EAAM,OACR,OAAAA,EAAK,YAAc,EACZA,EAET,GAAI,CACFA,MAAS,CACP,OAAQ,KACR,GAAI,SAASoqC,EAAA,KAAKmJ,GAAO,IAAIH,GAAA,KAAKD,IAAL,GAAU,GACvC,WAAY,EACZ,MAAO,EACf,GACM,IAAIM,EASJ,GARI,OAAOU,GAAY,UACrBn0C,EAAK,IAAMm0C,EACXV,EAAQ,MAAMzK,GAAUmL,EAAS,MAAM,GAC9BA,aAAmB,KAC5BV,EAAQzzC,EAAK,KAAOm0C,EACXA,aAAmB,OAC5BV,EAAQU,GAENV,EAAM,OAAS,gBAAiB,CAClC,MAAMW,EAA+Bf,GAAa,oBAC5CgB,EAAa,IAAI,WACjBC,EAAe,IAAI,MACnBC,EAAe,IAAI,QAAQ,CAAC5wB,EAASC,IAAW,CACpD0wB,EAAa,OAAS,IAAM,CAC1Bt0C,EAAK,OAASs0C,EACdt0C,EAAK,MAAQ,GACb2jB,EAAO,CACT,EACA0wB,EAAW,OAAS,SAAY,CAC9B,MAAMr1C,EAAMgB,EAAK,OAASq0C,EAAW,OACrCC,EAAa,IAAO,MAAMF,EAAgC,GAAGp1C,CAAG,sCAAwCA,CAC1G,EACAs1C,EAAa,QAAUD,EAAW,QAAUzwB,CAC9C,CAAC,EACDywB,EAAW,cAAcZ,CAAK,EAC9B,MAAMc,CACR,MACEv0C,EAAK,OAAS,MAAM,kBAAkByzC,CAAK,EAE7CzzC,EAAK,WAAa,CACpB,OAASoB,EAAG,CACVk9B,GAAKl9B,CAAC,EACNpB,EAAO,IACT,CACA,OAAAoqC,EAAA,KAAKoJ,IAAO,IAAIzwB,EAAK/iB,CAAI,EACrBA,GACFoqC,EAAA,KAAKoJ,IAAO,IAAIxzC,EAAK,GAAIA,CAAI,EAExBA,CACT,EA3EF,IAAMw0C,GAANnB,GAuKA,MAAMoB,EAAe,CAKnB,YAAYC,EAAU,IAAK,CAJ3BnQ,EAAA,KAAAoQ,GAAY,CAAA,GACZpQ,EAAA,KAAAqQ,GAAU,IACVrQ,EAAA,KAAAsQ,IACAtQ,EAAA,KAAAuQ,GAAY,IAEVpK,EAAA,KAAKmK,GAAWH,EAClB,CACA,IAAI,CACF,IAAAK,EACA,KAAAC,EACA,KAAAC,EACA,SAAAC,EACA,KAAAvzB,EAAO,IACP,oBAAAwzB,EAAsB,GACtB,SAAAC,EAAW,EACf,EAAK,CAID,GAHIF,GACFH,EAAG,EAED3K,EAAA,KAAKwK,IACP,OAEF,MAAMS,EAAO,CACX,IAAAN,EACA,KAAAC,EACA,KAAAC,EACA,KAAAtzB,CACN,EACI,GAAIyoB,EAAA,KAAK0K,MAAc,GAAI,CACrB1K,EAAA,KAAKuK,IAAU,OAAS,IAC1BvK,EAAA,KAAKuK,IAAU,OAAS,GAE1BjK,EAAA,KAAKoK,GAAY,GACjB1K,EAAA,KAAKuK,IAAU,KAAKU,CAAI,EACxB,MACF,CACA,GAAIF,GAAuB/K,EAAA,KAAKuK,IAAUvK,EAAA,KAAK0K,GAAS,EAAE,OAASnzB,EAAM,CACnEyzB,IACFC,EAAK,KAAOjL,EAAA,KAAKuK,IAAUvK,EAAA,KAAK0K,GAAS,EAAE,MAE7C1K,EAAA,KAAKuK,IAAUvK,EAAA,KAAK0K,GAAS,EAAIO,EACjC,MACF,CACA,MAAM/2C,EAAO8rC,EAAA,KAAK0K,IAAY,EAC1Bx2C,IAAS8rC,EAAA,KAAKyK,IAChBzK,EAAA,KAAKuK,IAAU,OAAO,EAAG,CAAC,GAE1BjK,EAAA,KAAKoK,GAAYx2C,GACbA,EAAO8rC,EAAA,KAAKuK,IAAU,QACxBvK,EAAA,KAAKuK,IAAU,OAAOr2C,CAAI,GAG9B8rC,EAAA,KAAKuK,IAAU,KAAKU,CAAI,CAC1B,CACA,MAAO,CACL,GAAIjL,EAAA,KAAK0K,MAAc,GACrB,OAEFpK,EAAA,KAAKkK,GAAU,IACf,KAAM,CACJ,KAAAI,EACA,KAAAC,CACN,EAAQ7K,EAAA,KAAKuK,IAAUvK,EAAA,KAAK0K,GAAS,EACjCE,EAAI,EACJC,GAAA,MAAAA,IACAvK,EAAA,KAAKkK,GAAU,IACflK,EAAA,KAAKoK,GAAL1K,EAAA,KAAK0K,IAAa,EACpB,CACA,MAAO,CACL,GAAI1K,EAAA,KAAK0K,IAAY1K,EAAA,KAAKuK,IAAU,OAAS,EAAG,CAC9CjK,EAAA,KAAKoK,GAAL1K,EAAA,KAAK0K,IAAa,GAClBpK,EAAA,KAAKkK,GAAU,IACf,KAAM,CACJ,IAAAG,EACA,KAAAE,CACR,EAAU7K,EAAA,KAAKuK,IAAUvK,EAAA,KAAK0K,GAAS,EACjCC,EAAG,EACHE,GAAA,MAAAA,IACAvK,EAAA,KAAKkK,GAAU,GACjB,CACF,CACA,oBAAqB,CACnB,OAAOxK,EAAA,KAAK0K,MAAc,EAC5B,CACA,oBAAqB,CACnB,OAAO1K,EAAA,KAAK0K,IAAY1K,EAAA,KAAKuK,IAAU,OAAS,CAClD,CACA,UAAUhzB,EAAM,CACd,GAAIyoB,EAAA,KAAK0K,MAAc,GAGvB,SAASxzC,EAAI8oC,EAAA,KAAK0K,IAAWxzC,GAAK,EAAGA,IACnC,GAAI8oC,EAAA,KAAKuK,IAAUrzC,CAAC,EAAE,OAASqgB,EAAM,CACnCyoB,EAAA,KAAKuK,IAAU,OAAOrzC,EAAI,EAAG8oC,EAAA,KAAK0K,IAAYxzC,CAAC,EAC/CopC,EAAA,KAAKoK,GAAYxzC,GACjB,MACF,CAEF8oC,EAAA,KAAKuK,IAAU,OAAS,EACxBjK,EAAA,KAAKoK,GAAY,IACnB,CACA,SAAU,CACRpK,EAAA,KAAKiK,GAAY,KACnB,CACF,CAxGEA,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAsGF,MAAMQ,GAAN,MAAMA,EAAgB,CAKpB,YAAYC,EAAW,OACrB,KAAK,UAAY,IAAI,IACrB,KAAM,CACJ,MAAAC,CACN,EAAQ9U,GAAY,SAChB,SAAW,CAAC5d,EAAM2yB,EAAUp1C,EAAU,CAAA,CAAE,IAAKk1C,EAAW,CACtD,MAAMG,EAAiB5yB,EAAK,KAAKvgB,GAAKA,EAAE,WAAW,MAAM,CAAC,EAC1D,UAAWwgB,KAAOD,EAAM,CACtB,IAAI6yB,EAAW5yB,EACf,GAAI2yB,EAAgB,CAClB,MAAME,EAAW7yB,EAAI,WAAW,MAAM,EACtC,GAAIyyB,IAAUI,EACZ,SAEEA,IACFD,EAAW5yB,EAAI,MAAM,CAAC,EAE1B,CACA,KAAM,CAAC8yB,EAASC,CAAS,EAAI9R,EAAAhnC,EAAAs4C,GAAgBS,GAAAC,IAAhB,KAAAh5C,EAA+B24C,GACxDE,IAAY,MAGhB,KAAK,UAAU,oBAAoBA,EAASxQ,EAAO,EAAE,KAAK,CACxD,SAAAoQ,EACA,QAAAp1C,EACA,UAAAy1C,CACV,CAAS,CACH,CACF,CACF,CAiCA,KAAKG,EAAM/sB,EAAO,OAChB,IAAIgtB,EAAY,KAAK,UAAU,IAAIhtB,EAAM,GAAG,EAC5C,GAAI,CAACgtB,EAAW,CACd,GAAI,WAAW,KAAKhtB,EAAM,GAAG,EAC3B,OAEF,MAAMitB,EAAWnS,EAAAhnC,EAAAs4C,GAAgBS,GAAAK,IAAhB,KAAAp5C,EAA2BksB,EAAM,MAKlD,GAJIitB,IAAa,MAAQA,IAAajtB,EAAM,MAG5CgtB,EAAY,KAAK,UAAU,IAAIC,CAAQ,EACnC,CAACD,GACH,MAEJ,CACA,MAAMG,GAAkBntB,EAAM,OAASosB,GAAgB,IAAM,IAAMpsB,EAAM,QAAUosB,GAAgB,KAAO,IAAMpsB,EAAM,QAAUosB,GAAgB,KAAO,IAAMpsB,EAAM,SAAWosB,GAAgB,MAAQ,GAChMlX,EAAO8X,EAAU,KAAKP,GAAYA,EAAS,YAAcU,CAAc,EAC7E,GAAI,CAACjY,EACH,OAEF,KAAM,CACJ,SAAAqX,EACA,QAAS,CACP,QAAAa,EAAU,GACV,KAAAz1B,EAAO,CAAA,EACP,QAAA01B,EAAU,IAClB,CACA,EAAQnY,EACAmY,GAAW,CAACA,EAAQN,EAAM/sB,CAAK,IAGnCusB,EAAS,KAAKQ,EAAM,GAAGp1B,EAAMqI,CAAK,EAAC,EAC9BotB,GACH/L,GAAUrhB,CAAK,EAEnB,CACF,EAvGA6sB,GAAA,YAmCSC,GAAc,SAACr2C,EAAO,CAC3B,IAAI62C,EAAU,KACVV,EAAY,EAChB,QAASW,KAAQ92C,EAAM,MAAM,GAAG,EAAG,CAEjC,GADA82C,EAAOA,EAAK,KAAI,EACZ,CAACA,EACH,SAEF,MAAMC,EAAQD,EAAK,YAAW,EACxBE,EAAWrB,GAAgBoB,CAAK,EACtC,GAAIC,EAAU,CACZb,GAAaa,EACb,QACF,CACA,GAAIH,IAAY,KAAM,CACpBlY,GAAK,+CAA+C3+B,CAAK,GAAG,EAC5D,KACF,CACA62C,EAAUE,IAAU,QAAU,IAAMD,CACtC,CACA,OAAID,IAAY,MACdlY,GAAK,8CAA8C3+B,CAAK,GAAG,EAEtD,CAAC62C,EAASV,CAAS,CAC5B,EACOM,GAAU,SAACzW,EAAM,OACtB,MAAMlP,EAAQ,wCAAwC,KAAKkP,CAAI,EAC/D,OAAKlP,IAGEzzB,EAAAyzB,EAAM,CAAC,IAAP,YAAAzzB,EAAU,gBAAiByzB,EAAM,CAAC,EAFhC,IAGX,EAlEF8T,EAAM+Q,GAANS,IACExxB,GADI+wB,GACG,MAAM,GACb/wB,GAFI+wB,GAEG,OAAO,GACd/wB,GAHI+wB,GAGG,OAAO,GACd/wB,GAJI+wB,GAIG,QAAQ,GAJjB,IAAMsB,GAANtB,GAwGA,MAAMuB,GAAN,MAAMA,EAAa,CAEjB,IAAI,SAAU,CACZ,MAAMnL,EAAS,IAAI,IAAI,CAAC,CAAC,aAAc,IAAI,EAAG,CAAC,SAAU,IAAI,CAAC,CAAC,EAC/D,OAAAD,GAAeC,CAAM,EACdrM,GAAO,KAAM,UAAWqM,CAAM,CACvC,CACA,QAAQL,EAAO,CACb,MAAMqC,EAAMnC,GAAOF,CAAK,EACxB,GAAI,CAAC,OAAO,WAAW,yBAAyB,EAAE,QAChD,OAAOqC,EAET,SAAW,CAAChqB,EAAMozB,CAAG,IAAK,KAAK,QAC7B,GAAIA,EAAI,MAAM,CAAC7zC,EAAG3B,IAAM2B,IAAMyqC,EAAIpsC,CAAC,CAAC,EAClC,OAAOu1C,GAAa,eAAe,IAAInzB,CAAI,EAG/C,OAAOgqB,CACT,CACA,WAAWhqB,EAAM,CACf,MAAMgqB,EAAM,KAAK,QAAQ,IAAIhqB,CAAI,EACjC,OAAKgqB,EAGE5M,GAAK,aAAa,GAAG4M,CAAG,EAFtBhqB,CAGX,CACF,EAzBEa,GADIsyB,GACG,iBAAiB,IAAI,IAAI,CAAC,CAAC,aAAc,CAAC,EAAG,EAAG,CAAC,CAAC,EAAG,CAAC,SAAU,CAAC,IAAK,IAAK,GAAG,CAAC,CAAC,CAAC,GAD1F,IAAME,GAANF,GA2BA,MAAMG,GAAN,MAAMA,EAA0B,CAuH9B,YAAY7H,EAAW8H,EAAQC,EAAaC,EAAgBC,EAAgBpG,EAAkBqG,EAAUC,EAAaC,EAAYC,EAAiBC,EAA+BC,EAAuBC,EAAiCC,EAAWC,EAAeC,EAAqB,CAvH1RvT,EAAA,KAAAwT,IACExT,EAAA,KAAAyT,GAAmB,IAAI,iBACvBzT,EAAA,KAAA0T,GAAgB,MAChB1T,EAAA,KAAA2T,GAA0B,MAC1B3T,EAAA,KAAA4T,GAAc,IAAI,KAClB5T,EAAA,KAAA6T,GAAa,IAAI,KACjB7T,EAAA,KAAA8T,GAAkB,MAClB9T,EAAA,KAAA+T,GAAkB,MAClB/T,EAAA,KAAAgU,GAAqB,MACrBhU,EAAA,KAAAiU,GAA8B,MAC9BjU,EAAA,KAAAkU,GAAkB,IAAIhE,IACtBlQ,EAAA,KAAAmU,GAAkB,MAClBnU,EAAA,KAAAoU,GAAe,MACfpU,EAAA,KAAAqU,GAAyB,MACzBrU,EAAA,KAAAsU,GAAoB,GACpBtU,EAAA,KAAAuU,GAAgC,IAAI,KACpCvU,EAAA,KAAAwU,GAAmB,MACnBxU,EAAA,KAAAyU,GAAe,MACfzU,EAAA,KAAA0U,GAAoB,IAAI,KACxB10B,GAAA,sBAAiB,MACjBggB,EAAA,KAAA2U,GAAiC,IACjC3U,EAAA,KAAA4U,GAAyB,IACzB5U,EAAA,KAAA6U,GAAmC,IACnC7U,EAAA,KAAA8U,GAAiB,MACjB9U,EAAA,KAAA+U,GAA+B,MAC/B/U,EAAA,KAAAgV,GAAkB,MAClBhV,EAAA,KAAAiV,GAAmB,MACnBjV,EAAA,KAAAkV,GAAwB,IACxBlV,EAAA,KAAAmV,GAAmB,MACnBnV,EAAA,KAAAoV,GAAa,IAAIzG,IACjB3O,EAAA,KAAAqV,GAAa,IACbrV,EAAA,KAAAsV,GAAiB,IACjBtV,EAAA,KAAAuV,GAAa,IACbvV,EAAA,KAAAwV,GAAqB,MACrBxV,EAAA,KAAAyV,GAAqB,MACrBzV,EAAA,KAAA0V,GAA4B,MAC5B1V,EAAA,KAAA2V,GAAmB,MACnB3V,EAAA,KAAA4V,GAAa,MACb5V,EAAA,KAAA6V,GAAQ9c,GAAqB,MAC7BiH,EAAA,KAAA8V,GAAmB,IAAI,KACvB9V,EAAA,KAAA+V,GAAoB,MACpB/V,EAAA,KAAAgW,GAAoB,MACpBhW,EAAA,KAAAiW,GAAc,MACdjW,EAAA,KAAAkW,GAAiB,MACjBlW,EAAA,KAAAmW,GAAe,MACfnW,EAAA,KAAAoW,GAAkB,CAChB,UAAW,GACX,QAAS,GACT,mBAAoB,GACpB,mBAAoB,GACpB,kBAAmB,GACnB,gBAAiB,EACrB,GACEpW,EAAA,KAAAqW,GAAe,CAAC,EAAG,CAAC,GACpBrW,EAAA,KAAAsW,GAAwB,MACxBtW,EAAA,KAAAuW,GAAa,MACbvW,EAAA,KAAAwW,GAAU,MACVxW,EAAA,KAAAyW,GAAe,MACfzW,EAAA,KAAA0W,GAAwB,MA8DtB,MAAM77C,EAAS,KAAK,QAAUgrC,EAAA,KAAK4N,IAAiB,OACpDtN,EAAA,KAAKoQ,GAAa3L,GAClBzE,EAAA,KAAKqQ,GAAU9D,GACfvM,EAAA,KAAKsQ,GAAe9D,GACpBxM,EAAA,KAAK4N,GAAkBnB,GACvBzM,EAAA,KAAKgO,GAAkBtB,GACvB1M,EAAA,KAAK6P,GAAoBvJ,GACzBtG,EAAA,KAAKgQ,GAAepD,GACpB,KAAK,UAAYD,EACjB,MAAM6D,EAAU,CACd,OAAA97C,EACA,GAAGkzC,EACT,EACI+E,EAAS,GAAG,gBAAiB,KAAK,gBAAgB,KAAK,IAAI,EAAG6D,CAAO,EACrE7D,EAAS,GAAG,eAAgB,KAAK,eAAe,KAAK,IAAI,EAAG6D,CAAO,EACnE7D,EAAS,GAAG,gBAAiB,KAAK,gBAAgB,KAAK,IAAI,EAAG6D,CAAO,EACrE7D,EAAS,GAAG,mBAAoB,KAAK,mBAAmB,KAAK,IAAI,EAAG6D,CAAO,EAC3E7D,EAAS,GAAG,gBAAiB,KAAK,gBAAgB,KAAK,IAAI,EAAG6D,CAAO,EACrE7D,EAAS,GAAG,+BAAgC8D,GAAO,KAAK,aAAaA,EAAI,KAAMA,EAAI,KAAK,EAAGD,CAAO,EAClG,OAAO,iBAAiB,cAAe,IAAM,CAC3CxQ,EAAA,KAAKmP,GAAiB,GACxB,EAAG,CACD,QAAS,GACT,OAAAz6C,CACN,CAAK,EACD,OAAO,iBAAiB,YAAa,IAAM,CACzCsrC,EAAA,KAAKmP,GAAiB,GACxB,EAAG,CACD,QAAS,GACT,OAAAz6C,CACN,CAAK,EACD,OAAO,iBAAiB,eAAgB,KAAK,kBAAkB,KAAK,IAAI,EAAG,CACzE,QAAS,GACT,OAAAA,CACN,CAAK,EACD4kC,EAAA,KAAK+T,GAAAqD,IAAL,WACApX,EAAA,KAAK+T,GAAAsD,IAAL,WACArX,EAAA,KAAK+T,GAAAuD,IAAL,WACA5Q,EAAA,KAAK6N,GAAqBjB,EAAY,mBACtC5M,EAAA,KAAK2O,GAAiB/B,EAAY,eAClC5M,EAAA,KAAK8P,GAAcjD,GACnB7M,EAAA,KAAK8O,GAAmBhC,GAAmB,MAC3C9M,EAAA,KAAKwO,GAAiCzB,GACtC/M,EAAA,KAAKyO,GAAyBzB,GAC9BhN,EAAA,KAAK0O,GAAmCzB,GACxCjN,EAAA,KAAKyP,GAAavC,GAAa,MAC/B,KAAK,eAAiB,CACpB,UAAW7O,GAAc,iBACzB,SAAU,CAChB,EACI,KAAK,eAAiB,GACtB,KAAK,eAAiB8O,GAAiB,KACvC,KAAK,qBAAuBC,IAAwB,GACpDV,GAAA,MAAAA,EAAgB,oBAAoB,KACtC,CAjHA,WAAW,kBAAmB,CAC5B,MAAMmE,EAAQvE,GAA0B,UAClCwE,EAAevF,GAAQ7L,EAAA6L,EAAK6E,IAAW,SAAS,SAAS,aAAa,GAAK,SAAS,cAAc,UAAY,UAAY7E,EAAK,sBAAqB,EACpJwF,EAAmB,CAACC,EAAO,CAC/B,OAAQrtB,CACd,IAAU,CACJ,GAAIA,aAAc,iBAAkB,CAClC,KAAM,CACJ,KAAA1M,CACV,EAAY0M,EACJ,OAAO1M,IAAS,QAAUA,IAAS,QACrC,CACA,MAAO,EACT,EACMg6B,EAAQ,KAAK,gBACbC,EAAM,KAAK,cACjB,OAAOvc,GAAO,KAAM,mBAAoB,IAAIuX,GAAgB,CAAC,CAAC,CAAC,SAAU,YAAY,EAAG2E,EAAM,UAAW,CACvG,QAASE,CACf,CAAK,EAAG,CAAC,CAAC,SAAU,YAAY,EAAGF,EAAM,KAAM,CACzC,QAASE,CACf,CAAK,EAAG,CAAC,CAAC,SAAU,eAAgB,mBAAoB,eAAgB,kBAAkB,EAAGF,EAAM,KAAM,CACnG,QAASE,CACf,CAAK,EAAG,CAAC,CAAC,YAAa,gBAAiB,iBAAkB,kBAAmB,gBAAiB,oBAAqB,qBAAsB,SAAU,cAAe,eAAgB,YAAY,EAAGF,EAAM,OAAQ,CACzM,QAASE,CACf,CAAK,EAAG,CAAC,CAAC,OAAO,EAAGF,EAAM,yBAA0B,CAC9C,QAAS,CAACtF,EAAM,CACd,OAAQ5nB,CAChB,IAAY,EAAEA,aAAc,oBAAsB+b,EAAA6L,EAAK6E,IAAW,SAASzsB,CAAE,GAAK,CAAC4nB,EAAK,cACxF,CAAK,EAAG,CAAC,CAAC,OAAO,EAAGsF,EAAM,yBAA0B,CAC9C,QAAS,CAACtF,EAAM,CACd,OAAQ5nB,CAChB,IAAY,EAAEA,aAAc,oBAAsB+b,EAAA6L,EAAK6E,IAAW,SAAS,SAAS,aAAa,CACjG,CAAK,EAAG,CAAC,CAAC,QAAQ,EAAGS,EAAM,WAAW,EAAG,CAAC,CAAC,WAAW,EAAGA,EAAM,yBAA0B,CACnF,KAAM,CAAC,CAACI,EAAO,CAAC,EAChB,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,yBAA0B,CAC9E,KAAM,CAAC,CAACK,EAAK,CAAC,EACd,QAASJ,CACf,CAAK,EAAG,CAAC,CAAC,YAAY,EAAGD,EAAM,yBAA0B,CACnD,KAAM,CAACI,EAAO,CAAC,EACf,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,kBAAmB,sBAAsB,EAAGD,EAAM,yBAA0B,CAChF,KAAM,CAACK,EAAK,CAAC,EACb,QAASJ,CACf,CAAK,EAAG,CAAC,CAAC,SAAS,EAAGD,EAAM,yBAA0B,CAChD,KAAM,CAAC,EAAG,CAACI,CAAK,EAChB,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,eAAgB,mBAAmB,EAAGD,EAAM,yBAA0B,CAC1E,KAAM,CAAC,EAAG,CAACK,CAAG,EACd,QAASJ,CACf,CAAK,EAAG,CAAC,CAAC,WAAW,EAAGD,EAAM,yBAA0B,CAClD,KAAM,CAAC,EAAGI,CAAK,EACf,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,yBAA0B,CAC9E,KAAM,CAAC,EAAGK,CAAG,EACb,QAASJ,CACf,CAAK,CAAC,CAAC,CAAC,CACN,CAyDA,SAAU,wBACRx+C,EAAAotC,EAAA,KAAK6Q,MAAL,MAAAj+C,EAA4B,UAC5B0tC,EAAA,KAAKuQ,GAAwB,OAC7Bl+C,EAAAqtC,EAAA,KAAK4N,MAAL,MAAAj7C,EAAuB,QACvB2tC,EAAA,KAAKsN,GAAmB,MACxB,KAAK,QAAU,KACf,UAAW6D,KAASzR,EAAA,KAAKgO,IAAW,OAAM,EACxCyD,EAAM,QAAO,EAEfzR,EAAA,KAAKgO,IAAW,MAAK,EACrBhO,EAAA,KAAK+N,IAAY,MAAK,EACtB/N,EAAA,KAAK6O,IAAkB,MAAK,GAC5Bj5B,EAAAoqB,EAAA,KAAK8P,MAAL,MAAAl6B,EAAuB,QACvB0qB,EAAA,KAAKuN,GAAgB,MACrB7N,EAAA,KAAKiQ,IAAiB,MAAK,EAC3BjQ,EAAA,KAAKqO,IAAgB,QAAO,GAC5BvuB,EAAAkgB,EAAA,KAAKkO,MAAL,MAAApuB,EAAsB,WACtBtkB,EAAAwkC,EAAA,KAAKsO,MAAL,MAAA9yC,EAAsB,WACtBukB,EAAAigB,EAAA,KAAKmQ,MAAL,MAAApwB,EAAwB,WACxBE,EAAA+f,EAAA,KAAKsP,MAAL,MAAArvB,EAAuB,OACvBqgB,EAAA,KAAKgP,GAAmB,OACxBjvB,EAAA2f,EAAA,KAAK6P,MAAL,MAAAxvB,EAAgC,UAChCigB,EAAA,KAAKuP,GAA4B,MACjCvP,EAAA,KAAKwN,GAA0B,MAC3B9N,EAAA,KAAKkP,MACP,aAAalP,EAAA,KAAKkP,GAA4B,EAC9C5O,EAAA,KAAK4O,GAA+B,OAElClP,EAAA,KAAKyQ,MACP,aAAazQ,EAAA,KAAKyQ,GAAqB,EACvCnQ,EAAA,KAAKmQ,GAAwB,QAE/B5nC,EAAA,KAAK,iBAAL,MAAAA,EAAqB,UACrBy3B,EAAA,KAAKgQ,GAAe,KACtB,CACA,eAAex7B,EAAI,CACjB,OAAO,YAAY,IAAI,CAAC,KAAK,QAASA,EAAG,MAAM,CAAC,CAClD,CACA,IAAI,WAAY,CACd,OAAOkrB,EAAA,KAAK+P,GACd,CACA,IAAI,mBAAoB,CACtB,OAAO/P,EAAA,KAAK+O,GACd,CACA,IAAI,8BAA+B,CACjC,OAAO/O,EAAA,KAAKgP,GACd,CACA,IAAI,WAAY,CACd,OAAO/Z,GAAO,KAAM,YAAa+K,EAAA,KAAKoQ,IAAcpQ,EAAA,KAAKiP,IAAe,aAAajP,EAAA,KAAKoQ,IAAY,WAAYpQ,EAAA,KAAKoQ,IAAY,UAAU,EAAI,MAAM,CACzJ,CACA,IAAI,WAAY,CACd,OAAOnb,GAAO,KAAM,YAAa,iBAAiB+K,EAAA,KAAK0Q,GAAU,EAAE,SAAS,CAC9E,CACA,IAAI,kBAAmB,CACrB,OAAOzb,GAAO,KAAM,mBAAoB+K,EAAA,KAAKoP,IAAmB,IAAI,IAAIpP,EAAA,KAAKoP,IAAiB,MAAM,GAAG,EAAE,IAAIsC,IAC3GA,EAAOA,EAAK,MAAM,GAAG,EAAE,IAAI74C,GAAKA,EAAE,MAAM,EACxC64C,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAE,YAAW,EACtBA,EACR,CAAC,EAAI,IAAI,CACZ,CACA,IAAI,iBAAkB,CACpB,KAAM,CACJ,iBAAAtC,CACN,EAAQ,KACJ,GAAI,CAACA,EACH,OAAOna,GAAO,KAAM,kBAAmB,IAAI,EAE7C,MAAM0c,EAAM,IAAI,IACVC,EAAS,CAAC,CAAC5R,EAAA,KAAKoQ,IACtB,SAAW,CAAC92B,EAAM2nB,CAAK,IAAKmO,EAAkB,CAC5C,MAAMyC,EAAev4B,EAAK,SAAS,MAAM,EACzC,GAAIs4B,GAAUC,EAAc,CAC1BF,EAAI,IAAIr4B,EAAK,QAAQ,OAAQ,EAAE,EAAG2nB,CAAK,EACvC,QACF,CACI,CAAC2Q,GAAU,CAACC,GACdF,EAAI,IAAIr4B,EAAM2nB,CAAK,CAEvB,CACA,OAAOhM,GAAO,KAAM,kBAAmB0c,CAAG,CAC5C,CACA,IAAI,qBAAsB,CACxB,OAAO1c,GAAO,KAAM,sBAAuB,KAAK,gBAAkB,IAAI,IAAI,MAAM,KAAK,KAAK,gBAAiBj+B,GAAKA,EAAE,QAAO,CAAE,CAAC,EAAI,IAAI,CACtI,CACA,eAAeiqC,EAAO,CACpB,GAAI,CAAC,KAAK,iBACR,OAAOA,EAET,MAAM6Q,EAAY,KAAK,oBAAoB,IAAI7Q,CAAK,EACpD,OAAO,KAAK,iBAAiB,IAAI6Q,CAAS,GAAK7Q,CACjD,CACA,mBAAmBA,EAAO,CACxB,OAAO,KAAK,oBAAoB,IAAIA,CAAK,GAAKA,CAChD,CACA,yBAAyBwQ,EAAO,CAC1BA,GACF,KAAK,YAAW,EAChB,KAAK,kBAAkB,EAAI,GAE3B,KAAK,kBAAkB,EAAK,EAE9BnR,EAAA,KAAKkO,GAAyBiD,EAChC,CACA,4BAA4B9K,EAAa,CACvCrG,EAAA,KAAKuP,GAA4BlJ,EACnC,CACA,YAAYxB,EAAQ4M,EAAY,GAAO,QACrCn/C,EAAAotC,EAAA,KAAKkO,MAAL,MAAAt7C,EAAsB,YAAY,KAAMuyC,EAAQ4M,EAClD,CACA,mBAAoB,CAClB,MAAO,CAAC,CAAC/R,EAAA,KAAKsO,GAChB,CACA,YAAYnJ,EAAQ6M,EAAMC,EAAMh8C,EAAS,QACvCrD,EAAAotC,EAAA,KAAKsO,MAAL,MAAA17C,EAAsB,WAAW,KAAMuyC,EAAQ6M,EAAMC,EAAMh8C,EAC7D,CACA,cAAci8C,EAAWC,EAAK,CAC5B,MAAMV,EAAQzR,EAAA,KAAKgO,IAAW,IAAIkE,CAAS,EACrC/M,EAASsM,GAAA,YAAAA,EAAO,eAAeU,GACrChN,GAAA,MAAAA,EAAQ,cAAc,GAAM,GAC9B,CACA,cAAcA,EAAQ,QACpBvyC,EAAAotC,EAAA,KAAKsO,MAAL,MAAA17C,EAAsB,cAAcuyC,EAAO,QAAO,EACpD,CACA,iBAAiBA,EAAQ,QACvBvyC,EAAAotC,EAAA,KAAKsO,MAAL,MAAA17C,EAAsB,iBAAiBuyC,EACzC,CACA,cAAcA,EAAQ,QACpBvyC,EAAAotC,EAAA,KAAKsO,MAAL,MAAA17C,EAAsB,eAAe,CAACuyC,EAAO,GAAG,EAClD,CACA,cAAcA,EAAQiN,EAAW,CAC/B,MAAMxH,EAAO,IAAM,CACjBzF,EAAO,QAAUiN,CACnB,EACMzH,EAAM,IAAM,QAChB/3C,EAAA,KAAK,iBAAL,MAAAA,EAAqB,KAAKg4C,EAAM,WAChC,KAAK,cAAc,IAAI,EACvBzF,EAAO,QAAU,IACnB,EACA,KAAK,YAAY,CACf,IAAAwF,EACA,KAAAC,EACA,SAAU,EAChB,CAAK,CACH,CACA,cAAczF,EAAQkN,EAAYC,EAAa,OAAW,QACxD1/C,EAAAotC,EAAA,KAAKsO,MAAL,MAAA17C,EAAsB,mBAAmBuyC,EAAQkN,EAAYC,EAC/D,CACA,iBAAiBrR,EAAOkC,EAAS,OAC/B,OAAOlC,KAASruC,EAAAotC,EAAA,KAAKsO,MAAL,YAAA17C,EAAsB,iBAAiBquC,EAAOkC,KAAY,IAC5E,CACA,yBAA0B,OACxB,QAAOvwC,EAAAotC,EAAA,KAAKsO,MAAL,YAAA17C,EAAsB,gBAAiB,IAChD,CACA,MAAM,uBAAuB2/C,EAAY,CACvC,GAAIvS,EAAA,KAAKgO,IAAW,IAAIuE,EAAa,CAAC,EACpC,OAEF,KAAM,CACJ,QAAAh5B,EACA,QAAA+vB,CACN,EAAQ,QAAQ,cAAa,EACnBkJ,EAAoBzB,GAAO,CAC3BA,EAAI,aAAewB,IACrB,KAAK,UAAU,IAAI,kBAAmBC,CAAiB,EACvDj5B,EAAO,EAEX,EACA,KAAK,UAAU,GAAG,kBAAmBi5B,EAAmBtK,EAAW,EACnE,MAAMoB,CACR,CACA,aAAanE,EAAQ,QACnBvyC,EAAAotC,EAAA,KAAKmQ,MAAL,MAAAv9C,EAAwB,aAAa,CACnC,UAAW,KACX,OAAAuyC,CACN,EACE,CACA,IAAI,kBAAmB,CACrB,OAAOnF,EAAA,KAAKmQ,GACd,CACA,aAAasC,EAAMpH,EAAU,CAC3B,KAAK,UAAU,GAAG,8BAA+BA,EAAU,CACzD,KAAM,GACN,OAAQ,KAAK,QACb,GAAGnD,EACT,CAAK,EACD,KAAK,UAAU,SAAS,yBAA0B,CAChD,OAAQ,KACR,KAAAuK,CACN,CAAK,CACH,CACA,cAAcn5B,EAAM/jB,EAAO,CACzB,KAAK,UAAU,SAAS,gBAAiB,CACvC,OAAQ,KACR,KAAA+jB,EACA,MAAA/jB,CACN,CAAK,CACH,CACA,gBAAgB,CACd,KAAA+jB,EACA,MAAA/jB,CACJ,EAAK,CACD,OAAQ+jB,EAAI,CACV,IAAK,kCACHgnB,EAAA,KAAK0O,GAAmCz5C,GACxC,KACR,CACE,CACA,eAAe,CACb,WAAAg9C,CACJ,EAAK,CACDjS,EAAA,KAAKmO,GAAoB8D,EAAa,EACxC,CACA,WAAW92B,EAAI,CACb,UAAW0pB,KAAU,KAAK,WAAW1pB,CAAE,EACrC0pB,EAAO,OAAM,EAEfnF,EAAA,KAAKgO,IAAW,OAAOvyB,CAAE,EACrBukB,EAAA,KAAKyO,MAAsBhzB,GAC7B6kB,EAAA,KAAKmO,GAAoB,EAE7B,CACA,oBAAqB,CACnBzO,EAAA,KAAK0Q,IAAW,MAAK,CACvB,CACA,WAAW73C,EAAGf,EAAG,CACf,UAAW25C,KAASzR,EAAA,KAAKgO,IAAW,OAAM,EAAI,CAC5C,KAAM,CACJ,EAAG0E,EACH,EAAGC,EACH,MAAAnW,EACA,OAAAC,CACR,EAAUgV,EAAM,IAAI,sBAAqB,EACnC,GAAI54C,GAAK65C,GAAU75C,GAAK65C,EAASlW,GAAS1kC,GAAK66C,GAAU76C,GAAK66C,EAASlW,EACrE,OAAOgV,CAEX,CACA,OAAO,IACT,CACA,kBAAkBl8C,EAAQ,GAAO,CAC/ByqC,EAAA,KAAK2Q,IAAQ,UAAU,OAAO,eAAgBp7C,CAAK,CACrD,CACA,iBAAiB4vC,EAAQ,CACvBnF,EAAA,KAAK6O,IAAkB,IAAI1J,CAAM,CACnC,CACA,oBAAoBA,EAAQ,CAC1BnF,EAAA,KAAK6O,IAAkB,OAAO1J,CAAM,CACtC,CACA,gBAAgB,CACd,MAAAtY,CACJ,EAAK,OACD,KAAK,eAAc,EACnB,KAAK,eAAe,UAAYA,EAAQ8R,GAAc,iBACtD,UAAWwG,KAAUnF,EAAA,KAAK6O,IACxB1J,EAAO,gBAAe,GAExBvyC,EAAAotC,EAAA,KAAKwO,MAAL,MAAA57C,EAA6B,iBAC/B,CACA,mBAAmB,CACjB,cAAAggD,CACJ,EAAK,CACD,KAAK,eAAc,EACnB,KAAK,eAAe,SAAWA,CACjC,CAoBA,mBAAmBC,EAAmB,GAAIrM,EAAU,GAAO,CACzD,MAAMsM,EAAY,SAAS,aAAY,EACvC,GAAI,CAACA,GAAaA,EAAU,YAC1B,OAEF,KAAM,CACJ,WAAAC,EACA,aAAAC,EACA,UAAAC,EACA,YAAAC,CACN,EAAQJ,EACEn8C,EAAOm8C,EAAU,SAAQ,EAEzBK,EADgBvZ,EAAA,KAAK+T,GAAAyF,IAAL,UAAmCN,GACzB,QAAQ,YAAY,EAC9CxL,EAAQ,KAAK,kBAAkB6L,CAAS,EAC9C,GAAI,CAAC7L,EACH,OAEFwL,EAAU,MAAK,EACf,MAAMrB,EAAQ7X,EAAA,KAAK+T,GAAA0F,IAAL,UAA2BF,GACnCG,EAAatT,EAAA,KAAKgQ,MAAU9c,GAAqB,KACjDmY,EAAW,IAAM,CACrB,MAAMlG,EAASsM,GAAA,YAAAA,EAAO,sBAAsB,CAC1C,EAAG,EACH,EAAG,CACX,EAAS,GAAO,CACR,iBAAAoB,EACA,MAAAvL,EACA,WAAAyL,EACA,aAAAC,EACA,UAAAC,EACA,YAAAC,EACA,KAAAv8C,CACR,GACU28C,GACF,KAAK,eAAe,YAAa,GAAM,EAAI,EAEzC9M,IACFrB,GAAA,MAAAA,EAAQ,cAEZ,EACA,GAAImO,EAAY,CACd,KAAK,aAAapgB,GAAqB,UAAWmY,CAAQ,EAC1D,MACF,CACAA,EAAQ,CACV,CACA,iBAAiBwH,EAAmB,GAAI,CACtC,KAAK,mBAAmBA,EAAkB,EAAI,CAChD,CACA,mBAAoB,OAClB,KAAK,eAAc,GACnBjgD,EAAA,KAAK,eAAL,MAAAA,EAAmB,kBAAkB,GACvC,CAeA,sCAAsC2gD,EAAc,CAClD,GAAI,CAACvT,EAAA,KAAKmO,IACR,OAAO,KAET,MAAMx1B,EAAM,GAAGsa,EAAsB,GAAGsgB,CAAY,GAC9CC,EAAcxT,EAAA,KAAKmO,IAAmB,YAAYx1B,CAAG,EAC3D,OAAI66B,GACFxT,EAAA,KAAKmO,IAAmB,OAAOx1B,CAAG,EAE7B66B,CACT,CACA,uBAAuBrO,EAAQ,CACzB,CAACA,EAAO,QAAO,GAAMnF,EAAA,KAAKmO,KAAsB,CAACnO,EAAA,KAAKmO,IAAmB,IAAIhJ,EAAO,EAAE,GACxFnF,EAAA,KAAKmO,IAAmB,SAAShJ,EAAO,GAAIA,CAAM,CAEtD,CACA,UAAUsO,EAAWh9B,EAAO,KAAM,CAChC,MAAMq2B,EAAc9M,EAAA,KAAK4Q,IACpB9D,IAGLA,EAAY,aAAa,eAAgB2G,CAAS,EAC9Ch9B,EACFq2B,EAAY,aAAa,iBAAkB,KAAK,UAAUr2B,CAAI,CAAC,EAE/Dq2B,EAAY,gBAAgB,gBAAgB,EAEhD,CAoGA,MAAO,CAML,GALA,KAAK,eAAiB,GAClB9M,EAAA,KAAKqP,MACP/O,EAAA,KAAK+O,GAAwB,IAC7BzV,EAAA,KAAK+T,GAAA+F,IAAL,UAAkB,iBAEhB,CAAC,KAAK,aACR,OAEF,KAAM,CACJ,cAAAC,CACN,EAAQ,SACJ,UAAWxO,KAAUnF,EAAA,KAAKiQ,IACxB,GAAI9K,EAAO,IAAI,SAASwO,CAAa,EAAG,CACtCrT,EAAA,KAAKsP,GAAqB,CAACzK,EAAQwO,CAAa,GAChDxO,EAAO,oBAAsB,GAC7B,KACF,CAEJ,CACA,OAAQ,CACN,GAAI,CAACnF,EAAA,KAAK4P,IACR,OAEF,KAAM,CAACgE,EAAYC,CAAiB,EAAI7T,EAAA,KAAK4P,IAC7CtP,EAAA,KAAKsP,GAAqB,MAC1BiE,EAAkB,iBAAiB,UAAW,IAAM,CAClDD,EAAW,oBAAsB,EACnC,EAAG,CACD,KAAM,GACN,OAAQ,KAAK,OACnB,CAAK,EACDC,EAAkB,MAAK,CACzB,CA+CA,kBAAmB,CACjBja,EAAA,KAAK+T,GAAAuD,IAAL,WACA,KAAK,gBAAgB,EAAI,CAC3B,CACA,qBAAsB,CACpBtX,EAAA,KAAK+T,GAAAmG,IAAL,WACA,KAAK,gBAAgB,EAAK,CAC5B,CACA,SAASh1B,EAAO,CACd,SAAW,CACT,KAAAvH,CACN,IAASuH,EAAM,aAAa,MACtB,UAAWonB,KAAclG,EAAA,KAAK4O,IAC5B,GAAI1I,EAAW,yBAAyB3uB,CAAI,EAAG,CAC7CuH,EAAM,aAAa,WAAa,OAChCA,EAAM,eAAc,EACpB,MACF,CAGN,CACA,KAAKA,EAAO,CACV,UAAWoL,KAAQpL,EAAM,aAAa,MACpC,UAAWonB,KAAclG,EAAA,KAAK4O,IAC5B,GAAI1I,EAAW,yBAAyBhc,EAAK,IAAI,EAAG,CAClDgc,EAAW,MAAMhc,EAAM,KAAK,YAAY,EACxCpL,EAAM,eAAc,EACpB,MACF,CAGN,CACA,KAAKA,EAAO,OAGV,GAFAA,EAAM,eAAc,GACpBlsB,EAAAotC,EAAA,KAAK6N,MAAL,MAAAj7C,EAAoB,iBAChB,CAAC,KAAK,aACR,OAEF,MAAMmhD,EAAU,CAAA,EAChB,UAAW5O,KAAUnF,EAAA,KAAKiQ,IAAkB,CAC1C,MAAMjyB,EAAamnB,EAAO,UAAU,EAAI,EACpCnnB,GACF+1B,EAAQ,KAAK/1B,CAAU,CAE3B,CACI+1B,EAAQ,SAAW,GAGvBj1B,EAAM,cAAc,QAAQ,oBAAqB,KAAK,UAAUi1B,CAAO,CAAC,CAC1E,CACA,IAAIj1B,EAAO,CACT,KAAK,KAAKA,CAAK,EACf,KAAK,OAAM,CACb,CACA,MAAM,MAAMA,EAAO,CACjBA,EAAM,eAAc,EACpB,KAAM,CACJ,cAAAk1B,CACN,EAAQl1B,EACJ,UAAWoL,KAAQ8pB,EAAc,MAC/B,UAAW9N,KAAclG,EAAA,KAAK4O,IAC5B,GAAI1I,EAAW,yBAAyBhc,EAAK,IAAI,EAAG,CAClDgc,EAAW,MAAMhc,EAAM,KAAK,YAAY,EACxC,MACF,CAGJ,IAAIt0B,EAAOo+C,EAAc,QAAQ,mBAAmB,EACpD,GAAI,CAACp+C,EACH,OAEF,GAAI,CACFA,EAAO,KAAK,MAAMA,CAAI,CACxB,OAASq+C,EAAI,CACX/f,GAAK,WAAW+f,EAAG,OAAO,IAAI,EAC9B,MACF,CACA,GAAI,CAAC,MAAM,QAAQr+C,CAAI,EACrB,OAEF,KAAK,YAAW,EAChB,MAAM67C,EAAQ,KAAK,aACnB,GAAI,CACF,MAAMyC,EAAa,CAAA,EACnB,UAAW/O,KAAUvvC,EAAM,CACzB,MAAMu+C,EAAqB,MAAM1C,EAAM,YAAYtM,CAAM,EACzD,GAAI,CAACgP,EACH,OAEFD,EAAW,KAAKC,CAAkB,CACpC,CACA,MAAMxJ,EAAM,IAAM,CAChB,UAAWxF,KAAU+O,EACnBta,EAAA,KAAK+T,GAAAyG,IAAL,UAAuBjP,GAEzBvL,EAAA,KAAK+T,GAAA0G,IAAL,UAAoBH,EACtB,EACMtJ,EAAO,IAAM,CACjB,UAAWzF,KAAU+O,EACnB/O,EAAO,OAAM,CAEjB,EACA,KAAK,YAAY,CACf,IAAAwF,EACA,KAAAC,EACA,SAAU,EAClB,CAAO,CACH,OAASqJ,EAAI,CACX/f,GAAK,WAAW+f,EAAG,OAAO,IAAI,CAChC,CACF,CACA,QAAQn1B,EAAO,CACT,CAAC,KAAK,gBAAkBA,EAAM,MAAQ,UACxC,KAAK,eAAiB,IAEpBkhB,EAAA,KAAKgQ,MAAU9c,GAAqB,MAAQ,CAAC,KAAK,0BACpD0Z,GAA0B,iBAAiB,KAAK,KAAM9tB,CAAK,CAE/D,CACA,MAAMA,EAAO,CACP,KAAK,gBAAkBA,EAAM,MAAQ,UACvC,KAAK,eAAiB,GAClBkhB,EAAA,KAAKqP,MACP/O,EAAA,KAAK+O,GAAwB,IAC7BzV,EAAA,KAAK+T,GAAA+F,IAAL,UAAkB,iBAGxB,CACA,gBAAgB,CACd,KAAAp6B,CACJ,EAAK,CACD,OAAQA,EAAI,CACV,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,YACH,KAAKA,CAAI,EAAC,EACV,MACF,IAAK,qBACH,KAAK,mBAAmB,cAAc,EACtC,MACF,IAAK,mBACH,KAAK,iBAAiB,cAAc,EACpC,KACR,CACE,CACA,gBAAgBg7B,EAAcC,EAAc,CAC1C,UAAWpP,KAAU,KAAK,WAAWmP,CAAY,EAC/CnP,EAAO,UAAYoP,EAErB,MAAM9C,EAAQzR,EAAA,KAAKiO,IAAgB,IAAIqG,CAAY,EAC/C7C,IACFA,EAAM,UAAY8C,EAClBvU,EAAA,KAAKgO,IAAW,IAAIuG,EAAc9C,CAAK,EACnCzR,EAAA,KAAKwP,IACPiC,EAAM,OAAM,EAEZA,EAAM,QAAO,EAGnB,CACA,kBAAmB,CACjBnR,EAAA,KAAK2N,GAAkB,IAAI,IAAIjO,EAAA,KAAKgO,GAAU,GAC9ChO,EAAA,KAAKgO,IAAW,MAAK,CACvB,CACA,gBAAiB,CACf1N,EAAA,KAAK2N,GAAkB,KACzB,CACA,UAAUiE,EAAWqC,EAAc,CACjC,UAAWpP,KAAU,KAAK,WAAW+M,CAAS,EAAG,CAC/C,MAAMl0B,EAAamnB,EAAO,UAAUA,EAAO,OAASjS,GAAqB,SAAS,EAC7ElV,IAGLA,EAAW,UAAYu2B,EACvBv2B,EAAW,GAAK,KAAK,MAAK,EAC1BA,EAAW,QAAU,GACrB,OAAOA,EAAW,SAClBgiB,EAAA,KAAKmO,IAAmB,SAASnwB,EAAW,GAAIA,CAAU,EAC5D,CACF,CACA,kBAAkByzB,EAAO,CACvB,MAAM+C,EAAW,CAAA,EACX,CACJ,UAAAtC,CACN,EAAQT,EACJ,SAAW,CAACh2B,EAAI0pB,CAAM,IAAKnF,EAAA,KAAKmO,IAC1BhJ,EAAO,YAAc+M,GAAa/M,EAAO,UAC3CnF,EAAA,KAAKmO,IAAmB,OAAO1yB,CAAE,EACjC+4B,EAAS,KAAK/C,EAAM,YAAYtM,CAAM,EAAE,KAAKgP,GAAsB,CAC7DA,IACFA,EAAmB,QAAU,GAC7B1C,EAAM,aAAa0C,CAAkB,EAEzC,CAAC,CAAC,GAGN,OAAO,QAAQ,IAAIK,CAAQ,CAC7B,CAmBA,gBAAgBC,EAAW,CACrBA,GACF7a,EAAA,KAAK+T,GAAA+G,IAAL,WACA9a,EAAA,KAAK+T,GAAAgH,IAAL,WACA/a,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,UAAW5U,EAAA,KAAKgQ,MAAU9c,GAAqB,KAC/C,QAAS0G,EAAA,KAAK+T,GAAAkH,IAAL,WACT,mBAAoB7U,EAAA,KAAKqO,IAAgB,mBAAkB,EAC3D,mBAAoBrO,EAAA,KAAKqO,IAAgB,mBAAkB,EAC3D,kBAAmB,EAC3B,KAEMzU,EAAA,KAAK+T,GAAAmH,IAAL,WACAlb,EAAA,KAAK+T,GAAAoH,IAAL,WACAnb,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,UAAW,EACnB,GACM,KAAK,kBAAkB,EAAK,EAEhC,CACA,oBAAoBI,EAAO,CACzB,GAAI,CAAAhV,EAAA,KAAK4O,IAGT,CAAAtO,EAAA,KAAKsO,GAAeoG,GACpB,UAAW9O,KAAclG,EAAA,KAAK4O,IAC5BhV,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB/O,EAAW,2BAEtC,CACA,OAAQ,CACN,OAAOlG,EAAA,KAAKuP,IAAW,EACzB,CACA,IAAI,cAAe,CACjB,OAAOvP,EAAA,KAAKgO,IAAW,IAAIhO,EAAA,KAAKyO,GAAiB,CACnD,CACA,SAASyD,EAAW,CAClB,OAAOlS,EAAA,KAAKgO,IAAW,IAAIkE,CAAS,CACtC,CACA,IAAI,kBAAmB,CACrB,OAAOlS,EAAA,KAAKyO,GACd,CACA,SAASgD,EAAO,CACdzR,EAAA,KAAKgO,IAAW,IAAIyD,EAAM,UAAWA,CAAK,EACtCzR,EAAA,KAAKwP,IACPiC,EAAM,OAAM,EAEZA,EAAM,QAAO,CAEjB,CACA,YAAYA,EAAO,CACjBzR,EAAA,KAAKgO,IAAW,OAAOyD,EAAM,SAAS,CACxC,CACA,MAAM,WAAWgB,EAAMyC,EAAS,KAAMC,EAAa,GAAOC,EAAiB,GAAOC,EAAsB,GAAOC,EAAc,GAAO,iBAClI,GAAItV,EAAA,KAAKgQ,MAAUyC,GAGf,EAAAzS,EAAA,KAAK6Q,MACP,MAAM7Q,EAAA,KAAK6Q,IAAsB,QAC7B,CAAC7Q,EAAA,KAAK6Q,MAWZ,IAPAvQ,EAAA,KAAKuQ,GAAwB,QAAQ,cAAa,IAClDj+C,EAAAotC,EAAA,KAAKwO,MAAL,MAAA57C,EAA6B,iBACzBotC,EAAA,KAAKgQ,MAAU9c,GAAqB,SACtCvgC,EAAAqtC,EAAA,KAAKsO,MAAL,MAAA37C,EAAsB,gBAExBijB,EAAAoqB,EAAA,KAAKsO,MAAL,MAAA14B,EAAsB,eACtB0qB,EAAA,KAAK0P,GAAQyC,GACTA,IAASvf,GAAqB,KAAM,CACtC,KAAK,gBAAgB,EAAK,EAC1B0G,EAAA,KAAK+T,GAAA4H,IAAL,WACA,UAAWpQ,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EAC1C5I,EAAO,4BAA2B,GAEpCrlB,EAAA,KAAK,iBAAL,MAAAA,EAAqB,OACrB,KAAK,cAAc,IAAI,EACvBkgB,EAAA,KAAK6Q,IAAsB,QAAO,EAClC,MACF,CACA,UAAW1L,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EAC1C5I,EAAO,2BAA0B,EAE/BsN,IAASvf,GAAqB,WAChC,OAAM13B,EAAAwkC,EAAA,KAAKmQ,MAAL,YAAA30C,EAAwB,kBAE5B25C,GACFtM,GAAgB,iBAAgB,EAElC,KAAK,gBAAgB,EAAI,EACzB,MAAMjP,EAAA,KAAK+T,GAAA6H,IAAL,WACN,KAAK,YAAW,EAChB,UAAW/D,KAASzR,EAAA,KAAKgO,IAAW,OAAM,EACxCyD,EAAM,WAAWgB,CAAI,EAEvB,GAAIA,IAASvf,GAAqB,MAAO,CACvC8M,EAAA,KAAK8N,KAALxN,EAAA,KAAKwN,GAA4B,MAAM9N,EAAA,KAAKsQ,IAAa,qBAAqB,IAAI,IAAItQ,EAAA,KAAK4O,IAAa,IAAI6G,GAAeA,EAAY,WAAW,CAAC,CAAC,GACpJ,MAAMC,EAAa,IAAI,IACjBC,EAAc,CAAA,EACpB,UAAWxQ,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EAAI,CAC9C,KAAM,CACJ,oBAAA6H,EACA,WAAAC,EACA,QAAAC,CACV,EAAY3Q,EACAyQ,GACFF,EAAW,IAAIE,CAAmB,EAEhCC,GAAc,CAACC,GACjBH,EAAY,KAAKxQ,EAAO,SAAS,CAErC,CACA,UAAW4Q,KAAc/V,EAAA,KAAK8N,IAAyB,CACrD,KAAM,CACJ,GAAAryB,EACA,SAAAu6B,EACA,YAAAC,CACV,EAAYF,EACAC,IAAYC,GAAA,MAAAA,EAAa,MAAO,CAACP,EAAW,IAAIj6B,CAAE,GAAK,CAACukB,EAAA,KAAK0O,IAA8B,IAAIjzB,CAAE,GACnGk6B,EAAY,KAAKI,CAAU,CAE/B,EACAh2B,EAAAigB,EAAA,KAAKsO,MAAL,MAAAvuB,EAAsB,YAAY41B,EACpC,CACA,GAAI,CAACT,EAAQ,CACPE,GACF,KAAK,yBAAwB,EAE/BpV,EAAA,KAAK6Q,IAAsB,QAAO,EAClC,MACF,CACA,UAAW1L,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EACtC5I,EAAO,MAAQ+P,GACjB,KAAK,YAAY/P,CAAM,EACnBmQ,EACFnQ,EAAO,YAAW,EACTkQ,EACTlQ,EAAO,gBAAe,EAEtBA,EAAO,MAAK,GAGdA,EAAO,SAAQ,EAGnBnF,EAAA,KAAK6Q,IAAsB,QAAO,EACpC,CACA,0BAA2B,CACrB,KAAK,aAAa,2BACpB,KAAK,aAAa,aAAY,CAElC,CACA,cAAc56C,EAAS,CACjBA,EAAQ,OAAS+pC,EAAA,KAAKgQ,KAG1B,KAAK,UAAU,SAAS,6BAA8B,CACpD,OAAQ,KACR,GAAG/5C,CACT,CAAK,CACH,CACA,aAAashB,EAAMhiB,EAAO,CACxB,GAAKyqC,EAAA,KAAK4O,IAGV,QAAQr3B,EAAI,CACV,KAAK4b,GAA2B,OAC9B,KAAK,aAAa,aAAa59B,CAAK,EACpC,OACF,KAAK49B,GAA2B,mBAC9B,KAAK,UAAU,SAAS,kBAAmB,CACzC,OAAQ,KACR,QAAS,CACP,KAAM,UACN,KAAM,CACJ,KAAM,YACN,OAAQ,mBACtB,CACA,CACA,CAAS,GACA6M,EAAA,KAAKqQ,KAAL/P,EAAA,KAAK+P,GAAmB,IAAI,MAAO,IAAI94B,EAAMhiB,CAAK,EACnD,KAAK,eAAe,YAAaA,CAAK,EACtC,KACR,CACI,GAAI,KAAK,aACP,UAAW4vC,KAAUnF,EAAA,KAAKiQ,IACxB9K,EAAO,aAAa5tB,EAAMhiB,CAAK,MAGjC,WAAW2wC,KAAclG,EAAA,KAAK4O,IAC5B1I,EAAW,oBAAoB3uB,EAAMhiB,CAAK,EAGhD,CACA,eAAegiB,EAAM2+B,EAASC,EAAe,GAAO,OAClD,UAAWhR,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EACtC5I,EAAO,aAAe5tB,GACxB4tB,EAAO,KAAK+Q,CAAO,KAGTtjD,EAAAotC,EAAA,KAAKqQ,MAAL,YAAAz9C,EAAqB,IAAIugC,GAA2B,sBAAuB,MAC3E+iB,GACZtc,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB,CAAC,CAAC9hB,GAA2B,mBAAoB+iB,CAAO,CAAC,EAEpF,CACA,cAAcE,EAAW,GAAO,CAC9B,GAAIpW,EAAA,KAAK0P,MAAe0G,EAGxB,CAAA9V,EAAA,KAAKoP,GAAa0G,GAClB,UAAW3E,KAASzR,EAAA,KAAKgO,IAAW,OAAM,EACpCoI,EACF3E,EAAM,aAAY,EAElBA,EAAM,YAAW,EAEnBA,EAAM,IAAI,UAAU,OAAO,UAAW2E,CAAQ,EAElD,CA0BA,CAAC,WAAWlE,EAAW,CACrB,UAAW/M,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EACtC5I,EAAO,YAAc+M,IACvB,MAAM/M,EAGZ,CACA,UAAU1pB,EAAI,CACZ,OAAOukB,EAAA,KAAK+N,IAAY,IAAItyB,CAAE,CAChC,CACA,UAAU0pB,EAAQ,CAChBnF,EAAA,KAAK+N,IAAY,IAAI5I,EAAO,GAAIA,CAAM,CACxC,CACA,aAAaA,EAAQ,SACfA,EAAO,IAAI,SAAS,SAAS,aAAa,IACxCnF,EAAA,KAAKkP,KACP,aAAalP,EAAA,KAAKkP,GAA4B,EAEhD5O,EAAA,KAAK4O,GAA+B,WAAW,IAAM,CACnD,KAAK,mBAAkB,EACvB5O,EAAA,KAAK4O,GAA+B,KACtC,EAAG,CAAC,IAENlP,EAAA,KAAK+N,IAAY,OAAO5I,EAAO,EAAE,EAC7BA,EAAO,uBACTvyC,EAAAotC,EAAA,KAAK8P,MAAL,MAAAl9C,EAAuB,OAAOuyC,EAAO,sBAEvC,KAAK,SAASA,CAAM,GAChB,CAACA,EAAO,qBAAuB,CAACnF,EAAA,KAAK0O,IAA8B,IAAIvJ,EAAO,mBAAmB,MACnGxyC,EAAAqtC,EAAA,KAAKmO,MAAL,MAAAx7C,EAAyB,OAAOwyC,EAAO,IAE3C,CACA,4BAA4BA,EAAQ,CAClCnF,EAAA,KAAK0O,IAA8B,IAAIvJ,EAAO,mBAAmB,EACjE,KAAK,6BAA6BA,CAAM,EACxCA,EAAO,QAAU,EACnB,CACA,2BAA2ByQ,EAAqB,CAC9C,OAAO5V,EAAA,KAAK0O,IAA8B,IAAIkH,CAAmB,CACnE,CACA,+BAA+BzQ,EAAQ,CACrCnF,EAAA,KAAK0O,IAA8B,OAAOvJ,EAAO,mBAAmB,EACpE,KAAK,gCAAgCA,CAAM,EAC3CA,EAAO,QAAU,EACnB,CAUA,gBAAgBA,EAAQ,CAClBnF,EAAA,KAAK6N,MAAkB1I,IAG3B7E,EAAA,KAAKuN,GAAgB1I,GACjBA,GACFvL,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB9P,EAAO,oBAElC,CAMA,SAASA,EAAQ,CACXnF,EAAA,KAAK2N,GAAA0I,MAAwBlR,GAC/BvL,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB9P,EAAO,mBAElC,CACA,6BAA6Be,EAAY,CACvCtM,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB/O,EAAW,0BACpC,CACA,eAAef,EAAQ,CACrB,GAAInF,EAAA,KAAKiQ,IAAiB,IAAI9K,CAAM,EAAG,CACrCnF,EAAA,KAAKiQ,IAAiB,OAAO9K,CAAM,EACnCA,EAAO,SAAQ,EACfvL,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,kBAAmB,KAAK,YAChC,GACM,MACF,CACA5U,EAAA,KAAKiQ,IAAiB,IAAI9K,CAAM,EAChCA,EAAO,OAAM,EACbvL,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB9P,EAAO,oBAC9BvL,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,kBAAmB,EACzB,EACE,CACA,YAAYzP,EAAQ,SAClB,KAAK,cAAc,CACjB,KAAMA,EAAO,KACb,OAAQA,EAAO,GACrB,CAAK,GACDvyC,EAAAotC,EAAA,KAAKwO,MAAL,MAAA57C,EAA6B,iBAC7B,UAAW0jD,KAAMtW,EAAA,KAAKiQ,IAChBqG,IAAOnR,GACTmR,EAAG,SAAQ,GAGf3jD,EAAAqtC,EAAA,KAAKsO,MAAL,MAAA37C,EAAsB,eACtBqtC,EAAA,KAAKiQ,IAAiB,MAAK,EAC3BjQ,EAAA,KAAKiQ,IAAiB,IAAI9K,CAAM,EAChCA,EAAO,OAAM,EACbvL,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB9P,EAAO,oBAC9BvL,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,kBAAmB,EACzB,EACE,CACA,IAAI,qBAAsB,CACxB,OAAO5U,EAAA,KAAKiQ,IAAiB,OAAM,EAAG,KAAI,EAAG,KAC/C,CACA,SAAS9K,EAAQ,CACfA,EAAO,SAAQ,EACfnF,EAAA,KAAKiQ,IAAiB,OAAO9K,CAAM,EACnCvL,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,kBAAmB,KAAK,YAC9B,EACE,CACA,IAAI,cAAe,CACjB,OAAO5U,EAAA,KAAKiQ,IAAiB,OAAS,CACxC,CACA,IAAI,gBAAiB,CACnB,OAAOjQ,EAAA,KAAKiQ,IAAiB,OAAS,GAAK,KAAK,oBAAoB,cACtE,CACA,MAAO,OACLjQ,EAAA,KAAKqO,IAAgB,KAAI,EACzBzU,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,mBAAoB5U,EAAA,KAAKqO,IAAgB,mBAAkB,EAC3D,mBAAoB,GACpB,QAASzU,EAAA,KAAK+T,GAAAkH,IAAL,UACf,IACIjiD,EAAA,KAAK,iBAAL,MAAAA,EAAqB,MACvB,CACA,MAAO,CACLotC,EAAA,KAAKqO,IAAgB,KAAI,EACzBzU,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,mBAAoB,GACpB,mBAAoB5U,EAAA,KAAKqO,IAAgB,mBAAkB,EAC3D,QAASzU,EAAA,KAAK+T,GAAAkH,IAAL,UACf,EACE,CACA,YAAY/5B,EAAQ,CAClBklB,EAAA,KAAKqO,IAAgB,IAAIvzB,CAAM,EAC/B8e,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,mBAAoB,GACpB,mBAAoB,GACpB,QAAShb,EAAA,KAAK+T,GAAAkH,IAAL,UACf,EACE,CACA,eAAet9B,EAAM,CACnByoB,EAAA,KAAKqO,IAAgB,UAAU92B,CAAI,CACrC,CAYA,QAAS,OACP,KAAK,eAAc,EACnB,MAAMg/B,GAAgB3jD,EAAA,KAAK,eAAL,YAAAA,EAAmB,kBAAkB,IAC3D,GAAI,CAAC,KAAK,cAAgB,CAAC2jD,EACzB,OAEF,MAAMxC,EAAUwC,EAAgB,CAACA,CAAa,EAAI,CAAC,GAAGvW,EAAA,KAAKiQ,GAAgB,EACrEtF,EAAM,IAAM,QAChB/3C,EAAA,KAAK,iBAAL,MAAAA,EAAqB,KAAKg4C,EAAMmJ,EAAQ,SAAW,EAAIA,EAAQ,CAAC,EAAE,WAAaA,EAAQ,QACvF,UAAW5O,KAAU4O,EACnB5O,EAAO,OAAM,CAEjB,EACMyF,EAAO,IAAM,CACjB,UAAWzF,KAAU4O,EACnBna,EAAA,KAAK+T,GAAAyG,IAAL,UAAuBjP,EAE3B,EACA,KAAK,YAAY,CACf,IAAAwF,EACA,KAAAC,EACA,SAAU,EAChB,CAAK,CACH,CACA,gBAAiB,QACfh4C,EAAAotC,EAAA,KAAK6N,MAAL,MAAAj7C,EAAoB,gBACtB,CACA,uBAAwB,CACtB,OAAOotC,EAAA,KAAK6N,KAAiB,KAAK,YACpC,CAiBA,WAAY,CACV,UAAW1I,KAAUnF,EAAA,KAAKiQ,IACxB9K,EAAO,OAAM,EAEfvL,EAAA,KAAK+T,GAAA0G,IAAL,UAAoBrU,EAAA,KAAK+N,IAAY,OAAM,EAC7C,CACA,aAAc,SACZ,GAAI,EAAA/N,EAAA,KAAK6N,MACP7N,EAAA,KAAK6N,IAAc,eAAc,EAC7B7N,EAAA,KAAKgQ,MAAU9c,GAAqB,QAItC,GAAAtgC,EAAAotC,EAAA,KAAKwO,MAAL,MAAA57C,EAA6B,qBAGjCD,EAAAqtC,EAAA,KAAKsO,MAAL,MAAA37C,EAAsB,eAClB,EAAC,KAAK,cAGV,WAAWwyC,KAAUnF,EAAA,KAAKiQ,IACxB9K,EAAO,SAAQ,EAEjBnF,EAAA,KAAKiQ,IAAiB,MAAK,EAC3BrW,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,kBAAmB,EACzB,GACE,CACA,yBAAyB/7C,EAAGf,EAAG0+C,EAAW,GAAO,CAI/C,GAHKA,GACH,KAAK,eAAc,EAEjB,CAAC,KAAK,aACR,OAEFxW,EAAA,KAAKwQ,IAAa,CAAC,GAAK33C,EACxBmnC,EAAA,KAAKwQ,IAAa,CAAC,GAAK14C,EACxB,KAAM,CAAC2+C,EAAQC,CAAM,EAAI1W,EAAA,KAAKwQ,IACxBuD,EAAU,CAAC,GAAG/T,EAAA,KAAKiQ,GAAgB,EACnC0G,EAAe,IACjB3W,EAAA,KAAKyQ,KACP,aAAazQ,EAAA,KAAKyQ,GAAqB,EAEzCnQ,EAAA,KAAKmQ,GAAwB,WAAW,IAAM,CAC5CnQ,EAAA,KAAKmQ,GAAwB,MAC7BzQ,EAAA,KAAKwQ,IAAa,CAAC,EAAIxQ,EAAA,KAAKwQ,IAAa,CAAC,EAAI,EAC9C,KAAK,YAAY,CACf,IAAK,IAAM,CACT,UAAWrL,KAAU4O,EACf/T,EAAA,KAAK+N,IAAY,IAAI5I,EAAO,EAAE,IAChCA,EAAO,gBAAgBsR,EAAQC,CAAM,EACrCvR,EAAO,gBAAe,EAG5B,EACA,KAAM,IAAM,CACV,UAAWA,KAAU4O,EACf/T,EAAA,KAAK+N,IAAY,IAAI5I,EAAO,EAAE,IAChCA,EAAO,gBAAgB,CAACsR,EAAQ,CAACC,CAAM,EACvCvR,EAAO,gBAAe,EAG5B,EACA,SAAU,EAClB,CAAO,CACH,EAAGwR,CAAY,GACf,UAAWxR,KAAU4O,EACnB5O,EAAO,gBAAgBtsC,EAAGf,CAAC,EAC3BqtC,EAAO,gBAAe,CAE1B,CACA,kBAAmB,CACjB,GAAK,KAAK,aAGV,MAAK,kBAAkB,EAAI,EAC3B7E,EAAA,KAAKqO,GAAmB,IAAI,KAC5B,UAAWxJ,KAAUnF,EAAA,KAAKiQ,IACxBjQ,EAAA,KAAK2O,IAAiB,IAAIxJ,EAAQ,CAChC,OAAQA,EAAO,EACf,OAAQA,EAAO,EACf,eAAgBA,EAAO,UACvB,KAAM,EACN,KAAM,EACN,aAAc,EACtB,CAAO,EAEL,CACA,gBAAiB,CACf,GAAI,CAACnF,EAAA,KAAK2O,IACR,MAAO,GAET,KAAK,kBAAkB,EAAK,EAC5B,MAAMgD,EAAM3R,EAAA,KAAK2O,IACjBrO,EAAA,KAAKqO,GAAmB,MACxB,IAAIiI,EAAyB,GAC7B,SAAW,CAAC,CACV,EAAA/9C,EACA,EAAAf,EACA,UAAAo6C,CACN,EAAO38C,CAAK,IAAKo8C,EACXp8C,EAAM,KAAOsD,EACbtD,EAAM,KAAOuC,EACbvC,EAAM,aAAe28C,EACrB0E,MAA2B/9C,IAAMtD,EAAM,QAAUuC,IAAMvC,EAAM,QAAU28C,IAAc38C,EAAM,gBAE7F,GAAI,CAACqhD,EACH,MAAO,GAET,MAAMC,EAAO,CAAC1R,EAAQtsC,EAAGf,EAAGo6C,IAAc,CACxC,GAAIlS,EAAA,KAAK+N,IAAY,IAAI5I,EAAO,EAAE,EAAG,CACnC,MAAM7G,EAAS0B,EAAA,KAAKgO,IAAW,IAAIkE,CAAS,EACxC5T,EACF6G,EAAO,sBAAsB7G,EAAQzlC,EAAGf,CAAC,GAEzCqtC,EAAO,UAAY+M,EACnB/M,EAAO,EAAItsC,EACXssC,EAAO,EAAIrtC,EAEf,CACF,EACA,YAAK,YAAY,CACf,IAAK,IAAM,CACT,SAAW,CAACqtC,EAAQ,CAClB,KAAA2R,EACA,KAAAC,EACA,aAAAxC,CACV,CAAS,IAAK5C,EACJkF,EAAK1R,EAAQ2R,EAAMC,EAAMxC,CAAY,CAEzC,EACA,KAAM,IAAM,CACV,SAAW,CAACpP,EAAQ,CAClB,OAAA6R,EACA,OAAAC,EACA,eAAAC,CACV,CAAS,IAAKvF,EACJkF,EAAK1R,EAAQ6R,EAAQC,EAAQC,CAAc,CAE/C,EACA,SAAU,EAChB,CAAK,EACM,EACT,CACA,oBAAoBC,EAAIC,EAAI,CAC1B,GAAKpX,EAAA,KAAK2O,IAGV,UAAWxJ,KAAUnF,EAAA,KAAK2O,IAAiB,KAAI,EAC7CxJ,EAAO,KAAKgS,EAAIC,CAAE,CAEtB,CACA,QAAQjS,EAAQ,CACd,GAAIA,EAAO,SAAW,KAAM,CAC1B,MAAM7G,EAAS,KAAK,SAAS6G,EAAO,SAAS,EACzC7G,GACFA,EAAO,aAAa6G,CAAM,EAC1B7G,EAAO,aAAa6G,CAAM,IAE1B,KAAK,UAAUA,CAAM,EACrB,KAAK,uBAAuBA,CAAM,EAClCA,EAAO,QAAO,EAElB,MACEA,EAAO,OAAO,aAAaA,CAAM,CAErC,CACA,IAAI,0BAA2B,OAC7B,QAAOvyC,EAAA,KAAK,cAAL,YAAAA,EAAkB,4BAA6BotC,EAAA,KAAKiQ,IAAiB,OAAS,GAAK,KAAK,oBAAoB,wBAAuB,CAC5I,CACA,SAAS9K,EAAQ,CACf,OAAOnF,EAAA,KAAK6N,MAAkB1I,CAChC,CACA,WAAY,CACV,OAAOnF,EAAA,KAAK6N,GACd,CACA,SAAU,CACR,OAAO7N,EAAA,KAAKgQ,GACd,CACA,eAAgB,CACd,OAAOhQ,EAAA,KAAKgQ,MAAU9c,GAAqB,IAC7C,CACA,IAAI,cAAe,CACjB,OAAO+B,GAAO,KAAM,eAAgB,IAAImV,EAAc,CACxD,CACA,kBAAkB+I,EAAW,CAC3B,GAAI,CAACA,EACH,OAAO,KAET,MAAML,EAAY,SAAS,aAAY,EACvC,QAAS57C,EAAI,EAAG2Q,EAAKirC,EAAU,WAAY57C,EAAI2Q,EAAI3Q,IACjD,GAAI,CAACi8C,EAAU,SAASL,EAAU,WAAW57C,CAAC,EAAE,uBAAuB,EACrE,OAAO,KAGX,KAAM,CACJ,EAAGw7C,EACH,EAAGC,EACH,MAAO0E,EACP,OAAQC,CACd,EAAQnE,EAAU,sBAAqB,EACnC,IAAIoE,EACJ,OAAQpE,EAAU,aAAa,oBAAoB,EAAC,CAClD,IAAK,KACHoE,EAAU,CAAC1+C,EAAGf,EAAGG,EAAGP,KAAO,CACzB,GAAII,EAAI66C,GAAU2E,EAClB,EAAG,GAAKz+C,EAAIZ,EAAIy6C,GAAU2E,EAC1B,MAAO3/C,EAAI4/C,EACX,OAAQr/C,EAAIo/C,CACtB,GACQ,MACF,IAAK,MACHE,EAAU,CAAC1+C,EAAGf,EAAGG,EAAGP,KAAO,CACzB,EAAG,GAAKmB,EAAIZ,EAAIy6C,GAAU2E,EAC1B,EAAG,GAAKv/C,EAAIJ,EAAIi7C,GAAU2E,EAC1B,MAAOr/C,EAAIo/C,EACX,OAAQ3/C,EAAI4/C,CACtB,GACQ,MACF,IAAK,MACHC,EAAU,CAAC1+C,EAAGf,EAAGG,EAAGP,KAAO,CACzB,EAAG,GAAKI,EAAIJ,EAAIi7C,GAAU2E,EAC1B,GAAIz+C,EAAI65C,GAAU2E,EAClB,MAAO3/C,EAAI4/C,EACX,OAAQr/C,EAAIo/C,CACtB,GACQ,MACF,QACEE,EAAU,CAAC1+C,EAAGf,EAAGG,EAAGP,KAAO,CACzB,GAAImB,EAAI65C,GAAU2E,EAClB,GAAIv/C,EAAI66C,GAAU2E,EAClB,MAAOr/C,EAAIo/C,EACX,OAAQ3/C,EAAI4/C,CACtB,GACQ,KACR,CACI,MAAMhQ,EAAQ,CAAA,EACd,QAASpwC,EAAI,EAAG2Q,EAAKirC,EAAU,WAAY57C,EAAI2Q,EAAI3Q,IAAK,CACtD,MAAMsgD,EAAQ1E,EAAU,WAAW57C,CAAC,EACpC,GAAI,CAAAsgD,EAAM,UAGV,SAAW,CACT,EAAA3+C,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,CACR,IAAW+a,EAAM,iBACLhb,IAAU,GAAKC,IAAW,GAG9B6K,EAAM,KAAKiQ,EAAQ1+C,EAAGf,EAAG0kC,EAAOC,CAAM,CAAC,CAE3C,CACA,OAAO6K,EAAM,SAAW,EAAI,KAAOA,CACrC,CACA,6BAA6B,CAC3B,oBAAAsO,EACA,GAAAn6B,CACJ,EAAK,EACAukB,EAAA,KAAKoO,KAAL9N,EAAA,KAAK8N,GAAgC,IAAI,MAAO,IAAIwH,EAAqBn6B,CAAE,CAC9E,CACA,gCAAgC,CAC9B,oBAAAm6B,CACJ,EAAK,QACDhjD,EAAAotC,EAAA,KAAKoO,MAAL,MAAAx7C,EAAkC,OAAOgjD,EAC3C,CACA,wBAAwBG,EAAY,OAClC,MAAM0B,GAAW7kD,EAAAotC,EAAA,KAAKoO,MAAL,YAAAx7C,EAAkC,IAAImjD,EAAW,KAAK,IACvE,GAAI,CAAC0B,EACH,OAEF,MAAMtS,EAASnF,EAAA,KAAKmO,IAAmB,YAAYsJ,CAAQ,EACtDtS,IAGDnF,EAAA,KAAKgQ,MAAU9c,GAAqB,MAAQ,CAACiS,EAAO,iBAGxDA,EAAO,wBAAwB4Q,CAAU,EAC3C,CACA,iBAAiBxC,EAAcqC,EAAqBhM,EAAQ,OAC1D,MAAMzE,GAASvyC,EAAAotC,EAAA,KAAK8P,MAAL,YAAAl9C,EAAuB,IAAI2gD,GACrCpO,IAGLA,EAAO,UAAUyQ,EAAqBhM,CAAM,EAC5C5J,EAAA,KAAK8P,IAAiB,OAAOyD,CAAY,EAC3C,CACA,iBAAiBA,EAAcpO,EAAQ,EACpCnF,EAAA,KAAK8P,KAALxP,EAAA,KAAKwP,GAAqB,IAAI,MAAO,IAAIyD,EAAcpO,CAAM,CAChE,CACF,EAjqDEyI,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAEAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAQAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YA1DFlD,GAAA,YAsbEyF,GAA6B,SAAC,CAC5B,WAAAL,CACJ,EAAK,CACD,OAAOA,EAAW,WAAa,KAAK,UAAYA,EAAW,cAAgBA,CAC7E,EACAM,GAAqB,SAACF,EAAW,CAC/B,KAAM,CACJ,aAAAuE,CACN,EAAQ,KACJ,GAAIA,EAAa,aAAavE,CAAS,EACrC,OAAOuE,EAET,UAAWjG,KAASzR,EAAA,KAAKgO,IAAW,OAAM,EACxC,GAAIyD,EAAM,aAAa0B,CAAS,EAC9B,OAAO1B,EAGX,OAAO,IACT,EAuDAkG,GAAuB,UAAG,CACxB,MAAM7E,EAAY,SAAS,aAAY,EACvC,GAAI,CAACA,GAAaA,EAAU,YAC1B,OAGF,MAAMK,EADgBvZ,EAAA,KAAK+T,GAAAyF,IAAL,UAAmCN,GACzB,QAAQ,YAAY,EAC9CxL,EAAQ,KAAK,kBAAkB6L,CAAS,EACzC7L,IAGLtH,EAAA,KAAKsP,KAALhP,EAAA,KAAKgP,GAAqB,IAAInI,GAAgB,IAAI,GAClDnH,EAAA,KAAKsP,IAAiB,KAAK6D,EAAW7L,EAAO,KAAK,YAAc,KAAK,EACvE,EA6BAsQ,GAAgB,UAAG,WACjB,MAAM9E,EAAY,SAAS,aAAY,EACvC,GAAI,CAACA,GAAaA,EAAU,YAAa,CACnC9S,EAAA,KAAKkQ,OACPt9C,EAAAotC,EAAA,KAAKsP,MAAL,MAAA18C,EAAuB,OACvB0tC,EAAA,KAAK4P,GAAoB,MACzBtW,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,gBAAiB,EAC3B,IAEM,MACF,CACA,KAAM,CACJ,WAAA7B,CACN,EAAQD,EACJ,GAAIC,IAAe/S,EAAA,KAAKkQ,IACtB,OAGF,MAAMiD,EADgBvZ,EAAA,KAAK+T,GAAAyF,IAAL,UAAmCN,GACzB,QAAQ,YAAY,EACpD,GAAI,CAACK,EAAW,CACVnT,EAAA,KAAKkQ,OACPv9C,EAAAqtC,EAAA,KAAKsP,MAAL,MAAA38C,EAAuB,OACvB2tC,EAAA,KAAK4P,GAAoB,MACzBtW,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,gBAAiB,EAC3B,IAEM,MACF,CAMA,IALAh/B,EAAAoqB,EAAA,KAAKsP,MAAL,MAAA15B,EAAuB,OACvB0qB,EAAA,KAAK4P,GAAoB6C,GACzBnZ,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,gBAAiB,EACvB,GACQ,EAAA5U,EAAA,KAAKgQ,MAAU9c,GAAqB,WAAa8M,EAAA,KAAKgQ,MAAU9c,GAAqB,QAGrF8M,EAAA,KAAKgQ,MAAU9c,GAAqB,WACtC,KAAK,eAAe,YAAa,GAAM,EAAI,EAE7CoN,EAAA,KAAK+O,GAAwB,KAAK,gBAC9B,CAAC,KAAK,gBAAgB,CACxB,MAAMwI,EAAc7X,EAAA,KAAKgQ,MAAU9c,GAAqB,UAAY0G,EAAA,KAAK+T,GAAA0F,IAAL,UAA2BF,GAAa,KAE5G,GADA0E,GAAA,MAAAA,EAAa,gBACT7X,EAAA,KAAKyP,IAAgB,CACvB,MAAM36B,EAAK,IAAI,gBACT9f,EAAS,KAAK,eAAe8f,CAAE,EAC/BgjC,EAAY9gD,GAAK,CACjBA,EAAE,OAAS,aAAeA,EAAE,SAAW,IAG3C8d,EAAG,MAAK,EACR+iC,GAAA,MAAAA,EAAa,cAAc,IACvB7gD,EAAE,OAAS,aACb4iC,EAAA,KAAK+T,GAAA+F,IAAL,UAAkB,gBAEtB,EACA,OAAO,iBAAiB,YAAaoE,EAAW,CAC9C,OAAA9iD,CACV,CAAS,EACD,OAAO,iBAAiB,OAAQ8iD,EAAW,CACzC,OAAA9iD,CACV,CAAS,CACH,MACE6iD,GAAA,MAAAA,EAAa,cAAc,IAC3Bje,EAAA,KAAK+T,GAAA+F,IAAL,UAAkB,eAEtB,CACF,EACAA,GAAY,SAACb,EAAmB,GAAI,CAC9B7S,EAAA,KAAKgQ,MAAU9c,GAAqB,UACtC,KAAK,mBAAmB2f,CAAgB,EAC/B7S,EAAA,KAAK8O,KACdlV,EAAA,KAAK+T,GAAAgK,IAAL,UAEJ,EACA3G,GAAqB,UAAG,CACtB,SAAS,iBAAiB,kBAAmBpX,EAAA,KAAK+T,GAAAiK,IAAiB,KAAK,IAAI,EAAG,CAC7E,OAAQ,KAAK,OACnB,CAAK,CACH,EACAlD,GAAgB,UAAG,CACjB,GAAI1U,EAAA,KAAKmP,IACP,OAEF7O,EAAA,KAAK6O,GAAkB,IAAI,iBAC3B,MAAMn6C,EAAS,KAAK,eAAegrC,EAAA,KAAKmP,GAAe,EACvD,OAAO,iBAAiB,QAAS,KAAK,MAAM,KAAK,IAAI,EAAG,CACtD,OAAAn6C,CACN,CAAK,EACD,OAAO,iBAAiB,OAAQ,KAAK,KAAK,KAAK,IAAI,EAAG,CACpD,OAAAA,CACN,CAAK,CACH,EACA8/C,GAAmB,UAAG,QACpBliD,EAAAotC,EAAA,KAAKmP,MAAL,MAAAv8C,EAAsB,QACtB0tC,EAAA,KAAK6O,GAAkB,KACzB,EAmCA+B,GAAmB,UAAG,CACpB,GAAIlR,EAAA,KAAK2P,IACP,OAEFrP,EAAA,KAAKqP,GAAqB,IAAI,iBAC9B,MAAM36C,EAAS,KAAK,eAAegrC,EAAA,KAAK2P,GAAkB,EAC1D,OAAO,iBAAiB,UAAW,KAAK,QAAQ,KAAK,IAAI,EAAG,CAC1D,OAAA36C,CACN,CAAK,EACD,OAAO,iBAAiB,QAAS,KAAK,MAAM,KAAK,IAAI,EAAG,CACtD,OAAAA,CACN,CAAK,CACH,EACA8+C,GAAsB,UAAG,QACvBlhD,EAAAotC,EAAA,KAAK2P,MAAL,MAAA/8C,EAAyB,QACzB0tC,EAAA,KAAKqP,GAAqB,KAC5B,EACAgF,GAAsB,UAAG,CACvB,GAAI3U,EAAA,KAAKuO,IACP,OAEFjO,EAAA,KAAKiO,GAAe,IAAI,iBACxB,MAAMv5C,EAAS,KAAK,eAAegrC,EAAA,KAAKuO,GAAY,EACpD,SAAS,iBAAiB,OAAQ,KAAK,KAAK,KAAK,IAAI,EAAG,CACtD,OAAAv5C,CACN,CAAK,EACD,SAAS,iBAAiB,MAAO,KAAK,IAAI,KAAK,IAAI,EAAG,CACpD,OAAAA,CACN,CAAK,EACD,SAAS,iBAAiB,QAAS,KAAK,MAAM,KAAK,IAAI,EAAG,CACxD,OAAAA,CACN,CAAK,CACH,EACA+/C,GAAyB,UAAG,QAC1BniD,EAAAotC,EAAA,KAAKuO,MAAL,MAAA37C,EAAmB,QACnB0tC,EAAA,KAAKiO,GAAe,KACtB,EACA0C,GAAwB,UAAG,CACzB,MAAMj8C,EAAS,KAAK,QACpB,SAAS,iBAAiB,WAAY,KAAK,SAAS,KAAK,IAAI,EAAG,CAC9D,OAAAA,CACN,CAAK,EACD,SAAS,iBAAiB,OAAQ,KAAK,KAAK,KAAK,IAAI,EAAG,CACtD,OAAAA,CACN,CAAK,CACH,EAwMA4/C,GAAqB,SAACnf,EAAS,CACV,OAAO,QAAQA,CAAO,EAAE,KAAK,CAAC,CAAC9c,EAAKpjB,CAAK,IAAMyqC,EAAA,KAAKuQ,IAAgB53B,CAAG,IAAMpjB,CAAK,IAEnG,KAAK,UAAU,SAAS,uBAAwB,CAC9C,OAAQ,KACR,QAAS,OAAO,OAAOyqC,EAAA,KAAKuQ,IAAiB9a,CAAO,CAC5D,CAAO,EACGuK,EAAA,KAAKgQ,MAAU9c,GAAqB,WAAauC,EAAQ,oBAAsB,IACjFmE,EAAA,KAAK+T,GAAAsH,IAAL,UAAuB,CAAC,CAAC9hB,GAA2B,eAAgB,EAAI,CAAC,GAG/E,EACA8hB,GAAiB,SAACxf,EAAS,CACzB,KAAK,UAAU,SAAS,gCAAiC,CACvD,OAAQ,KACR,QAAAA,CACN,CAAK,CACH,EA4NM+f,GAAU,gBAAG,CACjB,GAAI,CAACxV,EAAA,KAAKwP,IAAY,CACpBlP,EAAA,KAAKkP,GAAa,IAClB,MAAMgF,EAAW,CAAA,EACjB,UAAW/C,KAASzR,EAAA,KAAKgO,IAAW,OAAM,EACxCwG,EAAS,KAAK/C,EAAM,QAAQ,EAE9B,MAAM,QAAQ,IAAI+C,CAAQ,EAC1B,UAAWrP,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EAC1C5I,EAAO,OAAM,CAEjB,CACF,EACAoQ,GAAW,UAAG,CAEZ,GADA,KAAK,YAAW,EACZvV,EAAA,KAAKwP,IAAY,CACnBlP,EAAA,KAAKkP,GAAa,IAClB,UAAWiC,KAASzR,EAAA,KAAKgO,IAAW,OAAM,EACxCyD,EAAM,QAAO,EAEf,UAAWtM,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EAC1C5I,EAAO,QAAO,CAElB,CACF,EA8CAiP,GAAiB,SAACjP,EAAQ,CACxB,MAAMsM,EAAQzR,EAAA,KAAKgO,IAAW,IAAI7I,EAAO,SAAS,EAC9CsM,EACFA,EAAM,aAAatM,CAAM,GAEzB,KAAK,UAAUA,CAAM,EACrB,KAAK,uBAAuBA,CAAM,EAEtC,EAUIkR,GAAmB,UAAG,CACxB,IAAIC,EAAK,KACT,IAAKA,KAAMtW,EAAA,KAAKiQ,IAAkB,CAClC,OAAOqG,CACT,EAyFAzB,GAAQ,UAAG,CACT,GAAI7U,EAAA,KAAK+N,IAAY,OAAS,EAC5B,MAAO,GAET,GAAI/N,EAAA,KAAK+N,IAAY,OAAS,EAC5B,UAAW5I,KAAUnF,EAAA,KAAK+N,IAAY,OAAM,EAC1C,OAAO5I,EAAO,QAAO,EAGzB,MAAO,EACT,EA+BAkP,GAAc,SAACN,EAAS,CACtB,UAAW5O,KAAUnF,EAAA,KAAKiQ,IACxB9K,EAAO,SAAQ,EAEjBnF,EAAA,KAAKiQ,IAAiB,MAAK,EAC3B,UAAW9K,KAAU4O,EACf5O,EAAO,YAGXnF,EAAA,KAAKiQ,IAAiB,IAAI9K,CAAM,EAChCA,EAAO,OAAM,GAEfvL,EAAA,KAAK+T,GAAAiH,IAAL,UAA2B,CACzB,kBAAmB,KAAK,YAC9B,EACE,EAl0CAz6B,GA3DIyyB,GA2DG,kBAAkB,GACzBzyB,GA5DIyyB,GA4DG,gBAAgB,IA5DzB,IAAMmL,GAANnL,GAsqDA,MAAMoL,GAAN,MAAMA,EAAQ,CAeZ,YAAY7S,EAAQ,CAftBhL,EAAA,KAAA8d,IACE9d,EAAA,KAAAsL,GAAW,MACXtL,EAAA,KAAA+d,GAAqB,IACrB/d,EAAA,KAAAge,GAAiB,MACjBhe,EAAA,KAAAie,GAAsB,MACtBje,EAAA,KAAAke,GAAkB,MAClBle,EAAA,KAAAme,GAAyB,MACzBne,EAAA,KAAAoe,GAA0B,IAC1Bpe,EAAA,KAAAqe,GAAS,MACTre,EAAA,KAAAoL,GAAU,MACVpL,EAAA,KAAAse,GAAe,MACfte,EAAA,KAAAue,GAAsB,MACtBve,EAAA,KAAAwe,GAAqB,IAInBrY,EAAA,KAAKiF,GAAUJ,GACf7E,EAAA,KAAKqY,GAAqBxT,EAAO,WAAW,mBAC5CnF,EAAAgY,GAAQY,KAARtY,EAAA0X,GAAQY,GAAmB,OAAO,OAAO,CACvC,MAAO,yCACP,cAAe,+CACf,QAAS,2CACT,gBAAiB,iDACjB,OAAQ,6CACR,eAAgB,kDACtB,CAAK,EACH,CACA,OAAO,WAAWC,EAAM,CACtBb,GAAQ,QAARA,GAAQ,MAAUa,EACpB,CACA,MAAM,QAAS,CACb,MAAMvS,EAAUhG,EAAA,KAAK6X,GAAiB,SAAS,cAAc,QAAQ,GACrE7R,EAAQ,UAAY,UACpBA,EAAQ,SAAW,IACnB,MAAM3a,EAAQ2U,EAAA,KAAK8X,GAAsB,SAAS,cAAc,MAAM,GACtE9R,EAAQ,OAAO3a,CAAK,EAChBqU,EAAA,KAAK2Y,KACPrS,EAAQ,UAAU,IAAI,KAAK,EAC3BA,EAAQ,aAAa,eAAgBtG,EAAAgY,GAAQY,IAAe,OAAO,EACnEjtB,EAAM,aAAa,eAAgBqU,EAAAgY,GAAQY,IAAe,eAAe,CAAC,IAE1EtS,EAAQ,aAAa,eAAgB,8BAA8B,EACnE3a,EAAM,aAAa,eAAgB,oCAAoC,GAEzE,MAAM32B,EAASgrC,EAAA,KAAKuF,IAAQ,WAAW,QACvCe,EAAQ,iBAAiB,cAAepG,GAAe,CACrD,OAAAlrC,CACN,CAAK,EACDsxC,EAAQ,iBAAiB,cAAexnB,GAASA,EAAM,gBAAe,EAAI,CACxE,OAAA9pB,CACN,CAAK,EACD,MAAMg3B,EAAUlN,GAAS,CACvBA,EAAM,eAAc,EACpBkhB,EAAA,KAAKuF,IAAQ,WAAW,YAAYvF,EAAA,KAAKuF,GAAO,EAC5CvF,EAAA,KAAK2Y,KACP3Y,EAAA,KAAKuF,IAAQ,iBAAiB,CAC5B,OAAQ,kDACR,KAAM,CACJ,MAAOvF,EAAA,KAAKiY,GAAAa,GACxB,CACA,CAAS,CAEL,EACA,OAAAxS,EAAQ,iBAAiB,QAASta,EAAS,CACzC,QAAS,GACT,OAAAh3B,CACN,CAAK,EACDsxC,EAAQ,iBAAiB,UAAWxnB,GAAS,CACvCA,EAAM,SAAWwnB,GAAWxnB,EAAM,MAAQ,UAC5CwhB,EAAA,KAAKiY,GAA0B,IAC/BvsB,EAAQlN,CAAK,EAEjB,EAAG,CACD,OAAA9pB,CACN,CAAK,EACD,MAAM4kC,EAAA,KAAKqe,GAAAc,IAAL,WACCzS,CACT,CAIA,QAAS,CACFtG,EAAA,KAAKmY,MAGVnY,EAAA,KAAKmY,IAAe,MAAM,CACxB,aAAcnY,EAAA,KAAKuY,GACzB,CAAK,EACDjY,EAAA,KAAKiY,GAA0B,IACjC,CACA,SAAU,CACR,OAAIvY,EAAA,KAAK2Y,IACA3Y,EAAA,KAAKyF,MAAa,KAEpB,CAACzF,EAAA,KAAKyF,KAAY,CAACzF,EAAA,KAAKkY,GACjC,CACA,SAAU,CACR,OAAIlY,EAAA,KAAK2Y,IACA3Y,EAAA,KAAKyF,MAAa,MAAQ,CAAC,CAACzF,EAAA,KAAKyY,IAEnC,KAAK,QAAO,CACrB,CACA,IAAI,aAAc,CAChB,OAAOzY,EAAA,KAAKyY,GACd,CACA,MAAM,eAAeO,EAAa,CAC5BhZ,EAAA,KAAKyF,MAAa,OAGtBnF,EAAA,KAAKmY,GAAeO,GACpB1Y,EAAA,KAAKoY,GAAsB,MAAMV,GAAQ,MAAM,IAAI,+DAAgE,CACjH,iBAAkBgB,CACxB,CAAK,GACDpf,EAAA,KAAKqe,GAAAc,IAAL,WACF,CACA,mBAAmBzG,EAAa,GAAO,OACrC,GAAI,CAACtS,EAAA,KAAK2Y,KAAsB3Y,EAAA,KAAKyF,IAAU,EAC7C7yC,EAAAotC,EAAA,KAAKwY,MAAL,MAAA5lD,EAAa,SACb0tC,EAAA,KAAKkY,GAAS,MACd,MACF,CACA,GAAI,CAACxY,EAAA,KAAKwY,IAAQ,CAChB,MAAMS,EAAQ3Y,EAAA,KAAKkY,GAAS,SAAS,cAAc,KAAK,GACxDS,EAAM,UAAY,iBAClBjZ,EAAA,KAAKuF,IAAQ,IAAI,OAAO0T,CAAK,CAC/B,CACAjZ,EAAA,KAAKwY,IAAO,UAAU,OAAO,SAAU,CAAClG,CAAU,CACpD,CACA,UAAU4G,EAAc,CACtB,IAAI5S,EAAUtG,EAAA,KAAKyF,IACnB,MAAI,CAACyT,GAAgBlZ,EAAA,KAAKyY,MAAiBnS,IACzCA,EAAUtG,EAAA,KAAK0Y,KAEV,CACL,QAAApS,EACA,WAAYtG,EAAA,KAAKkY,IACjB,YAAalY,EAAA,KAAKyY,IAClB,mBAAoBzY,EAAA,KAAK0Y,GAC/B,CACE,CACA,IAAI,MAAO,CACT,MAAO,CACL,QAAS1Y,EAAA,KAAKyF,IACd,WAAYzF,EAAA,KAAKkY,GACvB,CACE,CACA,IAAI,KAAK,CACP,QAAA5R,EACA,WAAA6S,EACA,YAAAH,EACA,mBAAAI,EACA,OAAAC,EAAS,EACb,EAAK,CACGL,IACF1Y,EAAA,KAAKmY,GAAeO,GACpB1Y,EAAA,KAAKoY,GAAsBU,IAEzB,EAAApZ,EAAA,KAAKyF,MAAaa,GAAWtG,EAAA,KAAKkY,MAAuBiB,KAGxDE,IACH/Y,EAAA,KAAKmF,GAAWa,GAChBhG,EAAA,KAAK4X,GAAqBiB,IAE5Bvf,EAAA,KAAKqe,GAAAc,IAAL,WACF,CACA,OAAO97B,EAAU,GAAO,CACjB+iB,EAAA,KAAKmY,MAGN,CAACl7B,GAAW+iB,EAAA,KAAKsY,MACnB,aAAatY,EAAA,KAAKsY,GAAsB,EACxChY,EAAA,KAAKgY,GAAyB,OAEhCtY,EAAA,KAAKmY,IAAe,SAAW,CAACl7B,EAClC,CACA,OAAQ,CACN+iB,EAAA,KAAKuF,IAAQ,iBAAiB,CAC5B,OAAQ,oDACR,KAAM,CACJ,MAAOvF,EAAA,KAAKiY,GAAAa,GACpB,CACA,CAAK,CACH,CACA,SAAU,UACRlmD,EAAAotC,EAAA,KAAKmY,MAAL,MAAAvlD,EAAqB,SACrB0tC,EAAA,KAAK6X,GAAiB,MACtB7X,EAAA,KAAK8X,GAAsB,MAC3B9X,EAAA,KAAK+X,GAAkB,OACvB1lD,EAAAqtC,EAAA,KAAKwY,MAAL,MAAA7lD,EAAa,SACb2tC,EAAA,KAAKkY,GAAS,KAChB,CAsEF,EApQE/S,GAAA,YACAyS,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAjT,GAAA,YACAkT,GAAA,YACAC,GAAA,YACAC,GAAA,YACOC,GAAA,YAbTX,GAAA,YA8EMa,GAAM,UAAG,CACX,OAAO9Y,EAAA,KAAKyF,KAAY,SAAWzF,EAAA,KAAKyF,MAAa,MAAQ,KAAK,aAAe,UAAY,SAC/F,EAgHMsT,GAAS,gBAAG,WAChB,MAAM3S,EAASpG,EAAA,KAAKmY,IACpB,GAAI,CAAC/R,EACH,OAEF,GAAIpG,EAAA,KAAK2Y,KAIP,GAHAvS,EAAO,UAAU,OAAO,OAAQ,CAAC,CAACpG,EAAA,KAAKyF,GAAQ,EAC/CW,EAAO,aAAa,eAAgBpG,EAAAgY,GAAQY,IAAe5Y,EAAA,KAAKiY,GAAAa,GAAM,CAAC,GACvElmD,EAAAotC,EAAA,KAAKoY,MAAL,MAAAxlD,EAA0B,aAAa,eAAgBotC,EAAAgY,GAAQY,IAAe,GAAG5Y,EAAA,KAAKiY,GAAAa,GAAM,QAAQ,GAChG,CAAC9Y,EAAA,KAAKyF,IAAU,EAClB9yC,EAAAqtC,EAAA,KAAKqY,MAAL,MAAA1lD,EAAsB,SACtB,MACF,MACK,CACL,GAAI,CAACqtC,EAAA,KAAKyF,KAAY,CAACzF,EAAA,KAAKkY,IAAoB,CAC9C9R,EAAO,UAAU,OAAO,MAAM,GAC9BxwB,EAAAoqB,EAAA,KAAKqY,MAAL,MAAAziC,EAAsB,SACtB,MACF,CACAwwB,EAAO,UAAU,IAAI,MAAM,EAC3BA,EAAO,aAAa,eAAgB,mCAAmC,CACzE,CACA,IAAIkT,EAAUtZ,EAAA,KAAKqY,IACnB,GAAI,CAACiB,EAAS,CACZhZ,EAAA,KAAK+X,GAAkBiB,EAAU,SAAS,cAAc,MAAM,GAC9DA,EAAQ,UAAY,UACpBA,EAAQ,aAAa,OAAQ,SAAS,EACtCA,EAAQ,GAAK,oBAAoBtZ,EAAA,KAAKuF,IAAQ,EAAE,GAChD,MAAMgU,EAAwB,IACxBvkD,EAASgrC,EAAA,KAAKuF,IAAQ,WAAW,QACvCvwC,EAAO,iBAAiB,QAAS,IAAM,CACrC,aAAagrC,EAAA,KAAKsY,GAAsB,EACxChY,EAAA,KAAKgY,GAAyB,KAChC,EAAG,CACD,KAAM,EACd,CAAO,EACDlS,EAAO,iBAAiB,aAAc,IAAM,CAC1C9F,EAAA,KAAKgY,GAAyB,WAAW,IAAM,CAC7ChY,EAAA,KAAKgY,GAAyB,MAC9BtY,EAAA,KAAKqY,IAAgB,UAAU,IAAI,MAAM,EACzCrY,EAAA,KAAKuF,IAAQ,iBAAiB,CAC5B,OAAQ,kBACpB,CAAW,CACH,EAAGgU,CAAqB,EAC1B,EAAG,CACD,OAAAvkD,CACR,CAAO,EACDoxC,EAAO,iBAAiB,aAAc,IAAM,OACtCpG,EAAA,KAAKsY,MACP,aAAatY,EAAA,KAAKsY,GAAsB,EACxChY,EAAA,KAAKgY,GAAyB,QAEhC1lD,EAAAotC,EAAA,KAAKqY,MAAL,MAAAzlD,EAAsB,UAAU,OAAO,OACzC,EAAG,CACD,OAAAoC,CACR,CAAO,CACH,CACIgrC,EAAA,KAAKkY,IACPoB,EAAQ,aAAa,eAAgB,0CAA0C,GAE/EA,EAAQ,gBAAgB,cAAc,EACtCA,EAAQ,YAActZ,EAAA,KAAKyF,KAExB6T,EAAQ,YACXlT,EAAO,OAAOkT,CAAO,EAEvB,MAAMpc,EAAU8C,EAAA,KAAKuF,IAAQ,qBAAoB,EACjDrI,GAAA,MAAAA,EAAS,aAAa,mBAAoBoc,EAAQ,GACpD,EAvPAnf,EAbI6d,GAaGY,GAAiB,MACxBz+B,GAdI69B,GAcG,QAAQ,MAdjB,IAAMwB,GAANxB,GAyQA,MAAMyB,EAAQ,CAWZ,YAAYtU,EAAQ,CAXtBhL,EAAA,KAAAuf,IACEvf,EAAA,KAAAwf,GAA2B,MAC3Bxf,EAAA,KAAAyf,GAAwB,MACxBzf,EAAA,KAAA0f,GAA0B,IAC1B1f,EAAA,KAAAoL,GAAU,MACVpL,EAAA,KAAA2f,GAAe,MACf3f,EAAA,KAAA4f,GAAY,MACZ5f,EAAA,KAAA6f,GAAQ,MACR7f,EAAA,KAAA8f,GAAQ,MACR9f,EAAA,KAAA+f,GAAW,IACX/f,EAAA,KAAAggB,GAAiB,MAEf7Z,EAAA,KAAKiF,GAAUJ,EACjB,CACA,kBAAmB,CACjB,MAAMiB,EAAS9F,EAAA,KAAKsZ,GAAwB,SAAS,cAAc,QAAQ,GAC3E,OAAAxT,EAAO,UAAY,UACZxM,EAAA,KAAK8f,GAAAjS,IAAL,UAAarB,EAAQ,GAC9B,CACA,qBAAsB,CACpB,MAAMA,EAAS9F,EAAA,KAAKqZ,GAA2B,SAAS,cAAc,QAAQ,GAC9EvT,EAAO,UAAY,0BACnB,MAAM7tB,EAAWynB,EAAA,KAAKuF,IAAQ,sBAC9B,GAAIhtB,EAAU,CACZ,KAAM,CACJ,MAAA2pB,CACR,EAAUkE,EACJlE,EAAM,eAAiB,QAAQ,KAAOlC,EAAA,KAAKuF,IAAQ,WAAW,YAAc,MAAQ,EAAIhtB,EAAS,CAAC,EAAIA,EAAS,CAAC,EAAE,iCAClH2pB,EAAM,IAAM,QAAQ,IAAM3pB,EAAS,CAAC,CAAC,iCACrC,MAAM0oB,EAAQjB,EAAA,KAAKuF,IAAQ,mBACvBtE,IACFiB,EAAM,gBAAkBjB,EAE5B,CACA,OAAOrH,EAAA,KAAK8f,GAAAjS,IAAL,UAAarB,EAAQ,GAC9B,CACA,aAAc,CACZ,WAAW,IAAM,QACdxzC,EAAAotC,EAAA,KAAK2Z,KAA4B3Z,EAAA,KAAK4Z,MAAtC,MAAAhnD,EAA8D,OACjE,EAAG,CAAC,CACN,CACA,gBAAiB,CACf,GAAI,CAACotC,EAAA,KAAK2Z,IACR,OAEF,MAAM1Y,EAAQjB,EAAA,KAAKuF,IAAQ,mBACvBtE,IACFjB,EAAA,KAAK2Z,IAAyB,MAAM,gBAAkB1Y,GAExDjB,EAAA,KAAKuF,IAAQ,WAAW,iBAAiBvF,EAAA,KAAKuF,GAAO,CACvD,CACA,IAAI,oBAAqB,OACvB,SAAQ3yC,EAAAotC,EAAA,KAAK2Z,MAAL,YAAA/mD,EAA+B,wBAAwB,QAAS,GAAKotC,EAAA,KAAKuF,IAAQ,OAAO,mBAAmB,KACtH,CACA,IAAI,6BAA8B,CAChC,GAAIvF,EAAA,KAAKma,IACP,OAAOna,EAAA,KAAKma,IAEd,GAAI,CAACna,EAAA,KAAK2Z,IACR,OAAO,KAET,KAAM,CACJ,EAAA9gD,EACA,EAAAf,EACA,OAAA2kC,CACN,EAAQuD,EAAA,KAAK2Z,IAAyB,sBAAqB,EACjD,CACJ,EAAGS,EACH,EAAGC,EACH,MAAOhD,EACP,OAAQC,CACd,EAAQtX,EAAA,KAAKuF,IAAQ,OAAO,mBACxB,MAAO,EAAE1sC,EAAIuhD,GAAW/C,GAAcv/C,EAAI2kC,EAAS4d,GAAW/C,CAAY,CAC5E,CACA,IAAI,4BAA4BxgB,EAAK,CACnCwJ,EAAA,KAAK6Z,GAAiBrjB,EACxB,CACA,yBAA0B,CACxB,OAAOkJ,EAAA,KAAKma,MAAmB,IACjC,CACA,+BAAgC,QAC9BvnD,EAAAotC,EAAA,KAAK2Z,MAAL,MAAA/mD,EAA+B,SAC/B0tC,EAAA,KAAKqZ,GAA2B,KAClC,CACA,4BAA6B,QAC3B/mD,EAAAotC,EAAA,KAAK4Z,MAAL,MAAAhnD,EAA4B,SAC5B0tC,EAAA,KAAKsZ,GAAwB,KAC/B,CACA,uBAAuB,CACrB,SAAAU,EACA,SAAAC,CACJ,EAAK,CACIva,EAAA,KAAK2Z,MAGV3Z,EAAA,KAAK2Z,IAAyB,UAAU,OAAO,WAAYW,CAAQ,EACnEta,EAAA,KAAK2Z,IAAyB,aAAeY,EAC/C,CAwEA,KAAKtkD,EAAS,CACZ,MAAMsiB,EAAW,KAAK,4BACtB,IAAIy5B,EAAMC,EACV,GAAI15B,EACF,CAACy5B,EAAMC,CAAI,EAAI15B,MACV,CACL,CAACy5B,EAAMC,CAAI,EAAIjS,EAAA,KAAKuF,IAAQ,sBAC5B,KAAM,CACJ,MAAA/I,EACA,OAAAC,EACA,EAAA5jC,EACA,EAAAf,CACR,EAAUkoC,EAAA,KAAKuF,IACTyM,EAAOn5C,EAAIm5C,EAAOxV,EAClByV,EAAOn6C,EAAIm6C,EAAOxV,CACpB,CACA,MAAM+d,EAAmBxa,EAAA,KAAKuF,IAAQ,OAAO,mBACvC,CACJ,EAAG6U,EACH,EAAGC,EACH,MAAOhD,EACP,OAAQC,CACd,EAAQkD,EACJxa,EAAA,KAAKuF,IAAQ,WAAW,YAAYvF,EAAA,KAAKuF,IAAS6U,EAAUpI,EAAOqF,EAAagD,EAAUpI,EAAOqF,EAAc,CAC7G,GAAGrhD,EACH,iBAAAukD,CACN,CAAK,CACH,CACA,QAAS,CACFxa,EAAA,KAAK4Z,MAGV5Z,EAAA,KAAK4Z,IAAsB,MAAM,CAC/B,aAAc5Z,EAAA,KAAK6Z,GACzB,CAAK,EACDvZ,EAAA,KAAKuZ,GAA0B,IACjC,CACA,WAAY,CACV,OAAO7Z,EAAA,KAAKka,KAAYla,EAAA,KAAKga,MAAU,EACzC,CACA,SAAU,CACR,OAAOha,EAAA,KAAKga,MAAU,IACxB,CACA,eAAgB,CACd,OAAO,KAAK,UAAS,GAAMha,EAAA,KAAKga,MAAUha,EAAA,KAAK8Z,GACjD,CACA,WAAY,CACV,OAAO,KAAK,IACd,CACA,IAAI,MAAO,CACT,MAAO,CACL,KAAM9Z,EAAA,KAAKga,IACX,SAAUha,EAAA,KAAK+Z,IACf,KAAM/Z,EAAA,KAAKia,IACX,QAAS,KAAK,UAAS,CAC7B,CACE,CACA,IAAI,KAAKtjD,EAAM,CAIb,GAHIA,IAASqpC,EAAA,KAAKga,KAChB1Z,EAAA,KAAKyZ,GAAY,MAEfpjD,IAAS,KAAM,CACjB2pC,EAAA,KAAK0Z,GAAQ,IACb1Z,EAAA,KAAK4Z,GAAW,IAChB,MACF,CACA5Z,EAAA,KAAK0Z,GAAQrjD,GACb2pC,EAAA,KAAK2Z,GAAQ,IAAI,MACjB3Z,EAAA,KAAK4Z,GAAW,GAClB,CACA,YAAY,CACV,KAAAvjD,EACA,SAAA8jD,EACA,KAAAC,CACJ,EAAK,CACDpa,EAAA,KAAK0Z,GAAQrjD,GACb2pC,EAAA,KAAKyZ,GAAYU,GACjBna,EAAA,KAAK2Z,GAAQS,GACbpa,EAAA,KAAK4Z,GAAW,GAClB,CACA,eAAevjD,EAAM8jD,EAAW,KAAM,CACpCna,EAAA,KAAKwZ,GAAenjD,GACpB,KAAK,KAAOA,EACZ2pC,EAAA,KAAK2Z,GAAQ,MACb3Z,EAAA,KAAKyZ,GAAYU,EACnB,CACA,OAAQ,CAAC,CACT,SAAU,UACR7nD,EAAAotC,EAAA,KAAK4Z,MAAL,MAAAhnD,EAA4B,SAC5B0tC,EAAA,KAAKsZ,GAAwB,OAC7BjnD,EAAAqtC,EAAA,KAAK2Z,MAAL,MAAAhnD,EAA+B,SAC/B2tC,EAAA,KAAKqZ,GAA2B,MAChCrZ,EAAA,KAAK0Z,GAAQ,IACb1Z,EAAA,KAAKyZ,GAAY,MACjBzZ,EAAA,KAAK2Z,GAAQ,MACb3Z,EAAA,KAAKiF,GAAU,MACfjF,EAAA,KAAKuZ,GAA0B,IAC/BvZ,EAAA,KAAK4Z,GAAW,GAClB,CACF,CA3QEP,GAAA,YACAC,GAAA,YACAC,GAAA,YACAtU,GAAA,YACAuU,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAVFT,GAAA,YAkGEjS,GAAO,SAACjB,EAASmU,EAAc,CAC7B,GAAI,CAAC3a,EAAA,KAAKuF,IAAQ,WAAW,kBAAiB,EAC5C,OAAO,KAETiB,EAAQ,SAAW,IACnBA,EAAQ,aAAe,SACnBmU,GACFnU,EAAQ,aAAe,eACvBA,EAAQ,aAAa,eAAgB,2BAA2B,IAEhEA,EAAQ,qBAAuB,CAACxG,EAAA,KAAKuF,IAAQ,WAAW,yBAAyB,EACjFiB,EAAQ,aAAa,eAAgB,iCAAiC,GAExE,MAAMxxC,EAASgrC,EAAA,KAAKuF,IAAQ,WAAW,QACvC,GAAI,EAAEvwC,aAAkB,cAAgBA,EAAO,QAC7C,OAAOwxC,EAETA,EAAQ,iBAAiB,cAAetG,GAAe,CACrD,OAAAlrC,CACN,CAAK,EACG2lD,IACFnU,EAAQ,iBAAiB,UAAWxvC,GAAK,CACvCgpC,EAAA,KAAKuF,IAAQ,oBAAsB,GACnCpF,GAAUnpC,CAAC,CACb,EAAG,CACD,QAAS,GACT,OAAAhC,CACR,CAAO,EACDwxC,EAAQ,iBAAiB,WAAYxvC,GAAK,CACxCgpC,EAAA,KAAKuF,IAAQ,oBAAsB,GACnCpF,GAAUnpC,CAAC,CACb,EAAG,CACD,QAAS,GACT,OAAAhC,CACR,CAAO,GAEHwxC,EAAQ,iBAAiB,cAAe1nB,GAASA,EAAM,gBAAe,EAAI,CACxE,OAAA9pB,CACN,CAAK,EACD,MAAMg3B,EAAUlN,GAAS,CACvBA,EAAM,eAAc,EAChB0nB,IAAYxG,EAAA,KAAK4Z,IACnB,KAAK,KAAI,EAET5Z,EAAA,KAAKuF,IAAQ,cAAc,EAAI,CAEnC,EACA,OAAAiB,EAAQ,iBAAiB,QAASxa,EAAS,CACzC,QAAS,GACT,OAAAh3B,CACN,CAAK,EACDwxC,EAAQ,iBAAiB,UAAW1nB,GAAS,CACvCA,EAAM,SAAW0nB,GAAW1nB,EAAM,MAAQ,UAC5CwhB,EAAA,KAAKuZ,GAA0B,IAC/B7tB,EAAQlN,CAAK,EAEjB,EAAG,CACD,OAAA9pB,CACN,CAAK,EACDwxC,EAAQ,iBAAiB,eAAgB,IAAM,CAC7CxG,EAAA,KAAKuF,IAAQ,cAAc,GAAO,EAAI,CACxC,EAAG,CACD,OAAAvwC,CACN,CAAK,EACDwxC,EAAQ,iBAAiB,eAAgB,IAAM,CAC7CxG,EAAA,KAAKuF,IAAQ,cAAc,GAAO,EAAK,CACzC,EAAG,CACD,OAAAvwC,CACN,CAAK,EACMwxC,CACT,EAwGF,MAAMoU,GAAN,MAAMA,EAAa,CAajB,YAAY,CACV,UAAA7V,EACA,mBAAA8V,EAAqB,KACrB,kBAAAC,EAAoB,KACpB,aAAAC,EAAe,KACf,WAAAC,EAAa,KACb,WAAAC,EAAa,KACb,OAAAjmD,CACJ,EAAK,CArBLmlC,EAAA,KAAA+gB,IACE/gB,EAAA,KAAAuW,IACAvW,EAAA,KAAAghB,GAAc,IACdhhB,EAAA,KAAAihB,GAAqB,MACrBjhB,EAAA,KAAAkhB,IACAlhB,EAAA,KAAAmhB,IACAnhB,EAAA,KAAAohB,IACAphB,EAAA,KAAAqhB,IACArhB,EAAA,KAAAshB,GAAiB,MACjBthB,EAAA,KAAAuhB,IACAvhB,EAAA,KAAAwhB,GAAa,MACbxhB,EAAA,KAAAyhB,IACAzhB,EAAA,KAAA0hB,GAAe,MAUbvb,EAAA,KAAKoQ,GAAa3L,GAClBzE,EAAA,KAAK8a,GAAqBN,GAC1Bxa,EAAA,KAAK+a,GAAsBR,GAC3Bva,EAAA,KAAKgb,GAAgBP,GACrBza,EAAA,KAAKib,GAAcP,GACnB1a,EAAA,KAAKkb,GAAcP,GACnB3a,EAAA,KAAKsb,GAAkB,IAAI,iBAC3Btb,EAAA,KAAKob,GAAU,YAAY,IAAI,CAAC1mD,EAAQgrC,EAAA,KAAK4b,IAAgB,MAAM,CAAC,GACpE7W,EAAU,iBAAiB,aAAcnL,EAAA,KAAKshB,GAAAY,IAAc,KAAK,IAAI,EAAG,CACtE,QAAS,GACT,OAAQ9b,EAAA,KAAK0b,GACnB,CAAK,CACH,CACA,IAAI,6BAA8B,CAChC,MAAO,IAAKrZ,GAAY,UAC1B,CAiIA,SAAU,UACRzvC,EAAAotC,EAAA,KAAK4b,MAAL,MAAAhpD,EAAsB,QACtB0tC,EAAA,KAAKsb,GAAkB,OACvBjpD,EAAAqtC,EAAA,KAAKyb,MAAL,MAAA9oD,EAAqB,QACrB2tC,EAAA,KAAKmb,GAAiB,KACxB,CACF,EA3KE/K,GAAA,YACAyK,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAZFX,GAAA,YAsCEY,GAAa,SAAC/K,EAAK,WACjB,IAAIn+C,EAAAotC,EAAA,KAAKqb,MAAL,MAAAzoD,EAAA,WACF,OAEF,GAAIm+C,EAAI,QAAQ,SAAW,EAAG,CAC5B,GAAI/Q,EAAA,KAAKyb,IACP,OAEF,MAAMM,EAAgBzb,EAAA,KAAKmb,GAAiB,IAAI,iBAC1CzmD,EAAS,YAAY,IAAI,CAACgrC,EAAA,KAAK0b,IAASK,EAAc,MAAM,CAAC,EAC7DhX,EAAY/E,EAAA,KAAK0Q,IACjBsL,EAAO,CACX,QAAS,GACT,OAAAhnD,EACA,QAAS,EACjB,EACYinD,EAAoBjlD,GAAK,OACzBA,EAAE,cAAgB,WACpBpE,EAAAotC,EAAA,KAAKyb,MAAL,MAAA7oD,EAAqB,QACrB0tC,EAAA,KAAKmb,GAAiB,MAE1B,EACA1W,EAAU,iBAAiB,cAAe/tC,GAAK,CACzCA,EAAE,cAAgB,UACpBmpC,GAAUnpC,CAAC,EACXilD,EAAkBjlD,CAAC,EAEvB,EAAGglD,CAAI,EACPjX,EAAU,iBAAiB,YAAakX,EAAmBD,CAAI,EAC/DjX,EAAU,iBAAiB,gBAAiBkX,EAAmBD,CAAI,EACnE,MACF,CACA,GAAI,CAAChc,EAAA,KAAK6b,IAAc,CACtBvb,EAAA,KAAKub,GAAe,IAAI,iBACxB,MAAM7mD,EAAS,YAAY,IAAI,CAACgrC,EAAA,KAAK0b,IAAS1b,EAAA,KAAK6b,IAAa,MAAM,CAAC,EACjE9W,EAAY/E,EAAA,KAAK0Q,IACjBwL,EAAM,CACV,OAAAlnD,EACA,QAAS,GACT,QAAS,EACjB,EACM+vC,EAAU,iBAAiB,YAAanL,EAAA,KAAKshB,GAAAiB,IAAa,KAAK,IAAI,EAAGD,CAAG,EACzE,MAAME,EAAaxiB,EAAA,KAAKshB,GAAAmB,IAAY,KAAK,IAAI,EAC7CtX,EAAU,iBAAiB,WAAYqX,EAAYF,CAAG,EACtDnX,EAAU,iBAAiB,cAAeqX,EAAYF,CAAG,EACzDA,EAAI,QAAU,GACdnX,EAAU,iBAAiB,cAAe5E,GAAW+b,CAAG,EACxDnX,EAAU,iBAAiB,cAAe5E,GAAW+b,CAAG,EACxDnX,EAAU,iBAAiB,gBAAiB5E,GAAW+b,CAAG,EAC1DnX,EAAU,iBAAiB,YAAa5E,GAAW+b,CAAG,GACtDvpD,EAAAqtC,EAAA,KAAKsb,MAAL,MAAA3oD,EAAA,UACF,CAEA,GADAwtC,GAAU4Q,CAAG,EACTA,EAAI,QAAQ,SAAW,IAAKn7B,EAAAoqB,EAAA,KAAKob,MAAL,MAAAxlC,EAAA,WAA6B,CAC3D0qB,EAAA,KAAKqb,GAAa,MAClB,MACF,CACA,GAAI,CAACW,EAAQC,CAAM,EAAIxL,EAAI,QACvBuL,EAAO,WAAaC,EAAO,aAC7B,CAACD,EAAQC,CAAM,EAAI,CAACA,EAAQD,CAAM,GAEpChc,EAAA,KAAKqb,GAAa,CAChB,QAASW,EAAO,QAChB,QAASA,EAAO,QAChB,QAASC,EAAO,QAChB,QAASA,EAAO,OACtB,EACE,EACAJ,GAAY,SAACpL,EAAK,OAChB,GAAI,CAAC/Q,EAAA,KAAK2b,KAAc5K,EAAI,QAAQ,SAAW,EAC7C,OAEF5Q,GAAU4Q,CAAG,EACb,GAAI,CAACuL,EAAQC,CAAM,EAAIxL,EAAI,QACvBuL,EAAO,WAAaC,EAAO,aAC7B,CAACD,EAAQC,CAAM,EAAI,CAACA,EAAQD,CAAM,GAEpC,KAAM,CACJ,QAASE,EACT,QAASC,CACf,EAAQH,EACE,CACJ,QAASI,EACT,QAASC,CACf,EAAQJ,EACEK,EAAY5c,EAAA,KAAK2b,IACjB,CACJ,QAASkB,EACT,QAASC,EACT,QAASC,EACT,QAASC,CACf,EAAQJ,EACEK,EAAWF,EAAWF,EACtBK,EAAWF,EAAWF,EACtBK,EAAWT,EAAWF,EACtBY,EAAWT,EAAWF,EACtBY,EAAW,KAAK,MAAMF,EAAUC,CAAQ,GAAK,EAC7CE,EAAY,KAAK,MAAML,EAAUC,CAAQ,GAAK,EACpD,GAAI,CAACld,EAAA,KAAKmb,KAAe,KAAK,IAAImC,EAAYD,CAAQ,GAAKzC,GAAa,4BACtE,OAMF,GAJAgC,EAAU,QAAUJ,EACpBI,EAAU,QAAUH,EACpBG,EAAU,QAAUF,EACpBE,EAAU,QAAUD,EAChB,CAAC3c,EAAA,KAAKmb,IAAa,CACrB7a,EAAA,KAAK6a,GAAc,IACnB,MACF,CACA,MAAMoC,EAAS,EAAEf,EAAWE,GAAY,GAAID,EAAWE,GAAY,CAAC,GACpE/pD,EAAAotC,EAAA,KAAKub,MAAL,MAAA3oD,EAAA,UAAmB2qD,EAAQD,EAAWD,EACxC,EACAhB,GAAW,SAACtL,EAAK,OACXA,EAAI,QAAQ,QAAU,IAGtB/Q,EAAA,KAAK6b,MACP7b,EAAA,KAAK6b,IAAa,MAAK,EACvBvb,EAAA,KAAKub,GAAe,OACpBjpD,EAAAotC,EAAA,KAAKwb,MAAL,MAAA5oD,EAAA,YAEGotC,EAAA,KAAK2b,MAGVxb,GAAU4Q,CAAG,EACbzQ,EAAA,KAAKqb,GAAa,MAClBrb,EAAA,KAAK6a,GAAc,KACrB,EArKF,IAAMqC,GAAN5C,GAuLA,MAAM6C,GAAN,MAAMA,EAAiB,CAgErB,YAAY5f,EAAY,CAhE1B1D,EAAA,KAAAujB,IACEvjB,EAAA,KAAAwjB,GAAqB,MACrBxjB,EAAA,KAAAyjB,GAAkB,MAClBzjB,EAAA,KAAAsL,GAAW,MACXtL,EAAA,KAAAuL,GAAW,MACXvL,EAAA,KAAAwf,GAA2B,MAC3Bxf,EAAA,KAAA0jB,GAAY,IACZ1jB,EAAA,KAAA2jB,GAAiB,MACjB3jB,EAAA,KAAA4jB,GAAmB,IACnB5jB,EAAA,KAAA6jB,GAAe,MACf7jB,EAAA,KAAA8jB,GAAqB,MACrB9jB,EAAA,KAAA+jB,GAAmB,MACnB/jB,EAAA,KAAAgkB,GAAkB,MAClBhkB,EAAA,KAAAikB,GAAW,MACXjkB,EAAA,KAAAkkB,GAAsB,IACtBlkB,EAAA,KAAAmkB,GAAkB,IAClBnkB,EAAA,KAAAokB,GAAe,MACfpkB,EAAA,KAAAqkB,GAAa,IACbrkB,EAAA,KAAAskB,GAAgB,IAChBtkB,EAAA,KAAAukB,GAA+B,IAC/BvkB,EAAA,KAAAwkB,GAAoB,MACpBxkB,EAAA,KAAAykB,GAAa,GACbzkB,EAAA,KAAA0kB,GAAa,GACb1kB,EAAA,KAAA2kB,GAAqB,MACrB3kB,EAAA,KAAA4kB,GAAgB,MAChB5kC,GAAA,kBAAa,IACbA,GAAA,eAAU,IACVA,GAAA,oBAAe,MACfA,GAAA,uBAAkB,OAAO,OAAO,IAAI,GACpCA,GAAA,oBAAe,MACfA,GAAA,kBAAa,IACbA,GAAA,kBAAa,MACbA,GAAA,2BAAsB,IAItBggB,EAAA,KAAA6kB,GAAe,IACf7kB,EAAA,KAAA8kB,GAAUxB,GAAiB,WA4BzB,KAAK,OAAS5f,EAAW,OACzB,KAAK,GAAKA,EAAW,GACrB,KAAK,MAAQ,KAAK,OAAS,KAC3B,KAAK,UAAYA,EAAW,OAAO,UACnC,KAAK,KAAOA,EAAW,KACvB,KAAK,IAAM,KACX,KAAK,WAAaA,EAAW,UAC7B,KAAK,oBAAsB,KAC3B,KAAK,qBAAuB,GAC5B,KAAK,gBAAgB,WAAaA,EAAW,WAC7C,KAAK,oBAAsB,KAC3B,KAAK,oBAAsBA,EAAW,qBAAuB,KAC7D,KAAK,aAAeA,EAAW,cAAgB,IAAI,KACnD,KAAK,iBAAmBA,EAAW,kBAAoB,KACvD,KAAK,cAAgB,GACrB,KAAM,CACJ,SAAAjC,EACA,QAAS,CACP,UAAAoG,EACA,WAAAC,EACA,MAAAid,EACA,MAAAC,CACR,CACA,EAAQ,KAAK,OAAO,SAChB,KAAK,SAAWvjB,EAChB,KAAK,cAAgB,IAAMA,EAAW,KAAK,WAAW,eAAe,UAAY,IACjF,KAAK,eAAiB,CAACoG,EAAWC,CAAU,EAC5C,KAAK,gBAAkB,CAACid,EAAOC,CAAK,EACpC,KAAM,CAAC3iB,EAAOC,CAAM,EAAI,KAAK,iBAC7B,KAAK,EAAIoB,EAAW,EAAIrB,EACxB,KAAK,EAAIqB,EAAW,EAAIpB,EACxB,KAAK,gBAAkB,GACvB,KAAK,QAAU,EACjB,CAxDA,WAAW,yBAA0B,CACnC,MAAM2iB,EAAS3B,GAAiB,UAAU,oBACpClM,EAAQwG,GAA0B,gBAClCvG,EAAMuG,GAA0B,cACtC,OAAO9iB,GAAO,KAAM,0BAA2B,IAAIuX,GAAgB,CAAC,CAAC,CAAC,WAAW,EAAG4S,EAAQ,CAC1F,KAAM,CAAC,CAAC7N,EAAO,CAAC,CACtB,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAG6N,EAAQ,CACtD,KAAM,CAAC,CAAC5N,EAAK,CAAC,CACpB,CAAK,EAAG,CAAC,CAAC,YAAY,EAAG4N,EAAQ,CAC3B,KAAM,CAAC7N,EAAO,CAAC,CACrB,CAAK,EAAG,CAAC,CAAC,kBAAmB,sBAAsB,EAAG6N,EAAQ,CACxD,KAAM,CAAC5N,EAAK,CAAC,CACnB,CAAK,EAAG,CAAC,CAAC,SAAS,EAAG4N,EAAQ,CACxB,KAAM,CAAC,EAAG,CAAC7N,CAAK,CACtB,CAAK,EAAG,CAAC,CAAC,eAAgB,mBAAmB,EAAG6N,EAAQ,CAClD,KAAM,CAAC,EAAG,CAAC5N,CAAG,CACpB,CAAK,EAAG,CAAC,CAAC,WAAW,EAAG4N,EAAQ,CAC1B,KAAM,CAAC,EAAG7N,CAAK,CACrB,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAG6N,EAAQ,CACtD,KAAM,CAAC,EAAG5N,CAAG,CACnB,CAAK,EAAG,CAAC,CAAC,QAAQ,EAAGiM,GAAiB,UAAU,yBAAyB,CAAC,CAAC,CAAC,CAC1E,CAoCA,gBAAgBlJ,EAAc,CAC5B,KAAK,UAAYA,CACnB,CACA,IAAI,YAAa,CACf,OAAO,OAAO,eAAe,IAAI,EAAE,YAAY,KACjD,CACA,IAAI,MAAO,CACT,OAAO,OAAO,eAAe,IAAI,EAAE,YAAY,WACjD,CACA,WAAW,UAAW,CACpB,MAAO,EACT,CACA,WAAW,mBAAoB,CAC7B,OAAOtf,GAAO,KAAM,oBAAqB,KAAK,cAAc,WAAW,YAAY,CAAC,CACtF,CACA,OAAO,wBAAwBkQ,EAAQ,CACrC,MAAMka,EAAa,IAAIC,GAAW,CAChC,GAAIna,EAAO,WAAW,MAAK,EAC3B,OAAQA,EAAO,OACf,UAAWA,EAAO,UACxB,CAAK,EACDka,EAAW,oBAAsBla,EAAO,oBACxCka,EAAW,QAAU,GACrBA,EAAW,WAAW,uBAAuBA,CAAU,CACzD,CACA,OAAO,WAAWxG,EAAM1S,EAAY,CAmBlC,GAlBAsX,GAAiB,QAAjBA,GAAiB,MAAU5E,GAC3B4E,GAAiB,aAAjBA,GAAiB,WAAe,OAAO,OAAO,CAC5C,UAAW,qCACX,SAAU,oCACV,IAAK,+BACL,MAAO,iCACP,UAAW,oCACjB,CAAK,GACDA,GAAiB,eAAjBA,GAAiB,aAAiB,OAAO,OAAO,CAC9C,QAAS,gCACT,UAAW,kCACX,SAAU,iCACV,YAAa,oCACb,YAAa,oCACb,aAAc,qCACd,WAAY,mCACZ,WAAY,kCAClB,CAAK,GACGA,GAAiB,mBAAqB,GACxC,OAEF,MAAMvb,EAAQ,iBAAiB,SAAS,eAAe,EACvDub,GAAiB,iBAAmB,WAAWvb,EAAM,iBAAiB,iBAAiB,CAAC,GAAK,CAC/F,CACA,OAAO,oBAAoBqd,EAAOC,EAAQ,CAAC,CAC3C,WAAW,2BAA4B,CACrC,MAAO,CAAA,CACT,CACA,OAAO,yBAAyBC,EAAM,CACpC,MAAO,EACT,CACA,OAAO,MAAMv1B,EAAMoU,EAAQ,CACzBnK,GAAY,iBAAiB,CAC/B,CACA,IAAI,oBAAqB,CACvB,MAAO,CAAA,CACT,CACA,IAAI,cAAe,CACjB,OAAO6L,EAAA,KAAKgf,GACd,CACA,IAAI,aAAazpD,EAAO,OACtB+qC,EAAA,KAAK0e,GAAezpD,IACpB3C,EAAA,KAAK,MAAL,MAAAA,EAAU,UAAU,OAAO,YAAa2C,EAC1C,CACA,IAAI,KAAM,CACR,OAAO,KAAK,qBAAuB,KAAK,EAC1C,CACA,IAAI,gBAAiB,CACnB,MAAO,EACT,CACA,QAAS,CACP,KAAM,CAACysC,EAAWC,CAAU,EAAI,KAAK,eACrC,OAAQ,KAAK,eAAc,CACzB,IAAK,IACH,KAAK,GAAK,KAAK,OAASA,GAAcD,EAAY,GAClD,KAAK,GAAK,KAAK,MAAQA,GAAaC,EAAa,GACjD,MACF,IAAK,KACH,KAAK,GAAK,KAAK,MAAQ,EACvB,KAAK,GAAK,KAAK,OAAS,EACxB,MACF,IAAK,KACH,KAAK,GAAK,KAAK,OAASA,GAAcD,EAAY,GAClD,KAAK,GAAK,KAAK,MAAQA,GAAaC,EAAa,GACjD,MACF,QACE,KAAK,GAAK,KAAK,MAAQ,EACvB,KAAK,GAAK,KAAK,OAAS,EACxB,KACR,CACI,KAAK,kBAAiB,CACxB,CACA,YAAYnnB,EAAQ,CAClB,KAAK,WAAW,YAAYA,CAAM,CACpC,CACA,IAAI,cAAe,CACjB,OAAO,KAAK,WAAW,YACzB,CACA,iBAAkB,CAChB,KAAK,IAAI,MAAM,OAAS,CAC1B,CACA,iBAAkB,CAChB,KAAK,IAAI,MAAM,OAASklB,EAAA,KAAKif,GAC/B,CACA,UAAU3gB,EAAQ,OACZA,IAAW,MACb,KAAK,UAAYA,EAAO,UACxB,KAAK,eAAiBA,EAAO,iBAE7B1E,EAAA,KAAK8jB,GAAAgC,IAAL,YACA9sD,EAAAotC,EAAA,KAAKme,MAAL,MAAAvrD,EAAsB,SACtB0tC,EAAA,KAAK6d,GAAkB,OAEzB,KAAK,OAAS7f,CAChB,CACA,QAAQxf,EAAO,CACR,KAAK,sBAGLkhB,EAAA,KAAKse,IAGRhe,EAAA,KAAKge,GAAkB,IAFvB,KAAK,OAAO,YAAY,IAAI,EAIhC,CACA,SAASx/B,EAAO,OAId,GAHI,CAAC,KAAK,qBAGN,CAAC,KAAK,gBACR,OAEF,MAAMvI,EAASuI,EAAM,cACjBvI,GAAA,MAAAA,EAAQ,QAAQ,IAAI,KAAK,EAAE,MAG/BuI,EAAM,eAAc,GACflsB,EAAA,KAAK,SAAL,MAAAA,EAAa,qBAChB,KAAK,eAAc,EAEvB,CACA,gBAAiB,CACX,KAAK,UACP,KAAK,OAAM,EAEX,KAAK,OAAM,CAEf,CACA,QAAS,CACF,KAAK,gBAGV,KAAK,uBAAsB,CAC7B,CACA,wBAAyB,CACvB,KAAK,WAAW,uBAAuB,IAAI,CAC7C,CACA,MAAMiG,EAAGf,EAAGq/C,EAAIC,EAAI,CAClB,KAAM,CAAC5a,EAAOC,CAAM,EAAI,KAAK,iBAC7B,CAAC0a,EAAIC,CAAE,EAAI,KAAK,wBAAwBD,EAAIC,CAAE,EAC9C,KAAK,GAAKv+C,EAAIs+C,GAAM3a,EACpB,KAAK,GAAK1kC,EAAIs/C,GAAM3a,EACpB,KAAK,kBAAiB,CACxB,CACA,gBAAgBkjB,EAAOC,EAAO,CAC5B,GAAI,KAAK,QAAS,CAChB,OAAO,KAAK,QACZ,MACF,CACA,KAAM,CAACvI,EAAaC,CAAY,EAAI,KAAK,iBACzC,KAAK,MAAMqI,EAAQtI,EAAauI,EAAQtI,EAAc,KAAK,MAAQD,EAAa,KAAK,OAASC,CAAY,EAC1G,KAAK,cAAa,CACpB,CAQA,UAAUz+C,EAAGf,EAAG,CACd8hC,EAAA,KAAK8jB,GAAAmC,IAAL,UAAgB,KAAK,iBAAkBhnD,EAAGf,EAC5C,CACA,gBAAgBe,EAAGf,EAAG,CACpBkoC,EAAA,KAAKue,KAALje,EAAA,KAAKie,GAAiB,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,MAAM,GAC9D3kB,EAAA,KAAK8jB,GAAAmC,IAAL,UAAgB,KAAK,eAAgBhnD,EAAGf,GACxC,KAAK,IAAI,eAAe,CACtB,MAAO,SACb,CAAK,CACH,CACA,iBAAkB,CAChB,KAAK,cAAc,KAAK,EAAG,KAAK,CAAC,CACnC,CACA,KAAKq/C,EAAIC,EAAI,CACXpX,EAAA,KAAKue,KAALje,EAAA,KAAKie,GAAiB,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,MAAM,GAC9D,KAAM,CACJ,IAAA3c,EACA,iBAAkB,CAACyV,EAAaC,CAAY,CAClD,EAAQ,KAGJ,GAFA,KAAK,GAAKH,EAAKE,EACf,KAAK,GAAKD,EAAKE,EACX,KAAK,SAAW,KAAK,EAAI,GAAK,KAAK,EAAI,GAAK,KAAK,EAAI,GAAK,KAAK,EAAI,GAAI,CACzE,KAAM,CACJ,EAAAz+C,EACA,EAAAf,CACR,EAAU,KAAK,IAAI,sBAAqB,EAC9B,KAAK,OAAO,cAAc,KAAMe,EAAGf,CAAC,IACtC,KAAK,GAAK,KAAK,MAAM,KAAK,CAAC,EAC3B,KAAK,GAAK,KAAK,MAAM,KAAK,CAAC,EAE/B,CACA,GAAI,CACF,EAAAe,EACA,EAAAf,CACN,EAAQ,KACJ,KAAM,CAACgoD,EAAIC,CAAE,EAAI,KAAK,mBAAkB,EACxClnD,GAAKinD,EACLhoD,GAAKioD,EACL,KAAM,CACJ,MAAA7d,CACN,EAAQN,EACJM,EAAM,KAAO,IAAI,IAAMrpC,GAAG,QAAQ,CAAC,CAAC,IACpCqpC,EAAM,IAAM,IAAI,IAAMpqC,GAAG,QAAQ,CAAC,CAAC,IACnC,KAAK,eAAee,EAAGf,CAAC,EACxB8pC,EAAI,eAAe,CACjB,MAAO,SACb,CAAK,CACH,CACA,eAAe/oC,EAAGf,EAAG,CAAC,CACtB,cAAce,EAAGf,EAAG,CAAC,CACrB,IAAI,eAAgB,CAClB,MAAO,CAAC,CAACkoC,EAAA,KAAKue,MAAiBve,EAAA,KAAKue,IAAa,CAAC,IAAM,KAAK,GAAKve,EAAA,KAAKue,IAAa,CAAC,IAAM,KAAK,EAClG,CACA,IAAI,iBAAkB,CACpB,MAAO,CAAC,CAACve,EAAA,KAAKue,MAAiBve,EAAA,KAAKue,IAAa,CAAC,IAAM,KAAK,OAASve,EAAA,KAAKue,IAAa,CAAC,IAAM,KAAK,OACtG,CACA,oBAAqB,CACnB,KAAM,CAAClH,EAAaC,CAAY,EAAI,KAAK,iBACnC,CACJ,iBAAA0I,CACN,EAAQvC,GACE5kD,EAAImnD,EAAmB3I,EACvBv/C,EAAIkoD,EAAmB1I,EAC7B,OAAQ,KAAK,SAAQ,CACnB,IAAK,IACH,MAAO,CAAC,CAACz+C,EAAGf,CAAC,EACf,IAAK,KACH,MAAO,CAACe,EAAGf,CAAC,EACd,IAAK,KACH,MAAO,CAACe,EAAG,CAACf,CAAC,EACf,QACE,MAAO,CAAC,CAACe,EAAG,CAACf,CAAC,CACtB,CACE,CACA,IAAI,kBAAmB,CACrB,MAAO,EACT,CACA,kBAAkB8jC,EAAW,KAAK,SAAU,CAC1C,KAAM,CACJ,IAAK,CACH,MAAAsG,CACR,EACM,eAAgB,CAACF,EAAWC,CAAU,CAC5C,EAAQ,KACJ,GAAI,CACF,EAAAppC,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,CACN,EAAQ,KAKJ,GAJAD,GAASwF,EACTvF,GAAUwF,EACVppC,GAAKmpC,EACLlqC,GAAKmqC,EACD,KAAK,iBACP,OAAQrG,EAAQ,CACd,IAAK,GACH/iC,EAAIyiC,GAAUziC,EAAG,EAAGmpC,EAAYxF,CAAK,EACrC1kC,EAAIwjC,GAAUxjC,EAAG,EAAGmqC,EAAaxF,CAAM,EACvC,MACF,IAAK,IACH5jC,EAAIyiC,GAAUziC,EAAG,EAAGmpC,EAAYvF,CAAM,EACtC3kC,EAAIwjC,GAAUxjC,EAAG0kC,EAAOyF,CAAU,EAClC,MACF,IAAK,KACHppC,EAAIyiC,GAAUziC,EAAG2jC,EAAOwF,CAAS,EACjClqC,EAAIwjC,GAAUxjC,EAAG2kC,EAAQwF,CAAU,EACnC,MACF,IAAK,KACHppC,EAAIyiC,GAAUziC,EAAG4jC,EAAQuF,CAAS,EAClClqC,EAAIwjC,GAAUxjC,EAAG,EAAGmqC,EAAazF,CAAK,EACtC,KACV,CAEI,KAAK,EAAI3jC,GAAKmpC,EACd,KAAK,EAAIlqC,GAAKmqC,EACd,KAAM,CAAC6d,EAAIC,CAAE,EAAI,KAAK,mBAAkB,EACxClnD,GAAKinD,EACLhoD,GAAKioD,EACL7d,EAAM,KAAO,IAAI,IAAMrpC,GAAG,QAAQ,CAAC,CAAC,IACpCqpC,EAAM,IAAM,IAAI,IAAMpqC,GAAG,QAAQ,CAAC,CAAC,IACnC,KAAK,UAAS,CAChB,CAaA,wBAAwBe,EAAGf,EAAG,OAC5B,OAAO8hC,EAAAhnC,EAAA6qD,GAAiBwC,GAAAC,IAAjB,KAAAttD,EAA8BiG,EAAGf,EAAG,KAAK,eAClD,CACA,wBAAwBe,EAAGf,EAAG,OAC5B,OAAO8hC,EAAAhnC,EAAA6qD,GAAiBwC,GAAAC,IAAjB,KAAAttD,EAA8BiG,EAAGf,EAAG,IAAM,KAAK,eACxD,CAmBA,IAAI,aAAc,CAChB,OAAO,KAAK,WAAW,eAAe,SACxC,CACA,IAAI,gBAAiB,CACnB,OAAQ,KAAK,WAAW,eAAe,SAAW,KAAK,cAAgB,GACzE,CACA,IAAI,kBAAmB,CACrB,KAAM,CACJ,YAAAqoD,EACA,eAAgB,CAACne,EAAWC,CAAU,CAC5C,EAAQ,KACJ,MAAO,CAACD,EAAYme,EAAale,EAAake,CAAW,CAC3D,CACA,SAAU,CACR,KAAM,CACJ,IAAK,CACH,MAAAje,CACR,EACM,MAAA1F,EACA,OAAAC,CACN,EAAQ,KACJyF,EAAM,MAAQ,IAAI,IAAM1F,GAAO,QAAQ,CAAC,CAAC,IACzC0F,EAAM,OAAS,IAAI,IAAMzF,GAAQ,QAAQ,CAAC,CAAC,GAC7C,CACA,uBAAwB,CACtB,MAAO,CAAC,EAAG,CAAC,CACd,CAqFA,YAAa,CAAC,CAyBd,OAAO,OAAO5jC,EAAG,CACf,OAAO,KAAK,MAAMA,EAAI,GAAK,EAAI,GACjC,CAuGA,aAAc,CAAC,CACf,eAAgB,QACdjG,EAAAotC,EAAA,KAAKyF,MAAL,MAAA7yC,EAAe,QACjB,CACA,IAAI,gBAAiB,CACnB,OAAO,IACT,CACA,MAAM,gBAAiB,CACrB,GAAI,KAAK,cAAgBotC,EAAA,KAAKye,IAC5B,OAAO,KAAK,aAEd,KAAK,aAAe,IAAIvX,GAAc,IAAI,EAC1C,KAAK,IAAI,OAAO,KAAK,aAAa,OAAM,CAAE,EAC1C,KAAM,CACJ,eAAAkZ,CACN,EAAQ,KACJ,GAAIA,EACF,SAAW,CAAC9mC,EAAMutB,CAAI,IAAKuZ,EACzB,MAAM,KAAK,aAAa,UAAU9mC,EAAMutB,CAAI,EAGhD,OAAK,KAAK,YACR,KAAK,aAAa,UAAU,UAAW,KAAK,iBAAgB,CAAE,EAEhE,KAAK,aAAa,UAAU,QAAQ,EAC7B,KAAK,YACd,CACA,2BAA4B,QAC1Bj0C,EAAA,KAAK,eAAL,MAAAA,EAAmB,gBAAgB,UAAW,KAAK,iBAAgB,EAAI,gBACzE,CACA,gCAAiC,QAC/BA,EAAA,KAAK,eAAL,MAAAA,EAAmB,aAAa,UAClC,CACA,mBAAoB,UAClBA,EAAA,KAAK,eAAL,MAAAA,EAAmB,SACnB,KAAK,aAAe,MACpBD,EAAAqtC,EAAA,KAAKyF,MAAL,MAAA9yC,EAAe,SACjB,CACA,aAAaoyC,EAAW,OACtB,MAAMsb,GAAiBztD,EAAA,KAAK,eAAL,YAAAA,EAAmB,IACtCytD,EACFA,EAAe,OAAOtb,CAAS,EAE/B,KAAK,IAAI,OAAOA,CAAS,CAE7B,CACA,qBAAsB,CACpB,OAAO,KAAK,IAAI,sBAAqB,CACvC,CACA,eAAgB,CACd,OAAK/E,EAAA,KAAKyF,MACR+T,GAAQ,WAAWiE,GAAiB,KAAK,EACzCnd,EAAA,KAAKmF,GAAW,IAAI+T,GAAQ,IAAI,GAC5BxZ,EAAA,KAAK2d,MACP3d,EAAA,KAAKyF,IAAS,KAAOzF,EAAA,KAAK2d,IAC1Brd,EAAA,KAAKqd,GAAqB,QAGvB3d,EAAA,KAAKyF,GACd,CACA,IAAI,aAAc,OAChB,OAAO7yC,EAAAotC,EAAA,KAAKyF,MAAL,YAAA7yC,EAAe,IACxB,CACA,IAAI,YAAYgD,EAAM,CACfoqC,EAAA,KAAKyF,MAGVzF,EAAA,KAAKyF,IAAS,KAAO7vC,EACvB,CACA,IAAI,gBAAiB,OACnB,OAAOhD,EAAAotC,EAAA,KAAKyF,MAAL,YAAA7yC,EAAe,WACxB,CACA,MAAM,kBAAkB+D,EAAM,OAC5B,OAAM/D,EAAAotC,EAAA,KAAKyF,MAAL,YAAA7yC,EAAe,eAAe+D,GACtC,CACA,iBAAiBuiD,EAAc,OAC7B,OAAOtmD,EAAAotC,EAAA,KAAKyF,MAAL,YAAA7yC,EAAe,UAAUsmD,EAClC,CACA,YAAa,CACX,MAAO,CAAC,CAAClZ,EAAA,KAAKyF,KAAY,CAACzF,EAAA,KAAKyF,IAAS,QAAO,CAClD,CACA,gBAAiB,OACf,QAAO7yC,EAAAotC,EAAA,KAAKyF,MAAL,YAAA7yC,EAAe,YAAa,EACrC,CACA,oBAAqB,QACnBA,EAAAotC,EAAA,KAAK0F,MAAL,MAAA9yC,EAAe,aACjB,CACA,kBAAmB,CACjB,OAAO,KAAK,cAAgBotC,EAAA,KAAK0F,KAALpF,EAAA,KAAKoF,GAAa,IAAI+T,GAAQ,IAAI,GAAI,IACpE,CACA,4BAA6B,CAC3B,GAAK,KAAK,WAAW,oBAGrB,IAAIzZ,EAAA,KAAK2Z,IAA0B,CAC7B,KAAK,WAAW,iBAClB3Z,EAAA,KAAK2Z,IAAyB,UAAU,OAAO,QAAQ,EAEzD,MACF,CACK,KAAK,aAGVrZ,EAAA,KAAKqZ,GAA2B3Z,EAAA,KAAK0F,IAAS,oBAAmB,GACjE,KAAK,IAAI,OAAO1F,EAAA,KAAK2Z,GAAwB,GAC/C,CACA,+BAAgC,CAC9B3Z,EAAA,KAAK0F,IAAS,8BAA6B,EAC3CpF,EAAA,KAAKqZ,GAA2B,KAClC,CACA,6BAA8B,QAC5B/mD,EAAAotC,EAAA,KAAK2Z,MAAL,MAAA/mD,EAA+B,UAAU,IAAI,SAC/C,CACA,IAAI,SAAU,CACZ,GAAI,CAACotC,EAAA,KAAK0F,IACR,OAAO,KAET,KAAM,CACJ,KAAM,CACJ,SAAA+U,EACA,KAAA9jD,EACA,KAAA+jD,EACA,QAAA5E,CACR,CACA,EAAQ9V,EAAA,KAAK0F,IACT,MAAO,CACL,KAAA/uC,EACA,SAAA8jD,EACA,KAAAC,EACA,QAAA5E,EACA,MAAO,KAAK,eAAc,EAC1B,QAAS,KAAK,SAAW,CAC/B,CACE,CACA,IAAI,QAAQvgD,EAAO,CACjByqC,EAAA,KAAK0F,KAALpF,EAAA,KAAKoF,GAAa,IAAI+T,GAAQ,IAAI,GAC9B,OAAOlkD,GAAU,UAAYA,IAAU,KACzCyqC,EAAA,KAAK0F,IAAS,YAAYnwC,CAAK,EAE/ByqC,EAAA,KAAK0F,IAAS,KAAOnwC,EAEnB,KAAK,YACP,KAAK,+BAA8B,EACnC,KAAK,2BAA0B,EAC/B,KAAK,WAAW,cAAc,IAAI,IAElC,KAAK,0BAAyB,EAC9B,KAAK,8BAA6B,EAClC,KAAK,WAAW,cAAc,IAAI,EAEtC,CACA,eAAe,CACb,QAAAixC,EACA,SAAAwP,EACA,SAAAyE,CACJ,EAAK,CAMD,GALI,CAACzE,IAGLhW,EAAA,KAAK0F,KAALpF,EAAA,KAAKoF,GAAa,IAAI+T,GAAQ,IAAI,GAClCzZ,EAAA,KAAK0F,IAAS,eAAec,EAASiU,CAAQ,EAC1C,CAAC,KAAK,qBACR,OAEF,MAAMpd,EAAa,KAAK,WAAW,sCAAsC,KAAK,mBAAmB,EAC7FA,GACF,KAAK,0BAA0BA,CAAU,CAE7C,CACA,IAAI,kBAAmB,OACrB,OAAOzqC,EAAAotC,EAAA,KAAK0F,MAAL,YAAA9yC,EAAe,eACxB,CACA,IAAI,mBAAoB,OACtB,OAAOA,EAAAotC,EAAA,KAAK0F,MAAL,YAAA9yC,EAAe,WACxB,CACA,IAAI,YAAa,CACf,MAAO,CAAC,CAACotC,EAAA,KAAK0F,KAAY,CAAC1F,EAAA,KAAK0F,IAAS,WAAa,CAAC1F,EAAA,KAAK0F,IAAS,UAAS,CAChF,CACA,MAAM,YAAYzvC,EAAS,CACzB+pC,EAAA,KAAK0F,KAALpF,EAAA,KAAKoF,GAAa,IAAI+T,GAAQ,IAAI,GAClCzZ,EAAA,KAAK0F,IAAS,KAAKzvC,CAAO,CAC5B,CACA,cAAco8C,EAAYC,EAAa,OAAW,CAC5C,KAAK,YACP,KAAK,WAAW,cAAc,KAAMD,EAAYC,CAAU,CAE9D,CACA,yBAAyBgI,EAAU,CACjCta,EAAA,KAAK0F,IAAS,kBAAkB4U,CAAQ,CAC1C,CACA,WAAWt8B,EAAY,CACrB,GAAI,KAAK,iBAAkB,CAGzB,KAAM,CAAA,CAAA,CAAA,CAAKsiC,CAAG,EAAItiC,EAAW,KACvB,CAACgkB,CAAS,EAAI,KAAK,eACnB,CAACkd,CAAK,EAAI,KAAK,gBACfqB,EAAMrB,EAAQld,EAAY,EAC1Bwe,EAAMF,EAAM,IACZG,EAAMF,EAAM,IAClBviC,EAAW,MAAQ,CACjB,SAAU,KAAK,QAAQ,KACvB,QAAS,KAAK,QAAQ,QACtB,KAAM,CAACuiC,EAAKC,EAAKC,EAAKH,CAAG,CACjC,CACI,CACF,CACA,0BAA0B,CACxB,MAAO,CACL,SAAAI,EACA,QAAA5K,CACN,CACA,EAAK,CACD9V,EAAA,KAAK0F,IAAS,KAAOoQ,EAAU,KAAO4K,CACxC,CACA,IAAI,0BAA2B,CAC7B,OAAO,KAAK,OAAO,kBACrB,CACA,QAAS,OACP,MAAM9e,EAAM,KAAK,IAAM,SAAS,cAAc,KAAK,EACnDA,EAAI,aAAa,wBAAyB,IAAM,KAAK,UAAY,GAAG,EACpEA,EAAI,UAAY,KAAK,KACrBA,EAAI,aAAa,KAAM,KAAK,EAAE,EAC9BA,EAAI,SAAW5B,EAAA,KAAK6d,IAAY,GAAK,EACrCjc,EAAI,aAAa,OAAQ,aAAa,EAClC,KAAK,eACPA,EAAI,aAAa,eAAgB,KAAK,aAAa,EAEhD,KAAK,YACRA,EAAI,UAAU,IAAI,QAAQ,EAE5B,KAAK,gBAAe,EACpBhI,EAAA,KAAK8jB,GAAAiD,IAAL,WACA,KAAM,CAACtJ,EAAaC,CAAY,EAAI,KAAK,iBACrC,KAAK,eAAiB,MAAQ,IAChC1V,EAAI,MAAM,SAAW,IAAI,IAAM0V,EAAeD,GAAa,QAAQ,CAAC,CAAC,IACrEzV,EAAI,MAAM,UAAY,IAAI,IAAMyV,EAAcC,GAAc,QAAQ,CAAC,CAAC,KAExE,KAAM,CAACH,EAAIC,CAAE,EAAI,KAAK,sBAAqB,EAC3C,YAAK,UAAUD,EAAIC,CAAE,EACrBjP,GAAW,KAAMvG,EAAK,CAAC,UAAW,cAAe,UAAU,CAAC,EACxD,KAAK,aAAe,KAAK,WAAW,uBACtC5B,EAAA,KAAK+e,KAALze,EAAA,KAAKye,GAAkB,IAAIvB,GAAa,CACtC,UAAW5b,EACX,mBAAoB,IAAM,CAAC,KAAK,WAChC,aAAchI,EAAA,KAAK8jB,GAAAkD,IAAyB,KAAK,IAAI,EACrD,WAAYhnB,EAAA,KAAK8jB,GAAAmD,IAAoB,KAAK,IAAI,EAC9C,WAAYjnB,EAAA,KAAK8jB,GAAAoD,IAAuB,KAAK,IAAI,EACjD,OAAQ,KAAK,WAAW,OAChC,CAAO,IAEH,KAAK,2BAA0B,GAC/BluD,EAAA,KAAK,WAAW,iBAAhB,MAAAA,EAAgC,OACzBgvC,CACT,CAkDA,YAAY9iB,EAAO,CACjB,KAAM,CACJ,MAAAssB,CACN,EAAQ9U,GAAY,SAChB,GAAIxX,EAAM,SAAW,GAAKA,EAAM,SAAWssB,EAAO,CAChDtsB,EAAM,eAAc,EACpB,MACF,CAEA,GADAwhB,EAAA,KAAKge,GAAkB,IACnB,KAAK,aAAc,CACrB1kB,EAAA,KAAK8jB,GAAAqD,IAAL,UAAuBjiC,GACvB,MACF,CACA8a,EAAA,KAAK8jB,GAAAsD,IAAL,UAA2BliC,EAC7B,CAoFA,kBAAmB,CAAC,CACpB,iBAAkB,CAAC,CACnB,WAAY,CACNkhB,EAAA,KAAK2e,KACP,aAAa3e,EAAA,KAAK2e,GAAiB,EAErCre,EAAA,KAAKqe,GAAoB,WAAW,IAAM,OACxCre,EAAA,KAAKqe,GAAoB,OACzB/rD,EAAA,KAAK,SAAL,MAAAA,EAAa,gBAAgB,KAC/B,EAAG,CAAC,EACN,CACA,sBAAsB0rC,EAAQzlC,EAAGf,EAAG,CAClCwmC,EAAO,aAAa,IAAI,EACxB,KAAK,EAAIzlC,EACT,KAAK,EAAIf,EACT,KAAK,kBAAiB,EACtB,KAAK,cAAa,CACpB,CACA,QAAQq/C,EAAIC,EAAIxb,EAAW,KAAK,SAAU,CACxC,MAAM/O,EAAQ,KAAK,YACb,CAACmV,EAAWC,CAAU,EAAI,KAAK,eAC/B,CAACid,EAAOC,CAAK,EAAI,KAAK,gBACtB8B,EAAS9J,EAAKtqB,EACdq0B,EAAS9J,EAAKvqB,EACdh0B,EAAI,KAAK,EAAImpC,EACblqC,EAAI,KAAK,EAAImqC,EACbzF,EAAQ,KAAK,MAAQwF,EACrBvF,EAAS,KAAK,OAASwF,EAC7B,OAAQrG,EAAQ,CACd,IAAK,GACH,MAAO,CAAC/iC,EAAIooD,EAAS/B,EAAOjd,EAAanqC,EAAIopD,EAASzkB,EAAS0iB,EAAOtmD,EAAIooD,EAASzkB,EAAQ0iB,EAAOjd,EAAanqC,EAAIopD,EAAS/B,CAAK,EACnI,IAAK,IACH,MAAO,CAACtmD,EAAIqoD,EAAShC,EAAOjd,EAAanqC,EAAImpD,EAAS9B,EAAOtmD,EAAIqoD,EAASzkB,EAASyiB,EAAOjd,EAAanqC,EAAImpD,EAASzkB,EAAQ2iB,CAAK,EACnI,IAAK,KACH,MAAO,CAACtmD,EAAIooD,EAASzkB,EAAQ0iB,EAAOjd,EAAanqC,EAAIopD,EAAS/B,EAAOtmD,EAAIooD,EAAS/B,EAAOjd,EAAanqC,EAAIopD,EAASzkB,EAAS0iB,CAAK,EACnI,IAAK,KACH,MAAO,CAACtmD,EAAIqoD,EAASzkB,EAASyiB,EAAOjd,EAAanqC,EAAImpD,EAASzkB,EAAQ2iB,EAAOtmD,EAAIqoD,EAAShC,EAAOjd,EAAanqC,EAAImpD,EAAS9B,CAAK,EACnI,QACE,MAAM,IAAI,MAAM,kBAAkB,CAC1C,CACE,CACA,uBAAuB3nB,EAAMyK,EAAY,CACvC,KAAM,CAAC3I,EAAIC,EAAIC,EAAIC,CAAE,EAAIjC,EACnBgF,EAAQhD,EAAKF,EACbmD,EAAShD,EAAKF,EACpB,OAAQ,KAAK,SAAQ,CACnB,IAAK,GACH,MAAO,CAACD,EAAI2I,EAAaxI,EAAI+C,EAAOC,CAAM,EAC5C,IAAK,IACH,MAAO,CAACnD,EAAI2I,EAAa1I,EAAIkD,EAAQD,CAAK,EAC5C,IAAK,KACH,MAAO,CAAChD,EAAIyI,EAAa1I,EAAIiD,EAAOC,CAAM,EAC5C,IAAK,KACH,MAAO,CAACjD,EAAIyI,EAAaxI,EAAIgD,EAAQD,CAAK,EAC5C,QACE,MAAM,IAAI,MAAM,kBAAkB,CAC1C,CACE,CACA,YAAa,CACX,OAAO,KAAK,QAAQ,EAAG,CAAC,CAC1B,CACA,gBAAiB,CACf,OAAO,KAAK,OAASihB,GAAiB,cAAc,QAAQ,KAAK,WAAW,eAAe,KAAK,KAAK,CAAC,CACxG,CACA,gBAAiB,QACf7qD,EAAAotC,EAAA,KAAK0F,MAAL,MAAA9yC,EAAe,gBACjB,CACA,SAAU,CACR,KAAM,CACJ,QAAS,CACP,KAAMoiC,EACN,MAAAiM,EACA,KAAAyZ,EACA,QAAAvX,EACA,QAAA2S,EACA,SAAA2E,CACR,EACM,IAAKh/B,EACL,UAAAy2B,EACA,aAAAiP,EACA,iBAAAC,CACN,EAAQ,KACJ,MAAO,CACL,GAAA3lC,EACA,UAAAy2B,EACA,KAAM,KAAK,WAAU,EACrB,SAAAuI,EACA,YAAa,CACX,IAAAzlB,CACR,EACM,aAAAmsB,EACA,iBAAkBzG,GAAQ0G,EAC1B,SAAU,CAACtL,EACX,MAAA7U,EACA,QAAAkC,CACN,CACE,CACA,UAAUke,EAAO,CAAC,CAClB,SAAU,CACR,MAAO,EACT,CACA,gBAAiB,CACf,OAAI,KAAK,eACA,IAET,KAAK,OAAO,gBAAgB,EAAK,EACjC/gB,EAAA,KAAKme,GAAgB,IACd,GACT,CACA,iBAAkB,CAChB,OAAK,KAAK,gBAGV,KAAK,OAAO,gBAAgB,EAAI,EAChCne,EAAA,KAAKme,GAAgB,IACd,IAJE,EAKX,CACA,cAAe,CACb,OAAOze,EAAA,KAAKye,GACd,CACA,yBAA0B,CACxB,OAAOze,EAAA,KAAK0e,GACd,CACA,kBAAmB,CACjB,OAAO,KAAK,KAAO,CAAC,KAAK,eAC3B,CACA,IAAI,YAAa,CACf,KAAM,CACJ,IAAA4C,EACA,KAAAC,EACA,OAAAC,EACA,MAAAC,CACN,EAAQ,KAAK,oBAAmB,EACtB,CACJ,YAAAC,EACA,WAAAC,CACN,EAAQ,OACJ,OAAOJ,EAAOI,GAAcF,EAAQ,GAAKH,EAAMI,GAAeF,EAAS,CACzE,CAcA,SAAU,CACR5nB,EAAA,KAAK8jB,GAAAiD,IAAL,UACF,CACA,OAAOiB,EAAQ,CAAC,CAChB,QAAS,CAAC,CACV,kBAAmB,OACjB,MAAO,CACL,GAAI,KAAK,oBACT,QAAS,GACT,UAAW,KAAK,UAChB,WAAUhvD,EAAA,KAAK,eAAL,YAAAA,EAAmB,WAAY,EAC/C,CACE,CACA,UAAUsmD,EAAe,GAAO2I,EAAU,KAAM,OAC9C,MAAO,CACL,eAAgB,KAAK,KACrB,UAAW,KAAK,UAChB,KAAM,KAAK,WAAU,EACrB,SAAU,KAAK,SACf,mBAAoB,KAAK,oBACzB,WAAUjvD,EAAA,KAAK,eAAL,YAAAA,EAAmB,WAAY,EAC/C,CACE,CACA,aAAa,YAAYgD,EAAM0oC,EAAQ8I,EAAW,CAChD,MAAMjC,EAAS,IAAI,KAAK,UAAU,YAAY,CAC5C,OAAA7G,EACA,GAAI8I,EAAU,MAAK,EACnB,UAAAA,EACA,oBAAqBxxC,EAAK,oBAC1B,aAAcA,EAAK,aACnB,iBAAkBA,EAAK,gBAC7B,CAAK,EACDuvC,EAAO,SAAWvvC,EAAK,SACvB0qC,EAAA6E,EAAOwY,GAAqB/nD,EAAK,mBACjCuvC,EAAO,QAAUvvC,EAAK,QAAU,GAChC,KAAM,CAACosC,EAAWC,CAAU,EAAIkD,EAAO,eACjC,CAACtsC,EAAGf,EAAG0kC,EAAOC,CAAM,EAAI0I,EAAO,uBAAuBvvC,EAAK,KAAMqsC,CAAU,EACjF,OAAAkD,EAAO,EAAItsC,EAAImpC,EACfmD,EAAO,EAAIrtC,EAAImqC,EACfkD,EAAO,MAAQ3I,EAAQwF,EACvBmD,EAAO,OAAS1I,EAASwF,EAClBkD,CACT,CACA,IAAI,iBAAkB,CACpB,MAAO,CAAC,CAAC,KAAK,sBAAwB,KAAK,SAAW,KAAK,UAAS,IAAO,KAC7E,CACA,QAAS,WAkBP,IAjBAvyC,EAAAotC,EAAA,KAAKoe,MAAL,MAAAxrD,EAAe,QACf0tC,EAAA,KAAK8d,GAAW,MACX,KAAK,WACR,KAAK,OAAM,EAET,KAAK,OACP,KAAK,OAAO,OAAO,IAAI,EAEvB,KAAK,WAAW,aAAa,IAAI,EAEnC,KAAK,iBAAgB,EACjBpe,EAAA,KAAK2e,MACP,aAAa3e,EAAA,KAAK2e,GAAiB,EACnCre,EAAA,KAAKqe,GAAoB,OAE3B/kB,EAAA,KAAK8jB,GAAAgC,IAAL,WACA,KAAK,kBAAiB,EAClB1f,EAAA,KAAK8e,IAAoB,CAC3B,UAAWgD,KAAW9hB,EAAA,KAAK8e,IAAmB,OAAM,EAClD,aAAagD,CAAO,EAEtBxhB,EAAA,KAAKwe,GAAqB,KAC5B,CACA,KAAK,OAAS,MACdnsD,EAAAqtC,EAAA,KAAK+e,MAAL,MAAApsD,EAAoB,UACpB2tC,EAAA,KAAKye,GAAgB,OACrBnpC,EAAAoqB,EAAA,KAAKme,MAAL,MAAAvoC,EAAsB,SACtB0qB,EAAA,KAAK6d,GAAkB,KACzB,CACA,IAAI,aAAc,CAChB,MAAO,EACT,CACA,eAAgB,CACV,KAAK,cACPvkB,EAAA,KAAK8jB,GAAAqE,IAAL,WACA/hB,EAAA,KAAKge,IAAa,UAAU,OAAO,QAAQ,EAE/C,CACA,IAAI,iBAAkB,CACpB,OAAO,IACT,CACA,IAAI,uBAAwB,CAC1B,OAAO,KAAK,WAAW,YAAc,MAAQ,CAAC,EAAG,CAAC,EAAI,CAAC,EAAG,CAAC,CAC7D,CACA,IAAI,6BAA8B,CAChC,KAAM,CACJ,sBAAuB,CAAChM,EAAMC,CAAI,CACxC,EAAQ,KACE,CAACsO,EAAKC,EAAKC,EAAKH,CAAG,EAAI,KAAK,WAAU,EAC5C,MAAO,CAAC7C,GAAiB,OAAO8C,GAAOE,EAAMF,GAAOvO,CAAI,EAAGyL,GAAiB,OAAO+C,GAAOF,EAAME,IAAQ,EAAIvO,EAAK,CAAC,CACpH,CACA,IAAI,oBAAqB,CACvB,OAAO,KAAK,WAAW,iBAAiB,KAAK,eAAc,EAAI,KAAK,OAAO,CAC7E,CACA,IAAI,sBAAuB,CACzB,OAAOjS,EAAA,KAAK0F,IAAS,2BACvB,CACA,IAAI,qBAAqB5O,EAAK,CAC5BkJ,EAAA,KAAK0F,IAAS,4BAA8B5O,CAC9C,CACA,yBAA0B,CACxB,OAAOkJ,EAAA,KAAK0F,IAAS,wBAAuB,CAC9C,CACA,IAAI,oBAAqB,CACvB,OAAO1F,EAAA,KAAK0F,IAAS,kBACvB,CACA,IAAI,oBAAqB,CACvB,OAAO,KAAK,GACd,CACA,uBAAuBzvC,EAAS,QAC9BrD,EAAAotC,EAAA,KAAK0F,MAAL,MAAA9yC,EAAe,uBAAuBqD,EACxC,CACA,QAAQ6oB,EAAO,CACb,GAAI,CAAC,KAAK,aAAeA,EAAM,SAAW,KAAK,KAAOA,EAAM,MAAQ,QAClE,OAEF,KAAK,WAAW,YAAY,IAAI,EAChCwhB,EAAA,KAAK4d,GAAmB,CACtB,OAAQ,KAAK,EACb,OAAQ,KAAK,EACb,WAAY,KAAK,MACjB,YAAa,KAAK,MACxB,GACI,MAAM8D,EAAWhiB,EAAA,KAAKge,IAAa,SACnC,GAAI,CAAChe,EAAA,KAAK4d,IAAiB,CACzBtd,EAAA,KAAKsd,GAAkB,MAAM,KAAKoE,CAAQ,GAC1C,MAAMC,EAAsBroB,EAAA,KAAK8jB,GAAAwE,IAAgB,KAAK,IAAI,EACpDC,EAAmBvoB,EAAA,KAAK8jB,GAAA0E,IAAa,KAAK,IAAI,EAC9CptD,EAAS,KAAK,WAAW,QAC/B,UAAW4sC,KAAO5B,EAAA,KAAK4d,IAAiB,CACtC,MAAMtkC,EAAOsoB,EAAI,aAAa,mBAAmB,EACjDA,EAAI,aAAa,OAAQ,YAAY,EACrCA,EAAI,iBAAiB,UAAWqgB,EAAqB,CACnD,OAAAjtD,CACV,CAAS,EACD4sC,EAAI,iBAAiB,OAAQugB,EAAkB,CAC7C,OAAAntD,CACV,CAAS,EACD4sC,EAAI,iBAAiB,QAAShI,EAAA,KAAK8jB,GAAA2E,IAAc,KAAK,KAAM/oC,CAAI,EAAG,CACjE,OAAAtkB,CACV,CAAS,EACD4sC,EAAI,aAAa,eAAgB6b,GAAiB,aAAankC,CAAI,CAAC,CACtE,CACF,CACA,MAAMqf,EAAQqH,EAAA,KAAK4d,IAAgB,CAAC,EACpC,IAAI0E,EAAgB,EACpB,UAAW1gB,KAAOogB,EAAU,CAC1B,GAAIpgB,IAAQjJ,EACV,MAEF2pB,GACF,CACA,MAAMC,GAAqB,IAAM,KAAK,SAAW,KAAK,gBAAkB,IAAM,IAAMviB,EAAA,KAAK4d,IAAgB,OAAS,GAClH,GAAI2E,IAAsBD,EAAe,CACvC,GAAIC,EAAoBD,EACtB,QAASprD,EAAI,EAAGA,EAAIorD,EAAgBC,EAAmBrrD,IACrD8oC,EAAA,KAAKge,IAAa,OAAOhe,EAAA,KAAKge,IAAa,iBAAiB,UAErDuE,EAAoBD,EAC7B,QAASprD,EAAI,EAAGA,EAAIqrD,EAAoBD,EAAeprD,IACrD8oC,EAAA,KAAKge,IAAa,kBAAkB,OAAOhe,EAAA,KAAKge,IAAa,gBAAgB,EAGjF,IAAI9mD,EAAI,EACR,UAAW4lC,KAASklB,EAAU,CAE5B,MAAM1oC,EADM0mB,EAAA,KAAK4d,IAAgB1mD,GAAG,EACnB,aAAa,mBAAmB,EACjD4lC,EAAM,aAAa,eAAgB2gB,GAAiB,aAAankC,CAAI,CAAC,CACxE,CACF,CACAsgB,EAAA,KAAK8jB,GAAA8E,IAAL,UAAyB,GACzBliB,EAAA,KAAKoe,GAA+B,IACpC1e,EAAA,KAAKge,IAAa,kBAAkB,MAAM,CACxC,aAAc,EACpB,CAAK,EACDl/B,EAAM,eAAc,EACpBA,EAAM,yBAAwB,CAChC,CAoBA,oBAAoBjmB,EAAGf,EAAG,CACnBkoC,EAAA,KAAK0e,KAGV9kB,EAAA,KAAK8jB,GAAA+E,IAAL,UAAyBziB,EAAA,KAAKqe,IAAqB,CACjD,OAAQxlD,EACR,OAAQf,EACR,aAAc,EACpB,EACE,CAMA,2BAA4B,CAC1B8hC,EAAA,KAAK8jB,GAAAgC,IAAL,WACA,KAAK,IAAI,MAAK,CAChB,CACA,QAAS,WACP,GAAI,KAAK,YAAc,KAAK,aAAc,CACxC,KAAK,aAAa,KAAI,EACtB,MACF,CAIA,GAHA,KAAK,WAAa,GAClB,KAAK,cAAa,GAClB9sD,EAAA,KAAK,MAAL,MAAAA,EAAU,UAAU,IAAI,kBACpB,CAAC,KAAK,aAAc,CACtB,KAAK,iBAAiB,KAAK,IAAM,UAC3BA,EAAA,KAAK,MAAL,MAAAA,EAAU,UAAU,SAAS,qBAC/BD,EAAA,KAAK,eAAL,MAAAA,EAAmB,OAEvB,CAAC,EACD,MACF,EACAA,EAAA,KAAK,eAAL,MAAAA,EAAmB,QACnBijB,EAAAoqB,EAAA,KAAKyF,MAAL,MAAA7vB,EAAe,mBAAmB,GACpC,CACA,OAAQ,CACF,KAAK,KAAO,CAAC,KAAK,IAAI,SAAS,SAAS,aAAa,GACvD,WAAW,IAAA,OAAM,OAAAhjB,EAAA,KAAK,MAAL,YAAAA,EAAU,MAAM,CAC/B,cAAe,EACvB,IAAU,CAAC,CAET,CACA,UAAW,eACJ,KAAK,aAGV,KAAK,WAAa,IAClBA,EAAAotC,EAAA,KAAKge,MAAL,MAAAprD,EAAmB,UAAU,IAAI,WACjCD,EAAA,KAAK,MAAL,MAAAA,EAAU,UAAU,OAAO,mBACvBijB,EAAA,KAAK,MAAL,MAAAA,EAAU,SAAS,SAAS,gBAC9B,KAAK,WAAW,aAAa,IAAI,MAAM,CACrC,cAAe,EACvB,CAAO,GAEHkK,EAAA,KAAK,eAAL,MAAAA,EAAmB,QACnBtkB,EAAAwkC,EAAA,KAAKyF,MAAL,MAAAjqC,EAAe,mBAAmB,IAClC,KAAK,iBAAgB,EACvB,CACA,kBAAmB,CACb,KAAK,YACP,KAAK,WAAW,cAAc,IAAI,CAEtC,CACA,aAAa+b,EAAMhiB,EAAO,CAAC,CAC3B,gBAAiB,CAAC,CAClB,eAAgB,CAAC,CACjB,IAAI,kBAAmB,CACrB,MAAO,EACT,CACA,iBAAkB,CACX,KAAK,mBAGV,KAAK,eAAc,EACnB,KAAK,IAAI,MAAK,EAChB,CACA,SAASupB,EAAO,CACVA,EAAM,OAAO,WAAa,WAG9B,KAAK,gBAAe,EACpB,KAAK,OAAO,cAAc,CACxB,KAAM,KAAK,YAAY,YACvB,OAAQ,KAAK,GACnB,CAAK,EACH,CACA,sBAAuB,CACrB,OAAO,KAAK,GACd,CACA,IAAI,YAAa,CACf,OAAO,KAAK,GACd,CACA,IAAI,WAAY,CACd,OAAOkhB,EAAA,KAAKwe,GACd,CACA,IAAI,UAAUjpD,EAAO,CACnB+qC,EAAA,KAAKke,GAAajpD,GACb,KAAK,SAGNA,GACF,KAAK,OAAO,YAAY,IAAI,EAC5B,KAAK,OAAO,gBAAgB,IAAI,GAEhC,KAAK,OAAO,gBAAgB,IAAI,EAEpC,CACA,WAAW,UAAW,CACpB,MAAO,GACT,CACA,OAAO,yBAA0B,CAC/B,MAAO,EACT,CACA,IAAI,sBAAuB,CACzB,MAAO,CACL,OAAQ,OACd,CACE,CACA,IAAI,oBAAqB,CACvB,OAAO,IACT,CACA,iBAAiBK,EAAMwgD,EAAW,GAAO,CACvC,GAAIA,EAAU,CACZpW,EAAA,KAAK8e,KAALxe,EAAA,KAAKwe,GAAuB,IAAI,KAChC,KAAM,CACJ,OAAA4D,CACR,EAAU9sD,EACJ,IAAIksD,EAAU9hB,EAAA,KAAK8e,IAAmB,IAAI4D,CAAM,EAC5CZ,GACF,aAAaA,CAAO,EAEtBA,EAAU,WAAW,IAAM,CACzB,KAAK,iBAAiBlsD,CAAI,EAC1BoqC,EAAA,KAAK8e,IAAmB,OAAO4D,CAAM,EACjC1iB,EAAA,KAAK8e,IAAmB,OAAS,GACnCxe,EAAA,KAAKwe,GAAqB,KAE9B,EAAGrB,GAAiB,iBAAiB,EACrCzd,EAAA,KAAK8e,IAAmB,IAAI4D,EAAQZ,CAAO,EAC3C,MACF,CACAlsD,EAAK,OAALA,EAAK,KAAS,KAAK,YACnB,KAAK,WAAW,UAAU,SAAS,kBAAmB,CACpD,OAAQ,KACR,QAAS,CACP,KAAM,UACN,KAAAA,CACR,CACA,CAAK,CACH,CACA,KAAKsgD,EAAU,KAAK,WAAY,CAC9B,KAAK,IAAI,UAAU,OAAO,SAAU,CAACA,CAAO,EAC5C,KAAK,WAAaA,CACpB,CACA,QAAS,CACH,KAAK,MACP,KAAK,IAAI,SAAW,GAEtB5V,EAAA,KAAKud,GAAY,GACnB,CACA,SAAU,CACJ,KAAK,MACP,KAAK,IAAI,SAAW,IAEtBvd,EAAA,KAAKud,GAAY,GACnB,CACA,4BAA4B8E,EAAiB,CAC3C,GAAI,CAAC3iB,EAAA,KAAKme,KAAmB,CAAC,KAAK,QAAS,CAC1C7d,EAAA,KAAK6d,GAAkBwE,EAAgB,kBAAkB,IAAI,GAC7D,MACF,CACA,GAAI,KAAK,QAAS,CAChB3iB,EAAA,KAAKme,IAAgB,OAAM,EAC3B7d,EAAA,KAAK6d,GAAkB,MACvB,MACF,EACI,KAAK,kBAAoB,KAAK,eAAiB,KAAK,kBACtDne,EAAA,KAAKme,IAAgB,aAAa,CAChC,KAAM,KAAK,WAAU,EACrB,MAAO,KAAK,OACpB,CAAO,CAEL,CACA,wBAAwBpI,EAAY,CAClC,GAAI,KAAK,QACP,OAAAA,EAAW,KAAI,EACR,KAET,IAAIhiD,EAAUgiD,EAAW,UAAU,cAAc,oBAAoB,EACrE,GAAI,CAAChiD,EACHA,EAAU,SAAS,cAAc,KAAK,EACtCA,EAAQ,UAAU,IAAI,oBAAqB,KAAK,UAAU,EAC1DgiD,EAAW,UAAU,QAAQhiD,CAAO,UAC3BA,EAAQ,WAAa,SAAU,CACxC,MAAM61C,EAAS71C,EACfA,EAAU,SAAS,cAAc,KAAK,EACtCA,EAAQ,UAAU,IAAI,oBAAqB,KAAK,UAAU,EAC1D61C,EAAO,OAAO71C,CAAO,CACvB,CACA,OAAOA,CACT,CACA,uBAAuBgiD,EAAY,CACjC,KAAM,CACJ,kBAAA6M,CACN,EAAQ7M,EAAW,WACX6M,GAAA,YAAAA,EAAmB,YAAa,OAASA,EAAkB,UAAU,SAAS,mBAAmB,GACnGA,EAAkB,OAAM,CAE5B,CACF,EAtnDEjF,GAAA,YACAC,GAAA,YACAnY,GAAA,YACAC,GAAA,YACAiU,GAAA,YACAkE,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAYAC,GAAA,YACAC,GAAA,YArCFvB,GAAA,YAsREmC,GAAU,SAAC,CAACrjB,EAAOC,CAAM,EAAG5jC,EAAGf,EAAG,CAChC,CAACe,EAAGf,CAAC,EAAI,KAAK,wBAAwBe,EAAGf,CAAC,EAC1C,KAAK,GAAKe,EAAI2jC,EACd,KAAK,GAAK1kC,EAAI2kC,EACd,KAAK,eAAe,KAAK,EAAG,KAAK,CAAC,EAClC,KAAK,kBAAiB,CACxB,EA5RFwjB,GAAA,YAwZSC,GAAY,SAACrnD,EAAGf,EAAG+qD,EAAO,CAC/B,OAAQA,EAAK,CACX,IAAK,IACH,MAAO,CAAC/qD,EAAG,CAACe,CAAC,EACf,IAAK,KACH,MAAO,CAAC,CAACA,EAAG,CAACf,CAAC,EAChB,IAAK,KACH,MAAO,CAAC,CAACA,EAAGe,CAAC,EACf,QACE,MAAO,CAACA,EAAGf,CAAC,CACpB,CACE,EAOAgrD,GAAkB,SAAClnB,EAAU,CAC3B,OAAQA,EAAQ,CACd,IAAK,IACH,CACE,KAAM,CAACoG,EAAWC,CAAU,EAAI,KAAK,eACrC,MAAO,CAAC,EAAG,CAACD,EAAYC,EAAYA,EAAaD,EAAW,CAAC,CAC/D,CACF,IAAK,KACH,MAAO,CAAC,GAAI,EAAG,EAAG,EAAE,EACtB,IAAK,KACH,CACE,KAAM,CAACA,EAAWC,CAAU,EAAI,KAAK,eACrC,MAAO,CAAC,EAAGD,EAAYC,EAAY,CAACA,EAAaD,EAAW,CAAC,CAC/D,CACF,QACE,MAAO,CAAC,EAAG,EAAG,EAAG,CAAC,CAC1B,CACE,EA4BA+f,GAAe,UAAG,CAChB,GAAI/hB,EAAA,KAAKge,IACP,OAEF1d,EAAA,KAAK0d,GAAe,SAAS,cAAc,KAAK,GAChDhe,EAAA,KAAKge,IAAa,UAAU,IAAI,UAAU,EAC1C,MAAM+E,EAAU,KAAK,qBAAuB,CAAC,UAAW,WAAY,cAAe,YAAY,EAAI,CAAC,UAAW,YAAa,WAAY,cAAe,cAAe,eAAgB,aAAc,YAAY,EAC1M/tD,EAAS,KAAK,WAAW,QAC/B,UAAWskB,KAAQypC,EAAS,CAC1B,MAAMnhB,EAAM,SAAS,cAAc,KAAK,EACxC5B,EAAA,KAAKge,IAAa,OAAOpc,CAAG,EAC5BA,EAAI,UAAU,IAAI,UAAWtoB,CAAI,EACjCsoB,EAAI,aAAa,oBAAqBtoB,CAAI,EAC1CsoB,EAAI,iBAAiB,cAAehI,EAAA,KAAK8jB,GAAAsF,IAAoB,KAAK,KAAM1pC,CAAI,EAAG,CAC7E,OAAAtkB,CACR,CAAO,EACD4sC,EAAI,iBAAiB,cAAe1B,GAAe,CACjD,OAAAlrC,CACR,CAAO,EACD4sC,EAAI,SAAW,EACjB,CACA,KAAK,IAAI,QAAQ5B,EAAA,KAAKge,GAAY,CACpC,EACAgF,GAAmB,SAAC1pC,EAAMwF,EAAO,OAC/BA,EAAM,eAAc,EACpB,KAAM,CACJ,MAAAssB,CACN,EAAQ9U,GAAY,SAChB,GAAIxX,EAAM,SAAW,GAAKA,EAAM,SAAWssB,EACzC,QAEFx4C,EAAAotC,EAAA,KAAKyF,MAAL,MAAA7yC,EAAe,OAAO,IACtB,MAAMqwD,EAAiB,KAAK,aAC5B,KAAK,aAAe,GACpB3iB,EAAA,KAAK2d,GAAqB,CAACn/B,EAAM,QAASA,EAAM,OAAO,GACvD,MAAMhK,EAAK,IAAI,gBACT9f,EAAS,KAAK,WAAW,eAAe8f,CAAE,EAChD,KAAK,OAAO,oBAAoB,EAAK,EACrC,OAAO,iBAAiB,cAAe8kB,EAAA,KAAK8jB,GAAA+E,IAAoB,KAAK,KAAMnpC,CAAI,EAAG,CAChF,QAAS,GACT,QAAS,GACT,OAAAtkB,CACN,CAAK,EACD,OAAO,iBAAiB,YAAamrC,GAAW,CAC9C,QAAS,GACT,OAAAnrC,CACN,CAAK,EACD,OAAO,iBAAiB,cAAekrC,GAAe,CACpD,OAAAlrC,CACN,CAAK,EACDsrC,EAAA,KAAK4d,GAAmB,CACtB,OAAQ,KAAK,EACb,OAAQ,KAAK,EACb,WAAY,KAAK,MACjB,YAAa,KAAK,MACxB,GACI,MAAMgF,EAAoB,KAAK,OAAO,IAAI,MAAM,OAC1CC,EAAc,KAAK,IAAI,MAAM,OACnC,KAAK,IAAI,MAAM,OAAS,KAAK,OAAO,IAAI,MAAM,OAAS,OAAO,iBAAiBrkC,EAAM,MAAM,EAAE,OAC7F,MAAMskC,EAAoB,IAAM,OAC9BtuC,EAAG,MAAK,EACR,KAAK,OAAO,oBAAoB,EAAI,GACpCliB,EAAAotC,EAAA,KAAKyF,MAAL,MAAA7yC,EAAe,OAAO,IACtB,KAAK,aAAeqwD,EACpB,KAAK,OAAO,IAAI,MAAM,OAASC,EAC/B,KAAK,IAAI,MAAM,OAASC,EACxBvpB,EAAA,KAAK8jB,GAAA2F,IAAL,UACF,EACA,OAAO,iBAAiB,YAAaD,EAAmB,CACtD,OAAApuD,CACN,CAAK,EACD,OAAO,iBAAiB,OAAQouD,EAAmB,CACjD,OAAApuD,CACN,CAAK,CACH,EACAsuD,GAAO,SAACzqD,EAAGf,EAAG0kC,EAAOC,EAAQ,CAC3B,KAAK,MAAQD,EACb,KAAK,OAASC,EACd,KAAK,EAAI5jC,EACT,KAAK,EAAIf,EACT,KAAK,QAAO,EACZ,KAAK,kBAAiB,EACtB,KAAK,WAAU,CACjB,EAEAurD,GAAqB,UAAG,CACtB,GAAI,CAACrjB,EAAA,KAAKke,IACR,OAEF,KAAM,CACJ,OAAAlH,EACA,OAAAC,EACA,WAAAsM,EACA,YAAAC,CACN,EAAQxjB,EAAA,KAAKke,IACT5d,EAAA,KAAK4d,GAAmB,MACxB,MAAMpH,EAAO,KAAK,EACZC,EAAO,KAAK,EACZ0M,EAAW,KAAK,MAChBC,EAAY,KAAK,OACnB5M,IAASE,GAAUD,IAASE,GAAUwM,IAAaF,GAAcG,IAAcF,GAGnF,KAAK,YAAY,CACf,IAAK5pB,EAAA,KAAK8jB,GAAA4F,IAAQ,KAAK,KAAMxM,EAAMC,EAAM0M,EAAUC,CAAS,EAC5D,KAAM9pB,EAAA,KAAK8jB,GAAA4F,IAAQ,KAAK,KAAMtM,EAAQC,EAAQsM,EAAYC,CAAW,EACrE,SAAU,EAChB,CAAK,CACH,EAIAf,GAAmB,SAACnpC,EAAMwF,EAAO,CAC/B,KAAM,CAACu4B,EAAaC,CAAY,EAAI,KAAK,iBACnCN,EAAS,KAAK,EACdC,EAAS,KAAK,EACdsM,EAAa,KAAK,MAClBC,EAAc,KAAK,OACnBG,EAAWlG,GAAiB,SAAWpG,EACvCuM,EAAYnG,GAAiB,SAAWnG,EACxCuM,EAAiBjqB,EAAA,KAAK8jB,GAAAoF,IAAL,UAAwB,KAAK,UAC9CgB,EAAS,CAACjrD,EAAGf,IAAM,CAAC+rD,EAAe,CAAC,EAAIhrD,EAAIgrD,EAAe,CAAC,EAAI/rD,EAAG+rD,EAAe,CAAC,EAAIhrD,EAAIgrD,EAAe,CAAC,EAAI/rD,CAAC,EAChHisD,EAAoBnqB,EAAA,KAAK8jB,GAAAoF,IAAL,UAAwB,IAAM,KAAK,UACvDkB,EAAY,CAACnrD,EAAGf,IAAM,CAACisD,EAAkB,CAAC,EAAIlrD,EAAIkrD,EAAkB,CAAC,EAAIjsD,EAAGisD,EAAkB,CAAC,EAAIlrD,EAAIkrD,EAAkB,CAAC,EAAIjsD,CAAC,EACrI,IAAImsD,EACAC,EACAC,EAAa,GACbC,EAAe,GACnB,OAAQ9qC,EAAI,CACV,IAAK,UACH6qC,EAAa,GACbF,EAAW,CAAChsD,EAAGP,IAAM,CAAC,EAAG,CAAC,EAC1BwsD,EAAc,CAACjsD,EAAGP,IAAM,CAACO,EAAGP,CAAC,EAC7B,MACF,IAAK,YACHusD,EAAW,CAAChsD,EAAGP,IAAM,CAACO,EAAI,EAAG,CAAC,EAC9BisD,EAAc,CAACjsD,EAAGP,IAAM,CAACO,EAAI,EAAGP,CAAC,EACjC,MACF,IAAK,WACHysD,EAAa,GACbF,EAAW,CAAChsD,EAAGP,IAAM,CAACO,EAAG,CAAC,EAC1BisD,EAAc,CAACjsD,EAAGP,IAAM,CAAC,EAAGA,CAAC,EAC7B,MACF,IAAK,cACH0sD,EAAe,GACfH,EAAW,CAAChsD,EAAGP,IAAM,CAACO,EAAGP,EAAI,CAAC,EAC9BwsD,EAAc,CAACjsD,EAAGP,IAAM,CAAC,EAAGA,EAAI,CAAC,EACjC,MACF,IAAK,cACHysD,EAAa,GACbF,EAAW,CAAChsD,EAAGP,IAAM,CAACO,EAAGP,CAAC,EAC1BwsD,EAAc,CAACjsD,EAAGP,IAAM,CAAC,EAAG,CAAC,EAC7B,MACF,IAAK,eACHusD,EAAW,CAAChsD,EAAGP,IAAM,CAACO,EAAI,EAAGP,CAAC,EAC9BwsD,EAAc,CAACjsD,EAAGP,IAAM,CAACO,EAAI,EAAG,CAAC,EACjC,MACF,IAAK,aACHksD,EAAa,GACbF,EAAW,CAAChsD,EAAGP,IAAM,CAAC,EAAGA,CAAC,EAC1BwsD,EAAc,CAACjsD,EAAGP,IAAM,CAACO,EAAG,CAAC,EAC7B,MACF,IAAK,aACHmsD,EAAe,GACfH,EAAW,CAAChsD,EAAGP,IAAM,CAAC,EAAGA,EAAI,CAAC,EAC9BwsD,EAAc,CAACjsD,EAAGP,IAAM,CAACO,EAAGP,EAAI,CAAC,EACjC,KACR,CACI,MAAM2sD,EAAQJ,EAASV,EAAYC,CAAW,EACxCc,EAAgBJ,EAAYX,EAAYC,CAAW,EACzD,IAAIe,EAAsBT,EAAO,GAAGQ,CAAa,EACjD,MAAME,EAAY/G,GAAiB,OAAOzG,EAASuN,EAAoB,CAAC,CAAC,EACnEE,EAAYhH,GAAiB,OAAOxG,EAASsN,EAAoB,CAAC,CAAC,EACzE,IAAIG,EAAS,EACTC,EAAS,EACTC,EAAQC,EACZ,GAAK/lC,EAAM,cAUR,CACC,OAAA8lC,EACA,OAAAC,CACR,EAAU/lC,OAbmB,CACvB,KAAM,CACJ,QAAAgmC,EACA,QAAAC,CACR,EAAUjmC,EACE,CAACkmC,GAAaC,CAAW,EAAIjlB,EAAA,KAAKie,IACxC,CAAC2G,EAAQC,CAAM,EAAI,KAAK,wBAAwBC,EAAUE,GAAaD,EAAUE,CAAW,EAC5FjlB,EAAA,KAAKie,IAAmB,CAAC,EAAI6G,EAC7B9kB,EAAA,KAAKie,IAAmB,CAAC,EAAI8G,CAC/B,CAOA,GADA,CAACH,EAAQC,CAAM,EAAIb,EAAUY,EAASvN,EAAawN,EAASvN,CAAY,EACpE6M,EAAY,CACd,MAAMe,EAAU,KAAK,MAAM3B,EAAYC,CAAW,EAClDkB,EAASC,EAAS,KAAK,IAAI,KAAK,IAAI,KAAK,MAAML,EAAc,CAAC,EAAID,EAAM,CAAC,EAAIO,EAAQN,EAAc,CAAC,EAAID,EAAM,CAAC,EAAIQ,CAAM,EAAIK,EAAS,EAAI3B,EAAY,EAAIC,CAAW,EAAGG,EAAWJ,EAAYK,EAAYJ,CAAW,CACxN,MAAWY,EACTM,EAASppB,GAAU,KAAK,IAAIgpB,EAAc,CAAC,EAAID,EAAM,CAAC,EAAIO,CAAM,EAAGjB,EAAU,CAAC,EAAIJ,EAElFoB,EAASrpB,GAAU,KAAK,IAAIgpB,EAAc,CAAC,EAAID,EAAM,CAAC,EAAIQ,CAAM,EAAGjB,EAAW,CAAC,EAAIJ,EAErF,MAAMC,EAAWhG,GAAiB,OAAO8F,EAAamB,CAAM,EACtDhB,EAAYjG,GAAiB,OAAO+F,EAAcmB,CAAM,EAC9DJ,EAAsBT,EAAO,GAAGI,EAAYT,EAAUC,CAAS,CAAC,EAChE,MAAM5M,EAAO0N,EAAYD,EAAoB,CAAC,EACxCxN,EAAO0N,EAAYF,EAAoB,CAAC,EAC9CvkB,EAAA,KAAKue,KAALje,EAAA,KAAKie,GAAiB,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,MAAM,GAC9D,KAAK,MAAQkF,EACb,KAAK,OAASC,EACd,KAAK,EAAI5M,EACT,KAAK,EAAIC,EACT,KAAK,QAAO,EACZ,KAAK,kBAAiB,EACtB,KAAK,YAAW,CAClB,EAgQA6J,GAAwB,UAAG,OACzBtgB,EAAA,KAAK4d,GAAmB,CACtB,OAAQ,KAAK,EACb,OAAQ,KAAK,EACb,WAAY,KAAK,MACjB,YAAa,KAAK,MACxB,IACItrD,EAAAotC,EAAA,KAAKyF,MAAL,MAAA7yC,EAAe,OAAO,IACtB,KAAK,OAAO,oBAAoB,EAAK,CACvC,EACAiuD,GAAmB,SAACsE,EAASC,EAAc/H,EAAU,CAEnD,IAAIgI,EAAS,IAAkBhI,EAAW+H,GAAgB,EAAI,GAC9D,GAAIC,IAAW,EACb,OAEF,MAAMxB,EAAiBjqB,EAAA,KAAK8jB,GAAAoF,IAAL,UAAwB,KAAK,UAC9CgB,EAAS,CAACjrD,EAAGf,IAAM,CAAC+rD,EAAe,CAAC,EAAIhrD,EAAIgrD,EAAe,CAAC,EAAI/rD,EAAG+rD,EAAe,CAAC,EAAIhrD,EAAIgrD,EAAe,CAAC,EAAI/rD,CAAC,EAChH,CAACu/C,EAAaC,CAAY,EAAI,KAAK,iBACnCN,EAAS,KAAK,EACdC,EAAS,KAAK,EACdsM,EAAa,KAAK,MAClBC,EAAc,KAAK,OACnBG,EAAWlG,GAAiB,SAAWpG,EACvCuM,EAAYnG,GAAiB,SAAWnG,EAC9C+N,EAAS,KAAK,IAAI,KAAK,IAAIA,EAAQ,EAAI9B,EAAY,EAAIC,CAAW,EAAGG,EAAWJ,EAAYK,EAAYJ,CAAW,EACnH,MAAMC,EAAWhG,GAAiB,OAAO8F,EAAa8B,CAAM,EACtD3B,EAAYjG,GAAiB,OAAO+F,EAAc6B,CAAM,EAC9D,GAAI5B,IAAaF,GAAcG,IAAcF,EAC3C,OAEFxjB,EAAA,KAAKue,KAALje,EAAA,KAAKie,GAAiB,CAACvH,EAAQC,EAAQsM,EAAYC,CAAW,GAC9D,MAAM8B,EAAoBxB,EAAOP,EAAa,EAAGC,EAAc,CAAC,EAC1DxnB,EAAUyhB,GAAiB,OAAOzG,EAASsO,EAAkB,CAAC,CAAC,EAC/DrpB,EAAUwhB,GAAiB,OAAOxG,EAASqO,EAAkB,CAAC,CAAC,EAC/DC,EAAuBzB,EAAOL,EAAW,EAAGC,EAAY,CAAC,EAC/D,KAAK,EAAI1nB,EAAUupB,EAAqB,CAAC,EACzC,KAAK,EAAItpB,EAAUspB,EAAqB,CAAC,EACzC,KAAK,MAAQ9B,EACb,KAAK,OAASC,EACd,KAAK,QAAO,EACZ,KAAK,kBAAiB,EACtB,KAAK,YAAW,CAClB,EACA5C,GAAsB,UAAG,QACvBluD,EAAAotC,EAAA,KAAKyF,MAAL,MAAA7yC,EAAe,OAAO,IACtB,KAAK,OAAO,oBAAoB,EAAI,EACpCgnC,EAAA,KAAK8jB,GAAA2F,IAAL,UACF,EAgBArC,GAAqB,SAACliC,EAAO,CAC3B,KAAM,CACJ,MAAAssB,CACN,EAAQ9U,GAAY,SACZxX,EAAM,SAAW,CAACssB,GAAStsB,EAAM,UAAYA,EAAM,SAAWssB,EAChE,KAAK,OAAO,eAAe,IAAI,EAE/B,KAAK,OAAO,YAAY,IAAI,CAEhC,EACA2V,GAAiB,SAACjiC,EAAO,CACvB,KAAM,CACJ,WAAAuzB,CACN,EAAQ,KACJ,KAAK,WAAW,iBAAgB,EAChC,IAAImT,EAAqB,GACzB,MAAM1wC,EAAK,IAAI,gBACT9f,EAAS,KAAK,WAAW,eAAe8f,CAAE,EAC1CknC,EAAO,CACX,QAAS,GACT,QAAS,GACT,OAAAhnD,CACN,EACUywD,EAAazuD,GAAK,CACtB8d,EAAG,MAAK,EACRwrB,EAAA,KAAKwd,GAAiB,MACtBxd,EAAA,KAAKge,GAAkB,IAClB,KAAK,WAAW,kBACnB1kB,EAAA,KAAK8jB,GAAAsD,IAAL,UAA2BhqD,GAEzBwuD,GACF,KAAK,gBAAe,CAExB,EACInT,IACF/R,EAAA,KAAKse,GAAa9/B,EAAM,SACxBwhB,EAAA,KAAKue,GAAa//B,EAAM,SACxBwhB,EAAA,KAAKwd,GAAiBh/B,EAAM,WAC5BwhB,EAAA,KAAKyd,GAAmBj/B,EAAM,aAC9B,OAAO,iBAAiB,cAAe9nB,GAAK,CACrCwuD,IACHA,EAAqB,GACrB,KAAK,WAAW,cAAc,KAAM,GAAM,EAAK,EAC/C,KAAK,iBAAgB,GAEvB,KAAM,CACJ,QAAS3sD,EACT,QAASf,EACT,UAAAwwC,CACV,EAAYtxC,EACJ,GAAIsxC,IAActI,EAAA,KAAK8d,IAAgB,CACrC3d,GAAUnpC,CAAC,EACX,MACF,CACA,KAAM,CAACmgD,EAAIC,CAAE,EAAI,KAAK,wBAAwBv+C,EAAImnC,EAAA,KAAK4e,IAAY9mD,EAAIkoC,EAAA,KAAK6e,GAAU,EACtFve,EAAA,KAAKse,GAAa/lD,GAClBynC,EAAA,KAAKue,GAAa/mD,GAClB,KAAK,WAAW,oBAAoBq/C,EAAIC,CAAE,CAC5C,EAAG4E,CAAI,EACP,OAAO,iBAAiB,YAAa7b,GAAW6b,CAAI,EACpD,OAAO,iBAAiB,cAAehlD,GAAK,CACtCA,EAAE,cAAgBgpC,EAAA,KAAK+d,MACrB/d,EAAA,KAAK+e,KAAiB/nD,EAAE,YAC1ByuD,EAAWzuD,CAAC,EAGhBmpC,GAAUnpC,CAAC,CACb,EAAGglD,CAAI,GAET,MAAMoH,EAAoBpsD,GAAK,CAC7B,GAAI,CAACgpC,EAAA,KAAK8d,KAAkB9d,EAAA,KAAK8d,MAAmB9mD,EAAE,UAAW,CAC/DyuD,EAAWzuD,CAAC,EACZ,MACF,CACAmpC,GAAUnpC,CAAC,CACb,EACA,OAAO,iBAAiB,YAAaosD,EAAmB,CACtD,OAAApuD,CACN,CAAK,EACD,OAAO,iBAAiB,OAAQouD,EAAmB,CACjD,OAAApuD,CACN,CAAK,CACH,EA4IA2rD,GAAkB,UAAG,CACnB,GAAI3gB,EAAA,KAAKoe,KAAY,CAAC,KAAK,IACzB,OAEF9d,EAAA,KAAK8d,GAAW,IAAI,iBACpB,MAAMppD,EAAS,KAAK,WAAW,eAAegrC,EAAA,KAAKoe,GAAQ,EAC3D,KAAK,IAAI,iBAAiB,UAAW,KAAK,QAAQ,KAAK,IAAI,EAAG,CAC5D,OAAAppD,CACN,CAAK,EACD,KAAK,IAAI,iBAAiB,WAAY,KAAK,SAAS,KAAK,IAAI,EAAG,CAC9D,OAAAA,CACN,CAAK,CACH,EA0LAktD,GAAe,SAACpjC,EAAO,CACrB2+B,GAAiB,wBAAwB,KAAK,KAAM3+B,CAAK,CAC3D,EACAsjC,GAAY,SAACtjC,EAAO,OACdkhB,EAAA,KAAK0e,OAAgC9rD,EAAAksB,EAAM,gBAAN,YAAAlsB,EAAqB,cAAeotC,EAAA,KAAKge,KAChFpkB,EAAA,KAAK8jB,GAAAgC,IAAL,UAEJ,EACA2C,GAAa,SAAC/oC,EAAM,CAClBgnB,EAAA,KAAK+d,GAAsBre,EAAA,KAAK0e,IAA+BplC,EAAO,GACxE,EACAkpC,GAAmB,SAACjtD,EAAO,CACzB,GAAKyqC,EAAA,KAAK4d,IAGV,UAAWhc,KAAO5B,EAAA,KAAK4d,IACrBhc,EAAI,SAAWrsC,CAEnB,EAWAmqD,GAAa,UAAG,CACdpf,EAAA,KAAKoe,GAA+B,IACpC9kB,EAAA,KAAK8jB,GAAA8E,IAAL,UAAyB,IACzB5oB,EAAA,KAAK8jB,GAAA2F,IAAL,UACF,EAj7CFlpB,EAAMsjB,GAANwC,IAiCE9lC,GAjCIsjC,GAiCG,QAAQ,MACftjC,GAlCIsjC,GAkCG,aAAa,MACpBtjC,GAnCIsjC,GAmCG,eAAe,MAGtBtjC,GAtCIsjC,GAsCG,mBAAmB,IAC1BtjC,GAvCIsjC,GAuCG,gBAAgB,IAAI9Q,IAC3BxyB,GAxCIsjC,GAwCG,UAAU,GACjBtjC,GAzCIsjC,GAyCG,oBAAoB,KAzC7B,IAAMiI,GAANjI,GAwnDA,MAAM6B,WAAmBoG,EAAiB,CACxC,YAAY5qC,EAAQ,CAClB,MAAMA,CAAM,EACZ,KAAK,oBAAsBA,EAAO,oBAClC,KAAK,QAAU,EACjB,CACA,WAAY,CACV,OAAO,KAAK,iBAAgB,CAC9B,CACF,CAGA,MAAM6qC,GAAO,WACPC,GAAY,WACZC,GAAW,MACjB,MAAMC,EAAe,CACnB,YAAYC,EAAM,CAChB,KAAK,GAAKA,EAAOA,EAAO,WAAaJ,GACrC,KAAK,GAAKI,EAAOA,EAAO,WAAaJ,EACvC,CACA,OAAOzvD,EAAO,CACZ,IAAIN,EAAMqgC,EACV,GAAI,OAAO//B,GAAU,SAAU,CAC7BN,EAAO,IAAI,WAAWM,EAAM,OAAS,CAAC,EACtC+/B,EAAS,EACT,QAAS/+B,EAAI,EAAG2Q,EAAK3R,EAAM,OAAQgB,EAAI2Q,EAAI3Q,IAAK,CAC9C,MAAMq+B,EAAOr/B,EAAM,WAAWgB,CAAC,EAC3Bq+B,GAAQ,IACV3/B,EAAKqgC,GAAQ,EAAIV,GAEjB3/B,EAAKqgC,GAAQ,EAAIV,IAAS,EAC1B3/B,EAAKqgC,GAAQ,EAAIV,EAAO,IAE5B,CACF,SAAW,YAAY,OAAOr/B,CAAK,EACjCN,EAAOM,EAAM,MAAK,EAClB+/B,EAASrgC,EAAK,eAEd,OAAM,IAAI,MAAM,sDAAsD,EAExE,MAAMowD,EAAc/vB,GAAU,EACxBgwB,EAAahwB,EAAS+vB,EAAc,EACpCE,EAAa,IAAI,YAAYtwD,EAAK,OAAQ,EAAGowD,CAAW,EAC9D,IAAIG,EAAK,EACPC,EAAK,EACHC,EAAK,KAAK,GACZC,EAAK,KAAK,GACZ,MAAMC,EAAK,WACTC,EAAK,UACDC,EAASF,EAAKV,GAClBa,EAASF,EAAKX,GAChB,QAAS3uD,EAAI,EAAGA,EAAI8uD,EAAa9uD,IAC3BA,EAAI,GACNivD,EAAKD,EAAWhvD,CAAC,EACjBivD,EAAKA,EAAKI,EAAKX,GAAYO,EAAKM,EAASZ,GACzCM,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKK,EAAKZ,GAAYO,EAAKO,EAASb,GACzCQ,GAAMF,EACNE,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAK,EAAI,aAEdD,EAAKF,EAAWhvD,CAAC,EACjBkvD,EAAKA,EAAKG,EAAKX,GAAYQ,EAAKK,EAASZ,GACzCO,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKI,EAAKZ,GAAYQ,EAAKM,EAASb,GACzCS,GAAMF,EACNE,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAK,EAAI,YAIlB,OADAH,EAAK,EACGF,EAAU,CAChB,IAAK,GACHE,GAAMvwD,EAAKowD,EAAc,EAAI,CAAC,GAAK,GACrC,IAAK,GACHG,GAAMvwD,EAAKowD,EAAc,EAAI,CAAC,GAAK,EACrC,IAAK,GACHG,GAAMvwD,EAAKowD,EAAc,CAAC,EAC1BG,EAAKA,EAAKI,EAAKX,GAAYO,EAAKM,EAASZ,GACzCM,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKK,EAAKZ,GAAYO,EAAKO,EAASb,GACrCG,EAAc,EAChBK,GAAMF,EAENG,GAAMH,CAEhB,CACI,KAAK,GAAKE,EACV,KAAK,GAAKC,CACZ,CACA,WAAY,CACV,IAAID,EAAK,KAAK,GACZC,EAAK,KAAK,GACZ,OAAAD,GAAMC,IAAO,EACbD,EAAKA,EAAK,WAAaT,GAAYS,EAAK,MAASR,GACjDS,EAAKA,EAAK,WAAaV,KAAcU,GAAM,GAAKD,IAAO,IAAM,WAAaT,MAAe,GACzFS,GAAMC,IAAO,EACbD,EAAKA,EAAK,UAAaT,GAAYS,EAAK,MAASR,GACjDS,EAAKA,EAAK,WAAaV,KAAcU,GAAM,GAAKD,IAAO,IAAM,WAAaT,MAAe,GACzFS,GAAMC,IAAO,GACLD,IAAO,GAAG,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,GAAKC,IAAO,GAAG,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAC3F,CACF,CAMA,MAAMK,GAAoB,OAAO,OAAO,CACtC,IAAK,KACL,KAAM,GACN,SAAU,MACZ,CAAC,EACD,MAAMC,EAAkB,CAAxB,cAAAzsB,EAAA,KAAA0sB,IACE1sB,EAAA,KAAA2sB,GAAY,IACZ3sB,EAAA,KAAA4sB,GAAe,MACf5sB,EAAA,KAAA6sB,GAAc,MACd7sB,EAAA,KAAA8sB,GAAW,IAAI,KACf9sC,GAAA,qBAAgB,MAChBA,GAAA,uBAAkB,MAClBA,GAAA,0BAAqB,MACrB,SAASxB,EAAKuuC,EAAc,CAC1B,MAAM3xD,EAAQyqC,EAAA,KAAKinB,IAAS,IAAItuC,CAAG,EACnC,OAAIpjB,IAAU,OACL2xD,EAEF,OAAO,OAAOA,EAAc3xD,CAAK,CAC1C,CACA,YAAYojB,EAAK,CACf,OAAOqnB,EAAA,KAAKinB,IAAS,IAAItuC,CAAG,CAC9B,CACA,OAAOA,EAAK,OACV,MAAM66B,EAAcxT,EAAA,KAAKinB,IAAS,IAAItuC,CAAG,EACrC66B,IAAgB,SAGhBA,aAAuBkS,IACzB1lB,EAAA,KAAKgnB,IAAY,OAAOxT,EAAY,mBAAmB,EAEzDxT,EAAA,KAAKinB,IAAS,OAAOtuC,CAAG,EACpBqnB,EAAA,KAAKinB,IAAS,OAAS,GACzB,KAAK,cAAa,EAEhB,CAAAjnB,EAAA,KAAKinB,IAAS,OAAM,EAAG,KAAKrvD,GAAKA,aAAa8tD,EAAgB,KAGlE9yD,EAAA,KAAK,qBAAL,MAAAA,EAAA,UAA0B,OAC5B,CACA,SAAS+lB,EAAKpjB,EAAO,OACnB,MAAM2/B,EAAM8K,EAAA,KAAKinB,IAAS,IAAItuC,CAAG,EACjC,IAAIwuC,EAAW,GACf,GAAIjyB,IAAQ,OACV,SAAW,CAACkyB,EAAOC,CAAG,IAAK,OAAO,QAAQ9xD,CAAK,EACzC2/B,EAAIkyB,CAAK,IAAMC,IACjBF,EAAW,GACXjyB,EAAIkyB,CAAK,EAAIC,QAIjBF,EAAW,GACXnnB,EAAA,KAAKinB,IAAS,IAAItuC,EAAKpjB,CAAK,EAE1B4xD,GACFvtB,EAAA,KAAKitB,GAAAS,IAAL,WAEE/xD,aAAiBmwD,MAClB1lB,EAAA,KAAKgnB,KAAL1mB,EAAA,KAAK0mB,GAAgB,IAAI,MAAO,IAAIzxD,EAAM,oBAAqBA,CAAK,GACrE3C,EAAA,KAAK,qBAAL,MAAAA,EAAA,UAA0B2C,EAAM,YAAY,OAEhD,CACA,IAAIojB,EAAK,CACP,OAAOqnB,EAAA,KAAKinB,IAAS,IAAItuC,CAAG,CAC9B,CACA,IAAI,MAAO,CACT,OAAOqnB,EAAA,KAAKinB,IAAS,IACvB,CAOA,eAAgB,OACVjnB,EAAA,KAAK8mB,MACPxmB,EAAA,KAAKwmB,GAAY,KACjBl0D,EAAA,KAAK,kBAAL,MAAAA,EAAA,WAEJ,CACA,IAAI,OAAQ,CACV,OAAO,IAAI20D,GAAuB,IAAI,CACxC,CACA,IAAI,cAAe,CACjB,GAAIvnB,EAAA,KAAKinB,IAAS,OAAS,EACzB,OAAON,GAET,MAAMhV,EAAM,IAAI,IACd/c,EAAO,IAAIkxB,GACX0B,EAAW,CAAA,EACP3F,EAAU,OAAO,OAAO,IAAI,EAClC,IAAI4F,EAAY,GAChB,SAAW,CAAC9uC,EAAK0uC,CAAG,IAAKrnB,EAAA,KAAKinB,IAAU,CACtC,MAAMjpC,EAAaqpC,aAAe3B,GAAmB2B,EAAI,UAAU,GAAOxF,CAAO,EAAIwF,EACjFA,EAAI,OACNA,EAAI,UAAYA,EAAI,KAAK,WACzB,OAAOA,EAAI,MAETrpC,IACF2zB,EAAI,IAAIh5B,EAAKqF,CAAU,EACvB4W,EAAK,OAAO,GAAGjc,CAAG,IAAI,KAAK,UAAUqF,CAAU,CAAC,EAAE,EAClDypC,MAAc,CAAC,CAACzpC,EAAW,QAE/B,CACA,GAAIypC,EACF,UAAWlyD,KAASo8C,EAAI,SAClBp8C,EAAM,QACRiyD,EAAS,KAAKjyD,EAAM,MAAM,EAIhC,OAAOo8C,EAAI,KAAO,EAAI,CACpB,IAAAA,EACA,KAAM/c,EAAK,UAAS,EACpB,SAAA4yB,CACN,EAAQb,EACN,CACA,IAAI,aAAc,CAChB,IAAIe,EAAQ,KACZ,MAAMC,EAAe,IAAI,IACzB,IAAIC,EAAyB,EACzBC,EAA0B,EAC9B,UAAWtyD,KAASyqC,EAAA,KAAKinB,IAAS,OAAM,EAAI,CAC1C,GAAI,EAAE1xD,aAAiBmwD,IAAmB,CACpCnwD,EAAM,QACJA,EAAM,MAAM,QACdsyD,GAA2B,EAE3BD,GAA0B,GAG9B,QACF,CACIryD,EAAM,iBACRsyD,GAA2B,EAClBtyD,EAAM,mBACfqyD,GAA0B,GAE5B,MAAME,EAAcvyD,EAAM,mBAC1B,GAAI,CAACuyD,EACH,SAEF,KAAM,CACJ,KAAAvwC,CACR,EAAUuwC,EACJH,EAAa,oBAAoBpwC,EAAM,IAAM,OAAO,eAAehiB,CAAK,EAAE,WAAW,EACrFmyD,MAAU,OAAO,OAAO,IAAI,GAC5B,MAAM/V,EAAM+V,EAAAnwC,KAAAmwC,EAAAnwC,GAAgB,IAAI,KAChC,SAAW,CAACoB,EAAK0uC,CAAG,IAAK,OAAO,QAAQS,CAAW,EAAG,CACpD,GAAInvC,IAAQ,OACV,SAEF,MAAMovC,EAAWpW,EAAI,oBAAoBh5B,EAAKuiB,EAAO,EACrD6sB,EAAS,IAAIV,GAAMU,EAAS,IAAIV,CAAG,GAAK,GAAK,CAAC,CAChD,CACF,CAQA,IAPIQ,EAA0B,GAAKD,EAAyB,KAC1DF,MAAU,OAAO,OAAO,IAAI,GAC5BA,EAAM,SAAW,CACf,QAASG,EACT,OAAQD,CAChB,GAEQ,CAACF,EACH,OAAO,KAET,SAAW,CAACnwC,EAAM4tB,CAAM,IAAKwiB,EAC3BD,EAAMnwC,CAAI,EAAI4tB,EAAO,0BAA0BuiB,EAAMnwC,CAAI,CAAC,EAE5D,OAAOmwC,CACT,CACA,kBAAmB,CACjBpnB,EAAA,KAAKymB,GAAe,KACtB,CACA,aAAaxT,EAAc39C,EAAM,OAC/B,MAAML,GAAQ3C,EAAAotC,EAAA,KAAKgnB,MAAL,YAAAp0D,EAAkB,IAAI2gD,GACpC,OAAIh+C,GACFA,EAAM,0BAA0BK,CAAI,EAC7B,IAEF,EACT,CACA,UAAU29C,EAAc,OACtB,QAAO3gD,EAAAotC,EAAA,KAAKgnB,MAAL,YAAAp0D,EAAkB,IAAI2gD,KAAiB,IAChD,CACA,IAAI,aAAc,CAChB,GAAIvT,EAAA,KAAK+mB,IACP,OAAO/mB,EAAA,KAAK+mB,IAEd,MAAMiB,EAAM,CAAA,EACZ,GAAIhoB,EAAA,KAAKgnB,IACP,UAAWzxD,KAASyqC,EAAA,KAAKgnB,IAAY,OAAM,EACpCzxD,EAAM,aAGXyyD,EAAI,KAAKzyD,EAAM,mBAAmB,EAGtC,IAAIq/B,EAAO,GACX,GAAIozB,EAAI,OAAQ,CACd,MAAMtwD,EAAI,IAAIouD,GACdpuD,EAAE,OAAOswD,EAAI,KAAK,GAAG,CAAC,EACtBpzB,EAAOl9B,EAAE,UAAS,CACpB,CACA,OAAO4oC,EAAA,KAAKymB,GAAe,CACzB,IAAK,IAAI,IAAIiB,CAAG,EAChB,KAAApzB,CACN,EACE,CACA,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAOoL,EAAA,KAAKinB,IAAS,QAAO,CAC9B,CACF,CA9MEH,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAJFJ,GAAA,YA+DES,GAAY,UAAG,OACRtnB,EAAA,KAAK8mB,MACRxmB,EAAA,KAAKwmB,GAAY,KACjBl0D,EAAA,KAAK,gBAAL,MAAAA,EAAA,WAEJ,EA4IF,MAAM20D,WAA+BX,EAAkB,CAErD,YAAYtoB,EAAQ,CAClB,MAAK,EAFPnE,EAAA,KAAA8tB,GAAgBtB,IAGd,KAAM,CACJ,aAAAuB,CACN,EAAQ5pB,EACJ,GAAI4pB,IAAiBvB,GACnB,OAEF,KAAM,CACJ,IAAAhV,EACA,KAAA/c,EACA,SAAA4yB,CACN,EAAQU,EACEC,EAAQ,gBAAgBxW,EAAK6V,EAAW,CAC5C,SAAAA,CACN,EAAQ,IAAI,EACRlnB,EAAA,KAAK2nB,GAAgB,CACnB,IAAKE,EACL,KAAAvzB,EACA,SAAU,CAAA,CAChB,EACE,CACA,IAAI,OAAQ,CACVT,GAAY,8CAA8C,CAC5D,CACA,IAAI,cAAe,CACjB,OAAO6L,EAAA,KAAKioB,GACd,CACA,IAAI,aAAc,CAChB,OAAOhzB,GAAO,KAAM,cAAe,CACjC,IAAK,IAAI,IACT,KAAM,EACZ,CAAK,CACH,CACF,CAnCEgzB,GAAA,YAyCF,MAAMG,GAA0B,qBAC1B,CACJ,MAAAC,GACA,KAAAC,EACF,EAAI,KACJ,SAASC,GAAWpkB,EAAO/qB,EAAOovC,EAAMC,EAAMC,EAAMC,EAAM,CACxDxkB,EAAM/qB,EAAQ,EAAI,CAAC,EAAI,KAAK,IAAI+qB,EAAM/qB,EAAQ,EAAI,CAAC,EAAGovC,CAAI,EAC1DrkB,EAAM/qB,EAAQ,EAAI,CAAC,EAAI,KAAK,IAAI+qB,EAAM/qB,EAAQ,EAAI,CAAC,EAAGqvC,CAAI,EAC1DtkB,EAAM/qB,EAAQ,EAAI,CAAC,EAAI,KAAK,IAAI+qB,EAAM/qB,EAAQ,EAAI,CAAC,EAAGsvC,CAAI,EAC1DvkB,EAAM/qB,EAAQ,EAAI,CAAC,EAAI,KAAK,IAAI+qB,EAAM/qB,EAAQ,EAAI,CAAC,EAAGuvC,CAAI,CAC5D,CACA,SAASC,GAAcC,EAAQC,EAAQjwD,EAAGf,EAAGixD,EAAM,CACjD,IAAIC,EACAH,GACEA,EAAS,IACXG,EAAOD,EAAK,CAAC,EACbA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAChBA,EAAK,CAAC,EAAIC,GAEZD,EAAK,CAAC,GAAKF,EACXE,EAAK,CAAC,GAAKF,EACPC,EAAS,IACXE,EAAOD,EAAK,CAAC,EACbA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAChBA,EAAK,CAAC,EAAIC,GAEZD,EAAK,CAAC,GAAKD,EACXC,EAAK,CAAC,GAAKD,GAEXC,EAAK,KAAK,CAAC,EAEbA,EAAK,CAAC,GAAKlwD,EACXkwD,EAAK,CAAC,GAAKjxD,EACXixD,EAAK,CAAC,GAAKlwD,EACXkwD,EAAK,CAAC,GAAKjxD,CACb,CACA,MAAMmxD,GAAa,IAAI,YAAY,IAAI,WAAW,CAAC,IAAK,IAAK,EAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAC7E,MAAMC,EAAW,CAGf,YAAYC,EAAQC,EAAQ,CAF5BjvB,EAAA,KAAAkvB,IACAlvB,EAAA,KAAAmvB,IAEEhpB,EAAA,KAAK+oB,GAAUF,GACf7oB,EAAA,KAAKgpB,GAAUF,EACjB,CACA,IAAI,QAAS,CACX,OAAOppB,EAAA,KAAKqpB,IAAQ,MACtB,CACA,QAAQnyD,EAAG,CACT,OAAO8oC,EAAA,KAAKqpB,IAAQnyD,CAAC,IAAM+xD,EAC7B,CACA,KAAK/xD,EAAG,CACN,OAAO8oC,EAAA,KAAKspB,IAAQpyD,EAAI,EAAI,CAAC,EAAI,GACnC,CACA,KAAKA,EAAG,CACN,OAAO8oC,EAAA,KAAKspB,IAAQpyD,EAAI,EAAI,CAAC,EAAI,GACnC,CACA,KAAKA,EAAG,CACN,OAAQ8oC,EAAA,KAAKspB,IAAQpyD,EAAI,EAAI,CAAC,EAAI,GAAK,GACzC,CACA,KAAKA,EAAG,CACN,OAAQ8oC,EAAA,KAAKspB,IAAQpyD,EAAI,EAAI,CAAC,EAAI,GAAK,GACzC,CACF,CAxBEmyD,GAAA,YACAC,GAAA,YAwBF,MAAMC,GAAsB,CAAC5X,EAAKh5B,IAAQg5B,GAAA,YAAAA,EAAK,oBAAoBh5B,EAAK,KAAO,CAC7E,aAAc,IAAI,IAClB,qBAAsB,EACxB,IACA,MAAM6wC,EAAkB,CAWtB,YAAY5f,EAAQ6f,EAAiB,CAXvCtvB,EAAA,KAAAuvB,IACEvvB,EAAA,KAAAwvB,GAAsB,CAAC,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,GACzCxvB,EAAA,KAAAyvB,GAAW,CAAC,KAAW,KAAW,IAAU,GAAQ,GACpDzvB,EAAA,KAAA0vB,GAAe,IAAI,aAAan3B,EAAS,GACzCvY,GAAA,uBAAkB,IAClBggB,EAAA,KAAA2vB,IACA3vB,EAAA,KAAA4vB,IACA5vB,EAAA,KAAA6vB,IACA7vB,EAAA,KAAAkvB,IACAlvC,GAAA,mBAAc,CAAA,GACdA,GAAA,2BAAsB,CAAA,GAEpBmmB,EAAA,KAAKwpB,GAAelgB,EAAO,OAC3BtJ,EAAA,KAAKypB,GAAgBngB,EAAO,QAC5BhQ,EAAA,KAAK8vB,GAAAO,IAAL,UAAuBR,EACzB,CACA,oBAAoBA,EAAiB,CAC/BA,GAAmBzpB,EAAA,KAAKqpB,IAAQ,QAClCzvB,EAAA,KAAK8vB,GAAAO,IAAL,UAAuBR,EAAiBzpB,EAAA,KAAKqpB,IAEjD,CAYA,IAAI,SAAU,CACZ,OAAOrpB,EAAA,KAAK4pB,GACd,CACA,KAAKM,EAAO,CACV,OAAA5pB,EAAA,KAAKspB,GAAW,CACd,UAAW5pB,EAAA,KAAK4pB,GACtB,GACI,KAAK,YAAY,KAAKM,CAAK,EACpB,IACT,CACA,QAAQA,EAAOC,EAAc,CAC3B,MAAMC,EAAW,OAAO,eAAepqB,EAAA,KAAK4pB,GAAQ,EACpD,GAAIQ,IAAa,KACf,OAAO,KAET9pB,EAAA,KAAKspB,GAAWQ,GAChB,MAAMC,EAAW,KAAK,YAAY,IAAG,EACrC,OAAIA,IAAa,SACfF,GAAA,MAAAA,EAAeE,EAAUH,GACzBlqB,EAAA,KAAKqpB,IAAQa,CAAK,EAAIlqB,EAAA,KAAKqpB,IAAQgB,CAAQ,GAEtC,IACT,CACA,iBAAiBl2D,EAAK,CACpB,YAAK,YAAY,KAAKA,CAAG,EAClB,IACT,CACA,eAAgB,CACd,OAAI,KAAK,YAAY,SAAW,EACvB,KAEF,KAAK,YAAY,GAAG,EAAE,CAC/B,CACA,kBAAkB+1D,EAAOC,EAAc,CACrC,MAAME,EAAW,KAAK,YAAY,IAAG,EACrC,OAAIA,IAAa,SACfF,GAAA,MAAAA,EAAeE,EAAUH,GACzBlqB,EAAA,KAAKqpB,IAAQa,CAAK,EAAIlqB,EAAA,KAAKqpB,IAAQgB,CAAQ,GAEtC,IACT,CACA,mBAAmBH,EAAO,CACxB,YAAK,oBAAoB,KAAKA,CAAK,EAC5B,IACT,CACA,iBAAiBA,EAAOC,EAAc,CACpC,MAAME,EAAW,KAAK,oBAAoB,IAAG,EAC7C,OAAIA,IAAa,SACfF,GAAA,MAAAA,EAAeE,EAAUH,GACzBlqB,EAAA,KAAKqpB,IAAQa,CAAK,EAAIlqB,EAAA,KAAKqpB,IAAQgB,CAAQ,GAEtC,IACT,CACA,kBAAkB3mC,EAAK,CACrB,OAAAsc,EAAA,KAAK2pB,IAAoB,KAAKjzB,GAAK,oBAAoBsJ,EAAA,KAAK2pB,IAAoB,GAAG,EAAE,EAAGjmC,EAAI,aAAY,CAAE,CAAC,EACpG,IACT,CACA,kBAAmB,CACjB,OAAIsc,EAAA,KAAK2pB,IAAoB,OAAS,GACpC3pB,EAAA,KAAK2pB,IAAoB,IAAG,EAEvB,IACT,CACA,UAAUx1D,EAAK,CACb,OAAI,KAAK,kBAAoBA,IAC3B,KAAK,gBAAkBA,EACvB6rC,EAAA,KAAK6pB,IAAa,IAAIn3B,GAAW,CAAC,GAE7B,IACT,CACA,cAAcv+B,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,EAAM,CAC9C,MAAM1xB,EAAYP,GAAK,oBAAoBsJ,EAAA,KAAK2pB,IAAoB,GAAG,EAAE,EAAGjmC,EAAI,cAAc,EACxF4mC,EAAU53B,GAAU,MAAK,EAC/BgE,GAAK,wBAAwB,CAAC8xB,EAAMC,EAAMC,EAAMC,CAAI,EAAG1xB,EAAWqzB,CAAO,EACzE,MAAMC,EAAe7zB,GAAK,UAAUsJ,EAAA,KAAK4pB,IAAUU,CAAO,EAC1D,OAAIC,GACFvqB,EAAA,KAAK4pB,IAAS,CAAC,EAAIW,EAAa,CAAC,EACjCvqB,EAAA,KAAK4pB,IAAS,CAAC,EAAIW,EAAa,CAAC,EACjCvqB,EAAA,KAAK4pB,IAAS,CAAC,EAAIW,EAAa,CAAC,EACjCvqB,EAAA,KAAK4pB,IAAS,CAAC,EAAIW,EAAa,CAAC,IAEjCvqB,EAAA,KAAK4pB,IAAS,CAAC,EAAI5pB,EAAA,KAAK4pB,IAAS,CAAC,EAAI,IACtC5pB,EAAA,KAAK4pB,IAAS,CAAC,EAAI5pB,EAAA,KAAK4pB,IAAS,CAAC,EAAI,MAEjC,IACT,CACA,WAAWz1D,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,EAAM,CAC3C,MAAM2B,EAAUtqB,EAAA,KAAK4pB,IACrB,GAAIU,EAAQ,CAAC,IAAM,IACjB,OAAO,KAET,MAAMrzB,EAAYP,GAAK,oBAAoBsJ,EAAA,KAAK2pB,IAAoB,GAAG,EAAE,EAAGjmC,EAAI,cAAc,EAC9F,GAAI4mC,EAAQ,CAAC,IAAM,KACjB,OAAA5zB,GAAK,wBAAwB,CAAC8xB,EAAMC,EAAMC,EAAMC,CAAI,EAAG1xB,EAAW+I,EAAA,KAAK6pB,GAAY,EAC5E,KAET,MAAMd,EAAOr2B,GAAU,MAAK,EAC5B,OAAAgE,GAAK,wBAAwB,CAAC8xB,EAAMC,EAAMC,EAAMC,CAAI,EAAG1xB,EAAW8xB,CAAI,EACtE/oB,EAAA,KAAK6pB,IAAa,CAAC,EAAIvuB,GAAUytB,EAAK,CAAC,EAAGuB,EAAQ,CAAC,EAAGtqB,EAAA,KAAK6pB,IAAa,CAAC,CAAC,EAC1E7pB,EAAA,KAAK6pB,IAAa,CAAC,EAAIvuB,GAAUytB,EAAK,CAAC,EAAGuB,EAAQ,CAAC,EAAGtqB,EAAA,KAAK6pB,IAAa,CAAC,CAAC,EAC1E7pB,EAAA,KAAK6pB,IAAa,CAAC,EAAIvuB,GAAUytB,EAAK,CAAC,EAAG/oB,EAAA,KAAK6pB,IAAa,CAAC,EAAGS,EAAQ,CAAC,CAAC,EAC1EtqB,EAAA,KAAK6pB,IAAa,CAAC,EAAIvuB,GAAUytB,EAAK,CAAC,EAAG/oB,EAAA,KAAK6pB,IAAa,CAAC,EAAGS,EAAQ,CAAC,CAAC,EACnE,IACT,CACA,mBAAmBn2D,EAAK,CACtB,OAAA6rC,EAAA,KAAK6pB,IAAa,CAAC,EAAI,KAAK,IAAI,EAAG7pB,EAAA,KAAK4pB,IAAS,CAAC,CAAC,EACnD5pB,EAAA,KAAK6pB,IAAa,CAAC,EAAI,KAAK,IAAI,EAAG7pB,EAAA,KAAK4pB,IAAS,CAAC,CAAC,EACnD5pB,EAAA,KAAK6pB,IAAa,CAAC,EAAI,KAAK,IAAI7pB,EAAA,KAAK8pB,IAAc9pB,EAAA,KAAK4pB,IAAS,CAAC,CAAC,EACnE5pB,EAAA,KAAK6pB,IAAa,CAAC,EAAI,KAAK,IAAI7pB,EAAA,KAAK+pB,IAAe/pB,EAAA,KAAK4pB,IAAS,CAAC,CAAC,EAC7D,IACT,CACA,gBAAgBz1D,EAAKq2D,EAAW,GAAOC,EAAiB,CACtD,GAAI,KAAK,kBAAoBt2D,EAC3B,OAAO,KAET,MAAMq0D,EAAOH,GAAMroB,EAAA,KAAK6pB,IAAa,CAAC,EAAI,IAAM7pB,EAAA,KAAK8pB,GAAY,EAC3DrB,EAAOJ,GAAMroB,EAAA,KAAK6pB,IAAa,CAAC,EAAI,IAAM7pB,EAAA,KAAK+pB,GAAa,EAC5DrB,EAAOJ,GAAKtoB,EAAA,KAAK6pB,IAAa,CAAC,EAAI,IAAM7pB,EAAA,KAAK8pB,GAAY,EAC1DnB,EAAOL,GAAKtoB,EAAA,KAAK6pB,IAAa,CAAC,EAAI,IAAM7pB,EAAA,KAAK+pB,GAAa,EAEjE,GADAxB,GAAWvoB,EAAA,KAAKgqB,IAAe71D,EAAKq0D,EAAMC,EAAMC,EAAMC,CAAI,EACtD8B,EACF,UAAWC,KAAgBD,EACzB,UAAWE,KAAUD,EACfC,IAAWx2D,GACbo0D,GAAWvoB,EAAA,KAAKgqB,IAAeW,EAAQnC,EAAMC,EAAMC,EAAMC,CAAI,EAKrE,OAAK6B,IACH,KAAK,gBAAkB,IAElB,IACT,CACA,2BAA2Br2D,EAAK,CAC9B,OAAI,KAAK,kBAAoBA,IAC3B,KAAK,gBAAkB,GACvB6rC,EAAA,KAAK4pB,IAAS,CAAC,EAAI,KAAK,IAAI5pB,EAAA,KAAK4pB,IAAS,CAAC,EAAG5pB,EAAA,KAAK6pB,IAAa,CAAC,CAAC,EAClE7pB,EAAA,KAAK4pB,IAAS,CAAC,EAAI,KAAK,IAAI5pB,EAAA,KAAK4pB,IAAS,CAAC,EAAG5pB,EAAA,KAAK6pB,IAAa,CAAC,CAAC,EAClE7pB,EAAA,KAAK4pB,IAAS,CAAC,EAAI,KAAK,IAAI5pB,EAAA,KAAK4pB,IAAS,CAAC,EAAG5pB,EAAA,KAAK6pB,IAAa,CAAC,CAAC,EAClE7pB,EAAA,KAAK4pB,IAAS,CAAC,EAAI,KAAK,IAAI5pB,EAAA,KAAK4pB,IAAS,CAAC,EAAG5pB,EAAA,KAAK6pB,IAAa,CAAC,CAAC,GAE7D,IACT,CACA,MAAO,CACL,OAAO,IAAIX,GAAWlpB,EAAA,KAAKqpB,IAASrpB,EAAA,KAAKgqB,GAAa,CACxD,CACA,mBAAoB,CAClB,MAAM,IAAI,MAAM,aAAa,CAC/B,CACA,iBAAiB1wC,EAAMnlB,EAAK,CAC1B,OAAO,IACT,CACA,sBAAsBmlB,EAAMnlB,EAAK,CAC/B,OAAO,IACT,CACA,qBAAqBmlB,EAAMnlB,EAAK,CAC9B,OAAO,IACT,CACA,gBAAgBmlB,EAAMnlB,EAAK,CACzB,OAAO,IACT,CACA,0BAA0BmlB,EAAMsxC,EAASC,EAAa,CACpD,OAAO,IACT,CACA,6BAA6BvxC,EAAMnlB,EAAK,CACtC,OAAO,IACT,CACA,4CAA4Ci0C,EAAO,CACjD,OAAO,IACT,CACA,sDAAuD,CACrD,OAAO,IACT,CACA,oBAAoBj0C,EAAKuvB,EAAKonC,EAAMj+B,EAAQ,EAAGh0B,EAAI,EAAGf,EAAI,EAAGizD,EAAY,CACvE,OAAO,IACT,CACA,eAAeC,EAAgB,CAE/B,CACA,mBAAmB72D,EAAK82D,EAAiB,CACvC,OAAO,IACT,CACA,sBAAsB92D,EAAKmlB,EAAM,CAC/B,OAAO,IACT,CACA,wBAAwBnlB,EAAKq2D,EAAW,GAAO,CAC7C,OAAO,IACT,CACF,CA5NEb,GAAA,YACAC,GAAA,YACAC,GAAA,YAEAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAX,GAAA,YARFK,GAAA,YAqBEO,GAAiB,SAACR,EAAiByB,EAAW,CAC5C,MAAM71D,EAAS,IAAI,YAAYo0D,EAAkB,CAAC,EAClDnpB,EAAA,KAAK0pB,GAAgB,IAAI,kBAAkB30D,CAAM,GACjDirC,EAAA,KAAK+oB,GAAU,IAAI,YAAYh0D,CAAM,GACjC61D,GAAaA,EAAU,OAAS,GAClClrB,EAAA,KAAKqpB,IAAQ,IAAI6B,CAAS,EAC1BlrB,EAAA,KAAKqpB,IAAQ,KAAKJ,GAAYiC,EAAU,MAAM,GAE9ClrB,EAAA,KAAKqpB,IAAQ,KAAKJ,EAAU,CAEhC,EA+LF,MAAMkC,EAAwB,CAiB5B,YAAYC,EAAaC,EAAsB,GAAO,CAhBtDlxB,EAAA,KAAAmxB,GAAU,CACR,UAAW,IACf,GACEnxB,EAAA,KAAAoxB,GAAe,CACb,UAAW,KACX,UAAW,CAAA,EACX,SAAU,CAAA,EACV,aAAc,CAAA,EACd,CAACnD,EAAuB,EAAG,CAAA,CAC/B,GACEjuB,EAAA,KAAAqxB,GAAqB,IAAI,KACzBrxB,EAAA,KAAAsxB,GAAuB,IAAI,KAC3BtxB,EAAA,KAAAuxB,GAAuB,IAAI,KAC3BvxB,EAAA,KAAAwxB,IACAxxB,EAAA,KAAAyxB,IACAzxB,EAAA,KAAA0xB,IAEEvrB,EAAA,KAAKurB,GAAeT,GAChBC,IACF/qB,EAAA,KAAKqrB,GAAiB,IAAI,KAC1BrrB,EAAA,KAAKsrB,GAA4C,CAACvB,EAAUH,IAAU,CACpEX,GAAoBvpB,EAAA,KAAK2rB,IAAgBzB,CAAK,EAAE,aAAa,IAAIG,CAAQ,CAC3E,GAEJ,CACA,IAAI,SAAU,CACZ,OAAOrqB,EAAA,KAAK6rB,IAAa,OAC3B,CACA,oBAAoBpC,EAAiB,CACnCzpB,EAAA,KAAK6rB,IAAa,oBAAoBpC,CAAe,CACvD,CACA,KAAKS,EAAO,CACV,OAAA5pB,EAAA,KAAKgrB,GAAU,CACb,UAAWtrB,EAAA,KAAKsrB,GACtB,GACIhrB,EAAA,KAAKirB,GAAe,CAClB,UAAWvrB,EAAA,KAAKurB,IAChB,UAAW,CACT,UAAWvrB,EAAA,KAAKurB,IAAa,SACrC,EACM,SAAU,CACR,UAAWvrB,EAAA,KAAKurB,IAAa,QACrC,EACM,aAAc,CACZ,UAAWvrB,EAAA,KAAKurB,IAAa,YACrC,EACM,CAACnD,EAAuB,EAAG,CACzB,UAAWpoB,EAAA,KAAKurB,IAAanD,EAAuB,CAC5D,CACA,GACIpoB,EAAA,KAAK6rB,IAAa,KAAK3B,CAAK,EACrB,IACT,CACA,QAAQA,EAAO,CACblqB,EAAA,KAAK6rB,IAAa,QAAQ3B,EAAOlqB,EAAA,KAAK4rB,GAAyC,EAC/E,MAAMxB,EAAW,OAAO,eAAepqB,EAAA,KAAKsrB,GAAO,EACnD,OAAIlB,IAAa,KACR,MAET9pB,EAAA,KAAKgrB,GAAUlB,GACf9pB,EAAA,KAAKirB,GAAe,OAAO,eAAevrB,EAAA,KAAKurB,GAAY,GACpD,KACT,CACA,iBAAiBrB,EAAO,CACtB,OAAAlqB,EAAA,KAAK6rB,IAAa,iBAAiB3B,EAAOlqB,EAAA,KAAK4rB,GAAyC,EACjF,IACT,CACA,eAAgB,CACd,OAAO5rB,EAAA,KAAK6rB,IAAa,cAAa,CACxC,CACA,kBAAkB3B,EAAO,CACvB,OAAAlqB,EAAA,KAAK6rB,IAAa,kBAAkB3B,EAAOlqB,EAAA,KAAK4rB,GAAyC,EAClF,IACT,CACA,mBAAmB1B,EAAO,CACxB,OAAAlqB,EAAA,KAAK6rB,IAAa,mBAAmB3B,CAAK,EACnC,IACT,CACA,iBAAiBA,EAAO,CACtB,OAAAlqB,EAAA,KAAK6rB,IAAa,iBAAiB3B,EAAOlqB,EAAA,KAAK4rB,GAAyC,EACjF,IACT,CACA,kBAAkBloC,EAAK,CACrB,OAAAsc,EAAA,KAAK6rB,IAAa,kBAAkBnoC,CAAG,EAChC,IACT,CACA,kBAAmB,CACjB,OAAAsc,EAAA,KAAK6rB,IAAa,iBAAgB,EAC3B,IACT,CACA,iBAAiBvyC,EAAMnlB,EAAK,CAC1B,OAAA6rC,EAAA,KAAKsrB,IAAQhyC,CAAI,EAAInlB,EACd,IACT,CACA,sBAAsBmlB,EAAMnlB,EAAK,CAC/B,OAAA6rC,EAAA,KAAKurB,IAAajyC,CAAI,EAAE,KAAKnlB,CAAG,EACzB,IACT,CACA,qBAAqBmlB,EAAMnlB,EAAK,CAC9B,OAAA6rC,EAAA,KAAKurB,IAAajyC,CAAI,EAAE,OAAS,EAC1B,IACT,CACA,gBAAgBA,EAAMnlB,EAAK,CACzB,OAAA6rC,EAAA,KAAKwrB,IAAmB,IAAIlyC,EAAMnlB,CAAG,EAC9B,IACT,CACA,0BAA0BmlB,EAAMsxC,EAASC,EAAa,CACpD7qB,EAAA,KAAKsrB,IAAQhyC,CAAI,EAAI0mB,EAAA,KAAKwrB,IAAmB,IAAIZ,CAAO,GAAKC,CAC/D,CACA,6BAA6BvxC,EAAMnlB,EAAK,CACtC,YAAK,sBAAsBi0D,GAAyBj0D,CAAG,EAChD,IACT,CACA,4CAA4Ci0C,EAAO,CACjD,UAAW9uB,KAAQ8uB,EACb9uB,KAAQ0mB,EAAA,KAAKsrB,KACf,KAAK,6BAA6BhyC,EAAM0mB,EAAA,KAAKsrB,IAAQhyC,CAAI,CAAC,EAG9D,OAAO,IACT,CACA,sDAAuD,CACrD,UAAWwyC,KAAO9rB,EAAA,KAAKyrB,IACrB,KAAK,6BAA6BrD,GAAyB0D,CAAG,EAEhE,OAAO,IACT,CACA,UAAU33D,EAAK,CACb,OAAA6rC,EAAA,KAAK6rB,IAAa,UAAU13D,CAAG,EACxB,IACT,CACA,cAAcA,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,EAAM,CAC9C,OAAA3oB,EAAA,KAAK6rB,IAAa,cAAc13D,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,CAAI,EACzD,IACT,CACA,WAAWx0D,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,EAAM,CAC3C,OAAA3oB,EAAA,KAAK6rB,IAAa,WAAW13D,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,CAAI,EACtD,IACT,CACA,oBAAoBx0D,EAAKuvB,EAAKonC,EAAMj+B,EAAQ,EAAGh0B,EAAI,EAAGf,EAAI,EAAGizD,EAAY,CACvE,MAAMgB,EAAWjB,EAAK,KACtB,IAAIkB,EACAC,EACJ,GAAIF,IACFC,EAAoBD,EAAS,CAAC,IAAMA,EAAS,CAAC,GAAKA,EAAS,CAAC,IAAMA,EAAS,CAAC,GAAK/rB,EAAA,KAAK0rB,IAAqB,IAAIZ,CAAI,EAChHkB,IAAsB,KACxBC,EAAe,CAAC,EAAG,EAAG,EAAG,CAAC,EAC1Bv1B,GAAK,wBAAwBq1B,EAAUjB,EAAK,WAAYmB,CAAY,GAChEp/B,IAAU,GAAKh0B,IAAM,GAAKf,IAAM,IAClC8wD,GAAc/7B,EAAO,CAACA,EAAOh0B,EAAGf,EAAGm0D,CAAY,EAE7CD,IACF,OAAO,KAAK,WAAW73D,EAAKuvB,EAAKuoC,EAAa,CAAC,EAAGA,EAAa,CAAC,EAAGA,EAAa,CAAC,EAAGA,EAAa,CAAC,CAAC,EAIzG,GAAI,CAAClB,EACH,OAAO,KAAK,mBAAmB52D,CAAG,EAEpC,MAAM+3D,EAAUnB,EAAU,EAC1B,OAAIgB,GAAYE,GAAgBD,IAAsB,SACpDA,EAAoBC,EAAa,CAAC,GAAKpzD,EAAIqzD,EAAQ,uBAAyBD,EAAa,CAAC,GAAKpzD,EAAIqzD,EAAQ,wBAA0BD,EAAa,CAAC,GAAKn0D,EAAIo0D,EAAQ,yBAA2BD,EAAa,CAAC,GAAKn0D,EAAIo0D,EAAQ,yBAC9NlsB,EAAA,KAAK0rB,IAAqB,IAAIZ,EAAMkB,CAAiB,EACjDA,GACK,KAAK,WAAW73D,EAAKuvB,EAAKuoC,EAAa,CAAC,EAAGA,EAAa,CAAC,EAAGA,EAAa,CAAC,EAAGA,EAAa,CAAC,CAAC,EAGhG,KAAK,WAAW93D,EAAKuvB,EAAK7qB,EAAIqzD,EAAQ,sBAAuBrzD,EAAIqzD,EAAQ,uBAAwBp0D,EAAIo0D,EAAQ,wBAAyBp0D,EAAIo0D,EAAQ,wBAAwB,CACnL,CACA,mBAAmB/3D,EAAK,CACtB,OAAA6rC,EAAA,KAAK6rB,IAAa,mBAAmB13D,CAAG,EACjC,IACT,CACA,eAAe62D,EAAgB,CAC7B,OAAOhrB,EAAA,KAAKsrB,IAAQN,CAAc,CACpC,CACA,mBAAmB72D,EAAK82D,EAAiB,CACvC,MAAMkB,EAAsBnsB,EAAA,KAAKyrB,IAC3BW,EAASpsB,EAAA,KAAKsrB,IACde,EAAcrsB,EAAA,KAAKurB,IACzB,UAAWjyC,KAAQ2xC,EACb3xC,KAAQ0mB,EAAA,KAAKsrB,IACfa,EAAoB,IAAIC,EAAO9yC,CAAI,CAAC,EAC3BA,KAAQ+yC,GACjBA,EAAY/yC,CAAI,EAAE,QAAQ6yC,EAAoB,IAAKA,CAAmB,EAG1E,OAAO,IACT,CACA,sBAAsBh4D,EAAKmlB,EAAM,CAC/B,OAAI0mB,EAAA,KAAKwrB,IAAmB,IAAIlyC,CAAI,GAClC0mB,EAAA,KAAKyrB,IAAqB,IAAIzrB,EAAA,KAAKwrB,IAAmB,IAAIlyC,CAAI,CAAC,EAE1D,IACT,CACA,gBAAgBnlB,EAAKq2D,EAAW,GAAO,CAErC,GADA,KAAK,mBAAmBr2D,EAAK,CAACi0D,EAAuB,CAAC,EAClDpoB,EAAA,KAAK2rB,IAAgB,CACvB,MAAMW,EAAW/C,GAAoBvpB,EAAA,KAAK2rB,IAAgBx3D,CAAG,EACvD,CACJ,aAAAu2D,CACR,EAAU4B,EACJtsB,EAAA,KAAKyrB,IAAqB,QAAQf,EAAa,IAAKA,CAAY,EAChE1qB,EAAA,KAAK6rB,IAAa,YAAY,QAAQnB,EAAa,IAAKA,CAAY,EACpE1qB,EAAA,KAAK6rB,IAAa,oBAAoB,QAAQnB,EAAa,IAAKA,CAAY,EAC5EA,EAAa,OAAOv2D,CAAG,EACvBm4D,EAAS,qBAAuB,EAClC,CACA,MAAMC,EAAe,CAAC/B,GAAYr2D,IAAQ6rC,EAAA,KAAK6rB,IAAa,gBAC5D,OAAA7rB,EAAA,KAAK6rB,IAAa,gBAAgB13D,EAAKq2D,EAAU,CAACxqB,EAAA,KAAKyrB,IAAsBzrB,EAAA,KAAK6rB,IAAa,YAAa7rB,EAAA,KAAK6rB,IAAa,mBAAmB,CAAC,EAC9IU,GACFvsB,EAAA,KAAKyrB,IAAqB,MAAK,EAE1B,IACT,CACA,wBAAwBt3D,EAAKq2D,EAAW,GAAO,CAC7C,MAAMgC,EAAO,MAAM,KAAKxsB,EAAA,KAAKyrB,GAAoB,EACjD,KAAK,gBAAgBt3D,EAAKq2D,CAAQ,EAClC,KAAK,sBAAsB,eAAgBr2D,CAAG,EAC9C,UAAW23D,KAAOU,EAChB,KAAK,sBAAsB,eAAgBV,CAAG,EAEhD,OAAO,IACT,CACA,2BAA2B33D,EAAKq2D,EAAW,GAAO,CAChD,MAAM+B,EAAe,CAAC/B,GAAYr2D,IAAQ6rC,EAAA,KAAK6rB,IAAa,gBAC5D,OAAA7rB,EAAA,KAAK6rB,IAAa,2BAA2B13D,CAAG,EAC5Co4D,GACFvsB,EAAA,KAAKyrB,IAAqB,MAAK,EAE1B,IACT,CACA,MAAO,CACL,OAAAzrB,EAAA,KAAK0rB,IAAqB,MAAK,EACxB1rB,EAAA,KAAK6rB,IAAa,KAAI,CAC/B,CACA,mBAAoB,CAClB,OAAO7rB,EAAA,KAAK2rB,GACd,CACF,CA/OEL,GAAA,YAGAC,GAAA,YAOAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAiOF,MAAMY,GAAN,MAAMA,EAA8B,CAMlC,YAAYC,EAAmBxC,EAAOyC,EAAc,CALpDxyB,EAAA,KAAAyyB,IACAzyB,EAAA,KAAA0yB,IACA1yB,EAAA,KAAA2yB,IACA3yB,EAAA,KAAA4yB,GAAgB,GAChB5yB,EAAA,KAAA6yB,GAAc,GAEZ,GAAIN,aAA6BD,IAAiCzsB,EAAA0sB,EAAkBI,MAAkB,CAAC,CAACH,EACtG,OAAOD,EAETpsB,EAAA,KAAKssB,GAAqBF,GAC1BpsB,EAAA,KAAKusB,GAAS3C,GACd5pB,EAAA,KAAKwsB,GAAgB,CAAC,CAACH,EACzB,CACA,IAAI,SAAU,CACZ,OAAO3sB,EAAA,KAAK4sB,IAAmB,OACjC,CACA,qBAAsB,CACpB,MAAM,IAAI,MAAM,aAAa,CAC/B,CACA,KAAK1C,EAAO,CACV,OAAAlhB,GAAA,KAAKgkB,IAAL,IACAhtB,EAAA,KAAK4sB,IAAmB,KAAK5sB,EAAA,KAAK6sB,GAAM,EACjC,IACT,CACA,QAAQ3C,EAAO,CACb,OAAIlqB,EAAA,KAAKgtB,IAAc,IACrBhtB,EAAA,KAAK4sB,IAAmB,QAAQ5sB,EAAA,KAAK6sB,GAAM,EAC3C7jB,GAAA,KAAKgkB,IAAL,KAEK,IACT,CACA,iBAAiB74D,EAAK,CACpB,OAAA60C,GAAA,KAAK+jB,IAAL,IACO,IACT,CACA,eAAgB,CACd,OAAO/sB,EAAA,KAAK+sB,IAAgB,EAAI/sB,EAAA,KAAK6sB,IAAS7sB,EAAA,KAAK4sB,IAAmB,cAAa,CACrF,CACA,kBAAkBz4D,EAAK,CACrB,OAAA60C,GAAA,KAAK+jB,IAAL,IACO,IACT,CACA,mBAAmB7C,EAAO,CACxB,OAAO,IACT,CACA,iBAAiBA,EAAO,CACtB,OAAO,IACT,CACA,kBAAkBxmC,EAAK,CACrB,OAAAsc,EAAA,KAAK4sB,IAAmB,kBAAkBlpC,CAAG,EACtC,IACT,CACA,kBAAmB,CACjB,OAAAsc,EAAA,KAAK4sB,IAAmB,iBAAgB,EACjC,IACT,CACA,iBAAiBtzC,EAAMnlB,EAAK,CAC1B,OAAA6rC,EAAA,KAAK4sB,IAAmB,iBAAiBtzC,EAAM0mB,EAAA,KAAK6sB,GAAM,EACnD,IACT,CACA,sBAAsBvzC,EAAMnlB,EAAK,CAC/B,OAAA6rC,EAAA,KAAK4sB,IAAmB,sBAAsBtzC,EAAM0mB,EAAA,KAAK6sB,GAAM,EACxD,IACT,CACA,qBAAqBvzC,EAAMnlB,EAAK,CAC9B,OAAA6rC,EAAA,KAAK4sB,IAAmB,qBAAqBtzC,EAAM0mB,EAAA,KAAK6sB,GAAM,EACvD,IACT,CACA,gBAAgBvzC,EAAMnlB,EAAK,CACzB,OAAO,IACT,CACA,0BAA0BmlB,EAAMsxC,EAASC,EAAa,CACpD,OAAA7qB,EAAA,KAAK4sB,IAAmB,0BAA0BtzC,EAAMsxC,EAAS5qB,EAAA,KAAK6sB,GAAM,EACrE,IACT,CACA,6BAA6BvzC,EAAMnlB,EAAK,CACtC,OAAA6rC,EAAA,KAAK4sB,IAAmB,6BAA6BtzC,EAAM0mB,EAAA,KAAK6sB,GAAM,EAC/D,IACT,CACA,4CAA4CzkB,EAAO,CACjD,OAAApI,EAAA,KAAK4sB,IAAmB,4CAA4CxkB,CAAK,EAClE,IACT,CACA,sDAAuD,CACrD,OAAApI,EAAA,KAAK4sB,IAAmB,qDAAoD,EACrE,IACT,CACA,UAAUz4D,EAAK,CACb,OAAK6rC,EAAA,KAAK8sB,KACR9sB,EAAA,KAAK4sB,IAAmB,UAAU5sB,EAAA,KAAK6sB,GAAM,EAExC,IACT,CACA,cAAc14D,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,EAAM,CAC9C,OAAK3oB,EAAA,KAAK8sB,KACR9sB,EAAA,KAAK4sB,IAAmB,cAAc5sB,EAAA,KAAK6sB,IAAQnpC,EAAK8kC,EAAME,EAAMD,EAAME,CAAI,EAEzE,IACT,CACA,WAAWx0D,EAAKuvB,EAAK8kC,EAAME,EAAMD,EAAME,EAAM,CAC3C,OAAK3oB,EAAA,KAAK8sB,KACR9sB,EAAA,KAAK4sB,IAAmB,WAAW5sB,EAAA,KAAK6sB,IAAQnpC,EAAK8kC,EAAME,EAAMD,EAAME,CAAI,EAEtE,IACT,CACA,oBAAoBx0D,EAAKuvB,EAAKonC,EAAMj+B,EAAOh0B,EAAGf,EAAGizD,EAAY,CAC3D,OAAK/qB,EAAA,KAAK8sB,KACR9sB,EAAA,KAAK4sB,IAAmB,oBAAoB5sB,EAAA,KAAK6sB,IAAQnpC,EAAKonC,EAAMj+B,EAAOh0B,EAAGf,EAAGizD,CAAU,EAEtF,IACT,CACA,mBAAmB52D,EAAK,CACtB,OAAK6rC,EAAA,KAAK8sB,KACR9sB,EAAA,KAAK4sB,IAAmB,mBAAmB5sB,EAAA,KAAK6sB,GAAM,EAEjD,IACT,CACA,eAAe7B,EAAgB,CAC7B,OAAOhrB,EAAA,KAAK4sB,IAAmB,eAAe5B,CAAc,CAC9D,CACA,mBAAmB72D,EAAK82D,EAAiB,CACvC,OAAAjrB,EAAA,KAAK4sB,IAAmB,mBAAmB5sB,EAAA,KAAK6sB,IAAQ5B,CAAe,EAChE,IACT,CACA,sBAAsB92D,EAAKmlB,EAAM,CAC/B,OAAA0mB,EAAA,KAAK4sB,IAAmB,sBAAsB5sB,EAAA,KAAK6sB,IAAQvzC,CAAI,EACxD,IACT,CACA,gBAAgBnlB,EAAK,CACnB,OAAA6rC,EAAA,KAAK4sB,IAAmB,gBAAgB5sB,EAAA,KAAK6sB,IAAQ,EAAI,EAClD,IACT,CACA,wBAAwB14D,EAAK,CAC3B,OAAA6rC,EAAA,KAAK4sB,IAAmB,wBAAwB5sB,EAAA,KAAK6sB,IAAQ,EAAI,EAC1D,IACT,CACA,2BAA2B14D,EAAK,CAC9B,OAAK6rC,EAAA,KAAK8sB,KACR9sB,EAAA,KAAK4sB,IAAmB,2BAA2B5sB,EAAA,KAAK6sB,IAAQ,EAAI,EAE/D,IACT,CACA,MAAO,CACL,MAAM,IAAI,MAAM,aAAa,CAC/B,CACA,mBAAoB,CAClB,MAAM,IAAI,MAAM,aAAa,CAC/B,CACF,EApJED,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YALF,IAAMC,GAANR,GAsJA,MAAMS,GAAe,CACnB,OAAQ,CAAC,OAAQ,YAAa,SAAU,cAAe,cAAe,YAAa,UAAW,WAAY,aAAc,MAAM,EAC9H,KAAM,CAAC,OAAQ,YAAa,SAAU,YAAa,YAAa,2BAA4B,OAAO,EACnG,aAAc,CAAC,YAAa,QAAS,SAAU,YAAa,cAAe,0BAA0B,EACrG,YAAa,CAAC,SAAU,YAAa,WAAW,EAChD,SAAU,CAAC,YAAa,UAAW,cAAe,cAAe,SAAU,WAAY,WAAY,aAAc,OAAQ,UAAW,SAAU,YAAa,oBAAqB,QAAS,YAAa,cAAe,2BAA4B,cAAc,EAC/P,UAAW,CAAC,WAAW,EACvB,iBAAkB,CAAC,YAAa,WAAW,CAC7C,EACMC,GAAN,MAAMA,EAAoB,CAOxB,YAAYvjB,EAAQ,CANpBzP,EAAA,KAAA2vB,IACA3vB,EAAA,KAAA4vB,IACA5vB,EAAA,KAAAizB,GAAY,GACZjzB,EAAA,KAAAkzB,GAAS,GACTlzB,EAAA,KAAAmvB,GAAU,IAAItpB,EAAAmtB,GAAoBG,KAAattB,EAAA,KAAKotB,IAAY,CAAC,GAG/D9sB,EAAA,KAAKwpB,GAAelgB,EAAO,OAC3BtJ,EAAA,KAAKypB,GAAgBngB,EAAO,OAC9B,CACA,OAAOlmB,EAAK8Y,EAAOC,EAAQ6tB,EAAS,CAClC,GAAItqB,EAAA,KAAKqtB,MAAWrtB,EAAA,KAAKotB,IAAW,CAClC9sB,EAAA,KAAK8sB,GAALptB,EAAA,KAAKotB,IAAa,GAClB,MAAMG,EAAY,IAAIvtB,EAAAmtB,GAAoBG,KAAattB,EAAA,KAAKotB,IAAY,CAAC,EACzEG,EAAU,IAAIvtB,EAAA,KAAKspB,GAAO,EAC1BhpB,EAAA,KAAKgpB,GAAUiE,EACjB,CACA,MAAMt2B,EAAYwK,GAAoB/d,CAAG,EACzC,IAAI0lC,EACJ,GAAIkB,EAAQ,CAAC,IAAM,IAAU,CAC3B,MAAMvB,EAAOr2B,GAAU,MAAK,EAC5BgE,GAAK,wBAAwB,CAAC,EAAG,CAAC+F,EAAQD,EAAO,CAAC,EAAGvF,EAAW8xB,CAAI,EACpE,MAAMyE,EAAY92B,GAAK,UAAU4zB,EAASvB,CAAI,EAC9C,GAAI,CAACyE,EACH,OAEF,KAAM,CAAChF,EAAMC,EAAMC,EAAMC,CAAI,EAAI6E,EACjC,GAAIhF,IAASO,EAAK,CAAC,GAAKN,IAASM,EAAK,CAAC,GAAKL,IAASK,EAAK,CAAC,GAAKJ,IAASI,EAAK,CAAC,EAAG,CAChF,MAAM0E,EAAgB,KAAK,MAAMx2B,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,EACrDy2B,EAAM,KAAK,IAAI,KAAK,IAAID,CAAa,CAAC,EACtCE,EAAM,KAAK,IAAI,KAAK,IAAIF,CAAa,CAAC,EAC5C,GAAIC,EAAM,MAAQC,EAAM,MAAQ,KAAK,IAAID,EAAMC,CAAG,EAAI,KACpDvE,EAAS,CAACZ,EAAMC,EAAMD,EAAMG,EAAMD,EAAMD,CAAI,MACvC,CACL,MAAMmF,EAAiBlF,EAAOF,EACxBqF,EAAkBlF,EAAOF,EACzBqF,EAAOJ,EAAMA,EACbK,EAAOJ,EAAMA,EACbK,EAASL,EAAMD,EACfO,EAAQF,EAAOD,EACfz2D,GAAKw2D,EAAkBE,EAAOH,EAAiBI,GAAUC,EACzDl2D,GAAK81D,EAAkBG,EAASJ,EAAiBE,GAAQG,EAC/D7E,EAAS,CAACZ,EAAOzwD,EAAG0wD,EAAMD,EAAMC,EAAOpxD,EAAGqxD,EAAMC,EAAOtxD,CAAC,CAC1D,CACF,CACF,CACK+xD,IACHA,EAAS,CAAC,EAAG,CAAC3sB,EAAQ,EAAG,EAAGD,EAAO,CAACC,CAAM,EAC1C/F,GAAK,eAAe0yB,EAAQnyB,EAAW,CAAC,EACxCP,GAAK,eAAe0yB,EAAQnyB,EAAW,CAAC,EACxCP,GAAK,eAAe0yB,EAAQnyB,EAAW,CAAC,GAE1CmyB,EAAO,CAAC,GAAKppB,EAAA,KAAK8pB,IAClBV,EAAO,CAAC,GAAKppB,EAAA,KAAK+pB,IAClBX,EAAO,CAAC,GAAKppB,EAAA,KAAK8pB,IAClBV,EAAO,CAAC,GAAKppB,EAAA,KAAK+pB,IAClBX,EAAO,CAAC,GAAKppB,EAAA,KAAK8pB,IAClBV,EAAO,CAAC,GAAKppB,EAAA,KAAK+pB,IAClB/pB,EAAA,KAAKspB,IAAQ,IAAIF,EAAQppB,EAAA,KAAKqtB,IAAS,CAAC,EACxCrkB,GAAA,KAAKqkB,IAAL,GACF,CACA,MAAO,CACL,OAAOrtB,EAAA,KAAKspB,IAAQ,SAAS,EAAGtpB,EAAA,KAAKqtB,IAAS,CAAC,CACjD,CACF,EAhEEvD,GAAA,YACAC,GAAA,YACAqD,GAAA,YACAC,GAAA,YACA/D,GAAA,YACOgE,GAAA,YAAPnzB,EANIgzB,GAMGG,GAAeh3B,GAAY,wBAA0B,aAAe,cAN7E,IAAM43B,GAANf,GAsEA,MAAMgB,EAAW,CAGf,YAAY,CACV,cAAAC,EAAgB,WAAW,SAC3B,aAAAC,EAAe,IACnB,EAAK,CANLl0B,EAAA,KAAAm0B,IACEn0B,EAAA,KAAAo0B,GAAe,IAAI,KACnBp0B,EAAA,KAAAq0B,GAAc,MAKZ,KAAK,UAAYJ,EACjB,KAAK,gBAAkB,IAAI,IAC3B,KAAK,aAAe,KACpB,KAAK,gBAAkB,CAAA,EACvB,KAAK,eAAiB,CACxB,CACA,kBAAkBK,EAAgB,CAChC,KAAK,gBAAgB,IAAIA,CAAc,EACvC,KAAK,UAAU,MAAM,IAAIA,CAAc,CACzC,CACA,qBAAqBA,EAAgB,CACnC,KAAK,gBAAgB,OAAOA,CAAc,EAC1C,KAAK,UAAU,MAAM,OAAOA,CAAc,CAC5C,CACA,WAAWC,EAAM,CACf,MAAMC,EAAa/0B,EAAA,KAAK00B,GAAAM,IAAL,WACnBD,EAAW,WAAWD,EAAMC,EAAW,SAAS,MAAM,CACxD,CAsBA,OAAQ,CACN,UAAWF,KAAkB,KAAK,gBAChC,KAAK,UAAU,MAAM,OAAOA,CAAc,EAI5C,GAFA,KAAK,gBAAgB,MAAK,EAC1BzuB,EAAA,KAAKuuB,IAAa,MAAK,EACnBvuB,EAAA,KAAKwuB,IAAa,CACpB,KAAM,CACJ,mBAAAK,CACR,EAAU,KAAK,UACLA,GAAA,MAAAA,EAAoB,SAAS7uB,EAAA,KAAKwuB,OACpC,KAAK,UAAU,mBAAqBK,EAAmB,OAAOF,GAAcA,IAAe3uB,EAAA,KAAKwuB,GAAW,GAE7GluB,EAAA,KAAKkuB,GAAc,KACrB,CACI,KAAK,eACP,KAAK,aAAa,OAAM,EACxB,KAAK,aAAe,KAExB,CACA,MAAM,eAAe,CACnB,eAAgBx6B,EAChB,gBAAA86B,EACA,aAAAC,CACJ,EAAK,CACD,GAAI,GAAC/6B,GAAQgM,EAAA,KAAKuuB,IAAa,IAAIv6B,EAAK,UAAU,GAIlD,IADAI,GAAO,CAAC06B,EAAiB,mEAAmE,EACxF,KAAK,0BAA2B,CAClC,KAAM,CACJ,WAAAE,EACA,IAAA9qC,EACA,MAAAge,CACR,EAAUlO,EACEi7B,EAAW,IAAI,SAASD,EAAY9qC,EAAKge,CAAK,EACpD,KAAK,kBAAkB+sB,CAAQ,EAC/B,GAAI,CACF,MAAMA,EAAS,KAAI,EACnBjvB,EAAA,KAAKuuB,IAAa,IAAIS,CAAU,EAChCD,GAAA,MAAAA,EAAe/6B,EACjB,MAAQ,CACNE,GAAK,4BAA4BF,EAAK,YAAY,sDAAsD,EACxG,KAAK,qBAAqBi7B,CAAQ,CACpC,CACA,MACF,CACA96B,GAAY,+DAA+D,EAC7E,CACA,MAAM,KAAK22B,EAAM,CACf,GAAIA,EAAK,UAAYA,EAAK,aAAe,CAACA,EAAK,eAC7C,OAGF,GADAA,EAAK,SAAW,GACZA,EAAK,eAAgB,CACvB,MAAM,KAAK,eAAeA,CAAI,EAC9B,MACF,CACA,GAAI,KAAK,0BAA2B,CAClC,MAAM2D,EAAiB3D,EAAK,qBAAoB,EAChD,GAAI2D,EAAgB,CAClB,KAAK,kBAAkBA,CAAc,EACrC,GAAI,CACF,MAAMA,EAAe,MACvB,OAASxa,EAAI,CACX,MAAA/f,GAAK,wBAAwBu6B,EAAe,MAAM,OAAOxa,CAAE,IAAI,EAC/D6W,EAAK,gBAAkB,GACjB7W,CACR,CACF,CACA,MACF,CACA,MAAMya,EAAO5D,EAAK,mBAAkB,EACpC,GAAI4D,EAAM,CAER,GADA,KAAK,WAAWA,CAAI,EAChB,KAAK,2BACP,OAEF,MAAM,IAAI,QAAQn1C,GAAW,CAC3B,MAAMulB,EAAU,KAAK,sBAAsBvlB,CAAO,EAClD,KAAK,sBAAsBuxC,EAAMhsB,CAAO,CAC1C,CAAC,CACH,CACF,CACA,IAAI,2BAA4B,OAC9B,MAAMowB,EAAW,CAAC,GAACt8D,EAAA,KAAK,YAAL,MAAAA,EAAgB,OACnC,OAAOqiC,GAAO,KAAM,4BAA6Bi6B,CAAQ,CAC3D,CACA,IAAI,4BAA6B,CAC/B,OAAOj6B,GAAO,KAAM,6BAA8BxC,IAAY6D,GAAY,SAAS,SAAS,CAC9F,CACA,sBAAsB+U,EAAU,CAC9B,SAAS8jB,GAAkB,CAGzB,IAFA/6B,GAAO,CAAC0K,EAAQ,KAAM,2CAA2C,EACjEA,EAAQ,KAAO,GACRswB,EAAgB,OAAS,GAAKA,EAAgB,CAAC,EAAE,MAAM,CAC5D,MAAMC,EAAeD,EAAgB,MAAK,EAC1C,WAAWC,EAAa,SAAU,CAAC,CACrC,CACF,CACA,KAAM,CACJ,gBAAAD,CACN,EAAQ,KACEtwB,EAAU,CACd,KAAM,GACN,SAAUqwB,EACV,SAAA9jB,CACN,EACI,OAAA+jB,EAAgB,KAAKtwB,CAAO,EACrBA,CACT,CACA,IAAI,eAAgB,CAClB,MAAMwwB,EAAW,KAAK,09CAAmkD,EACzlD,OAAOr6B,GAAO,KAAM,gBAAiBq6B,CAAQ,CAC/C,CACA,sBAAsBxE,EAAMhsB,EAAS,CACnC,SAASywB,EAAM35D,EAAM45D,EAAQ,CAC3B,OAAO55D,EAAK,WAAW45D,CAAM,GAAK,GAAK55D,EAAK,WAAW45D,EAAS,CAAC,GAAK,GAAK55D,EAAK,WAAW45D,EAAS,CAAC,GAAK,EAAI55D,EAAK,WAAW45D,EAAS,CAAC,EAAI,GAC9I,CACA,SAASC,EAASl6D,EAAO,CACvB,OAAO,OAAO,aAAaA,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAMA,EAAQ,GAAI,CACpG,CACA,SAASm6D,EAAa58D,EAAG08D,EAAQG,EAAQC,EAAQ,CAC/C,MAAMC,EAAS/8D,EAAE,UAAU,EAAG08D,CAAM,EAC9BM,EAASh9D,EAAE,UAAU08D,EAASG,CAAM,EAC1C,OAAOE,EAASD,EAASE,CAC3B,CACA,IAAI54D,EAAG2Q,EACP,MAAM+hC,EAAS,KAAK,UAAU,cAAc,QAAQ,EACpDA,EAAO,MAAQ,EACfA,EAAO,OAAS,EAChB,MAAMlmB,EAAMkmB,EAAO,WAAW,IAAI,EAClC,IAAImmB,EAAS,EACb,SAASC,EAAY12C,EAAM+xB,EAAU,CACnC,GAAI,EAAE0kB,EAAS,GAAI,CACjB77B,GAAK,8BAA8B,EACnCmX,EAAQ,EACR,MACF,CAIA,GAHA3nB,EAAI,KAAO,QAAUpK,EACrBoK,EAAI,SAAS,IAAK,EAAG,EAAE,EACLA,EAAI,aAAa,EAAG,EAAG,EAAG,CAAC,EAC/B,KAAK,CAAC,EAAI,EAAG,CACzB2nB,EAAQ,EACR,MACF,CACA,WAAW2kB,EAAY,KAAK,KAAM12C,EAAM+xB,CAAQ,CAAC,CACnD,CACA,MAAM4kB,EAAiB,KAAK,KAAK,IAAG,CAAE,GAAG,KAAK,gBAAgB,GAC9D,IAAIr6D,EAAO,KAAK,cAEhBA,EAAO85D,EAAa95D,EADG,IACmBq6D,EAAe,OAAQA,CAAc,EAC/E,MAAMC,EAAsB,GACtBC,EAAa,WACnB,IAAIC,EAAWb,EAAM35D,EAAMs6D,CAAmB,EAC9C,IAAKh5D,EAAI,EAAG2Q,EAAKooD,EAAe,OAAS,EAAG/4D,EAAI2Q,EAAI3Q,GAAK,EACvDk5D,EAAWA,EAAWD,EAAaZ,EAAMU,EAAgB/4D,CAAC,EAAI,EAE5DA,EAAI+4D,EAAe,SACrBG,EAAWA,EAAWD,EAAaZ,EAAMU,EAAiB,MAAO/4D,CAAC,EAAI,GAExEtB,EAAO85D,EAAa95D,EAAMs6D,EAAqB,EAAGT,EAASW,CAAQ,CAAC,EACpE,MAAMx7D,EAAM,iCAAiC,KAAKgB,CAAI,CAAC,KACjD84D,EAAO,4BAA4BuB,CAAc,SAASr7D,CAAG,IACnE,KAAK,WAAW85D,CAAI,EACpB,MAAM9sB,EAAM,KAAK,UAAU,cAAc,KAAK,EAC9CA,EAAI,MAAM,WAAa,SACvBA,EAAI,MAAM,MAAQA,EAAI,MAAM,OAAS,OACrCA,EAAI,MAAM,SAAW,WACrBA,EAAI,MAAM,IAAMA,EAAI,MAAM,KAAO,MACjC,UAAWtoB,IAAQ,CAACwxC,EAAK,WAAYmF,CAAc,EAAG,CACpD,MAAM1uB,EAAO,KAAK,UAAU,cAAc,MAAM,EAChDA,EAAK,YAAc,KACnBA,EAAK,MAAM,WAAajoB,EACxBsoB,EAAI,OAAOL,CAAI,CACjB,CACA,KAAK,UAAU,KAAK,OAAOK,CAAG,EAC9BouB,EAAYC,EAAgB,IAAM,CAChCruB,EAAI,OAAM,EACV9C,EAAQ,SAAQ,CAClB,CAAC,CACH,CACF,CAnOEyvB,GAAA,YACAC,GAAA,YAFFF,GAAA,YAyBEM,GAAc,UAAG,OACf,GAAI5uB,EAAA,KAAKwuB,IACP,OAAOxuB,EAAA,KAAKwuB,IAEd,MAAM6B,IAAaz9D,EAAA,KAAK,UAAU,cAAf,YAAAA,EAA4B,gBAAiB,WAAW,cAC3E,GAAI,CAAC,KAAK,cAAgBy9D,EAAY,CACpC,KAAM,CACJ,mBAAAxB,CACR,EAAU,KAAK,UACT,GAAIA,EAAoB,CACtB,MAAMF,EAAa,IAAI0B,EACvB,OAAAxB,EAAmB,KAAKF,CAAU,EAC3BruB,EAAA,KAAKkuB,GAAcG,EAC5B,CACF,CACA,OAAK,KAAK,eACR,KAAK,aAAe,KAAK,UAAU,cAAc,OAAO,EACxD,KAAK,UAAU,gBAAgB,qBAAqB,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,YAAY,GAElFruB,EAAA,KAAKkuB,GAAc,KAAK,aAAa,MAC9C,EAwLF,MAAM8B,EAAe,CAGnB,YAAYC,EAAgBC,EAAc,KAAMC,EAAsBC,EAAO,CAF7Ev2C,GAAA,sBAAiB,OAAO,OAAO,IAAI,GACnCggB,EAAA,KAAAw2B,IAEErwB,EAAA,KAAKqwB,GAAYJ,GACjB,KAAK,aAAeC,EAChBC,IACF,KAAK,qBAAuBA,GAE1BC,GACF,OAAO,OAAO,KAAMA,CAAK,CAE7B,CACA,sBAAuB,OACrB,GAAI,CAAC,KAAK,MAAQ,KAAK,gBACrB,OAAO,KAET,IAAIjC,EACJ,GAAI,CAAC,KAAK,YACRA,EAAiB,IAAI,SAAS,KAAK,WAAY,KAAK,KAAM,EAAE,MACvD,CACL,MAAM9jC,EAAM,CACV,OAAQ,KAAK,YAAY,UACjC,EACU,KAAK,YAAY,cACnBA,EAAI,MAAQ,WAAW,KAAK,YAAY,WAAW,OAErD8jC,EAAiB,IAAI,SAAS,KAAK,YAAY,WAAY,KAAK,KAAM9jC,CAAG,CAC3E,CACA,OAAA/3B,EAAA,KAAK,eAAL,MAAAA,EAAA,UAAoB,MACb67D,CACT,CACA,oBAAqB,OACnB,GAAI,CAAC,KAAK,MAAQ,KAAK,gBACrB,OAAO,KAET,MAAM75D,EAAM,YAAY,KAAK,QAAQ,WAAW,KAAK,KAAK,SAAQ,CAAE,KACpE,IAAI85D,EACJ,GAAI,CAAC,KAAK,YACRA,EAAO,4BAA4B,KAAK,UAAU,SAAS95D,CAAG,QACzD,CACL,IAAI+1B,EAAM,gBAAgB,KAAK,YAAY,UAAU,IACjD,KAAK,YAAY,cACnBA,GAAO,uBAAuB,KAAK,YAAY,WAAW,QAE5D+jC,EAAO,4BAA4B,KAAK,YAAY,UAAU,KAAK/jC,CAAG,OAAO/1B,CAAG,GAClF,CACA,OAAAhC,EAAA,KAAK,eAAL,MAAAA,EAAA,UAAoB,KAAMgC,GACnB85D,CACT,CACA,iBAAiBkC,EAAMC,EAAW,CAChC,GAAI,KAAK,eAAeA,CAAS,IAAM,OACrC,OAAO,KAAK,eAAeA,CAAS,EAEtC,MAAMC,EAAQ,KAAK,WAAa,SAAWD,EAC3C,IAAIE,EACJ,GAAI,CACFA,EAAOH,EAAK,IAAIE,CAAK,CACvB,OAAS7c,EAAI,CACX/f,GAAK,2CAA2C+f,CAAE,IAAI,CACxD,CACA,MAAMv5B,EAAOuqB,GAAoB8rB,GAAA,YAAAA,EAAM,IAAI,EAC3C,OAAK,KAAK,qBACRH,EAAK,OAAOE,CAAK,EAEZ,KAAK,eAAeD,CAAS,EAAIn2C,CAC1C,CACA,IAAI,OAAQ,CACV,OAAOslB,EAAA,KAAK2wB,IAAU,KACxB,CACA,IAAI,MAAO,CACT,OAAO3wB,EAAA,KAAK2wB,IAAU,IACxB,CACA,IAAI,iBAAkB,CACpB,OAAO3wB,EAAA,KAAK2wB,IAAU,eACxB,CACA,IAAI,gBAAgBp7D,EAAO,CACzB0/B,GAAO,KAAM,kBAAmB,CAAC,CAAC1/B,CAAK,CACzC,CACA,IAAI,qBAAsB,CACxB,OAAOyqC,EAAA,KAAK2wB,IAAU,mBACxB,CACA,IAAI,oBAAqB,CACvB,OAAO3wB,EAAA,KAAK2wB,IAAU,kBACxB,CACA,IAAI,aAAc,CAChB,OAAO3wB,EAAA,KAAK2wB,IAAU,WACxB,CACA,IAAI,QAAS,CACX,OAAO3wB,EAAA,KAAK2wB,IAAU,MACxB,CACA,IAAI,aAAc,CAChB,OAAO3wB,EAAA,KAAK2wB,IAAU,WACxB,CACA,IAAI,WAAY,CACd,OAAO3wB,EAAA,KAAK2wB,IAAU,SACxB,CACA,IAAI,UAAW,CACb,OAAO3wB,EAAA,KAAK2wB,IAAU,QACxB,CACA,IAAI,QAAS,CACX,OAAO3wB,EAAA,KAAK2wB,IAAU,MACxB,CACA,IAAI,cAAe,CACjB,OAAO3wB,EAAA,KAAK2wB,IAAU,YACxB,CACA,IAAI,SAAU,CACZ,OAAO3wB,EAAA,KAAK2wB,IAAU,OACxB,CACA,IAAI,MAAO,CACT,OAAO3wB,EAAA,KAAK2wB,IAAU,IACxB,CACA,IAAI,YAAa,CACf,OAAO3wB,EAAA,KAAK2wB,IAAU,UACxB,CACA,IAAI,cAAe,CACjB,OAAO3wB,EAAA,KAAK2wB,IAAU,YACxB,CACA,IAAI,YAAa,CACf,OAAO3wB,EAAA,KAAK2wB,IAAU,UACxB,CACA,IAAI,UAAW,CACb,OAAO3wB,EAAA,KAAK2wB,IAAU,QACxB,CACA,IAAI,MAAO,CACT,OAAO3wB,EAAA,KAAK2wB,IAAU,IACxB,CACA,IAAI,MAAO,CACT,OAAO3wB,EAAA,KAAK2wB,IAAU,IACxB,CACA,WAAY,CACV3wB,EAAA,KAAK2wB,IAAU,UAAS,CAC1B,CACA,IAAI,aAAc,CAChB,OAAO3wB,EAAA,KAAK2wB,IAAU,WACxB,CACA,IAAI,gBAAiB,CACnB,OAAO3wB,EAAA,KAAK2wB,IAAU,cACxB,CACA,IAAI,iBAAkB,CACpB,OAAO3wB,EAAA,KAAK2wB,IAAU,eACxB,CACF,CA5IEA,GAAA,YA+IF,MAAMK,EAAc,CAEpB,CADE72C,GADI62C,GACG,UAAU,CAAC,aAAc,aAAc,aAAa,GAE7D,MAAMC,EAAiB,CAEvB,CADE92C,GADI82C,GACG,UAAU,CAAC,MAAO,aAAc,eAAgB,KAAK,GAE9D,MAAMC,GAAN,MAAMA,EAAU,CAShB,EARE/2C,GADI+2C,GACG,QAAQ,CAAC,QAAS,OAAQ,kBAAmB,sBAAuB,qBAAsB,cAAe,SAAU,cAAe,YAAa,UAAU,GAChK/2C,GAFI+2C,GAEG,UAAU,CAAC,SAAU,eAAgB,SAAS,GACrD/2C,GAHI+2C,GAGG,UAAU,CAAC,eAAgB,aAAc,WAAY,MAAM,GAClE/2C,GAJI+2C,GAIG,iBAAiB,KAAK,KAAKA,GAAK,MAAM,OAAS,EAAI,CAAC,GAC3D/2C,GALI+2C,GAKG,cAAcA,GAAK,eAAiBA,GAAK,QAAQ,OAAS,GACjE/2C,GANI+2C,GAMG,qBAAqBA,GAAK,YAAc,EAAI,GACnD/2C,GAPI+2C,GAOG,0BAA0BA,GAAK,mBAAqB,EAAI,IAC/D/2C,GARI+2C,GAQG,iBAAiBA,GAAK,wBAA0B,EAAI,GAR7D,IAAMC,GAAND,GAUA,MAAME,EAAa,CASnB,CAREj3C,GADIi3C,GACG,OAAO,GACdj3C,GAFIi3C,GAEG,WAAW,GAClBj3C,GAHIi3C,GAGG,iBAAiB,GACxBj3C,GAJIi3C,GAIG,eAAe,GACtBj3C,GALIi3C,GAKG,UAAU,GACjBj3C,GANIi3C,GAMG,UAAU,GACjBj3C,GAPIi3C,GAOG,SAAS,IAChBj3C,GARIi3C,GAQG,YAAY,IAMrB,MAAMC,EAAY,CAIhB,YAAYh8D,EAAQ,CAJtB8kC,EAAA,KAAAm3B,IACEn3B,EAAA,KAAAo3B,IACAp3B,EAAA,KAAAq3B,GAAW,IAAI,aACfr3B,EAAA,KAAAs3B,IAEEnxB,EAAA,KAAKixB,GAAUl8D,GACfirC,EAAA,KAAKmxB,GAAQ,IAAI,SAASp8D,CAAM,EAClC,CAUA,IAAI,YAAa,CACf,OAAOukC,EAAA,KAAK03B,GAAAI,IAAL,UAAiB,EAC1B,CACA,IAAI,YAAa,CACf,OAAO93B,EAAA,KAAK03B,GAAAI,IAAL,UAAiB,EAC1B,CACA,IAAI,aAAc,CAChB,OAAO93B,EAAA,KAAK03B,GAAAI,IAAL,UAAiB,EAC1B,CACF,CAzBEH,GAAA,YACAC,GAAA,YACAC,GAAA,YAHFH,GAAA,YAQEI,GAAW,SAACt4C,EAAO,CACjBgb,GAAOhb,EAAQ43C,GAAc,QAAQ,OAAQ,sBAAsB,EACnE,IAAIxB,EAAS,EACb,QAASt4D,EAAI,EAAGA,EAAIkiB,EAAOliB,IACzBs4D,GAAUxvB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAAI,EAE3C,MAAMv5B,EAAS+J,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAC1C,OAAOxvB,EAAA,KAAKwxB,IAAS,OAAO,IAAI,WAAWxxB,EAAA,KAAKuxB,IAAS/B,EAAS,EAAGv5B,CAAM,CAAC,CAC9E,EAWF,MAAM07B,EAAe,CAInB,YAAYt8D,EAAQ,CAJtB8kC,EAAA,KAAAy3B,IACEz3B,EAAA,KAAAo3B,IACAp3B,EAAA,KAAAq3B,GAAW,IAAI,aACfr3B,EAAA,KAAAs3B,IAEEnxB,EAAA,KAAKixB,GAAUl8D,GACfirC,EAAA,KAAKmxB,GAAQ,IAAI,SAASp8D,CAAM,EAClC,CACA,IAAI,eAAgB,CAClB,OAAO2qC,EAAA,KAAKyxB,IAAM,SAAS,CAAC,IAAM,CACpC,CAUA,IAAI,KAAM,CACR,OAAO73B,EAAA,KAAKg4B,GAAAF,IAAL,UAAiB,EAC1B,CACA,IAAI,YAAa,CACf,OAAO93B,EAAA,KAAKg4B,GAAAF,IAAL,UAAiB,EAC1B,CACA,IAAI,cAAe,CACjB,OAAO93B,EAAA,KAAKg4B,GAAAF,IAAL,UAAiB,EAC1B,CACA,IAAI,KAAM,CACR,OAAO93B,EAAA,KAAKg4B,GAAAF,IAAL,UAAiB,EAC1B,CACA,IAAI,OAAQ,CACV,IAAIlC,EAAS,EACbA,GAAU,EAAIxvB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACzC,MAAMqC,EAAc7xB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACzCttB,EAAQlC,EAAA,KAAKwxB,IAAS,OAAO,IAAI,WAAWxxB,EAAA,KAAKuxB,IAAS/B,EAAS,EAAGqC,CAAW,CAAC,EACxFrC,GAAU,EAAIqC,EACd,MAAMC,EAAe9xB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAC1CuC,EAAS/xB,EAAA,KAAKwxB,IAAS,OAAO,IAAI,WAAWxxB,EAAA,KAAKuxB,IAAS/B,EAAS,EAAGsC,CAAY,CAAC,EAC1F,MAAO,CACL,MAAA5vB,EACA,OAAA6vB,CACN,CACE,CACF,CA5CER,GAAA,YACAC,GAAA,YACAC,GAAA,YAHFG,GAAA,YAWEF,GAAW,SAACt4C,EAAO,CACjBgb,GAAOhb,EAAQ63C,GAAiB,QAAQ,OAAQ,sBAAsB,EACtE,IAAIzB,EAAS,EACb,QAASt4D,EAAI,EAAGA,EAAIkiB,EAAOliB,IACzBs4D,GAAUxvB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAAI,EAE3C,MAAMv5B,EAAS+J,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAC1C,OAAOxvB,EAAA,KAAKwxB,IAAS,OAAO,IAAI,WAAWxxB,EAAA,KAAKuxB,IAAS/B,EAAS,EAAGv5B,CAAM,CAAC,CAC9E,EA2BF,MAAM+7B,EAAS,CAIb,YAAY,CACV,OAAA38D,EACA,MAAAq7D,CACJ,EAAK,CAPLv2B,EAAA,KAAA83B,IACE93B,EAAA,KAAAo3B,IACAp3B,EAAA,KAAAq3B,GAAW,IAAI,aACfr3B,EAAA,KAAAs3B,IAKEnxB,EAAA,KAAKixB,GAAUl8D,GACfirC,EAAA,KAAKmxB,GAAQ,IAAI,SAASp8D,CAAM,GAC5Bq7D,GACF,OAAO,OAAO,KAAMA,CAAK,CAE7B,CAQA,IAAI,OAAQ,CACV,OAAO92B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,MAAO,CACT,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,iBAAkB,CACpB,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,qBAAsB,CACxB,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,oBAAqB,CACvB,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,aAAc,CAChB,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,QAAS,CACX,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,aAAc,CAChB,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,WAAY,CACd,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CACA,IAAI,UAAW,CACb,OAAOt4B,EAAA,KAAKq4B,GAAAC,IAAL,UAAkB,EAC3B,CAKA,IAAI,QAAS,CACX,OAAOt4B,EAAA,KAAKq4B,GAAAE,IAAL,UAAiB,EAC1B,CACA,IAAI,cAAe,CACjB,OAAOv4B,EAAA,KAAKq4B,GAAAE,IAAL,UAAiB,EAC1B,CACA,IAAI,SAAU,CACZ,OAAOv4B,EAAA,KAAKq4B,GAAAE,IAAL,UAAiB,EAC1B,CAeA,IAAI,MAAO,CACT,OAAOv4B,EAAA,KAAKq4B,GAAAG,IAAL,UAAgBjB,GAAU,YAAa,EAAG,WAAY,EAC/D,CACA,IAAI,YAAa,CACf,OAAOv3B,EAAA,KAAKq4B,GAAAG,IAAL,UAAgBjB,GAAU,mBAAoB,EAAG,aAAc,EACxE,CACA,IAAI,iBAAkB,CACpB,OAAOv3B,EAAA,KAAKq4B,GAAAG,IAAL,UAAgBjB,GAAU,wBAAyB,EAAG,WAAY,EAC3E,CAUA,IAAI,cAAe,CACjB,OAAOv3B,EAAA,KAAKq4B,GAAAP,IAAL,UAAiB,EAC1B,CACA,IAAI,YAAa,CACf,OAAO93B,EAAA,KAAKq4B,GAAAP,IAAL,UAAiB,EAC1B,CACA,IAAI,UAAW,CACb,OAAO93B,EAAA,KAAKq4B,GAAAP,IAAL,UAAiB,EAC1B,CACA,IAAI,MAAO,CACT,OAAO93B,EAAA,KAAKq4B,GAAAP,IAAL,UAAiB,EAC1B,CAeA,IAAI,MAAO,CACT,KAAM,CACJ,OAAAlC,EACA,OAAAv5B,CACN,EAAQ2D,EAAA,KAAKq4B,GAAAI,IAAL,WACJ,OAAOp8B,IAAW,EAAI,OAAY,IAAI,WAAW+J,EAAA,KAAKuxB,IAAS/B,EAAS,EAAGv5B,CAAM,CACnF,CACA,WAAY,CACV,KAAM,CACJ,OAAAu5B,EACA,OAAAv5B,CACN,EAAQ2D,EAAA,KAAKq4B,GAAAI,IAAL,WACAp8B,IAAW,IAGf+J,EAAA,KAAKyxB,IAAM,UAAUjC,EAAQ,CAAC,EAC9BlvB,EAAA,KAAKixB,GAAU,IAAI,WAAWvxB,EAAA,KAAKuxB,IAAS,EAAG/B,EAAS,CAAC,EAAE,MAAK,EAAG,QACnElvB,EAAA,KAAKmxB,GAAQ,IAAI,SAASzxB,EAAA,KAAKuxB,GAAO,GACxC,CACA,IAAI,aAAc,CAChB,IAAI/B,EAAS2B,GAAU,eACvB,MAAMmB,EAAgBtyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACjDA,GAAU,EAAI8C,EACd,MAAMC,EAAuBvyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACxDA,GAAU,EAAI+C,EACd,MAAMC,EAAoBxyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACrD,GAAIgD,IAAsB,EACxB,OAAO,KAET,MAAMC,EAAkB,IAAI,WAAWD,CAAiB,EACxD,OAAAC,EAAgB,IAAI,IAAI,WAAWzyB,EAAA,KAAKuxB,IAAS/B,EAAS,EAAGgD,CAAiB,CAAC,EACxE,IAAInB,GAAYoB,EAAgB,MAAM,CAC/C,CACA,IAAI,gBAAiB,CACnB,IAAIjD,EAAS2B,GAAU,eACvB,MAAMmB,EAAgBtyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACjDA,GAAU,EAAI8C,EACd,MAAMC,EAAuBvyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACxD,GAAI+C,IAAyB,EAC3B,OAAO,KAET,MAAMG,EAAqB,IAAI,WAAWH,CAAoB,EAC9D,OAAAG,EAAmB,IAAI,IAAI,WAAW1yB,EAAA,KAAKuxB,IAAS/B,EAAS,EAAG+C,CAAoB,CAAC,EAC9E,IAAIZ,GAAee,EAAmB,MAAM,CACrD,CACF,CAtKEnB,GAAA,YACAC,GAAA,YACAC,GAAA,YAHFQ,GAAA,YAcEC,GAAY,SAAC94C,EAAO,CAClBgb,GAAOhb,EAAQ+3C,GAAU,MAAM,OAAQ,uBAAuB,EAC9D,MAAMwB,EAAa,KAAK,MAAMv5C,EAAQ,CAAC,EACjCw5C,EAAYx5C,EAAQ,EAAI,EACxB7jB,EAAQyqC,EAAA,KAAKyxB,IAAM,SAASkB,CAAU,GAAKC,EAAY,EAC7D,OAAOr9D,IAAU,EAAO,OAAYA,IAAU,CAChD,EA+BA48D,GAAW,SAAC/4C,EAAO,CACjB,OAAAgb,GAAOhb,EAAQ+3C,GAAU,QAAQ,OAAQ,sBAAsB,EACxDnxB,EAAA,KAAKyxB,IAAM,WAAWN,GAAU,eAAiB/3C,EAAQ,CAAC,CACnE,EAUAg5C,GAAU,SAAC5C,EAAQqD,EAAQC,EAAYC,EAAW,CAChD,MAAMn7C,EAAMooB,EAAA,KAAKyxB,IAAM,SAASjC,CAAM,EACtC,GAAI53C,IAAQ,EACV,OAEFwc,GAAOxc,IAAQi7C,EAAQ,uBAAuB,EAC9CrD,GAAU,EACV,MAAMt2C,EAAM,IAAI,MAAMtB,CAAG,EACzB,QAAS1gB,EAAI,EAAGA,EAAI0gB,EAAK1gB,IACvBgiB,EAAIhiB,CAAC,EAAI8oC,EAAA,KAAKyxB,IAAMqB,CAAU,EAAEtD,EAAQ,EAAI,EAC5CA,GAAUuD,EAEZ,OAAO75C,CACT,EAUAw4C,GAAW,SAACt4C,EAAO,CACjBgb,GAAOhb,EAAQ+3C,GAAU,QAAQ,OAAQ,sBAAsB,EAC/D,IAAI3B,EAAS2B,GAAU,eAAiB,EACxC,QAASj6D,EAAI,EAAGA,EAAIkiB,EAAOliB,IACzBs4D,GAAUxvB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAAI,EAE3C,MAAMv5B,EAAS+J,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAC1C,OAAOxvB,EAAA,KAAKwxB,IAAS,OAAO,IAAI,WAAWxxB,EAAA,KAAKuxB,IAAS/B,EAAS,EAAGv5B,CAAM,CAAC,CAC9E,EAaAo8B,GAAe,UAAG,CAChB,IAAI7C,EAAS2B,GAAU,eACvB,MAAMmB,EAAgBtyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACjDA,GAAU,EAAI8C,EACd,MAAMC,EAAuBvyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACxDA,GAAU,EAAI+C,EACd,MAAMC,EAAoBxyB,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EACrDA,GAAU,EAAIgD,EACd,MAAMv8B,EAAS+J,EAAA,KAAKyxB,IAAM,UAAUjC,CAAM,EAC1C,MAAO,CACL,OAAAA,EACA,OAAAv5B,CACN,CACE,EA+CF,MAAM+8B,EAAY,CAChB,YAAY39D,EAAQ,CAClB,KAAK,OAASA,EACd,KAAK,KAAO,IAAI,SAASA,CAAM,EAC/B,KAAK,KAAO,IAAI,WAAWA,CAAM,CACnC,CACA,OAAQ,CACN,MAAM49D,EAAW,KAAK,KAChBC,EAAO,KAAK,KAAK9B,GAAa,IAAI,EAClC+B,EAAU,CAAC,CAAC,KAAK,KAAK/B,GAAa,QAAQ,EAC3CgC,EAAgB,CAAC,CAAC,KAAK,KAAKhC,GAAa,cAAc,EACvDiC,EAASJ,EAAS,UAAU7B,GAAa,QAAS,EAAI,EACtDkC,EAASL,EAAS,UAAU7B,GAAa,QAAS,EAAI,EACtDmC,EAAQN,EAAS,UAAU7B,GAAa,OAAQ,EAAI,EAC1D,IAAI5B,EAAS,GACb,MAAMpG,EAAS,IAAI,aAAa,KAAK,OAAQoG,EAAQ6D,EAAS,CAAC,EAC/D7D,GAAU6D,EAAS,EACnB,MAAM/xB,EAAS,IAAI,WAAW,KAAK,OAAQkuB,EAAQ8D,EAAS,CAAC,EAC7D9D,GAAU8D,EAAS,EACnB,MAAME,EAAQ,CAAA,EACd,QAASt8D,EAAI,EAAGA,EAAIq8D,EAAO,EAAEr8D,EAAG,CAC9B,MAAMO,EAAIw7D,EAAS,WAAWzD,EAAQ,EAAI,EAC1CA,GAAU,EACV,MAAMlsB,EAAM2vB,EAAS,UAAUzD,EAAQ,EAAI,EAC3CA,GAAU,EACVgE,EAAM,KAAK,CAAC/7D,EAAG,IAAI6rC,EAAI,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAAE,CAAC,CACzD,CACA,IAAIylB,EAAO,KACX,GAAIoK,EAAS,CACXpK,EAAO,CAAA,EACP,QAAS7xD,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACvB6xD,EAAK,KAAKkK,EAAS,WAAWzD,EAAQ,EAAI,CAAC,EAC3CA,GAAU,CAEd,CACA,IAAIiE,EAAa,KAKjB,GAJIL,IACFK,EAAa,IAAI,WAAW,KAAK,OAAQjE,EAAQ,CAAC,EAClDA,GAAU,GAER0D,IAAS,EACX,MAAO,CAAC,cAAe,QAASnK,EAAMyK,EAAO,MAAM,KAAKpK,EAAO,MAAM,EAAG,CAAC,CAAC,EAAG,MAAM,KAAKA,EAAO,MAAM,EAAG,CAAC,CAAC,EAAG,KAAM,IAAI,EAEzH,GAAI8J,IAAS,EACX,MAAO,CAAC,cAAe,SAAUnK,EAAMyK,EAAO,CAACpK,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EAAG,CAACA,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EAEpH,GAAI8J,IAAS,EAAG,CACd,MAAMQ,EAAc,KAAK,KAAKtC,GAAa,YAAY,EACvD,IAAIuC,EAAS,KACb,GAAIvK,EAAO,OAAS,EAAG,CACrBuK,EAASjhC,GAAU,MAAK,EACxB,QAASx7B,EAAI,EAAG2Q,EAAKuhD,EAAO,OAAQlyD,EAAI2Q,EAAI3Q,GAAK,EAC/Cw/B,GAAK,iBAAiB0yB,EAAOlyD,CAAC,EAAGkyD,EAAOlyD,EAAI,CAAC,EAAGy8D,CAAM,CAE1D,CACA,MAAO,CAAC,OAAQD,EAAatK,EAAQ9nB,EAAQ+xB,EAAQM,EAAQ5K,EAAM0K,CAAU,CAC/E,CACA,MAAM,IAAI,MAAM,6BAA6BP,CAAI,EAAE,CACrD,CACF,CACA,MAAMU,EAAa,CAEjB,YAAYv+D,EAAQ,CADpB8kC,EAAA,KAAAo3B,IAEEjxB,EAAA,KAAKixB,GAAUl8D,EACjB,CACA,IAAI,MAAO,CACT,OAAIihC,GAAY,wBACP,IAAI,aAAa0J,EAAA,KAAKuxB,GAAO,EAE/B,IAAI,aAAavxB,EAAA,KAAKuxB,GAAO,CACtC,CACF,CAVEA,GAAA,YAcF,SAASsC,GAAWxM,EAAK,CACvB,GAAIA,aAAe,IACjB,OAAOA,EAET,GAAI,OAAOA,GAAQ,SAAU,CAC3B,GAAI50B,GAAU,CACZ,GAAI,wBAAwB,KAAK40B,CAAG,EAClC,OAAO,IAAI,IAAIA,CAAG,EAEpB,MAAMzyD,EAAM,QAAQ,iBAAiB,KAAK,EAC1C,OAAO,IAAI,IAAIA,EAAI,cAAcyyD,CAAG,CAAC,CACvC,CACA,MAAMzyD,EAAM,IAAI,MAAMyyD,EAAK,OAAO,QAAQ,EAC1C,GAAIzyD,EACF,OAAOA,CAEX,CACA,MAAM,IAAI,MAAM,oFAAyF,CAC3G,CACA,SAASk/D,GAAYzM,EAAK,CACxB,GAAI50B,IAAY,OAAO,OAAW,KAAe40B,aAAe,OAC9D,MAAM,IAAI,MAAM,mEAAmE,EAErF,GAAIA,aAAe,YAAcA,EAAI,aAAeA,EAAI,OAAO,WAC7D,OAAOA,EAET,GAAI,OAAOA,GAAQ,SACjB,OAAOhxB,GAAcgxB,CAAG,EAE1B,GAAIA,aAAe,aAAe,YAAY,OAAOA,CAAG,GAAK,OAAOA,GAAQ,UAAY,CAAC,MAAMA,GAAA,YAAAA,EAAK,MAAM,EACxG,OAAO,IAAI,WAAWA,CAAG,EAE3B,MAAM,IAAI,MAAM,4GAAiH,CACnI,CACA,SAAS0M,GAAkB1M,EAAK,CAC9B,GAAI,OAAOA,GAAQ,SACjB,OAAO,KAET,GAAIA,EAAI,SAAS,GAAG,EAClB,OAAOA,EAET,MAAM,IAAI,MAAM,yBAAyBA,CAAG,gCAAgC,CAC9E,CACA,MAAM2M,GAAap8D,GAAK,OAAOA,GAAM,UAAY,OAAO,UAAUA,GAAA,YAAAA,EAAG,GAAG,GAAKA,EAAE,KAAO,GAAK,OAAO,UAAUA,GAAA,YAAAA,EAAG,GAAG,GAAKA,EAAE,KAAO,EAC1Hq8D,GAAcr8D,GAAK,OAAOA,GAAM,UAAY,OAAOA,GAAA,YAAAA,EAAG,OAAS,SAC/Ds8D,GAAsBz5B,GAAqB,KAAK,KAAMu5B,GAAYC,EAAW,EACnF,MAAME,EAAa,CAAnB,cACEh6B,EAAA,KAAAvhB,GAAa,IAAI,KACjBuhB,EAAA,KAAAi6B,GAAY,QAAQ,QAAO,GAC3B,YAAYl/B,EAAKsyB,EAAU,CACzB,MAAM1oC,EAAQ,CACZ,KAAM,gBAAgBoW,EAAKsyB,EAAW,CACpC,SAAAA,CACR,EAAU,IAAI,CACd,EACIxnB,EAAA,KAAKo0B,IAAU,KAAK,IAAM,CACxB,SAAW,CAACj9C,CAAQ,IAAK6oB,EAAA,KAAKpnB,IAC5BzB,EAAS,KAAK,KAAM2H,CAAK,CAE7B,CAAC,CACH,CACA,iBAAiBxF,EAAMnC,EAAUlhB,EAAU,KAAM,CAC/C,IAAIo+D,EAAU,KACd,IAAIp+D,GAAA,YAAAA,EAAS,kBAAkB,YAAa,CAC1C,KAAM,CACJ,OAAAjB,CACR,EAAUiB,EACJ,GAAIjB,EAAO,QAAS,CAClBk/B,GAAK,gDAAgD,EACrD,MACF,CACA,MAAMogC,EAAU,IAAM,KAAK,oBAAoBh7C,EAAMnC,CAAQ,EAC7Dk9C,EAAU,IAAMr/D,EAAO,oBAAoB,QAASs/D,CAAO,EAC3Dt/D,EAAO,iBAAiB,QAASs/D,CAAO,CAC1C,CACAt0B,EAAA,KAAKpnB,IAAW,IAAIzB,EAAUk9C,CAAO,CACvC,CACA,oBAAoB/6C,EAAMnC,EAAU,CAClC,MAAMk9C,EAAUr0B,EAAA,KAAKpnB,IAAW,IAAIzB,CAAQ,EAC5Ck9C,GAAA,MAAAA,IACAr0B,EAAA,KAAKpnB,IAAW,OAAOzB,CAAQ,CACjC,CACA,WAAY,CACV,SAAW,CAAA,CAAGk9C,CAAO,IAAKr0B,EAAA,KAAKpnB,IAC7By7C,GAAA,MAAAA,IAEFr0B,EAAA,KAAKpnB,IAAW,MAAK,CACvB,CACF,CAzCEA,GAAA,YACAw7C,GAAA,YA4CF,MAAMG,GAAe,CACnB,KAAM,EACN,MAAO,CACT,EACMC,GAAa,CACjB,OAAQ,EACR,gBAAiB,EACjB,MAAO,EACP,QAAS,EACT,MAAO,EACP,KAAM,EACN,cAAe,EACf,eAAgB,CAClB,EACA,SAASC,IAAO,CAAC,CACjB,SAASC,GAAWzgB,EAAI,CACtB,GAAIA,aAAcne,IAAkBme,aAAcve,IAAuBue,aAAc3e,IAAqB2e,aAActe,IAAqBse,aAAcze,GAC3J,OAAOye,EAKT,OAHMA,aAAc,OAAS,OAAOA,GAAO,UAAYA,IAAO,MAC5D9f,GAAY,gEAAgE,EAEtE8f,EAAG,KAAI,CACb,IAAK,iBACH,OAAO,IAAIne,GAAeme,EAAG,OAAO,EACtC,IAAK,sBACH,OAAO,IAAIve,GAAoBue,EAAG,OAAO,EAC3C,IAAK,oBACH,OAAO,IAAI3e,GAAkB2e,EAAG,QAASA,EAAG,IAAI,EAClD,IAAK,oBACH,OAAO,IAAIte,GAAkBse,EAAG,QAASA,EAAG,OAAQA,EAAG,OAAO,EAChE,IAAK,wBACH,OAAO,IAAIze,GAAsBye,EAAG,QAASA,EAAG,OAAO,CAC7D,CACE,OAAO,IAAIze,GAAsBye,EAAG,QAASA,EAAG,SAAQ,CAAE,CAC5D,CACA,MAAM0gB,EAAe,CAEnB,YAAYC,EAAYC,EAAYC,EAAQ,CAF9C36B,EAAA,KAAA46B,IACE56B,EAAA,KAAA66B,GAAa,IAAI,iBAEf,KAAK,WAAaJ,EAClB,KAAK,WAAaC,EAClB,KAAK,OAASC,EACd,KAAK,WAAa,EAClB,KAAK,SAAW,EAChB,KAAK,YAAc,OAAO,OAAO,IAAI,EACrC,KAAK,kBAAoB,OAAO,OAAO,IAAI,EAC3C,KAAK,qBAAuB,OAAO,OAAO,IAAI,EAC9C,KAAK,cAAgB,OAAO,OAAO,IAAI,EACvCA,EAAO,iBAAiB,UAAWl7B,EAAA,KAAKm7B,GAAAE,IAAW,KAAK,IAAI,EAAG,CAC7D,OAAQj1B,EAAA,KAAKg1B,IAAW,MAC9B,CAAK,CACH,CA4DA,GAAGE,EAAYv9C,EAAS,CACtB,MAAMw9C,EAAK,KAAK,cAChB,GAAIA,EAAGD,CAAU,EACf,MAAM,IAAI,MAAM,0CAA0CA,CAAU,GAAG,EAEzEC,EAAGD,CAAU,EAAIv9C,CACnB,CACA,KAAKu9C,EAAYt/D,EAAMw/D,EAAW,CAChC,KAAK,OAAO,YAAY,CACtB,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,OAAQF,EACR,KAAAt/D,CACN,EAAOw/D,CAAS,CACd,CACA,gBAAgBF,EAAYt/D,EAAMw/D,EAAW,CAC3C,MAAMC,EAAa,KAAK,aAClBC,EAAa,QAAQ,cAAa,EACxC,KAAK,qBAAqBD,CAAU,EAAIC,EACxC,GAAI,CACF,KAAK,OAAO,YAAY,CACtB,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,OAAQJ,EACR,WAAAG,EACA,KAAAz/D,CACR,EAASw/D,CAAS,CACd,OAASnhB,EAAI,CACXqhB,EAAW,OAAOrhB,CAAE,CACtB,CACA,OAAOqhB,EAAW,OACpB,CACA,eAAeJ,EAAYt/D,EAAM2/D,EAAkBH,EAAW,CAC5D,MAAMI,EAAW,KAAK,WACpBZ,EAAa,KAAK,WAClBC,EAAa,KAAK,WAClBC,EAAS,KAAK,OAChB,OAAO,IAAI,eAAe,CACxB,MAAOv+D,GAAc,CACnB,MAAMk/D,EAAkB,QAAQ,cAAa,EAC7C,YAAK,kBAAkBD,CAAQ,EAAI,CACjC,WAAAj/D,EACA,UAAWk/D,EACX,SAAU,KACV,WAAY,KACZ,SAAU,EACpB,EACQX,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQK,EACR,SAAAM,EACA,KAAA5/D,EACA,YAAaW,EAAW,WAClC,EAAW6+D,CAAS,EACLK,EAAgB,OACzB,EACA,KAAMl/D,GAAc,CAClB,MAAMm/D,EAAiB,QAAQ,cAAa,EAC5C,YAAK,kBAAkBF,CAAQ,EAAE,SAAWE,EAC5CZ,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,KACnB,SAAAgB,EACA,YAAaj/D,EAAW,WAClC,CAAS,EACMm/D,EAAe,OACxB,EACA,OAAQC,GAAU,CAChBvhC,GAAOuhC,aAAkB,MAAO,iCAAiC,EACjE,MAAMC,EAAmB,QAAQ,cAAa,EAC9C,YAAK,kBAAkBJ,CAAQ,EAAE,WAAaI,EAC9C,KAAK,kBAAkBJ,CAAQ,EAAE,SAAW,GAC5CV,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,OACnB,SAAAgB,EACA,OAAQd,GAAWiB,CAAM,CACnC,CAAS,EACMC,EAAiB,OAC1B,CACN,EAAOL,CAAgB,CACrB,CAwMA,SAAU,QACR3iE,EAAAotC,EAAA,KAAKg1B,MAAL,MAAApiE,EAAiB,QACjB0tC,EAAA,KAAK00B,GAAa,KACpB,CACF,CA1WEA,GAAA,YADFD,GAAA,YAgBEE,GAAU,SAAC,CACT,KAAAr/D,CACJ,EAAK,CACD,GAAIA,EAAK,aAAe,KAAK,WAC3B,OAEF,GAAIA,EAAK,OAAQ,CACfgkC,EAAA,KAAKm7B,GAAAc,IAAL,UAA2BjgE,GAC3B,MACF,CACA,GAAIA,EAAK,SAAU,CACjB,MAAMy/D,EAAaz/D,EAAK,WAClB0/D,EAAa,KAAK,qBAAqBD,CAAU,EACvD,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,2BAA2BD,CAAU,EAAE,EAGzD,GADA,OAAO,KAAK,qBAAqBA,CAAU,EACvCz/D,EAAK,WAAa2+D,GAAa,KACjCe,EAAW,QAAQ1/D,EAAK,IAAI,UACnBA,EAAK,WAAa2+D,GAAa,MACxCe,EAAW,OAAOZ,GAAW9+D,EAAK,MAAM,CAAC,MAEzC,OAAM,IAAI,MAAM,0BAA0B,EAE5C,MACF,CACA,MAAM8sD,EAAS,KAAK,cAAc9sD,EAAK,MAAM,EAC7C,GAAI,CAAC8sD,EACH,MAAM,IAAI,MAAM,+BAA+B9sD,EAAK,MAAM,EAAE,EAE9D,GAAIA,EAAK,WAAY,CACnB,MAAMg/D,EAAa,KAAK,WACtBC,EAAaj/D,EAAK,WAClBk/D,EAAS,KAAK,OAChB,QAAQ,IAAIpS,EAAQ9sD,EAAK,IAAI,EAAE,KAAK,SAAUyxB,EAAQ,CACpDytC,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,SAAUN,GAAa,KACvB,WAAY3+D,EAAK,WACjB,KAAMyxB,CAChB,CAAS,CACH,EAAG,SAAUsuC,EAAQ,CACnBb,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,SAAUN,GAAa,MACvB,WAAY3+D,EAAK,WACjB,OAAQ8+D,GAAWiB,CAAM,CACnC,CAAS,CACH,CAAC,EACD,MACF,CACA,GAAI//D,EAAK,SAAU,CACjBgkC,EAAA,KAAKm7B,GAAAe,IAAL,UAAuBlgE,GACvB,MACF,CACA8sD,EAAO9sD,EAAK,IAAI,CAClB,EAsFAkgE,GAAiB,SAAClgE,EAAM,CACtB,MAAM4/D,EAAW5/D,EAAK,SACpBg/D,EAAa,KAAK,WAClBC,EAAaj/D,EAAK,WAClBk/D,EAAS,KAAK,OACVjpB,EAAO,KACX6W,EAAS,KAAK,cAAc9sD,EAAK,MAAM,EACnCmgE,EAAa,CACjB,QAAQrhE,EAAO80C,EAAO,EAAG4rB,EAAW,CAClC,GAAI,KAAK,YACP,OAEF,MAAMY,EAAkB,KAAK,YAC7B,KAAK,aAAexsB,EAChBwsB,EAAkB,GAAK,KAAK,aAAe,IAC7C,KAAK,eAAiB,QAAQ,cAAa,EAC3C,KAAK,MAAQ,KAAK,eAAe,SAEnClB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,QACnB,SAAAgB,EACA,MAAA9gE,CACV,EAAW0gE,CAAS,CACd,EACA,OAAQ,CACF,KAAK,cAGT,KAAK,YAAc,GACnBN,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,MACnB,SAAAgB,CACV,CAAS,EACD,OAAO3pB,EAAK,YAAY2pB,CAAQ,EAClC,EACA,MAAMG,EAAQ,CACZvhC,GAAOuhC,aAAkB,MAAO,gCAAgC,EAC5D,MAAK,cAGT,KAAK,YAAc,GACnBb,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,MACnB,SAAAgB,EACA,OAAQd,GAAWiB,CAAM,CACnC,CAAS,EACH,EACA,eAAgB,QAAQ,cAAa,EACrC,OAAQ,KACR,SAAU,KACV,YAAa,GACb,YAAa//D,EAAK,YAClB,MAAO,IACb,EACImgE,EAAW,eAAe,QAAO,EACjCA,EAAW,MAAQA,EAAW,eAAe,QAC7C,KAAK,YAAYP,CAAQ,EAAIO,EAC7B,QAAQ,IAAIrT,EAAQ9sD,EAAK,KAAMmgE,CAAU,EAAE,KAAK,UAAY,CAC1DjB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,eACnB,SAAAgB,EACA,QAAS,EACjB,CAAO,CACH,EAAG,SAAUG,EAAQ,CACnBb,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,eACnB,SAAAgB,EACA,OAAQd,GAAWiB,CAAM,CACjC,CAAO,CACH,CAAC,CACH,EACAE,GAAqB,SAACjgE,EAAM,CAC1B,MAAM4/D,EAAW5/D,EAAK,SACpBg/D,EAAa,KAAK,WAClBC,EAAaj/D,EAAK,WAClBk/D,EAAS,KAAK,OACVmB,EAAmB,KAAK,kBAAkBT,CAAQ,EACtDO,EAAa,KAAK,YAAYP,CAAQ,EACxC,OAAQ5/D,EAAK,OAAM,CACjB,KAAK4+D,GAAW,eACV5+D,EAAK,QACPqgE,EAAiB,UAAU,QAAO,EAElCA,EAAiB,UAAU,OAAOvB,GAAW9+D,EAAK,MAAM,CAAC,EAE3D,MACF,KAAK4+D,GAAW,cACV5+D,EAAK,QACPqgE,EAAiB,SAAS,QAAO,EAEjCA,EAAiB,SAAS,OAAOvB,GAAW9+D,EAAK,MAAM,CAAC,EAE1D,MACF,KAAK4+D,GAAW,KACd,GAAI,CAACuB,EAAY,CACfjB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,cACnB,SAAAgB,EACA,QAAS,EACrB,CAAW,EACD,KACF,CACIO,EAAW,aAAe,GAAKngE,EAAK,YAAc,GACpDmgE,EAAW,eAAe,QAAO,EAEnCA,EAAW,YAAcngE,EAAK,YAC9B,QAAQ,IAAImgE,EAAW,QAAUtB,EAAI,EAAE,KAAK,UAAY,CACtDK,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,cACnB,SAAAgB,EACA,QAAS,EACrB,CAAW,CACH,EAAG,SAAUG,EAAQ,CACnBb,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,cACnB,SAAAgB,EACA,OAAQd,GAAWiB,CAAM,CACrC,CAAW,CACH,CAAC,EACD,MACF,KAAKnB,GAAW,QAEd,GADApgC,GAAO6hC,EAAkB,uCAAuC,EAC5DA,EAAiB,SACnB,MAEFA,EAAiB,WAAW,QAAQrgE,EAAK,KAAK,EAC9C,MACF,KAAK4+D,GAAW,MAEd,GADApgC,GAAO6hC,EAAkB,qCAAqC,EAC1DA,EAAiB,SACnB,MAEFA,EAAiB,SAAW,GAC5BA,EAAiB,WAAW,MAAK,EACjCr8B,EAAA,KAAKm7B,GAAAmB,IAAL,UAA6BD,EAAkBT,GAC/C,MACF,KAAKhB,GAAW,MACdpgC,GAAO6hC,EAAkB,qCAAqC,EAC9DA,EAAiB,WAAW,MAAMvB,GAAW9+D,EAAK,MAAM,CAAC,EACzDgkC,EAAA,KAAKm7B,GAAAmB,IAAL,UAA6BD,EAAkBT,GAC/C,MACF,KAAKhB,GAAW,gBACV5+D,EAAK,QACPqgE,EAAiB,WAAW,QAAO,EAEnCA,EAAiB,WAAW,OAAOvB,GAAW9+D,EAAK,MAAM,CAAC,EAE5DgkC,EAAA,KAAKm7B,GAAAmB,IAAL,UAA6BD,EAAkBT,GAC/C,MACF,KAAKhB,GAAW,OACd,GAAI,CAACuB,EACH,MAEF,MAAMI,EAAazB,GAAW9+D,EAAK,MAAM,EACzC,QAAQ,IAAImgE,EAAW,UAAYtB,GAAM0B,CAAU,EAAE,KAAK,UAAY,CACpErB,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,gBACnB,SAAAgB,EACA,QAAS,EACrB,CAAW,CACH,EAAG,SAAUG,EAAQ,CACnBb,EAAO,YAAY,CACjB,WAAAF,EACA,WAAAC,EACA,OAAQL,GAAW,gBACnB,SAAAgB,EACA,OAAQd,GAAWiB,CAAM,CACrC,CAAW,CACH,CAAC,EACDI,EAAW,eAAe,OAAOI,CAAU,EAC3CJ,EAAW,YAAc,GACzB,OAAO,KAAK,YAAYP,CAAQ,EAChC,MACF,QACE,MAAM,IAAI,MAAM,wBAAwB,CAChD,CACE,EACMU,GAAuB,eAACD,EAAkBT,EAAU,WACxD,MAAM,QAAQ,WAAW,EAAC5iE,EAAAqjE,EAAiB,YAAjB,YAAArjE,EAA4B,SAASD,EAAAsjE,EAAiB,WAAjB,YAAAtjE,EAA2B,SAASijB,EAAAqgD,EAAiB,aAAjB,YAAArgD,EAA6B,OAAO,CAAC,EACxI,OAAO,KAAK,kBAAkB4/C,CAAQ,CACxC,EAUF,MAAMY,EAAsB,CAM1B,YAAY,CACV,QAAAC,EAAU,KACV,oBAAAC,EAAsB,KACtB,QAAAC,EAAU,IACd,EAAK,CATHp8B,EAAA,KAAAq8B,GAAY,OAAO,OAAO,CACxB,QAAS,OACT,oBAAqB,OACrB,QAAS,MACb,CAAG,GAMC,KAAK,QAAUH,EACf,KAAK,oBAAsBC,EAC3B,KAAK,QAAUC,CACjB,CACA,MAAM,MAAM,CACV,KAAArD,EACA,SAAAjrC,CACJ,EAAK,CACD,OAAQirC,EAAI,CACV,IAAK,UACL,IAAK,sBACL,IAAK,UACH,MACF,QACE/+B,GAAY,oBAAoB++B,CAAI,EAAE,CAC9C,CACI,MAAMr4C,EAAU,KAAKq4C,CAAI,EACzB,GAAI,CAACr4C,EACH,MAAM,IAAI,MAAM,qBAAqBq4C,CAAI,+BAA+B,EAE1E,MAAMt+D,EAAM,GAAGimB,CAAO,GAAGoN,CAAQ,GACjC,OAAO,KAAK,OAAOrzB,EAAKs+D,CAAI,EAAE,MAAMyC,GAAU,CAC5C,MAAM,IAAI,MAAM,kBAAkB31B,EAAA,KAAKw2B,IAAUtD,CAAI,CAAC,aAAat+D,CAAG,EAAE,CAC1E,CAAC,CACH,CACA,MAAM,OAAOA,EAAKs+D,EAAM,CACtB/+B,GAAY,kCAAkC,CAChD,CACF,CAtCEqiC,GAAA,YAuCF,MAAMC,WAA6BL,EAAsB,CACvD,MAAM,OAAOxhE,EAAKs+D,EAAM,CACtB,MAAM37C,EAAO27C,IAAS,WAAa,CAACt+D,EAAI,SAAS,QAAQ,EAAI,OAAS,QAChEgB,EAAO,MAAMgpC,GAAUhqC,EAAK2iB,CAAI,EACtC,OAAO3hB,aAAgB,WAAaA,EAAOygC,GAAczgC,CAAI,CAC/D,CACF,CAIA,MAAM8gE,EAAkB,CAEtB,YAAY,CACV,UAAAC,EAAY,EAChB,EAAK,CAHHx8B,EAAA,KAAAy8B,GAAa,IAIXt2B,EAAA,KAAKs2B,GAAaD,EACpB,CACA,OAAOn6B,EAAOC,EAAQ,CACpB,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAI,MAAM,qBAAqB,EAEvC,MAAMmN,EAAS,KAAK,cAAcpN,EAAOC,CAAM,EAC/C,MAAO,CACL,OAAAmN,EACA,QAASA,EAAO,WAAW,KAAM,CAC/B,mBAAoB,CAAC5J,EAAA,KAAK42B,GAClC,CAAO,CACP,CACE,CACA,MAAM,CACJ,OAAAhtB,CACJ,EAAKpN,EAAOC,EAAQ,CAChB,GAAI,CAACmN,EACH,MAAM,IAAI,MAAM,yBAAyB,EAE3C,GAAIpN,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAI,MAAM,qBAAqB,EAEvCmN,EAAO,MAAQpN,EACfoN,EAAO,OAASnN,CAClB,CACA,QAAQo6B,EAAkB,CACxB,KAAM,CACJ,OAAAjtB,CACN,EAAQitB,EACJ,GAAI,CAACjtB,EACH,MAAM,IAAI,MAAM,yBAAyB,EAE3CA,EAAO,MAAQA,EAAO,OAAS,EAC/BitB,EAAiB,OAAS,KAC1BA,EAAiB,QAAU,IAC7B,CACA,cAAcr6B,EAAOC,EAAQ,CAC3BtI,GAAY,yCAAyC,CACvD,CACF,CA5CEyiC,GAAA,YA6CF,MAAME,WAAyBJ,EAAkB,CAC/C,YAAY,CACV,cAAAtI,EAAgB,WAAW,SAC3B,UAAAuI,EAAY,EAChB,EAAK,CACD,MAAM,CACJ,UAAAA,CACN,CAAK,EACD,KAAK,UAAYvI,CACnB,CACA,cAAc5xB,EAAOC,EAAQ,CAC3B,MAAMmN,EAAS,KAAK,UAAU,cAAc,QAAQ,EACpD,OAAAA,EAAO,MAAQpN,EACfoN,EAAO,OAASnN,EACTmN,CACT,CACF,CAKA,MAAMmtB,EAAkB,CACtB,UAAUC,EAAM,CACd,MAAO,MACT,CACA,aAAaC,EAASC,EAAS,CAC7B,MAAO,MACT,CACA,eAAevlB,EAAK,CAClB,MAAO,MACT,CACA,oBAAoBA,EAAK,CACvB,MAAO,MACT,CACA,kBAAkBwlB,EAAQ,EAAG,CAC3B,MAAO,MACT,CACA,sBAAsBC,EAAYH,EAASC,EAASG,EAAYC,EAAY,CAC1E,MAAO,MACT,CACA,sBAAsBL,EAASC,EAAS,CACtC,MAAO,MACT,CACA,oBAAqB,CACnB,MAAO,MACT,CACA,qBAAqB/pB,EAAa,KAAM,CACtC,OAAO,IACT,CACA,QAAQoqB,EAAU,GAAO,CAAC,CAC5B,CACA,MAAMC,WAAyBT,EAAkB,CAQ/C,YAAY,CACV,MAAAU,EACA,cAAArJ,EAAgB,WAAW,QAC/B,EAAK,CACD,MAAK,EAZTj0B,EAAA,KAAAu9B,IACEv9B,EAAA,KAAAw9B,IACAx9B,EAAA,KAAAy9B,IACAz9B,EAAA,KAAA09B,IACA19B,EAAA,KAAA29B,IACA39B,EAAA,KAAA49B,IACA59B,EAAA,KAAA69B,IACA79B,EAAA,KAAA4O,GAAM,GAMJzI,EAAA,KAAKw3B,GAASL,GACdn3B,EAAA,KAAKy3B,GAAY3J,EACnB,CAiEA,UAAU4I,EAAM,CACd,GAAI,CAACA,EACH,MAAO,OAET,IAAIzhE,EAAQyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAIjB,CAAI,EAChC,GAAIzhE,EACF,OAAOA,EAET,KAAM,CAAC2iE,EAAQC,EAAQC,CAAM,EAAIx+B,EAAA,KAAK89B,GAAAW,IAAL,UAAmBrB,GAC9Cr+C,EAAMq+C,EAAK,SAAW,EAAIkB,EAAS,GAAGA,CAAM,GAAGC,CAAM,GAAGC,CAAM,GAEpE,GADA7iE,EAAQyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,CAAG,EACvBpjB,EACF,OAAAyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAIjB,EAAMzhE,CAAK,EACpBA,EAET,MAAMkmB,EAAK,KAAKukB,EAAA,KAAK83B,GAAM,iBAAiB9uB,GAAA,KAAKD,IAAL,GAAU,GAChDn0C,EAAMglC,EAAA,KAAK89B,GAAAY,IAAL,UAAgB78C,GAC5BukB,EAAA,KAAK03B,GAAAO,IAAO,IAAIjB,EAAMpiE,CAAG,EACzBorC,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,EAAK/jB,CAAG,EACxB,MAAM2jE,EAAS3+B,EAAA,KAAK89B,GAAAc,IAAL,UAAmB/8C,GAClC,OAAAme,EAAA,KAAK89B,GAAAe,IAAL,UAA+BP,EAAQC,EAAQC,EAAQG,GAChD3jE,CACT,CACA,aAAaqiE,EAASC,EAAS,OAC7B,MAAMv+C,EAAM,GAAGs+C,CAAO,IAAIC,CAAO,GAC3BE,EAAa,OACnB,IAAIpjC,EAAOgM,EAAA,KAAK03B,GAAAgB,IAAU,IAAItB,CAAU,EAiBxC,IAhBIpjC,GAAA,YAAAA,EAAM,OAAQrb,IAGdqb,IACFphC,EAAAohC,EAAK,SAAL,MAAAphC,EAAa,SACbohC,EAAK,IAAMrb,EACXqb,EAAK,IAAM,OACXA,EAAK,OAAS,OAEdA,EAAO,CACL,IAAArb,EACA,IAAK,OACL,OAAQ,IAChB,EACMqnB,EAAA,KAAK03B,GAAAgB,IAAU,IAAItB,EAAYpjC,CAAI,GAEjC,CAACijC,GAAW,CAACC,GACf,OAAOljC,EAAK,IAEd,MAAM2kC,EAAQ/+B,EAAA,KAAK89B,GAAAkB,IAAL,UAAa3B,GAC3BA,EAAUvgC,GAAK,aAAa,GAAGiiC,CAAK,EACpC,MAAME,EAAQj/B,EAAA,KAAK89B,GAAAkB,IAAL,UAAa1B,GAG3B,GAFAA,EAAUxgC,GAAK,aAAa,GAAGmiC,CAAK,EACpCj/B,EAAA,KAAK89B,GAAAoB,IAAL,WACI7B,IAAY,WAAaC,IAAY,WAAaD,IAAYC,EAChE,OAAOljC,EAAK,IAEd,MAAM2d,EAAM,IAAI,MAAM,GAAG,EACzB,QAASz6C,EAAI,EAAGA,GAAK,IAAKA,IAAK,CAC7B,MAAM2B,EAAI3B,EAAI,IACdy6C,EAAIz6C,CAAC,EAAI2B,GAAK,OAAUA,EAAI,QAAUA,EAAI,MAAS,QAAU,GAC/D,CACA,MAAMkgE,EAAQpnB,EAAI,KAAK,GAAG,EACpBl2B,EAAK,KAAKukB,EAAA,KAAK83B,GAAM,cACrBS,EAASvkC,EAAK,OAAS4F,EAAA,KAAK89B,GAAAc,IAAL,UAAmB/8C,GAChDme,EAAA,KAAK89B,GAAAe,IAAL,UAA+BM,EAAOA,EAAOA,EAAOR,GACpD3+B,EAAA,KAAK89B,GAAAsB,IAAL,UAAwBT,GACxB,MAAMU,EAAW,CAAC3hE,EAAGL,IAAM,CACzB,MAAMutC,EAAQm0B,EAAMrhE,CAAC,EAAI,IACnBmtC,EAAMo0B,EAAMvhE,CAAC,EAAI,IACjB4hB,EAAM,IAAI,MAAMjiB,EAAI,CAAC,EAC3B,QAASC,EAAI,EAAGA,GAAKD,EAAGC,IACtBgiB,EAAIhiB,CAAC,EAAIstC,EAAQttC,EAAID,GAAKwtC,EAAMD,GAElC,OAAOtrB,EAAI,KAAK,GAAG,CACrB,EACA,OAAA0gB,EAAA,KAAK89B,GAAAe,IAAL,UAA+BQ,EAAS,EAAG,CAAC,EAAGA,EAAS,EAAG,CAAC,EAAGA,EAAS,EAAG,CAAC,EAAGV,GAC/EvkC,EAAK,IAAM4F,EAAA,KAAK89B,GAAAY,IAAL,UAAgB78C,GACpBuY,EAAK,GACd,CACA,sBAAsBijC,EAASC,EAAS,CACtC,OAAO,KAAK,sBAAsB,YAAaD,EAASC,EAAS,gBAAiB,WAAW,CAC/F,CACA,oBAAqB,CACnB,OAAO,KAAK,sBAAsB,oBAAqB,QAAS,QAAS,gBAAiB,WAAW,CACvG,CACA,qBAAqB/pB,EAAa,KAAM,CACtC,MAAMorB,EAASprB,EAAa,KAAK,sBAAsBA,EAAW,WAAYA,EAAW,UAAU,EAAI,KAAK,mBAAkB,EAC9H,OAAIorB,IAAW,QAAU,CAACjiC,GAAY,SAAS,UACtC,KAEF,CACL,kBAAmBiiC,EACnB,mBAAoB,aAC1B,CACE,CACA,eAAe5mB,EAAK,CAClB,IAAIp8C,EAAQyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAItmB,CAAG,EAC/B,GAAIp8C,EACF,OAAOA,EAET,KAAM,CAAC2jE,CAAM,EAAIt/B,EAAA,KAAK89B,GAAAW,IAAL,UAAmB,CAAC1mB,CAAG,GAClCh5B,EAAM,SAASugD,CAAM,GAE3B,GADA3jE,EAAQyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,CAAG,EACvBpjB,EACF,OAAAyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAItmB,EAAKp8C,CAAK,EACnBA,EAET,MAAMkmB,EAAK,KAAKukB,EAAA,KAAK83B,GAAM,cAAc9uB,GAAA,KAAKD,IAAL,GAAU,GAC7Cn0C,EAAMglC,EAAA,KAAK89B,GAAAY,IAAL,UAAgB78C,GAC5BukB,EAAA,KAAK03B,GAAAO,IAAO,IAAItmB,EAAK/8C,CAAG,EACxBorC,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,EAAK/jB,CAAG,EACxB,MAAM2jE,EAAS3+B,EAAA,KAAK89B,GAAAc,IAAL,UAAmB/8C,GAClC,OAAAme,EAAA,KAAK89B,GAAAyB,IAAL,UAAoCD,EAAQX,GACrC3jE,CACT,CACA,oBAAoB+8C,EAAK,CACvB,IAAIp8C,EAAQyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAItmB,GAAO,YAAY,EAC/C,GAAIp8C,EACF,OAAOA,EAET,IAAI2jE,EAAQvgD,EAQZ,GAPIg5B,GACF,CAACunB,CAAM,EAAIt/B,EAAA,KAAK89B,GAAAW,IAAL,UAAmB,CAAC1mB,CAAG,GAClCh5B,EAAM,cAAcugD,CAAM,IAE1BvgD,EAAM,aAERpjB,EAAQyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,CAAG,EACvBpjB,EACF,OAAAyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAItmB,EAAKp8C,CAAK,EACnBA,EAET,MAAMkmB,EAAK,KAAKukB,EAAA,KAAK83B,GAAM,mBAAmB9uB,GAAA,KAAKD,IAAL,GAAU,GAClDn0C,EAAMglC,EAAA,KAAK89B,GAAAY,IAAL,UAAgB78C,GAC5BukB,EAAA,KAAK03B,GAAAO,IAAO,IAAItmB,EAAK/8C,CAAG,EACxBorC,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,EAAK/jB,CAAG,EACxB,MAAM2jE,EAAS3+B,EAAA,KAAK89B,GAAAc,IAAL,UAAmB/8C,GAClC,OAAAme,EAAA,KAAK89B,GAAA0B,IAAL,UAA8Bb,GAC1B5mB,GACF/X,EAAA,KAAK89B,GAAAyB,IAAL,UAAoCD,EAAQX,GAEvC3jE,CACT,CACA,kBAAkBuiE,EAAQ,EAAG,CAC3B,MAAMkC,EAAQlC,EAAQ,EAAI,KAAK,IAAI,EAAIA,EAAO,GAAG,EAAI,IAC/Cx+C,EAAM,YAAY0gD,CAAK,GACvB9jE,EAAQyqC,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,CAAG,EACjC,GAAIpjB,EACF,OAAOA,EAET,MAAMkmB,EAAK,KAAKukB,EAAA,KAAK83B,GAAM,oBAAoB9uB,GAAA,KAAKD,IAAL,GAAU,GACnDn0C,EAAMglC,EAAA,KAAK89B,GAAAY,IAAL,UAAgB78C,GAC5BukB,EAAA,KAAK03B,GAAAO,IAAO,IAAIt/C,EAAK/jB,CAAG,EACxB,MAAM2jE,EAAS3+B,EAAA,KAAK89B,GAAAc,IAAL,UAAmB/8C,GAC5B69C,EAAsBt5B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,qBAAqB,EACxF0lC,EAAO,OAAOe,CAAmB,EACjC,MAAMC,EAAUv5B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,SAAS,EAChE,OAAA0mC,EAAQ,aAAa,OAAQ,QAAQ,EACrCA,EAAQ,aAAa,QAAS,GAAGF,CAAK,EAAE,EACxCE,EAAQ,aAAa,YAAa,GAAG,EACrCD,EAAoB,OAAOC,CAAO,EAC3B3kE,CACT,CACA,sBAAsBwiE,EAAYH,EAASC,EAASG,EAAYC,EAAY,OAC1E,MAAM3+C,EAAM,GAAGs+C,CAAO,IAAIC,CAAO,IAAIG,CAAU,IAAIC,CAAU,GAC7D,IAAItjC,EAAOgM,EAAA,KAAK03B,GAAAgB,IAAU,IAAItB,CAAU,EAiBxC,IAhBIpjC,GAAA,YAAAA,EAAM,OAAQrb,IAGdqb,IACFphC,EAAAohC,EAAK,SAAL,MAAAphC,EAAa,SACbohC,EAAK,IAAMrb,EACXqb,EAAK,IAAM,OACXA,EAAK,OAAS,OAEdA,EAAO,CACL,IAAArb,EACA,IAAK,OACL,OAAQ,IAChB,EACMqnB,EAAA,KAAK03B,GAAAgB,IAAU,IAAItB,EAAYpjC,CAAI,GAEjC,CAACijC,GAAW,CAACC,GACf,OAAOljC,EAAK,IAEd,KAAM,CAAC2kC,EAAOE,CAAK,EAAI,CAAC5B,EAASC,CAAO,EAAE,IAAIt9B,EAAA,KAAK89B,GAAAkB,IAAQ,KAAK,IAAI,CAAC,EACrE,IAAIY,EAAS,KAAK,MAAM,MAASb,EAAM,CAAC,EAAI,MAASA,EAAM,CAAC,EAAI,MAASA,EAAM,CAAC,CAAC,EAC7Ec,EAAS,KAAK,MAAM,MAASZ,EAAM,CAAC,EAAI,MAASA,EAAM,CAAC,EAAI,MAASA,EAAM,CAAC,CAAC,EAC7E,CAACa,EAAUC,CAAQ,EAAI,CAACtC,EAAYC,CAAU,EAAE,IAAI19B,EAAA,KAAK89B,GAAAkC,IAAoB,KAAK,IAAI,CAAC,EACvFH,EAASD,IACX,CAACA,EAAQC,EAAQC,EAAUC,CAAQ,EAAI,CAACF,EAAQD,EAAQG,EAAUD,CAAQ,GAE5E9/B,EAAA,KAAK89B,GAAAoB,IAAL,WACA,MAAMG,EAAW,CAACY,EAAIC,EAAI7iE,IAAM,CAC9B,MAAMiiB,EAAM,IAAI,MAAM,GAAG,EACnB6gD,GAAQN,EAASD,GAAUviE,EAC3B+iE,EAAWH,EAAK,IAChBI,GAAWH,EAAKD,IAAO,IAAM5iE,GACnC,IAAIpD,EAAO,EACX,QAASqD,EAAI,EAAGA,GAAKD,EAAGC,IAAK,CAC3B,MAAMiB,EAAI,KAAK,MAAMqhE,EAAStiE,EAAI6iE,CAAI,EAChCxkE,EAAQykE,EAAW9iE,EAAI+iE,EAC7B,QAASthE,EAAI9E,EAAM8E,GAAKR,EAAGQ,IACzBugB,EAAIvgB,CAAC,EAAIpD,EAEX1B,EAAOsE,EAAI,CACb,CACA,QAASjB,EAAIrD,EAAMqD,EAAI,IAAKA,IAC1BgiB,EAAIhiB,CAAC,EAAIgiB,EAAIrlB,EAAO,CAAC,EAEvB,OAAOqlB,EAAI,KAAK,GAAG,CACrB,EACMuC,EAAK,KAAKukB,EAAA,KAAK83B,GAAM,QAAQV,CAAU,UACvCmB,EAASvkC,EAAK,OAAS4F,EAAA,KAAK89B,GAAAc,IAAL,UAAmB/8C,GAChD,OAAAme,EAAA,KAAK89B,GAAAsB,IAAL,UAAwBT,GACxB3+B,EAAA,KAAK89B,GAAAe,IAAL,UAA+BQ,EAASS,EAAS,CAAC,EAAGC,EAAS,CAAC,EAAG,CAAC,EAAGV,EAASS,EAAS,CAAC,EAAGC,EAAS,CAAC,EAAG,CAAC,EAAGV,EAASS,EAAS,CAAC,EAAGC,EAAS,CAAC,EAAG,CAAC,EAAGpB,GACpJvkC,EAAK,IAAM4F,EAAA,KAAK89B,GAAAY,IAAL,UAAgB78C,GACpBuY,EAAK,GACd,CACA,QAAQujC,EAAU,GAAO,aACnBA,KAAW3kE,EAAAotC,EAAA,KAAKg4B,MAAL,MAAAplE,EAAiB,SAGhCD,EAAAqtC,EAAA,KAAK63B,MAAL,MAAAllE,EAAa,WAAW,WAAW,SACnC2tC,EAAA,KAAKu3B,GAAS,OACdjiD,EAAAoqB,EAAA,KAAK43B,MAAL,MAAAhiD,EAAc,QACd0qB,EAAA,KAAKs3B,GAAU,OACf93C,EAAAkgB,EAAA,KAAKg4B,MAAL,MAAAl4C,EAAiB,QACjBwgB,EAAA,KAAK03B,GAAa,MAClB13B,EAAA,KAAKyI,GAAM,GACb,CA4DF,CA/WE4uB,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAjvB,GAAA,YAPF2uB,GAAA,YAgBMO,GAAM,UAAG,CACX,OAAOj4B,EAAA,KAAK43B,KAALt3B,EAAA,KAAKs3B,GAAY,IAAI,IAC9B,EACIc,GAAS,UAAG,CACd,OAAO14B,EAAA,KAAKg4B,KAAL13B,EAAA,KAAK03B,GAAe,IAAI,IACjC,EACIkC,GAAK,UAAG,CACV,GAAI,CAACl6B,EAAA,KAAK63B,IAAQ,CAChB,MAAMj2B,EAAM5B,EAAA,KAAK+3B,IAAU,cAAc,KAAK,EACxC,CACJ,MAAA71B,CACR,EAAUN,EACJM,EAAM,YAAc,aACpBA,EAAM,WAAa,SACnBA,EAAM,QAAU,SAChBA,EAAM,MAAQA,EAAM,OAAS,EAC7BA,EAAM,SAAW,WACjBA,EAAM,IAAMA,EAAM,KAAO,EACzBA,EAAM,OAAS,GACf,MAAMpX,EAAMkV,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,KAAK,EACxD/H,EAAI,aAAa,QAAS,CAAC,EAC3BA,EAAI,aAAa,SAAU,CAAC,EAC5BwV,EAAA,KAAKu3B,GAAS73B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,MAAM,GAC3D+O,EAAI,OAAO9W,CAAG,EACdA,EAAI,OAAOkV,EAAA,KAAK63B,GAAM,EACtB73B,EAAA,KAAK+3B,IAAU,KAAK,OAAOn2B,CAAG,CAChC,CACA,OAAO5B,EAAA,KAAK63B,GACd,EACAQ,GAAa,SAACrB,EAAM,CAClB,GAAIA,EAAK,SAAW,EAAG,CACrB,MAAMmD,EAAOnD,EAAK,CAAC,EACb3hE,EAAS,IAAI,MAAM,GAAG,EAC5B,QAAS6B,EAAI,EAAGA,EAAI,IAAKA,IACvB7B,EAAO6B,CAAC,EAAIijE,EAAKjjE,CAAC,EAAI,IAExB,MAAM6hE,EAAQ1jE,EAAO,KAAK,GAAG,EAC7B,MAAO,CAAC0jE,EAAOA,EAAOA,CAAK,CAC7B,CACA,KAAM,CAACoB,EAAMC,EAAMC,CAAI,EAAIrD,EACrBsD,EAAU,IAAI,MAAM,GAAG,EACvBC,EAAU,IAAI,MAAM,GAAG,EACvBC,EAAU,IAAI,MAAM,GAAG,EAC7B,QAAStjE,EAAI,EAAGA,EAAI,IAAKA,IACvBojE,EAAQpjE,CAAC,EAAIijE,EAAKjjE,CAAC,EAAI,IACvBqjE,EAAQrjE,CAAC,EAAIkjE,EAAKljE,CAAC,EAAI,IACvBsjE,EAAQtjE,CAAC,EAAImjE,EAAKnjE,CAAC,EAAI,IAEzB,MAAO,CAACojE,EAAQ,KAAK,GAAG,EAAGC,EAAQ,KAAK,GAAG,EAAGC,EAAQ,KAAK,GAAG,CAAC,CACjE,EACAlC,GAAU,SAAC78C,EAAI,CACb,GAAIukB,EAAA,KAAK23B,MAAa,OAAW,CAC/Br3B,EAAA,KAAKq3B,GAAW,IAChB,MAAM/iE,EAAMorC,EAAA,KAAK+3B,IAAU,IACvBnjE,IAAQorC,EAAA,KAAK+3B,IAAU,UACrB94B,GAAarqC,CAAG,EAClBs/B,GAAK,yDAAyD,EAE9DoM,EAAA,KAAKq3B,GAAWhjC,GAAc//B,EAAK,EAAE,GAG3C,CACA,MAAO,OAAOorC,EAAA,KAAK23B,GAAQ,IAAIl8C,CAAE,GACnC,EAsOA29C,GAAwB,SAACb,EAAQ,CAC/B,MAAMkC,EAAgBz6B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,eAAe,EAC5E4nC,EAAc,aAAa,OAAQ,QAAQ,EAC3CA,EAAc,aAAa,SAAU,iDAAiD,EACtFlC,EAAO,OAAOkC,CAAa,CAC7B,EACAzB,GAAkB,SAACT,EAAQ,CACzB,MAAMkC,EAAgBz6B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,eAAe,EAC5E4nC,EAAc,aAAa,OAAQ,QAAQ,EAC3CA,EAAc,aAAa,SAAU,sFAAsF,EAC3HlC,EAAO,OAAOkC,CAAa,CAC7B,EACAjC,GAAa,SAAC/8C,EAAI,CAChB,MAAM88C,EAASv4B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,QAAQ,EAC9D,OAAA0lC,EAAO,aAAa,8BAA+B,MAAM,EACzDA,EAAO,aAAa,KAAM98C,CAAE,EAC5BukB,EAAA,KAAK03B,GAAAwC,IAAM,OAAO3B,CAAM,EACjBA,CACT,EACAmC,GAAa,SAACpB,EAAqBqB,EAAM5B,EAAO,CAC9C,MAAM6B,EAAS56B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ8nC,CAAI,EAC1DC,EAAO,aAAa,OAAQ,UAAU,EACtCA,EAAO,aAAa,cAAe7B,CAAK,EACxCO,EAAoB,OAAOsB,CAAM,CACnC,EACAnC,GAAyB,SAACoC,EAAQC,EAAQC,EAAQxC,EAAQ,CACxD,MAAMe,EAAsBt5B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,qBAAqB,EACxF0lC,EAAO,OAAOe,CAAmB,EACjC1/B,EAAA,KAAK89B,GAAAgD,IAAL,UAAmBpB,EAAqB,UAAWuB,GACnDjhC,EAAA,KAAK89B,GAAAgD,IAAL,UAAmBpB,EAAqB,UAAWwB,GACnDlhC,EAAA,KAAK89B,GAAAgD,IAAL,UAAmBpB,EAAqB,UAAWyB,EACrD,EACA5B,GAA8B,SAAC6B,EAAQzC,EAAQ,CAC7C,MAAMe,EAAsBt5B,EAAA,KAAK+3B,IAAU,gBAAgBllC,GAAQ,qBAAqB,EACxF0lC,EAAO,OAAOe,CAAmB,EACjC1/B,EAAA,KAAK89B,GAAAgD,IAAL,UAAmBpB,EAAqB,UAAW0B,EACrD,EACApC,GAAO,SAAC33B,EAAO,CACb,OAAAjB,EAAA,KAAK03B,GAAAwC,IAAM,MAAM,MAAQ,aACzBl6B,EAAA,KAAK03B,GAAAwC,IAAM,MAAM,gBAAkBj5B,EAC5BE,GAAO,iBAAiBnB,EAAA,KAAK03B,GAAAwC,GAAK,EAAE,iBAAiB,kBAAkB,CAAC,CACjF,EACAe,GAAQ,SAACh6B,EAAO,CACd,OAAAjB,EAAA,KAAK03B,GAAAwC,IAAM,MAAM,MAAQ,aACzBl6B,EAAA,KAAK03B,GAAAwC,IAAM,MAAM,gBAAkBj5B,EAC5BD,GAAQ,iBAAiBhB,EAAA,KAAK03B,GAAAwC,GAAK,EAAE,iBAAiB,kBAAkB,CAAC,CAClF,EACApB,GAAe,UAAG,CAChB94B,EAAA,KAAK03B,GAAAwC,IAAM,MAAM,MAAQ,GACzBl6B,EAAA,KAAK03B,GAAAwC,IAAM,MAAM,gBAAkB,EACrC,EACAN,GAAmB,SAAC34B,EAAO,CACzB,KAAM,CAACjuC,EAAG6E,EAAGE,EAAGo/D,CAAK,EAAIv9B,EAAA,KAAK89B,GAAAuD,IAAL,UAAch6B,GACvC,GAAIk2B,IAAU,EACZ,MAAO,CAACnkE,EAAG6E,EAAGE,CAAC,EAEjB,KAAM,CAACmjE,EAASC,EAASC,CAAO,EAAIxhC,EAAA,KAAK89B,GAAAkB,IAAL,UAAa,UACjD,MAAO,CAACyC,GAAMroE,EAAGkoE,EAAS/D,CAAK,EAAGkE,GAAMxjE,EAAGsjE,EAAShE,CAAK,EAAGkE,GAAMtjE,EAAGqjE,EAASjE,CAAK,CAAC,CACtF,EAEF,SAASkE,GAAMxB,EAAIC,EAAI3C,EAAO,CAC5B,OAAO,KAAK,MAAMA,EAAQ0C,GAAM,EAAI1C,GAAS2C,CAAE,CACjD,CAOIrnC,IACFyB,GAAK,wDAAwD,EAE/D,eAAeonC,GAAqB1mE,EAAK,CAEvC,MAAMgB,EAAO,MADF,QAAQ,iBAAiB,aAAa,EAC3B,SAAShB,CAAG,EAClC,OAAO,IAAI,WAAWgB,CAAI,CAC5B,CACA,MAAM2lE,WAA0BxE,EAAkB,CAAA,CAClD,MAAMyE,WAA0B9E,EAAkB,CAChD,cAAcl6B,EAAOC,EAAQ,CAG3B,OAFgB,QAAQ,iBAAiB,QAAQ,EAAE,gPAA6B,EACzD,iBAAiB,EAC1B,aAAaD,EAAOC,CAAM,CAC1C,CACF,CACA,MAAMg/B,WAA8BrF,EAAsB,CACxD,MAAM,OAAOxhE,EAAKs+D,EAAM,CACtB,OAAOoI,GAAqB1mE,CAAG,CACjC,CACF,CAeA,SAAS8mE,GAA2B,CAClC,IAAAx3C,EACA,OAAAy3C,EAAS,EACT,KAAA/gC,EACA,MAAA4B,EACA,OAAAC,EACA,cAAAm/B,EAAgB,WAChB,cAAAC,EAAgB,EAClB,EAAG,CACD,MAAMC,EAAQxlC,GAAY,eAAiB,WAAa,IAClD,CAACylC,EAAaC,CAAU,EAAIH,EAAgB,CAACD,EAAeE,CAAK,EAAI,CAACA,EAAOF,CAAa,EAC1FK,EAAgBz/B,GAAS,EACzB0/B,EAAiB1/B,EAAQ,EACzB2/B,EAAUJ,EAAcC,EACxBI,EAAYl4C,EAAI,OACtB0W,EAAO,IAAI,YAAYA,EAAK,MAAM,EAClC,IAAIyhC,EAAU,EACd,QAASnlE,EAAI,EAAGA,EAAIulC,EAAQ,EAAEvlC,EAAG,CAC/B,UAAWskC,EAAMmgC,EAASM,EAAeN,EAASngC,EAAK,EAAEmgC,EAAQU,GAAW,EAAG,CAC7E,MAAMC,EAAOp4C,EAAIy3C,CAAM,EACvB/gC,EAAKyhC,CAAO,EAAIN,EAAc,EAAEO,GAAQ,EAAI,GAAKH,EACjDvhC,EAAKyhC,EAAU,CAAC,EAAIN,EAAc,EAAEO,GAAQ,EAAI,GAAKH,EACrDvhC,EAAKyhC,EAAU,CAAC,EAAIN,EAAc,EAAEO,GAAQ,EAAI,GAAKH,EACrDvhC,EAAKyhC,EAAU,CAAC,EAAIN,EAAc,EAAEO,GAAQ,EAAI,GAAKH,EACrDvhC,EAAKyhC,EAAU,CAAC,EAAIN,EAAc,EAAEO,GAAQ,EAAI,GAAKH,EACrDvhC,EAAKyhC,EAAU,CAAC,EAAIN,EAAc,EAAEO,GAAQ,EAAI,GAAKH,EACrDvhC,EAAKyhC,EAAU,CAAC,EAAIN,EAAc,EAAEO,GAAQ,EAAI,GAAKH,EACrDvhC,EAAKyhC,EAAU,CAAC,EAAIN,EAAc,EAAEO,EAAO,GAAKH,CAClD,CACA,GAAID,IAAmB,EACrB,SAEF,MAAMI,EAAOX,EAASS,EAAYl4C,EAAIy3C,GAAQ,EAAI,IAClD,QAAShjE,EAAI,EAAGA,EAAIujE,EAAgB,EAAEvjE,EAAG,EAAE0jE,EACzCzhC,EAAKyhC,CAAO,EAAIN,EAAc,EAAEO,GAAQ,EAAI3jE,EAAI,GAAKwjE,CAEzD,CACA,MAAO,CACL,OAAAR,EACA,QAAAU,CACJ,CACA,CACA,SAASE,GAAiB,CACxB,IAAAr4C,EACA,OAAAy3C,EAAS,EACT,KAAA/gC,EACA,QAAAyhC,EAAU,EACV,MAAA7/B,EACA,OAAAC,CACF,EAAG,CACD,IAAIvlC,EAAI,EACR,MAAM0gB,EAAM4kB,EAAQC,EAAS,EACvB+/B,EAAQ5kD,GAAO,EACf6kD,EAAQ,IAAI,YAAYv4C,EAAI,OAAQy3C,EAAQa,CAAK,EACjDE,EAAYpmC,GAAY,eAAiB,WAAa,IAC5D,GAAIA,GAAY,eAAgB,CAC9B,KAAOp/B,EAAIslE,EAAQ,EAAGtlE,GAAK,EAAGmlE,GAAW,EAAG,CAC1C,MAAMM,EAAKF,EAAMvlE,CAAC,EAChB0lE,EAAKH,EAAMvlE,EAAI,CAAC,EAChB2lE,EAAKJ,EAAMvlE,EAAI,CAAC,EAClB0jC,EAAKyhC,CAAO,EAAIM,EAAKD,EACrB9hC,EAAKyhC,EAAU,CAAC,EAAIM,IAAO,GAAKC,GAAM,EAAIF,EAC1C9hC,EAAKyhC,EAAU,CAAC,EAAIO,IAAO,GAAKC,GAAM,GAAKH,EAC3C9hC,EAAKyhC,EAAU,CAAC,EAAIQ,IAAO,EAAIH,CACjC,CACA,QAAS/jE,EAAIzB,EAAI,EAAG4lE,EAAKnB,EAAS/jD,EAAKjf,EAAImkE,EAAInkE,GAAK,EAClDiiC,EAAKyhC,GAAS,EAAIn4C,EAAIvrB,CAAC,EAAIurB,EAAIvrB,EAAI,CAAC,GAAK,EAAIurB,EAAIvrB,EAAI,CAAC,GAAK,GAAK+jE,CAEpE,KAAO,CACL,KAAOxlE,EAAIslE,EAAQ,EAAGtlE,GAAK,EAAGmlE,GAAW,EAAG,CAC1C,MAAMM,EAAKF,EAAMvlE,CAAC,EAChB0lE,EAAKH,EAAMvlE,EAAI,CAAC,EAChB2lE,EAAKJ,EAAMvlE,EAAI,CAAC,EAClB0jC,EAAKyhC,CAAO,EAAIM,EAAKD,EACrB9hC,EAAKyhC,EAAU,CAAC,EAAIM,GAAM,GAAKC,IAAO,EAAIF,EAC1C9hC,EAAKyhC,EAAU,CAAC,EAAIO,GAAM,GAAKC,IAAO,GAAKH,EAC3C9hC,EAAKyhC,EAAU,CAAC,EAAIQ,GAAM,EAAIH,CAChC,CACA,QAAS/jE,EAAIzB,EAAI,EAAG4lE,EAAKnB,EAAS/jD,EAAKjf,EAAImkE,EAAInkE,GAAK,EAClDiiC,EAAKyhC,GAAS,EAAIn4C,EAAIvrB,CAAC,GAAK,GAAKurB,EAAIvrB,EAAI,CAAC,GAAK,GAAKurB,EAAIvrB,EAAI,CAAC,GAAK,EAAI+jE,CAE1E,CACA,MAAO,CACL,OAAQf,EAAS/jD,EACjB,QAAAykD,CACJ,CACA,CAcA,MAAMU,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4ClB,MAAMC,EAAO,CAAb,cAAA7iC,EAAA,KAAA8iC,IACE9iC,EAAA,KAAA+iC,GAAe,MACf/iC,EAAA,KAAAgjC,GAAU,MACVhjC,EAAA,KAAAijC,GAAgB,MAChBjjC,EAAA,KAAAkjC,GAAmB,MAiBnB,MAAO,CACL,OAAOr9B,EAAA,KAAKk9B,KAAL58B,EAAA,KAAK48B,GAAiBtjC,EAAA,KAAKqjC,GAAAK,IAAL,WAC/B,CACA,IAAI,SAAU,CACZ,OAAOt9B,EAAA,KAAKm9B,MAAY,IAC1B,CACA,gBAAiB,CACf,GAAI,CAACn9B,EAAA,KAAKm9B,KAAWn9B,EAAA,KAAKo9B,IACxB,OAEF,MAAMG,EAAev9B,EAAA,KAAKm9B,IAAQ,mBAAmB,CACnD,KAAMJ,EACZ,CAAK,EACDz8B,EAAA,KAAK88B,GAAgBp9B,EAAA,KAAKm9B,IAAQ,qBAAqB,CACrD,OAAQ,OACR,OAAQ,CACN,OAAQI,EACR,WAAY,UACZ,QAAS,CAAC,CACR,YAAa,EACb,WAAY,CAAC,CACX,eAAgB,EAChB,OAAQ,EACR,OAAQ,WACpB,CAAW,CACX,EAAW,CACD,YAAa,EACb,WAAY,CAAC,CACX,eAAgB,EAChB,OAAQ,EACR,OAAQ,UACpB,CAAW,CACX,CAAS,CACT,EACM,SAAU,CACR,OAAQA,EACR,WAAY,UACZ,QAAS,CAAC,CACR,OAAQv9B,EAAA,KAAKq9B,GACvB,CAAS,CACT,EACM,UAAW,CACT,SAAU,eAClB,CACA,CAAK,EACH,CACA,KAAKG,EAASC,EAASC,EAAa7b,EAAS8b,EAAiBC,EAAaC,EAAcC,EAAY,CACnG,KAAK,eAAc,EACnB,MAAMC,EAAS/9B,EAAA,KAAKm9B,IACd,CACJ,QAAAthC,EACA,QAAAC,EACA,OAAA+sB,EACA,OAAAC,CACN,EAAQjH,EACEmc,EAAYD,EAAO,aAAa,CACpC,KAAM,KAAK,IAAIP,EAAQ,WAAY,CAAC,EACpC,MAAO,eAAe,OAAS,eAAe,QACpD,CAAK,EACGA,EAAQ,WAAa,GACvBO,EAAO,MAAM,YAAYC,EAAW,EAAGR,CAAO,EAEhD,MAAMS,EAAYF,EAAO,aAAa,CACpC,KAAM,KAAK,IAAIN,EAAQ,WAAY,CAAC,EACpC,MAAO,eAAe,OAAS,eAAe,QACpD,CAAK,EACGA,EAAQ,WAAa,GACvBM,EAAO,MAAM,YAAYE,EAAW,EAAGR,CAAO,EAEhD,MAAMS,EAAgBH,EAAO,aAAa,CACxC,KAAM,GACN,MAAO,eAAe,QAAU,eAAe,QACrD,CAAK,EACDA,EAAO,MAAM,YAAYG,EAAe,EAAG,IAAI,aAAa,CAACriC,EAASC,EAAS+sB,EAAQC,EAAQ8U,EAAaC,EAAcC,EAAY,CAAC,CAAC,CAAC,EACzI,MAAMK,EAAYJ,EAAO,gBAAgB,CACvC,OAAQ/9B,EAAA,KAAKo9B,IAAc,mBAAmB,CAAC,EAC/C,QAAS,CAAC,CACR,QAAS,EACT,SAAU,CACR,OAAQc,CAClB,CACA,CAAO,CACP,CAAK,EACKr0B,EAAY,IAAI,gBAAgB+zB,EAAaC,CAAY,EACzDO,EAASv0B,EAAU,WAAW,QAAQ,EAC5Cu0B,EAAO,UAAU,CACf,OAAAL,EACA,OAAQ/9B,EAAA,KAAKq9B,IACb,UAAWM,EAAkB,SAAW,eAC9C,CAAK,EACD,MAAMU,EAAaV,EAAkB,CACnC,EAAGA,EAAgB,CAAC,EAAI,IACxB,EAAGA,EAAgB,CAAC,EAAI,IACxB,EAAGA,EAAgB,CAAC,EAAI,IACxB,EAAG,CACT,EAAQ,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,CACT,EACUW,EAAiBP,EAAO,qBAAoB,EAC5CQ,EAAaD,EAAe,gBAAgB,CAChD,iBAAkB,CAAC,CACjB,KAAMF,EAAO,kBAAiB,EAAG,WAAU,EAC3C,WAAAC,EACA,OAAQ,QACR,QAAS,OACjB,CAAO,CACP,CAAK,EACD,OAAIX,EAAc,IAChBa,EAAW,YAAYv+B,EAAA,KAAKo9B,GAAa,EACzCmB,EAAW,aAAa,EAAGJ,CAAS,EACpCI,EAAW,gBAAgB,EAAGP,CAAS,EACvCO,EAAW,gBAAgB,EAAGN,CAAS,EACvCM,EAAW,KAAKb,CAAW,GAE7Ba,EAAW,IAAG,EACdR,EAAO,MAAM,OAAO,CAACO,EAAe,OAAM,CAAE,CAAC,EAC7CN,EAAU,QAAO,EACjBC,EAAU,QAAO,EACjBC,EAAc,QAAO,EACdr0B,EAAU,sBAAqB,CACxC,CACF,CAhJEqzB,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAJFJ,GAAA,YAKQK,GAAQ,gBAAG,OACf,GAAI,GAAC1qE,EAAA,WAAW,YAAX,MAAAA,EAAsB,KACzB,MAAO,GAET,GAAI,CACF,MAAM4rE,EAAU,MAAM,UAAU,IAAI,eAAc,EAClD,OAAKA,GAGLl+B,EAAA,KAAK+8B,GAAmB,UAAU,IAAI,yBAAwB,GAC9D/8B,EAAA,KAAK68B,GAAU,MAAMqB,EAAQ,cAAa,GACnC,IAJE,EAKX,MAAQ,CACN,MAAO,EACT,CACF,EA8HF,MAAMC,GAAU,IAAIzB,GACpB,SAAS0B,IAAU,CACjB,OAAOD,GAAQ,KAAI,CACrB,CACA,SAASE,IAAa,CACpB,OAAOF,GAAQ,OACjB,CACA,SAASG,IAAiB,CACxBH,GAAQ,eAAc,CACxB,CACA,SAASI,GAAgBrB,EAASC,EAASC,EAAa7b,EAAS8b,EAAiBC,EAAaC,EAAcC,EAAY,CACvH,OAAOW,GAAQ,KAAKjB,EAASC,EAASC,EAAa7b,EAAS8b,EAAiBC,EAAaC,EAAcC,CAAU,CACpH,CAOA,MAAMgB,GAAW,CACf,KAAM,OACN,OAAQ,SACR,QAAS,SACX,EACA,SAASC,GAAiBr7C,EAAKqlC,EAAM,CACnC,GAAI,CAACA,EACH,OAEF,MAAMvsB,EAAQusB,EAAK,CAAC,EAAIA,EAAK,CAAC,EACxBtsB,EAASssB,EAAK,CAAC,EAAIA,EAAK,CAAC,EACzBiW,EAAS,IAAI,OACnBA,EAAO,KAAKjW,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGvsB,EAAOC,CAAM,EAC3C/Y,EAAI,KAAKs7C,CAAM,CACjB,CACA,MAAMC,EAAmB,CAAzB,cACE9kD,GAAA,cAAS,MACT,6BAA8B,CAC5B,MAAO,EACT,CACA,YAAa,CACXga,GAAY,sCAAsC,CACpD,CACF,CACA,MAAM+qC,WAAkCD,EAAmB,CACzD,YAAYE,EAAI,CACd,MAAK,EACL,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,YAAcA,EAAG,CAAC,EACvB,KAAK,IAAMA,EAAG,CAAC,EACf,KAAK,IAAMA,EAAG,CAAC,EACf,KAAK,IAAMA,EAAG,CAAC,EACf,KAAK,IAAMA,EAAG,CAAC,CACjB,CACA,eAAgB,CACd,OAAO,KAAK,IAAI,CAAC,IAAM,GAAK,KAAK,IAAI,CAAC,IAAM,IAAM,CAAC,KAAK,YAAc,KAAK,IAAI,CAAC,IAAM,GAAK,KAAK,IAAI,CAAC,IAAM,EAC7G,CACA,UAAW,CACT,OAAO,KAAK,QAAU,QACxB,CACA,UAAW,CACT,GAAI,CAAC,KAAK,WACR,MAAO,GAET,MAAMC,EAAO,KAAK,MAAM,KAAK,IAAI,CAAC,EAAI,KAAK,IAAI,CAAC,EAAG,KAAK,IAAI,CAAC,EAAI,KAAK,IAAI,CAAC,CAAC,EAC5E,OAAOA,EAAO,KAAK,IAAM,KAAK,KAAOA,EAAO,KAAK,IAAM,KAAK,GAC9D,CACA,gBAAgB17C,EAAKuT,EAAY,KAAM,CACrC,IAAIooC,EACAC,EAAa,KAAK,IAClBC,EAAc,KAAK,IAOvB,GANItoC,IACFqoC,EAAaA,EAAW,MAAK,EAC7BC,EAAcA,EAAY,MAAK,EAC/B7oC,GAAK,eAAe4oC,EAAYroC,CAAS,EACzCP,GAAK,eAAe6oC,EAAatoC,CAAS,GAExC,KAAK,QAAU,QACjBooC,EAAO37C,EAAI,qBAAqB47C,EAAW,CAAC,EAAGA,EAAW,CAAC,EAAGC,EAAY,CAAC,EAAGA,EAAY,CAAC,CAAC,UACnF,KAAK,QAAU,SAAU,CAClC,IAAI7nC,EAAK,KAAK,IACVC,EAAK,KAAK,IACd,GAAIV,EAAW,CACb,MAAMpK,EAAQ,IAAI,aAAa,CAAC,EAChC6J,GAAK,8BAA8BO,EAAWpK,CAAK,EACnD6K,GAAM7K,EAAM,CAAC,EACb8K,GAAM9K,EAAM,CAAC,CACf,CACAwyC,EAAO37C,EAAI,qBAAqB47C,EAAW,CAAC,EAAGA,EAAW,CAAC,EAAG5nC,EAAI6nC,EAAY,CAAC,EAAGA,EAAY,CAAC,EAAG5nC,CAAE,CACtG,CACA,UAAW6nC,KAAa,KAAK,YAC3BH,EAAK,aAAaG,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,EAE9C,OAAOH,CACT,CACA,wBAAwB37C,EAAKuT,EAAY,KAAM,CAC7C,IAAIqoC,EAAa,KAAK,IAClBC,EAAc,KAAK,IACnBtoC,IACFqoC,EAAaA,EAAW,MAAK,EAC7BC,EAAcA,EAAY,MAAK,EAC/B7oC,GAAK,eAAe4oC,EAAYroC,CAAS,EACzCP,GAAK,eAAe6oC,EAAatoC,CAAS,GAE5C,IAAIS,EAAK,KAAK,IACVC,EAAK,KAAK,IACd,GAAIV,EAAW,CACb,MAAMpK,EAAQ,IAAI,aAAa,CAAC,EAChC6J,GAAK,8BAA8BO,EAAWpK,CAAK,EACnD6K,GAAM7K,EAAM,CAAC,EACb8K,GAAM9K,EAAM,CAAC,CACf,CACA,MAAMwyC,EAAO37C,EAAI,qBAAqB47C,EAAW,CAAC,EAAGA,EAAW,CAAC,EAAG5nC,EAAI6nC,EAAY,CAAC,EAAGA,EAAY,CAAC,EAAG5nC,CAAE,EACpG8nC,EAAgB,KAAK,YAAY,IAAI,CAAC,CAACtoE,EAAGG,CAAC,IAAM,CAAC,EAAIH,EAAGG,CAAC,CAAC,EAAE,QAAO,EAC1E,SAAW,CAACH,EAAGG,CAAC,IAAKmoE,EACnBJ,EAAK,aAAaloE,EAAGG,CAAC,EAExB,OAAO+nE,CACT,CACA,WAAW37C,EAAKg8C,EAAOC,EAASC,EAAU,CACxC,IAAIz5C,EACJ,GAAIy5C,IAAad,GAAS,QAAUc,IAAad,GAAS,KAAM,CAC9D,GAAI,KAAK,gBAAiB,CACxB,IAAIhb,EAASptB,GAAK,UAAUipC,EAASD,EAAM,aAAa,EACpD,KAAK,SACP5b,EAASptB,GAAK,UAAUotB,EAAQ,KAAK,MAAM,GAE7C,MAAM+b,EAAY,KACZC,EAAK,KAAK,MAAMhc,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EACpCic,EAAK,KAAK,MAAMjc,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EACpC50C,GAAM40C,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAIA,EAAO,CAAC,IAAMgc,EAAKC,GACnE,GAAI,KAAK,IAAI7wD,CAAE,EAAI2wD,EACjB,GAAI,KAAK,YACP,GAAI,KAAK,IAAIC,EAAKC,CAAE,EAAIF,EACtB,OAAO,KAAK,gBAAgBn8C,EAAKogC,CAAM,MAGzC,QAAO,KAAK,gBAAgBpgC,EAAKogC,CAAM,CAG7C,CACA,MAAMkc,EAAYN,EAAM,QAAQ,0BAA0BE,EAAUn+B,GAAoB/d,CAAG,CAAC,GAAK,CAAC,EAAG,EAAG,EAAG,CAAC,EACtG8Y,EAAQ,KAAK,KAAKwjC,EAAU,CAAC,EAAIA,EAAU,CAAC,CAAC,GAAK,EAClDvjC,EAAS,KAAK,KAAKujC,EAAU,CAAC,EAAIA,EAAU,CAAC,CAAC,GAAK,EACnDC,EAAYP,EAAM,cAAc,OAAOljC,EAAOC,CAAM,EACpDyjC,EAASD,EAAU,QACzBC,EAAO,UAAU,EAAG,EAAGA,EAAO,OAAO,MAAOA,EAAO,OAAO,MAAM,EAChEA,EAAO,UAAS,EAChBA,EAAO,KAAK,EAAG,EAAGA,EAAO,OAAO,MAAOA,EAAO,OAAO,MAAM,EAC3DA,EAAO,UAAU,CAACF,EAAU,CAAC,EAAG,CAACA,EAAU,CAAC,CAAC,EAC7CL,EAAUjpC,GAAK,UAAUipC,EAAS,CAAC,EAAG,EAAG,EAAG,EAAGK,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,CAAC,EAC1EE,EAAO,UAAU,GAAGR,EAAM,aAAa,EACnC,KAAK,QACPQ,EAAO,UAAU,GAAG,KAAK,MAAM,EAEjCnB,GAAiBmB,EAAQ,KAAK,KAAK,EAC/B,KAAK,aACPA,EAAO,UAAY,KAAK,wBAAwBA,CAAM,EACtDA,EAAO,KAAI,GAEbA,EAAO,UAAY,KAAK,gBAAgBA,CAAM,EAC9CA,EAAO,KAAI,EACX/5C,EAAUzC,EAAI,cAAcu8C,EAAU,OAAQ,WAAW,EACzDP,EAAM,cAAc,QAAQO,CAAS,EACrC,MAAME,EAAY,IAAI,UAAUR,CAAO,EACvCx5C,EAAQ,aAAag6C,CAAS,CAChC,MACM,KAAK,aACPz8C,EAAI,KAAI,EACRq7C,GAAiBr7C,EAAK,KAAK,KAAK,EAChCA,EAAI,UAAY,KAAK,wBAAwBA,CAAG,EAChDA,EAAI,SAAS,MAAO,MAAO,KAAM,IAAI,EACrCA,EAAI,QAAO,GAEbq7C,GAAiBr7C,EAAK,KAAK,KAAK,EAChCyC,EAAU,KAAK,gBAAgBzC,CAAG,EAEpC,OAAOyC,CACT,CACF,CACA,SAASi6C,GAAaxqE,EAAMisD,EAAS7qB,EAAIuD,EAAI8lC,EAAIC,EAAIC,EAAIC,EAAI,CAC3D,MAAMpX,EAASvH,EAAQ,OACrBvgB,EAASugB,EAAQ,OACb7rB,EAAQpgC,EAAK,KACjB6qE,EAAU7qE,EAAK,MAAQ,EACzB,IAAI8qE,EACAtX,EAAOpyB,EAAK,EAAI,CAAC,EAAIoyB,EAAO7uB,EAAK,EAAI,CAAC,IACxCmmC,EAAM1pC,EACNA,EAAKuD,EACLA,EAAKmmC,EACLA,EAAMJ,EACNA,EAAKC,EACLA,EAAKG,GAEHtX,EAAO7uB,EAAK,EAAI,CAAC,EAAI6uB,EAAOiX,EAAK,EAAI,CAAC,IACxCK,EAAMnmC,EACNA,EAAK8lC,EACLA,EAAKK,EACLA,EAAMH,EACNA,EAAKC,EACLA,EAAKE,GAEHtX,EAAOpyB,EAAK,EAAI,CAAC,EAAIoyB,EAAO7uB,EAAK,EAAI,CAAC,IACxCmmC,EAAM1pC,EACNA,EAAKuD,EACLA,EAAKmmC,EACLA,EAAMJ,EACNA,EAAKC,EACLA,EAAKG,GAEP,MAAMpnC,GAAM8vB,EAAOpyB,EAAK,CAAC,EAAI6qB,EAAQ,SAAWA,EAAQ,OAClDtoB,GAAM6vB,EAAOpyB,EAAK,EAAI,CAAC,EAAI6qB,EAAQ,SAAWA,EAAQ,OACtDroB,GAAM4vB,EAAO7uB,EAAK,CAAC,EAAIsnB,EAAQ,SAAWA,EAAQ,OAClDpoB,GAAM2vB,EAAO7uB,EAAK,EAAI,CAAC,EAAIsnB,EAAQ,SAAWA,EAAQ,OACtDnoB,GAAM0vB,EAAOiX,EAAK,CAAC,EAAIxe,EAAQ,SAAWA,EAAQ,OAClDloB,GAAMyvB,EAAOiX,EAAK,EAAI,CAAC,EAAIxe,EAAQ,SAAWA,EAAQ,OAC5D,GAAItoB,GAAMI,EACR,OAEF,MAAMgnC,EAAMr/B,EAAOg/B,EAAK,CAAC,EACvBM,EAAMt/B,EAAOg/B,EAAK,EAAI,CAAC,EACvBO,EAAMv/B,EAAOg/B,EAAK,EAAI,CAAC,EACnBQ,EAAMx/B,EAAOi/B,EAAK,CAAC,EACvBQ,EAAMz/B,EAAOi/B,EAAK,EAAI,CAAC,EACvBS,EAAM1/B,EAAOi/B,EAAK,EAAI,CAAC,EACnBU,EAAM3/B,EAAOk/B,EAAK,CAAC,EACvBU,EAAM5/B,EAAOk/B,EAAK,EAAI,CAAC,EACvBW,EAAM7/B,EAAOk/B,EAAK,EAAI,CAAC,EACnB/X,EAAO,KAAK,MAAMlvB,CAAE,EACxBovB,EAAO,KAAK,MAAMhvB,CAAE,EACtB,IAAIjmB,EAAI0tD,EAAKC,EAAKC,EACdC,GAAIC,EAAKC,GAAKC,EAClB,QAAS5pE,EAAI2wD,EAAM3wD,GAAK6wD,EAAM7wD,IAAK,CACjC,GAAIA,EAAI2hC,EAAI,CACV,MAAMthC,EAAIL,EAAIyhC,EAAK,GAAKA,EAAKzhC,IAAMyhC,EAAKE,GACxC/lB,EAAK4lB,GAAMA,EAAKE,GAAMrhC,EACtBipE,EAAMT,GAAOA,EAAMG,GAAO3oE,EAC1BkpE,EAAMT,GAAOA,EAAMG,GAAO5oE,EAC1BmpE,EAAMT,GAAOA,EAAMG,GAAO7oE,CAC5B,KAAO,CACL,IAAIA,EACAL,EAAI6hC,EACNxhC,EAAI,EACKshC,IAAOE,EAChBxhC,EAAI,EAEJA,GAAKshC,EAAK3hC,IAAM2hC,EAAKE,GAEvBjmB,EAAK8lB,GAAMA,EAAKE,GAAMvhC,EACtBipE,EAAMN,GAAOA,EAAMG,GAAO9oE,EAC1BkpE,EAAMN,GAAOA,EAAMG,GAAO/oE,EAC1BmpE,EAAMN,GAAOA,EAAMG,GAAOhpE,CAC5B,CACA,IAAIA,EACAL,EAAIyhC,EACNphC,EAAI,EACKL,EAAI6hC,EACbxhC,EAAI,EAEJA,GAAKohC,EAAKzhC,IAAMyhC,EAAKI,GAEvB4nC,GAAKjoC,GAAMA,EAAKI,GAAMvhC,EACtBqpE,EAAMb,GAAOA,EAAMM,GAAO9oE,EAC1BspE,GAAMb,GAAOA,EAAMM,GAAO/oE,EAC1BupE,EAAMb,GAAOA,EAAMM,GAAOhpE,EAC1B,MAAMwpE,EAAM,KAAK,MAAM,KAAK,IAAIjuD,EAAI6tD,EAAE,CAAC,EACjCK,EAAM,KAAK,MAAM,KAAK,IAAIluD,EAAI6tD,EAAE,CAAC,EACvC,IAAI5oE,EAAI8nE,EAAU3oE,EAAI6pE,EAAM,EAC5B,QAAS9oE,EAAI8oE,EAAK9oE,GAAK+oE,EAAK/oE,IAC1BV,GAAKub,EAAK7a,IAAM6a,EAAK6tD,IACjBppE,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAEN69B,EAAMr9B,GAAG,EAAIyoE,GAAOA,EAAMI,GAAOrpE,EAAI,EACrC69B,EAAMr9B,GAAG,EAAI0oE,GAAOA,EAAMI,IAAOtpE,EAAI,EACrC69B,EAAMr9B,GAAG,EAAI2oE,GAAOA,EAAMI,GAAOvpE,EAAI,EACrC69B,EAAMr9B,GAAG,EAAI,GAEjB,CACF,CACA,MAAMkpE,WAA2B5C,EAAmB,CAClD,YAAYE,EAAI,CACd,MAAK,EACL,KAAK,SAAWA,EAAG,CAAC,EACpB,KAAK,SAAWA,EAAG,CAAC,EACpB,KAAK,aAAeA,EAAG,CAAC,EACxB,KAAK,QAAUA,EAAG,CAAC,EACnB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,YAAcA,EAAG,CAAC,EACvBP,GAAc,CAChB,CACA,kBAAkBkD,EAAenE,EAAiBoE,EAAe,CAI/D,MAAMlmC,EAAU,KAAK,MAAM,KAAK,QAAQ,CAAC,CAAC,EACpCC,EAAU,KAAK,MAAM,KAAK,QAAQ,CAAC,CAAC,EACpCkmC,EAAc,KAAK,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAInmC,EAC3ComC,EAAe,KAAK,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAInmC,EAC5CU,EAAQ,KAAK,IAAI,KAAK,KAAK,KAAK,IAAIwlC,EAAcF,EAAc,CAAC,EAAI,GAAc,CAAC,EAAG,GAAgB,GAAK,EAC5GrlC,EAAS,KAAK,IAAI,KAAK,KAAK,KAAK,IAAIwlC,EAAeH,EAAc,CAAC,EAAI,GAAc,CAAC,EAAG,GAAgB,GAAK,EAC9GjZ,EAASmZ,EAAcA,EAAcxlC,EAAQ,EAC7CssB,EAASmZ,EAAeA,EAAexlC,EAAS,EAChDolB,EAAU,CACd,OAAQ,KAAK,SACb,OAAQ,KAAK,SACb,QAAS,CAAChmB,EACV,QAAS,CAACC,EACV,OAAQ,EAAI+sB,EACZ,OAAQ,EAAIC,CAClB,EACU8U,EAAcphC,EAAQ,EACtBqhC,EAAephC,EAAS,EACxBwjC,EAAY8B,EAAc,OAAOnE,EAAaC,CAAY,EAChE,GAAIc,GAAU,GAAM,KAAK,aAAe,GACtCsB,EAAU,QAAQ,UAAUpB,GAAgB,KAAK,SAAU,KAAK,SAAU,KAAK,aAAchd,EAAS8b,EAAiBC,EAAaC,EAAc,CAAW,EAAG,EAAG,CAAC,MAC/J,CACL,MAAMjoE,EAAOqqE,EAAU,QAAQ,gBAAgBzjC,EAAOC,CAAM,EAC5D,GAAIkhC,EAAiB,CACnB,MAAM3nC,EAAQpgC,EAAK,KACnB,QAASsB,EAAI,EAAG2Q,EAAKmuB,EAAM,OAAQ9+B,EAAI2Q,EAAI3Q,GAAK,EAC9C8+B,EAAM9+B,CAAC,EAAIymE,EAAgB,CAAC,EAC5B3nC,EAAM9+B,EAAI,CAAC,EAAIymE,EAAgB,CAAC,EAChC3nC,EAAM9+B,EAAI,CAAC,EAAIymE,EAAgB,CAAC,EAChC3nC,EAAM9+B,EAAI,CAAC,EAAI,GAEnB,CACA,QAASA,EAAI,EAAG2Q,EAAK,KAAK,aAAc3Q,EAAI2Q,EAAI3Q,GAAK,EACnDkpE,GAAaxqE,EAAMisD,EAAS3qD,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAE9D+oE,EAAU,QAAQ,aAAarqE,EAAM,EAAa,CAAW,CAC/D,CACA,MAAO,CACL,OAAQqqE,EAAU,OAClB,QAASpkC,EAAU,EAAcgtB,EACjC,QAAS/sB,EAAU,EAAcgtB,EACjC,OAAAD,EACA,OAAAC,CACN,CACE,CACA,6BAA8B,CAC5B,MAAO,EACT,CACA,WAAWplC,EAAKg8C,EAAOC,EAASC,EAAU,CACxCb,GAAiBr7C,EAAK,KAAK,KAAK,EAChC,MAAMmJ,EAAQ,IAAI,aAAa,CAAC,EAChC,GAAI+yC,IAAad,GAAS,QACxBpoC,GAAK,8BAA8B+K,GAAoB/d,CAAG,EAAGmJ,CAAK,UACzD,KAAK,OAAQ,CACtB6J,GAAK,8BAA8B,KAAK,OAAQ7J,CAAK,EACrD,KAAM,CAACq1C,EAAcC,CAAY,EAAIt1C,EACrC6J,GAAK,8BAA8BgpC,EAAM,cAAe7yC,CAAK,EAC7DA,EAAM,CAAC,GAAKq1C,EACZr1C,EAAM,CAAC,GAAKs1C,CACd,MACEzrC,GAAK,8BAA8BgpC,EAAM,cAAe7yC,CAAK,EAE/D,MAAMu1C,EAAyB,KAAK,kBAAkBv1C,EAAO+yC,IAAad,GAAS,QAAU,KAAO,KAAK,YAAaY,EAAM,aAAa,EACrIE,IAAad,GAAS,UACxBp7C,EAAI,aAAa,GAAGg8C,EAAM,aAAa,EACnC,KAAK,QACPh8C,EAAI,UAAU,GAAG,KAAK,MAAM,GAGhCA,EAAI,UAAU0+C,EAAuB,QAASA,EAAuB,OAAO,EAC5E1+C,EAAI,MAAM0+C,EAAuB,OAAQA,EAAuB,MAAM,EACtE,MAAMj8C,EAAUzC,EAAI,cAAc0+C,EAAuB,OAAQ,WAAW,EAC5E,OAAA1C,EAAM,cAAc,QAAQ0C,CAAsB,EAC3Cj8C,CACT,CACF,CACA,MAAMk8C,WAA4BpD,EAAmB,CACnD,YAAa,CACX,MAAO,SACT,CACF,CACA,SAASqD,GAAkBnD,EAAI,CAC7B,OAAQA,EAAG,CAAC,EAAC,CACX,IAAK,cACH,OAAO,IAAID,GAA0BC,CAAE,EACzC,IAAK,OACH,OAAO,IAAI0C,GAAmB1C,CAAE,EAClC,IAAK,QACH,OAAO,IAAIkD,EACjB,CACE,MAAM,IAAI,MAAM,oBAAoBlD,EAAG,CAAC,CAAC,EAAE,CAC7C,CACA,MAAMoD,GAAY,CAChB,QAAS,EACT,UAAW,CACb,EACMC,GAAN,MAAMA,EAAc,CAElB,YAAYrD,EAAIz7C,EAAK++C,EAAuBC,EAAe,CACzD,KAAK,MAAQvD,EAAG,CAAC,EACjB,KAAK,aAAeA,EAAG,CAAC,EACxB,KAAK,OAASA,EAAG,CAAC,EAClB,KAAK,KAAOA,EAAG,CAAC,EAChB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,MAAQA,EAAG,CAAC,EACjB,KAAK,UAAYA,EAAG,CAAC,EACrB,KAAK,WAAaA,EAAG,CAAC,EACtB,KAAK,eAAiBA,EAAG,CAAC,GAAK,GAC/B,KAAK,IAAMz7C,EACX,KAAK,sBAAwB++C,EAC7B,KAAK,cAAgBC,EACrB,KAAK,kBAAoB,KAAK,OAAShsC,GAAK,UAAUgsC,EAAe,KAAK,MAAM,EAAIA,CACtF,CACA,qBAAqB,CAAClmC,EAAOC,EAAQZ,EAASC,CAAO,EAAG,CACtD,KAAM,CAAC1C,EAAIC,EAAIC,EAAIC,CAAE,EAAI,KAAK,KACxBopC,EAAW,KAAK,IAAI,KAAK,KAAK,EAC9BC,EAAW,KAAK,IAAI,KAAK,KAAK,EACpC,GAAIpmC,EAAQmmC,EAAW,MAAQlmC,EAASmmC,EAAW,KACjD,OAAO,KAET,MAAMC,EAAU,KAAK,OAAOhnC,EAAUvC,GAAMqpC,CAAQ,EAAI,EAClDG,EAAS,KAAK,MAAMjnC,EAAUW,EAAQpD,GAAMupC,CAAQ,EAAI,EACxDI,EAAU,KAAK,OAAOjnC,EAAUvC,GAAMqpC,CAAQ,EAAI,EAClDI,EAAS,KAAK,MAAMlnC,EAAUW,EAASpD,GAAMupC,CAAQ,EAAI,EAC/D,OAAOE,GAAUD,GAAWG,GAAUD,EAAU,CAACF,EAASE,CAAO,EAAI,IACvE,CACA,kBAAkBE,EAAavmC,EAAM,CACnC,MAAMwmC,EAAMxsC,GAAK,iBAAiB,KAAK,iBAAiB,EAClD4pC,EAAK,CAAC2C,EAAY,CAAC,EAAGA,EAAY,CAAC,CAAC,EACpC1C,EAAK,CAAC0C,EAAY,CAAC,EAAGA,EAAY,CAAC,CAAC,EAC1CvsC,GAAK,eAAe4pC,EAAI4C,CAAG,EAC3BxsC,GAAK,eAAe6pC,EAAI2C,CAAG,EAC3BxmC,EAAK,CAAC,EAAI,KAAK,IAAI6jC,EAAG,CAAC,EAAID,EAAG,CAAC,CAAC,EAChC5jC,EAAK,CAAC,EAAI,KAAK,IAAI6jC,EAAG,CAAC,EAAID,EAAG,CAAC,CAAC,EAChC5jC,EAAK,CAAC,EAAI,KAAK,IAAI4jC,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,EAC/B7jC,EAAK,CAAC,EAAI,KAAK,IAAI4jC,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,CACjC,CACA,kBAAkBb,EAAOxV,EAAOiZ,EAAMC,EAAM,SAC1C,KAAM,CAAChqC,EAAIC,EAAIC,EAAIC,CAAE,EAAI,KAAK,KACxB0mC,EAAYP,EAAM,cAAc,OAAOyD,EAAK,KAAMC,EAAK,IAAI,EAC3DlD,EAASD,EAAU,QACnBoD,EAAW,KAAK,sBAAsB,qBAAqBnD,EAAQhW,CAAK,EAC9E,OAAAmZ,EAAS,WAAa3D,EAAM,WAC5B,KAAK,+BAA+B2D,EAAU,KAAK,UAAW,KAAK,KAAK,EACxEnD,EAAO,UAAU,CAACiD,EAAK,MAAQ/pC,EAAI,CAACgqC,EAAK,MAAQ/pC,CAAE,EACnDgqC,EAAS,UAAU,EAAGF,EAAK,MAAO,EAAG,EAAGC,EAAK,MAAO,EAAG,CAAC,EACxDlD,EAAO,KAAI,GACXttE,EAAAywE,EAAS,oBAAT,MAAAzwE,EAA4B,OAC5B,KAAK,SAASywE,EAAUjqC,EAAIC,EAAIC,EAAIC,CAAE,EACtC8pC,EAAS,cAAgB5hC,GAAoB4hC,EAAS,GAAG,EACzDA,EAAS,oBAAoB,KAAK,YAAY,EAC9CA,EAAS,WAAU,GACnB1wE,EAAA0wE,EAAS,oBAAT,MAAA1wE,EAA4B,UAC5ButE,EAAO,QAAO,EACPD,CACT,CACA,oBAAqB,CACnB,MAAMpzC,EAAQ,IAAI,aAAa,CAAC,EAChC6J,GAAK,8BAA8B,KAAK,OAAQ7J,CAAK,EACrD,KAAM,CAACq1C,EAAcC,CAAY,EAAIt1C,EACrC,OAAA6J,GAAK,8BAA8B,KAAK,cAAe7J,CAAK,EACrD,CAACq1C,EAAer1C,EAAM,CAAC,EAAGs1C,EAAet1C,EAAM,CAAC,CAAC,CAC1D,CACA,YAAY6yC,EAAOhlD,EAAM4oD,EAAY,GAAO,CAAC,EAAGhvE,CAAC,EAAG41D,EAAO,CACzD,KAAM,CAAC9wB,EAAIC,EAAIC,EAAIC,CAAE,EAAI,KAAK,KACxBmzB,EAAoBgT,EAAM,kBAYhC,GAXIhT,IACFgT,EAAM,kBAAoB,IAAIzS,GAA8BP,EAAmBxC,CAAK,GAEtFwV,EAAM,KAAI,EACN4D,EACF5D,EAAM,IAAI,KAAKhlD,EAAM,SAAS,EAE9BglD,EAAM,IAAI,KAAKhlD,CAAI,EAErBglD,EAAM,IAAI,aAAa,GAAG,KAAK,iBAAiB,EAChDA,EAAM,IAAI,UAAU,EAAI,KAAK,MAAOprE,EAAI,KAAK,KAAK,EAC9C,KAAK,gBAAkBorE,EAAM,IAAI,cAAgB,GAAKA,EAAM,IAAI,2BAA6B,eAAiBA,EAAM,YAAa,CACnI,MAAM6D,EAAYjqC,EAAKF,EACjBoqC,EAAajqC,EAAKF,EAClB,CAACoqC,EAAgBC,CAAc,EAAI,KAAK,mBAAkB,EAC1DP,EAAO,KAAK,gBAAgBI,EAAW,KAAK,IAAI,OAAO,MAAOE,CAAc,EAC5EL,EAAO,KAAK,gBAAgBI,EAAY,KAAK,IAAI,OAAO,OAAQE,CAAc,EAC9EzD,EAAY,KAAK,kBAAkBP,EAAOxV,EAAOiZ,EAAMC,CAAI,EACjE1D,EAAM,IAAI,UAAUO,EAAU,OAAQ7mC,EAAIC,EAAIkqC,EAAWC,CAAU,EACnE9D,EAAM,cAAc,QAAQO,CAAS,CACvC,MACE,KAAK,+BAA+BP,EAAO,KAAK,UAAW,KAAK,KAAK,EACrE,KAAK,SAASA,EAAOtmC,EAAIC,EAAIC,EAAIC,CAAE,EACnCmmC,EAAM,mBAAmB,KAAKA,EAAM,aAAa,EACjDA,EAAM,cAAgBj+B,GAAoBi+B,EAAM,GAAG,EACnDA,EAAM,oBAAoB,KAAK,YAAY,EAC3CA,EAAM,cAAgBA,EAAM,mBAAmB,IAAG,EAEpDA,EAAM,QAAO,EACThT,IACFgT,EAAM,kBAAoBhT,EAE9B,CACA,oBAAoBgT,EAAOxV,EAAO,CAChC,KAAM,CAAC9wB,EAAIC,EAAIC,EAAIC,CAAE,EAAI,KAAK,KACxBiD,EAAQlD,EAAKF,EACbqD,EAASlD,EAAKF,EACpB,GAAI,CACF,MAAAsqC,EACA,MAAAC,CACN,EAAQ,KACJD,EAAQ,KAAK,IAAIA,CAAK,EACtBC,EAAQ,KAAK,IAAIA,CAAK,EACtB5vC,GAAK,eAAiB,KAAK,UAAU,EACrC,KAAM,CAACyvC,EAAgBC,CAAc,EAAI,KAAK,mBAAkB,EAChE,IAAIG,EAAcrnC,EAChBsnC,EAAernC,EACfsnC,EAAqB,GACrBC,EAAmB,GACjB,KAAK,KAAKL,EAAQF,CAAc,GAAK,KAAK,KAAKjnC,EAAQinC,CAAc,EACvEI,EAAcF,EAEdI,EAAqB,GAEnB,KAAK,KAAKH,EAAQF,CAAc,GAAK,KAAK,KAAKjnC,EAASinC,CAAc,EACxEI,EAAeF,EAEfI,EAAmB,GAErB,MAAMb,EAAO,KAAK,gBAAgBU,EAAa,KAAK,IAAI,OAAO,MAAOJ,CAAc,EAC9EL,EAAO,KAAK,gBAAgBU,EAAc,KAAK,IAAI,OAAO,OAAQJ,CAAc,EAChFzD,EAAY,KAAK,kBAAkBP,EAAOxV,EAAOiZ,EAAMC,CAAI,EACjE,GAAIW,GAAsBC,EAAkB,CAC1C,MAAM36B,EAAQ42B,EAAU,OACpB8D,IACFF,EAAcF,GAEZK,IACFF,EAAeF,GAEjB,MAAMK,EAAQ,KAAK,gBAAgBJ,EAAa,KAAK,IAAI,OAAO,MAAOJ,CAAc,EAC/ES,EAAQ,KAAK,gBAAgBJ,EAAc,KAAK,IAAI,OAAO,OAAQJ,CAAc,EACjFS,EAAQF,EAAM,KACdG,EAAQF,EAAM,KACdG,EAAa3E,EAAM,cAAc,OAAOyE,EAAOC,CAAK,EACpDE,EAAUD,EAAW,QACrBx8D,EAAKk8D,EAAqB,KAAK,MAAMvnC,EAAQmnC,CAAK,EAAI,EACtD7G,EAAKkH,EAAmB,KAAK,MAAMvnC,EAASmnC,CAAK,EAAI,EAC3D,QAAS1sE,EAAI,EAAGA,GAAK2Q,EAAI3Q,IACvB,QAASyB,EAAI,EAAGA,GAAKmkE,EAAInkE,IACvB2rE,EAAQ,UAAUj7B,EAAO86B,EAAQjtE,EAAGktE,EAAQzrE,EAAGwrE,EAAOC,EAAO,EAAG,EAAGD,EAAOC,CAAK,EAGnF,OAAA1E,EAAM,cAAc,QAAQO,CAAS,EAC9B,CACL,OAAQoE,EAAW,OACnB,YAAaA,EACb,OAAQJ,EAAM,MACd,OAAQC,EAAM,MACd,QAAS9qC,EACT,QAASC,CACjB,CACI,CACA,MAAO,CACL,OAAQ4mC,EAAU,OAClB,YAAaA,EACb,OAAQkD,EAAK,MACb,OAAQC,EAAK,MACb,QAAShqC,EACT,QAASC,CACf,CACE,CACA,gBAAgB0gC,EAAMwK,EAAgB13C,EAAO,CAC3C,MAAMyd,EAAU,KAAK,IAAIk4B,GAAc,iBAAkB+B,CAAc,EACvE,IAAI/6B,EAAO,KAAK,KAAKuwB,EAAOltC,CAAK,EACjC,OAAI2c,GAAQc,EACVd,EAAOc,EAEPzd,EAAQ2c,EAAOuwB,EAEV,CACL,MAAAltC,EACA,KAAA2c,CACN,CACE,CACA,SAAS65B,EAAUjqC,EAAIC,EAAIC,EAAIC,EAAI,CACjC,MAAMgqC,EAAYjqC,EAAKF,EACjBoqC,EAAajqC,EAAKF,EAClBmrC,EAAO,IAAI,OACjBA,EAAK,KAAKprC,EAAIC,EAAIkqC,EAAWC,CAAU,EACvC9sC,GAAK,wBAAwB,CAAC0C,EAAIC,EAAIC,EAAIC,CAAE,EAAGkI,GAAoB4hC,EAAS,GAAG,EAAGA,EAAS,QAAQ,MAAM,EACzGA,EAAS,IAAI,KAAKmB,CAAI,EACtBnB,EAAS,QAAQ,mBAAkB,CACrC,CACA,+BAA+BA,EAAUoB,EAAWxjC,EAAO,CACzD,MAAM4gB,EAAUwhB,EAAS,IACvBqB,EAAUrB,EAAS,QAErB,OADAqB,EAAQ,YAAcA,EAAQ,cAAgB,GACtCD,EAAS,CACf,KAAKlC,GAAU,QACb,KAAM,CACJ,UAAAoC,EACA,YAAAC,CACV,EAAY,KAAK,IACT/iB,EAAQ,UAAY6iB,EAAQ,UAAYC,EACxC9iB,EAAQ,YAAc6iB,EAAQ,YAAcE,EAC5C,MACF,KAAKrC,GAAU,UACb1gB,EAAQ,UAAYA,EAAQ,YAAc5gB,EAC1CyjC,EAAQ,UAAYA,EAAQ,YAAczjC,EAC1C,MACF,QACE,MAAM,IAAIpL,GAAY,2BAA2B4uC,CAAS,EAAE,CACpE,CACE,CACA,6BAA8B,CAC5B,MAAO,EACT,CACA,WAAW/gD,EAAKg8C,EAAOC,EAASC,EAAU1V,EAAO,CAC/C,MAAMxxB,EAASknC,IAAad,GAAS,QAAUpoC,GAAK,UAAUipC,EAAS,KAAK,iBAAiB,EAAIA,EAC3FyC,EAAyB,KAAK,oBAAoB1C,EAAOxV,CAAK,EACpE,IAAIiW,EAAY,IAAI,UAAUznC,CAAM,EACpCynC,EAAYA,EAAU,UAAUiC,EAAuB,QAASA,EAAuB,OAAO,EAC9FjC,EAAYA,EAAU,MAAM,EAAIiC,EAAuB,OAAQ,EAAIA,EAAuB,MAAM,EAChG,MAAMj8C,EAAUzC,EAAI,cAAc0+C,EAAuB,OAAQ,QAAQ,EACzE,OAAA1C,EAAM,cAAc,QAAQ0C,EAAuB,WAAW,EAC9Dj8C,EAAQ,aAAag6C,CAAS,EACvBh6C,CACT,CACF,EApOEhM,GADIqoD,GACG,mBAAmB,KAD5B,IAAMqC,GAANrC,GA8OA,MAAMsC,GAAgB,GAChBC,GAAgB,IAChBC,GAAiB,GACjBC,GAAkB,GAClBC,GAAoB,GACpBC,GAAe,IAAI,UACnBC,GAAK,IAAI,aAAa,CAAC,EAC7B,SAASC,GAAwB3hD,EAAK4hD,EAAS,CAC7C,GAAI5hD,EAAI,iBACN,MAAM,IAAI,MAAM,2CAA2C,EAE7D,MAAM6hD,EAAkB,IAAI,IAC5B,UAAWjsD,IAAQ,CAAC,OAAQ,UAAW,SAAU,QAAS,YAAa,YAAa,eAAgB,iBAAkB,OAAQ,SAAU,SAAU,gBAAiB,mBAAoB,MAAO,QAAS,UAAW,OAAQ,YAAa,YAAa,WAAW,EAAG,CAChQ,MAAMksD,EAAW9hD,EAAIpK,CAAI,EACrB,OAAOksD,GAAa,YAAc,OAAOF,EAAQhsD,CAAI,GAAM,aAG/DisD,EAAgB,IAAIjsD,EAAMksD,CAAQ,EAClC9hD,EAAIpK,CAAI,EAAI,YAAa7C,EAAM,CAC7B,OAAA6uD,EAAQhsD,CAAI,EAAE,GAAG7C,CAAI,EACd+uD,EAAS,MAAM,KAAM/uD,CAAI,CAClC,EACF,CACAiN,EAAI,iBAAmB,IAAM,CAC3B,SAAW,CAACpK,EAAMksD,CAAQ,IAAKD,EAC7B7hD,EAAIpK,CAAI,EAAIksD,EAEd,OAAO9hD,EAAI,gBACb,CACF,CACA,SAAS+hD,GAAyB/hD,EAAKgiD,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,EAAO,CACjG,KAAM,CAAC7uE,EAAGU,EAAGT,EAAGE,EAAG2/C,EAAIC,CAAE,EAAI3V,GAAoB/d,CAAG,EACpD,GAAI3rB,IAAM,GAAKT,IAAM,EAAG,CACtB,MAAM6uE,EAAMJ,EAAQ1uE,EAAI8/C,EAClBivB,EAAO,KAAK,MAAMD,CAAG,EACrBE,EAAML,EAAQxuE,EAAI4/C,EAClBkvB,EAAO,KAAK,MAAMD,CAAG,EACrBE,GAAOR,EAAQE,GAAS5uE,EAAI8/C,EAC5BqvB,EAAS,KAAK,IAAI,KAAK,MAAMD,CAAG,EAAIH,CAAI,GAAK,EAC7CK,GAAOT,EAAQE,GAAS1uE,EAAI4/C,EAC5BsvB,EAAU,KAAK,IAAI,KAAK,MAAMD,CAAG,EAAIH,CAAI,GAAK,EACpD,OAAA5iD,EAAI,aAAa,KAAK,KAAKrsB,CAAC,EAAG,EAAG,EAAG,KAAK,KAAKG,CAAC,EAAG4uE,EAAME,CAAI,EAC7D5iD,EAAI,UAAUgiD,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGU,EAAQE,CAAO,EACnEhjD,EAAI,aAAarsB,EAAGU,EAAGT,EAAGE,EAAG2/C,EAAIC,CAAE,EAC5B,CAACovB,EAAQE,CAAO,CACzB,CACA,GAAIrvE,IAAM,GAAKG,IAAM,EAAG,CACtB,MAAM2uE,EAAMH,EAAQ1uE,EAAI6/C,EAClBivB,EAAO,KAAK,MAAMD,CAAG,EACrBE,EAAMN,EAAQhuE,EAAIq/C,EAClBkvB,EAAO,KAAK,MAAMD,CAAG,EACrBE,GAAOP,EAAQE,GAAS5uE,EAAI6/C,EAC5BqvB,EAAS,KAAK,IAAI,KAAK,MAAMD,CAAG,EAAIH,CAAI,GAAK,EAC7CK,GAAOV,EAAQE,GAASluE,EAAIq/C,EAC5BsvB,EAAU,KAAK,IAAI,KAAK,MAAMD,CAAG,EAAIH,CAAI,GAAK,EACpD,OAAA5iD,EAAI,aAAa,EAAG,KAAK,KAAK3rB,CAAC,EAAG,KAAK,KAAKT,CAAC,EAAG,EAAG8uE,EAAME,CAAI,EAC7D5iD,EAAI,UAAUgiD,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGY,EAASF,CAAM,EACnE9iD,EAAI,aAAarsB,EAAGU,EAAGT,EAAGE,EAAG2/C,EAAIC,CAAE,EAC5B,CAACsvB,EAASF,CAAM,CACzB,CACA9iD,EAAI,UAAUgiD,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,CAAK,EACxE,MAAMrd,EAAS,KAAK,MAAMxxD,EAAGU,CAAC,EACxB+wD,EAAS,KAAK,MAAMxxD,EAAGE,CAAC,EAC9B,MAAO,CAACqxD,EAASod,EAAOnd,EAASod,CAAK,CACxC,CACA,MAAMS,EAAiB,CA4BrB,YAAYnqC,EAAOC,EAAQ,CA3B3BtiB,GAAA,oBAAe,IACfA,GAAA,gBAAW,GACXA,GAAA,qBAAgB,GAChBA,GAAA,kBAAa,MACbA,GAAA,uBAAkB,GAClBA,GAAA,kBAAayY,IACbzY,GAAA,eAAU,GACVA,GAAA,SAAI,GACJA,GAAA,SAAI,GACJA,GAAA,aAAQ,GACRA,GAAA,aAAQ,GACRA,GAAA,mBAAc,GACdA,GAAA,mBAAc,GACdA,GAAA,kBAAa,GACbA,GAAA,yBAAoBkZ,GAAkB,MACtClZ,GAAA,gBAAW,GACXA,GAAA,iBAAY,WACZA,GAAA,mBAAc,WACdA,GAAA,yBAAoB,MACpBA,GAAA,mBAAc,IACdA,GAAA,qBAAgB,IAChBA,GAAA,iBAAY,GACZA,GAAA,mBAAc,GACdA,GAAA,iBAAY,GACZA,GAAA,mBAAc,MACdA,GAAA,oBAAe,QACfA,GAAA,cAASwY,GAAc,MAAK,GAE1B,KAAK,QAAU,IAAI,aAAa,CAAC,EAAG,EAAG6J,EAAOC,CAAM,CAAC,CACvD,CACA,OAAQ,OACN,MAAM0rB,EAAQ,OAAO,OAAO,IAAI,EAChC,OAAAA,EAAM,QAAU,KAAK,QAAQ,MAAK,EAClCA,EAAM,OAAS,KAAK,OAAO,MAAK,EAChCA,EAAM,mBAAoBv1D,EAAA,KAAK,oBAAL,YAAAA,EAAwB,QAC3Cu1D,CACT,CACA,mBAAmByX,EAAWd,GAAS,KAAM7nC,EAAY,KAAM,CAC7D,MAAM4Q,EAAM,KAAK,OAAO,MAAK,EAC7B,GAAI+3B,IAAad,GAAS,OAAQ,CAC3B7nC,GACH9C,GAAY,6CAA6C,EAE3DuC,GAAK,8BAA8BO,EAAWmuC,EAAE,EAChD,MAAMwB,EAAaxB,GAAG,CAAC,EAAI,KAAK,UAAY,EACtCyB,EAAazB,GAAG,CAAC,EAAI,KAAK,UAAY,EAC5Cv9B,EAAI,CAAC,GAAK++B,EACV/+B,EAAI,CAAC,GAAKg/B,EACVh/B,EAAI,CAAC,GAAK++B,EACV/+B,EAAI,CAAC,GAAKg/B,CACZ,CACA,OAAOh/B,CACT,CACA,oBAAqB,CACnB,MAAMi/B,EAAYpwC,GAAK,UAAU,KAAK,QAAS,KAAK,oBAAoB,EACxE,KAAK,uBAAuBowC,GAAa,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,CACvD,CACA,aAAc,CACZ,OAAO,KAAK,OAAO,CAAC,IAAM,GAC5B,CACA,uBAAuBj/B,EAAK,CAC1B,KAAK,QAAQ,IAAIA,EAAK,CAAC,EACvB,KAAK,OAAO,IAAIlV,GAAe,CAAC,CAClC,CACA,0BAA0BitC,EAAWd,GAAS,KAAM7nC,EAAY,KAAM,CACpE,OAAOP,GAAK,UAAU,KAAK,QAAS,KAAK,mBAAmBkpC,EAAU3oC,CAAS,CAAC,CAClF,CACF,CACA,SAAS8vC,GAAmBrjD,EAAKsjD,EAAS,CACxC,KAAM,CACJ,MAAAxqC,EACA,OAAAC,EACA,KAAAy2B,CACJ,EAAM8T,EACEC,EAAqBxqC,EAASyoC,GAC9BgC,GAAczqC,EAASwqC,GAAsB/B,GAC7CiC,EAAcF,IAAuB,EAAIC,EAAaA,EAAa,EACnEE,EAAe1jD,EAAI,gBAAgB8Y,EAAO0oC,EAAiB,EACjE,IAAIvJ,EAAS,EACb,MAAMz3C,EAAM8iD,EAAQ,KACdpsC,EAAOwsC,EAAa,KAC1B,IAAIlwE,EACJ,GAAIg8D,IAAS5/B,GAAU,eACrB,IAAKp8B,EAAI,EAAGA,EAAIiwE,EAAajwE,KAC1B,CACC,OAAAykE,CACR,EAAUD,GAA2B,CAC7B,IAAAx3C,EACA,OAAAy3C,EACA,KAAA/gC,EACA,MAAA4B,EACA,OAAQtlC,EAAIgwE,EAAahC,GAAoB+B,CACrD,CAAO,GACDvjD,EAAI,aAAa0jD,EAAc,EAAGlwE,EAAIguE,EAAiB,UAEhDhS,IAAS5/B,GAAU,WAAY,CACxC,IAAI36B,EAAI,EACJ0uE,EAAmB7qC,EAAQ0oC,GAAoB,EACnD,IAAKhuE,EAAI,EAAGA,EAAIgwE,EAAYhwE,IAC1B0jC,EAAK,IAAI1W,EAAI,SAASy3C,EAAQA,EAAS0L,CAAgB,CAAC,EACxD1L,GAAU0L,EACV3jD,EAAI,aAAa0jD,EAAc,EAAGzuE,CAAC,EACnCA,GAAKusE,GAEHhuE,EAAIiwE,IACNE,EAAmB7qC,EAAQyqC,EAAqB,EAChDrsC,EAAK,IAAI1W,EAAI,SAASy3C,EAAQA,EAAS0L,CAAgB,CAAC,EACxD3jD,EAAI,aAAa0jD,EAAc,EAAGzuE,CAAC,EAEvC,SAAWu6D,IAAS5/B,GAAU,UAC5B,IAAKp8B,EAAI,EAAGA,EAAIiwE,EAAajwE,KAC1B,CACC,OAAAykE,CACR,EAAUY,GAAiB,CACnB,IAAAr4C,EACA,OAAAy3C,EACA,KAAM,IAAI,YAAY/gC,EAAK,MAAM,EACjC,MAAA4B,EACA,OAAQtlC,EAAIgwE,EAAahC,GAAoB+B,CACrD,CAAO,GACDvjD,EAAI,aAAa0jD,EAAc,EAAGlwE,EAAIguE,EAAiB,MAGzD,OAAM,IAAI,MAAM,mBAAmBhS,CAAI,EAAE,CAE7C,CACA,SAASoU,GAAmB5jD,EAAKsjD,EAAS,CACxC,GAAIA,EAAQ,OAAQ,CAClBtjD,EAAI,UAAUsjD,EAAQ,OAAQ,EAAG,CAAC,EAClC,MACF,CACA,KAAM,CACJ,MAAAxqC,EACA,OAAAC,CACJ,EAAMuqC,EACEC,EAAqBxqC,EAASyoC,GAC9BgC,GAAczqC,EAASwqC,GAAsB/B,GAC7CiC,EAAcF,IAAuB,EAAIC,EAAaA,EAAa,EACnEE,EAAe1jD,EAAI,gBAAgB8Y,EAAO0oC,EAAiB,EACjE,IAAIvJ,EAAS,EACb,MAAMz3C,EAAM8iD,EAAQ,KACdpsC,EAAOwsC,EAAa,KAC1B,QAASlwE,EAAI,EAAGA,EAAIiwE,EAAajwE,KAC9B,CACC,OAAAykE,CACN,EAAQD,GAA2B,CAC7B,IAAAx3C,EACA,OAAAy3C,EACA,KAAA/gC,EACA,MAAA4B,EACA,OAAQtlC,EAAIgwE,EAAahC,GAAoB+B,EAC7C,cAAe,CACrB,CAAK,GACDvjD,EAAI,aAAa0jD,EAAc,EAAGlwE,EAAIguE,EAAiB,CAE3D,CACA,SAASqC,GAAaC,EAAWlC,EAAS,CACxC,MAAMmC,EAAa,CAAC,cAAe,YAAa,WAAY,cAAe,YAAa,UAAW,WAAY,aAAc,2BAA4B,OAAQ,QAAQ,EACzK,UAAWntD,KAAYmtD,EACjBD,EAAUltD,CAAQ,IAAM,SAC1BgrD,EAAQhrD,CAAQ,EAAIktD,EAAUltD,CAAQ,GAGtCktD,EAAU,cAAgB,SAC5BlC,EAAQ,YAAYkC,EAAU,aAAa,EAC3ClC,EAAQ,eAAiBkC,EAAU,eAEvC,CACA,SAASE,GAAkBhkD,EAAK,CAC9BA,EAAI,YAAcA,EAAI,UAAY,UAClCA,EAAI,SAAW,UACfA,EAAI,YAAc,EAClBA,EAAI,UAAY,EAChBA,EAAI,QAAU,OACdA,EAAI,SAAW,QACfA,EAAI,WAAa,GACjBA,EAAI,yBAA2B,cAC/BA,EAAI,KAAO,kBACPA,EAAI,cAAgB,SACtBA,EAAI,YAAY,EAAE,EAClBA,EAAI,eAAiB,GAEvB,KAAM,CACJ,OAAA60C,CACJ,EAAM70C,EACA60C,IAAW,QAAUA,IAAW,KAClC70C,EAAI,OAAS,OAEjB,CACA,SAASikD,GAAyB1wC,EAAW2wC,EAAa,CACxD,GAAIA,EACF,MAAO,GAETlxC,GAAK,8BAA8BO,EAAWmuC,EAAE,EAChD,MAAMyC,EAAc,KAAK,OAAOxlC,GAAY,WAAa1D,GAAc,gBAAgB,EACvF,OAAOymC,GAAG,CAAC,GAAKyC,GAAezC,GAAG,CAAC,GAAKyC,CAC1C,CACA,MAAMC,GAAkB,CAAC,OAAQ,QAAS,QAAQ,EAC5CC,GAAmB,CAAC,QAAS,QAAS,OAAO,EAC7CC,GAAc,CAAA,EACdC,GAAU,CAAA,EACVC,GAAN,MAAMA,EAAe,CAWnB,YAAYC,EAAWC,EAAYxX,EAAMmR,EAAesG,EAAe,CACrE,sBAAAC,EACA,mBAAAC,EAAqB,IACzB,EAAKC,EAAqBr7B,EAAYuf,EAAmB+b,EAAe,CAdxEtuC,EAAA,KAAAuuC,IACEvuC,EAAA,KAAAwuC,GAAsB,GACtBxuC,EAAA,KAAAyuC,GAAwB,GACxBzuC,EAAA,KAAA0uC,GAA2B,MAC3B1uC,EAAA,KAAA2uC,GAAoB,MACpB3uC,EAAA,KAAA4uC,GAAyB,MACzB5uC,EAAA,KAAA6uC,GAAoB,MACpB7uC,EAAA,KAAA8uC,GAAwB,GACxB9uC,EAAA,KAAA+uC,IACA/uC,EAAA,KAAAgvC,GAA4B,MAC5BhvC,EAAA,KAAAivC,GAAkB,CAAA,GAKhB,KAAK,IAAMjB,EACX,KAAK,QAAU,IAAIxB,GAAiB,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EACjF,KAAK,WAAa,CAAA,EAClB,KAAK,YAAc,KACnB,KAAK,cAAgB,GACrB,KAAK,WAAayB,EAClB,KAAK,KAAOxX,EACZ,KAAK,cAAgBmR,EACrB,KAAK,cAAgBsG,EACrB,KAAK,WAAa,CAAA,EAClB,KAAK,cAAgB,KACrB,KAAK,mBAAqB,CAAA,EAC1B,KAAK,WAAa,EAClB,KAAK,WAAa,CAAA,EAClB,KAAK,UAAY,KACjB,KAAK,mBAAqB,CAAA,EAC1B,KAAK,mBAAqB,KAC1B,KAAK,iBAAmB,KACxB,KAAK,qBAAuB,EAC5B,KAAK,qBAAuB,EAC5B,KAAK,sBAAwB,KAC7B,KAAK,aAAe,KACpB,KAAK,eAAiB,GACtB,KAAK,mBAAqBE,GAAsB,CAAA,EAChD,KAAK,sBAAwBD,EAC7B,KAAK,eAAiB,IAAI,IAC1B,KAAK,oBAAsBE,EAC3B,KAAK,cAAgB,EACrB,KAAK,aAAe,EACpB,KAAK,aAAe,EACpB,KAAK,WAAar7B,EAClB,KAAK,wBAA0B,CAAC,GAAI,CAAC,EACrC,KAAK,2BAA6B,KAClC,KAAK,kBAAoB,IAAI,IAC7B,KAAK,kBAAoBuf,GAAqB,KAC9C,KAAK,cAAgB+b,GAAiB,IACxC,CACA,UAAUve,EAAOt0D,EAAMm2C,EAAW,KAAM,OACtC,OAAI,OAAOn2C,GAAS,WAClBhD,EAAA,KAAK,oBAAL,MAAAA,EAAwB,sBAAsBs3D,EAAOt0D,GAC9CA,EAAK,WAAW,IAAI,EAAI,KAAK,WAAW,IAAIA,CAAI,EAAI,KAAK,KAAK,IAAIA,CAAI,GAExEm2C,CACT,CACA,aAAa,CACX,UAAA9U,EACA,SAAA4K,EACA,aAAAwnC,EAAe,GACf,WAAA5V,EAAa,IACjB,EAAK,CACD,MAAMj3B,EAAQ,KAAK,IAAI,OAAO,MACxBC,EAAS,KAAK,IAAI,OAAO,OACzB6sC,EAAiB,KAAK,IAAI,UAIhC,GAHA,KAAK,IAAI,UAAY7V,GAAc,UACnC,KAAK,IAAI,SAAS,EAAG,EAAGj3B,EAAOC,CAAM,EACrC,KAAK,IAAI,UAAY6sC,EACjBD,EAAc,CAChB,MAAME,EAAoB,KAAK,uBAAyB,KAAK,cAAc,OAAO/sC,EAAOC,CAAM,EAC/F,KAAK,aAAe,KAAK,IACxB,CACC,OAAQ,KAAK,kBACb,QAAS,KAAK,GACtB,EAAU8sC,EACJ,KAAK,IAAI,KAAI,EACb,KAAK,IAAI,UAAU,GAAG9nC,GAAoB,KAAK,YAAY,CAAC,CAC9D,CACA,KAAK,IAAI,KAAI,EACbimC,GAAkB,KAAK,GAAG,EACtBzwC,IACF,KAAK,IAAI,UAAU,GAAGA,CAAS,EAC/B,KAAK,aAAeA,EAAU,CAAC,EAC/B,KAAK,aAAeA,EAAU,CAAC,GAEjC,KAAK,IAAI,UAAU,GAAG4K,EAAS,SAAS,EACxC,KAAK,cAAgBA,EAAS,MAC9B,KAAK,cAAgBJ,GAAoB,KAAK,GAAG,CACnD,CACA,oBAAoB+nC,EAAcC,EAAmBC,EAAkBC,EAASC,EAAkB,OAChG,MAAMC,EAAYL,EAAa,UACzBM,EAAUN,EAAa,QAC7B,IAAItyE,EAAIuyE,GAAqB,EAC7B,MAAMM,EAAeF,EAAU,OAC/B,GAAIE,IAAiB7yE,EACnB,OAAOA,EAET,MAAM8yE,EAAkBD,EAAe7yE,EAAI+tE,IAAmB,OAAOyE,GAAqB,WACpFO,EAAUD,EAAkB,KAAK,IAAG,EAAKhF,GAAiB,EAChE,IAAIkF,EAAQ,EACZ,MAAM9B,EAAa,KAAK,WAClBxX,EAAO,KAAK,KAClB,IAAIuZ,EAAMC,EACV,OAAa,CACX,GAAIT,IAAY,OAAW,CACzB,GAAIzyE,IAAMyyE,EAAQ,eAChB,OAAAA,EAAQ,QAAQzyE,EAAGwyE,CAAgB,EAC5BxyE,EAET,GAAIyyE,EAAQ,WAAWzyE,CAAC,EAAG,CACzB,GAAI,EAAEA,IAAM6yE,EACV,OAAO7yE,EAET,QACF,CACF,CACA,GAAI,CAAC0yE,GAAoBA,EAAiB1yE,CAAC,EAGzC,GAFAizE,EAAOL,EAAQ5yE,CAAC,EAChBkzE,EAASP,EAAU3yE,CAAC,GAAK,KACrBizE,IAASz2C,GAAI,WACX02C,IAAW,KACb,KAAKD,CAAI,EAAEjzE,CAAC,EAEZ,KAAKizE,CAAI,EAAEjzE,EAAG,GAAGkzE,CAAM,MAGzB,WAAWC,KAAYD,EAAQ,EAC7Bx3E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,gBAAgBy3E,EAAUnzE,GAClD,MAAMozE,EAAWD,EAAS,WAAW,IAAI,EAAIjC,EAAaxX,EAC1D,GAAI,CAAC0Z,EAAS,IAAID,CAAQ,EACxB,OAAAC,EAAS,IAAID,EAAUX,CAAgB,EAChCxyE,CAEX,CAIJ,GADAA,IACIA,IAAM6yE,EACR,OAAO7yE,EAET,GAAI8yE,GAAmB,EAAEE,EAAQjF,GAAiB,CAChD,GAAI,KAAK,IAAG,EAAKgF,EACf,OAAAP,EAAgB,EACTxyE,EAETgzE,EAAQ,CACV,CACF,CACF,CAkBA,YAAa,CACXtwC,EAAA,KAAK8uC,GAAA6B,IAAL,WACA,UAAW3gC,KAAU,KAAK,mBACxB,KAAK,cAAc,QAAQA,CAAM,EAEnC,KAAK,mBAAmB,OAAS,EACjC,KAAK,oBAAmB,EACxB,KAAK,UAAY,KACjB,KAAK,WAAW,OAAS,EACzB,UAAW4gC,KAAQxqC,EAAA,KAAKopC,IACtBxvC,EAAA,KAAK8uC,GAAA+B,IAAL,UAA2BD,GAE7BxqC,EAAA,KAAKopC,IAAgB,OAAS,EAC9B9oC,EAAA,KAAKuoC,GAA2B,MAChCvoC,EAAA,KAAKwoC,GAAoB,MACzBxoC,EAAA,KAAKyoC,GAAyB,MAC9BzoC,EAAA,KAAK0oC,GAAoB,MACzB1oC,EAAA,KAAK2oC,GAAwB,GAC7B3oC,EAAA,KAAK6oC,GAA4B,MACjC7oC,EAAA,KAAKsoC,GAAwB,GAC7BtoC,EAAA,KAAKqoC,GAAsB,GAC3B,KAAK,eAAe,MAAK,EACzB,UAAW+B,KAAS,KAAK,kBAAkB,OAAM,EAAI,CACnD,UAAW9gC,KAAU8gC,EAAM,SACrB,OAAO,kBAAsB,KAAe9gC,aAAkB,oBAChEA,EAAO,MAAQA,EAAO,OAAS,GAGnC8gC,EAAM,MAAK,CACb,CACA,KAAK,kBAAkB,MAAK,EAC5B9wC,EAAA,KAAK8uC,GAAAiC,IAAL,UACF,CAYA,YAAYC,EAAKC,EAAkB,CACjC,MAAMruC,EAAQouC,EAAI,OAASA,EAAI,aACzBnuC,EAASmuC,EAAI,QAAUA,EAAI,cAC3BE,EAAa,KAAK,IAAI,KAAK,MAAMD,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAG,CAAC,EAC7EE,EAAc,KAAK,IAAI,KAAK,MAAMF,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAG,CAAC,EAC9EG,EAAa,CAAA,EACnB,IAAIr7D,EAAKm7D,EACPv7D,EAAKw7D,EACLE,EAAKzuC,EACL0uC,EAAKzuC,EACP,KAAO9sB,EAAK,GAAKs7D,EAAK,GAAK17D,EAAK,GAAK27D,EAAK,GAAG,CAC3C,IAAIC,EAAKF,EACPG,EAAKF,EACHv7D,EAAK,GAAKs7D,EAAK,IACjBE,EAAK,KAAK,KAAKF,EAAK,CAAC,EACrBt7D,GAAMs7D,EAAKE,GAET57D,EAAK,GAAK27D,EAAK,IACjBE,EAAK,KAAK,KAAKF,EAAK,CAAC,EACrB37D,GAAM27D,EAAKE,GAEbJ,EAAW,KAAK,CACd,SAAUG,EACV,UAAWC,CACnB,CAAO,EACDH,EAAKE,EACLD,EAAKE,CACP,CACA,GAAIJ,EAAW,SAAW,EACxB,MAAO,CACL,IAAAJ,EACA,WAAYpuC,EACZ,YAAaC,EACb,UAAW,IACnB,EAEI,GAAIuuC,EAAW,SAAW,EAAG,CAC3B,KAAM,CACJ,SAAAvnB,EACA,UAAAC,CACR,EAAUsnB,EAAW,CAAC,EACV/K,EAAY,KAAK,cAAc,OAAOxc,EAAUC,CAAS,EAC/D,OAAAuc,EAAU,QAAQ,UAAU2K,EAAK,EAAG,EAAGpuC,EAAOC,EAAQ,EAAG,EAAGgnB,EAAUC,CAAS,EACxE,CACL,IAAKuc,EAAU,OACf,WAAYxc,EACZ,YAAaC,EACb,UAAAuc,CACR,CACI,CACA,IAAIoL,EAAY,KAAK,cAAc,OAAO,EAAG,CAAC,EAC1CC,EAAa,KAAK,cAAc,OAAO,EAAG,CAAC,EAC3CC,EAAa/uC,EACfgvC,EAAc/uC,EACZxa,EAAS2oD,EACb,SAAW,CACT,SAAAnnB,EACA,UAAAC,CACN,IAASsnB,EACH,KAAK,cAAc,MAAMM,EAAY7nB,EAAUC,CAAS,EACxD4nB,EAAW,QAAQ,UAAUrpD,EAAQ,EAAG,EAAGspD,EAAYC,EAAa,EAAG,EAAG/nB,EAAUC,CAAS,EAC7F,CAAC2nB,EAAWC,CAAU,EAAI,CAACA,EAAYD,CAAS,EAChDppD,EAASopD,EAAU,OACnBE,EAAa9nB,EACb+nB,EAAc9nB,EAEhB,YAAK,cAAc,QAAQ4nB,CAAU,EAC9B,CACL,IAAKD,EAAU,OACf,WAAAE,EACA,YAAAC,EACA,UAAWH,CACjB,CACE,CACA,kBAAkBnhB,EAAO0gB,EAAK,SAC5B,MAAMlnD,EAAM,KAAK,IACX,CACJ,MAAA8Y,EACA,OAAAC,CACN,EAAQmuC,EACEa,EAAY,KAAK,QAAQ,UACzBC,EAAgB,KAAK,QAAQ,YAC7BC,EAAmBlqC,GAAoB/d,CAAG,EAChD,IAAIgnD,EAAOkB,EAAUC,EAAQC,EAC7B,IAAKlB,EAAI,QAAUA,EAAI,OAASA,EAAI,MAAQ,EAAG,CAC7C,MAAMmB,EAAUnB,EAAI,QAAUA,EAAI,KAAK,OACvCgB,EAAW,KAAK,UAAUF,EAAgBC,EAAmB,CAACA,EAAiB,MAAM,EAAG,CAAC,EAAGF,CAAS,CAAC,EACtGf,EAAQ,KAAK,kBAAkB,oBAAoBqB,EAAS7wC,EAAO,EACnE,MAAM8wC,EAActB,EAAM,IAAIkB,CAAQ,EACtC,GAAII,GAAe,CAACN,EAAe,CACjC,MAAM7vC,EAAU,KAAK,MAAM,KAAK,IAAI8vC,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAIA,EAAiB,CAAC,CAAC,EAC7F7vC,EAAU,KAAK,MAAM,KAAK,IAAI6vC,EAAiB,CAAC,EAAGA,EAAiB,CAAC,CAAC,EAAIA,EAAiB,CAAC,CAAC,EACnG,OAAA/4E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBAAmBs3D,EAAOgD,GAAa,kBACxD,CACL,OAAQ8e,EACR,QAAAnwC,EACA,QAAAC,CACV,CACM,CACA+vC,EAASG,CACX,CACKH,IACHC,EAAa,KAAK,cAAc,OAAOtvC,EAAOC,CAAM,EACpD6qC,GAAmBwE,EAAW,QAASlB,CAAG,GAE5C,IAAIqB,EAAev1C,GAAK,UAAUi1C,EAAkB,CAAC,EAAInvC,EAAO,EAAG,EAAG,GAAKC,EAAQ,EAAG,CAAC,CAAC,EACxFwvC,EAAev1C,GAAK,UAAUu1C,EAAc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAACxvC,CAAM,CAAC,EACpE,MAAMtD,EAASxG,GAAc,MAAK,EAClC+D,GAAK,wBAAwB,CAAC,EAAG,EAAG8F,EAAOC,CAAM,EAAGwvC,EAAc9yC,CAAM,EACxE,KAAM,CAACqvB,EAAMC,EAAMC,EAAMC,CAAI,EAAIxvB,EAC3B+yC,EAAa,KAAK,MAAMxjB,EAAOF,CAAI,GAAK,EACxC2jB,EAAc,KAAK,MAAMxjB,EAAOF,CAAI,GAAK,EACzC2jB,EAAa,KAAK,cAAc,OAAOF,EAAYC,CAAW,EAC9DE,EAAUD,EAAW,QACrBvwC,EAAU2sB,EACV1sB,EAAU2sB,EAChB4jB,EAAQ,UAAU,CAACxwC,EAAS,CAACC,CAAO,EACpCuwC,EAAQ,UAAU,GAAGJ,CAAY,EACjC,IAAIK,EAAc,KAClB,GAAI,CAACT,EAAQ,CACX,MAAMU,EAAc,KAAK,YAAYT,EAAW,OAAQpqC,GAA2B2qC,CAAO,CAAC,EAC3FR,EAASU,EAAY,IACrBD,EAAcC,EAAY,UACtBV,IAAWC,EAAW,SACxB,KAAK,cAAc,QAAQA,CAAU,EACrCA,EAAa,MAEXpB,GAASgB,IACXhB,EAAM,IAAIkB,EAAUC,CAAM,EAC1BS,EAAc,KACdR,EAAa,KAEjB,CACAO,EAAQ,sBAAwB1E,GAAyBlmC,GAAoB4qC,CAAO,EAAGzB,EAAI,WAAW,EACtGnF,GAAyB4G,EAASR,EAAQ,EAAG,EAAGA,EAAO,MAAOA,EAAO,OAAQ,EAAG,EAAGrvC,EAAOC,CAAM,EAC5F6vC,GACF,KAAK,cAAc,QAAQA,CAAW,EAEpCR,GACF,KAAK,cAAc,QAAQA,CAAU,EAEvCO,EAAQ,yBAA2B,YACnC,MAAM1M,EAAUjpC,GAAK,UAAUgL,GAA2B2qC,CAAO,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,CAACxwC,EAAS,CAACC,CAAO,CAAC,EACpG,OAAAuwC,EAAQ,UAAYX,EAAgBD,EAAU,WAAW/nD,EAAK,KAAMi8C,EAASb,GAAS,KAAM5U,CAAK,EAAIuhB,EACrGY,EAAQ,SAAS,EAAG,EAAG7vC,EAAOC,CAAM,EAChCiuC,GAAS,CAACgB,GACZhB,EAAM,IAAIkB,EAAUQ,EAAW,MAAM,GAEvCz5E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBAAmBu3D,EAAOgD,GAAa,kBACxD,CACL,OAAQkf,EAAW,OACnB,YAAa1B,GAAS,CAACgB,EAAgB,KAAOU,EAC9C,QAAS,KAAK,MAAMvwC,CAAO,EAC3B,QAAS,KAAK,MAAMC,CAAO,CACjC,CACE,CACA,aAAaouB,EAAO1tB,EAAO,QACzB5pC,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,YAAas3D,GAClD1tB,IAAU,KAAK,QAAQ,YACzB,KAAK,wBAAwB,CAAC,EAAI,IAEpC,KAAK,QAAQ,UAAYA,EACzB,KAAK,IAAI,UAAYA,CACvB,CACA,WAAW0tB,EAAOhoB,EAAO,QACvBtvC,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,UAAWs3D,GACpD,KAAK,IAAI,QAAU4d,GAAgB5lC,CAAK,CAC1C,CACA,YAAYgoB,EAAOhoB,EAAO,QACxBtvC,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,WAAYs3D,GACrD,KAAK,IAAI,SAAW6d,GAAiB7lC,CAAK,CAC5C,CACA,cAAcgoB,EAAOsiB,EAAO,QAC1B55E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,aAAcs3D,GACvD,KAAK,IAAI,WAAasiB,CACxB,CACA,QAAQtiB,EAAOuiB,EAAWC,EAAW,QACnC95E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,OAAQs3D,GACjD,MAAMxmC,EAAM,KAAK,IACbA,EAAI,cAAgB,SACtBA,EAAI,YAAY+oD,CAAS,EACzB/oD,EAAI,eAAiBgpD,EAEzB,CACA,mBAAmBxiB,EAAO9sB,EAAQ,CAAC,CACnC,YAAY8sB,EAAOyiB,EAAU,CAAC,CAC9B,UAAUziB,EAAO0iB,EAAQ,eACvB,SAAW,CAACj0D,EAAKpjB,CAAK,IAAKq3E,EACzB,OAAQj0D,EAAG,CACT,IAAK,KACH,KAAK,aAAauxC,EAAO30D,CAAK,EAC9B,MACF,IAAK,KACH,KAAK,WAAW20D,EAAO30D,CAAK,EAC5B,MACF,IAAK,KACH,KAAK,YAAY20D,EAAO30D,CAAK,EAC7B,MACF,IAAK,KACH,KAAK,cAAc20D,EAAO30D,CAAK,EAC/B,MACF,IAAK,IACH,KAAK,QAAQ20D,EAAO30D,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EACtC,MACF,IAAK,KACH,KAAK,mBAAmB20D,EAAO30D,CAAK,EACpC,MACF,IAAK,KACH,KAAK,YAAY20D,EAAO30D,CAAK,EAC7B,MACF,IAAK,OACH,KAAK,QAAQ20D,EAAO30D,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EACtC,MACF,IAAK,MACH3C,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,cAAes3D,GACxD,KAAK,QAAQ,YAAc30D,EAC3B,MACF,IAAK,MACH5C,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,YAAau3D,GACtD,KAAK,IAAI,YAAc,KAAK,QAAQ,UAAY30D,EAChD,MACF,IAAK,MACHqgB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,2BAA4Bs0C,GACrE,KAAK,IAAI,yBAA2B30D,EACpC,MACF,IAAK,SACHuqB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,QAASoqC,GAClD,KAAK,QAAQ,YAAc30D,EAAQ,KAAK,UAAY,KAChD,KAAK,QAAQ,cACf,KAAK,QAAQ,YAAY,UAAY,KAAK,IAAI,0BAEhD,KAAK,UAAY,KACjB,KAAK,gBAAgB20D,CAAK,EAC1B,MACF,IAAK,MACH1uD,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,SAAU0uD,GACnD,KAAK,IAAI,OAAS,KAAK,QAAQ,aAAe,KAAK,cAAc,UAAU30D,CAAK,EAChF,KACV,CAEE,CACA,IAAI,aAAc,CAChB,MAAO,CAAC,CAAC,KAAK,YAChB,CACA,qBAAsB,CAChB,KAAK,qBACP,KAAK,cAAc,QAAQ,KAAK,kBAAkB,EAClD,KAAK,mBAAqB,MAE5B,KAAK,iBAAmB,KACxB,KAAK,qBAAuB,EAC5B,KAAK,qBAAuB,EAC5B,KAAK,sBAAwB,IAC/B,CACA,qBAAqBs3E,EAAO,CACtBA,IAAU,KAAK,mBAGnB,KAAK,oBAAmB,EACxB,KAAK,oBAAoBA,CAAK,EAChC,CACA,gBAAgB3iB,EAAO,CACrB,MAAM4iB,EAAc,KAAK,YACrB,KAAK,QAAQ,aAAe,CAACA,EAC/B,KAAK,eAAe5iB,CAAK,EAChB,CAAC,KAAK,QAAQ,aAAe4iB,EACtC,KAAK,aAAY,EACR,KAAK,QAAQ,aAAeA,GACrC,KAAK,qBAAqB,KAAK,QAAQ,WAAW,CAEtD,CACA,oBAAoBD,EAAO,CACzB,KAAM,CACJ,OAAQf,EACR,QAAAiB,EACA,SAAAC,EACA,YAAAC,CACN,EAAQJ,EACEK,EAAYH,IAAY,cAAgBA,IAAY,SAAWE,EACrE,GAAI,CAACC,GAAa,EAAEH,IAAY,cAAgBC,GAAW,CACzD,KAAK,iBAAmBH,EACxB,MACF,CACA,IAAIM,EACJ,GAAIJ,IAAY,cAAgBC,EAAU,CACxC,KAAM,CAACh6E,EAAG6E,EAAGE,CAAC,EAAIipC,GAAQgsC,CAAQ,EAC5BI,EAAa,KAAK,MAAM,GAAMp6E,EAAI,IAAO6E,EAAI,IAAOE,CAAC,EAC3Do1E,GAAmBF,GAAA,YAAAA,EAAcG,KAAeA,CAClD,MACED,GAAmBF,GAAA,YAAAA,EAAc,KAAM,EAEzC,MAAMI,EAAiC,EACjC,CACJ,MAAOC,EACP,OAAQC,CACd,EAAQ,KAAK,IAAI,OACPC,EAAW1B,EAAW,MAAQA,EAAW,OACzC2B,EAAeH,EAASC,EAASF,EAAiCG,EAClEE,EAAaR,EAAY,CAC7B,IAAKH,IAAY,QAAU,KAAK,cAAc,eAAeE,CAAW,EAAI,KAAK,cAAc,oBAAoBA,CAAW,EAC9H,QAAAF,EACA,YAAAE,CACN,EAAQ,KACEU,EAAgBZ,IAAY,aAAeC,EAAW,KAC5D,IAAIY,EAAe/xC,EAASC,EACxB2xC,GACFG,EAAgB,KAAK,iBAAiB9B,EAAYe,EAAM,QAASA,EAAM,QAASS,EAAQC,EAAQI,EAAeD,CAAU,EACzH7xC,EAAU,EACVC,EAAU,IAEV8xC,EAAgB,KAAK,iBAAiB9B,EAAY,EAAG,EAAGA,EAAW,MAAOA,EAAW,OAAQ6B,EAAeD,CAAU,EACtH7xC,EAAUgxC,EAAM,QAChB/wC,EAAU+wC,EAAM,SAElB,KAAK,mBAAqBe,EAC1B,KAAK,iBAAmBf,EACxB,KAAK,qBAAuBhxC,EAC5B,KAAK,qBAAuBC,EAC5B,KAAK,sBAAwB,CAAC2xC,GAAgBN,IAAqB,EAAIA,EAAmB,IAC5F,CACA,iBAAiBrB,EAAY+B,EAAOC,EAAO71E,EAAGP,EAAGs1E,EAAUU,EAAY,CACjE,CAACV,GAAY,CAACU,GAChBv5C,GAAY,mDAAmD,EAEjE,MAAM45C,EAAW,KAAK,cAAc,OAAO91E,EAAGP,CAAC,EACzCs2E,EAAOD,EAAS,QAOtB,GANAC,EAAK,UAAUlC,EAAY+B,EAAOC,CAAK,EACnCd,IACFgB,EAAK,yBAA2B,mBAChCA,EAAK,UAAYhB,EACjBgB,EAAK,SAAS,EAAG,EAAG/1E,EAAGP,CAAC,GAEtB,CAACg2E,EACH,OAAOK,EAET,MAAMH,EAAgB,KAAK,cAAc,OAAO31E,EAAGP,CAAC,EAC9Cu2E,EAAOL,EAAc,QAC3BK,EAAK,OAASP,EAAW,IACzB,MAAMQ,EAAgB53C,GAAY,yBAA2B23C,EAAK,SAAW,QAAUA,EAAK,SAAW,GAKvG,GAJAA,EAAK,UAAUF,EAAS,OAAQ,EAAG,CAAC,EAChCz3C,GAAY,0BACd23C,EAAK,OAAS,QAEZ,CAACC,EAAe,CAClB,MAAMtD,EAAMqD,EAAK,aAAa,EAAG,EAAGh2E,EAAGP,CAAC,EAClC,CACJ,KAAA9B,CACR,EAAUg1E,EACE,CACJ,YAAAqC,CACR,EAAUS,EACJ,GAAIA,EAAW,UAAY,aACzB,QAASx2E,EAAI,EAAG2Q,EAAKjS,EAAK,OAAQsB,EAAI2Q,EAAI3Q,GAAK,EAAG,CAChD,MAAMG,EAAI,GAAMzB,EAAKsB,CAAC,EAAI,IAAOtB,EAAKsB,EAAI,CAAC,EAAI,IAAOtB,EAAKsB,EAAI,CAAC,EAAI,GAAM,EAC1EtB,EAAKsB,CAAC,EAAItB,EAAKsB,EAAI,CAAC,EAAItB,EAAKsB,EAAI,CAAC,EAAI,EACtCtB,EAAKsB,EAAI,CAAC,GAAI+1E,GAAA,YAAAA,EAAc51E,KAAMA,CACpC,KAEA,SAASH,EAAI,EAAG2Q,EAAKjS,EAAK,OAAQsB,EAAI2Q,EAAI3Q,GAAK,EAC7CtB,EAAKsB,CAAC,EAAI+1E,EAAYr3E,EAAKsB,CAAC,CAAC,EAGjC+2E,EAAK,aAAarD,EAAK,EAAG,CAAC,CAC7B,CACA,YAAK,cAAc,QAAQmD,CAAQ,EAC5BH,CACT,CACA,eAAe1jB,EAAO,CACpB,GAAI,KAAK,YACP,MAAM,IAAI,MAAM,mDAAmD,EAErE,KAAM,CACJ,MAAOgiB,EACP,OAAQC,CACd,EAAQ,KAAK,IAAI,OACPgC,EAAgB,KAAK,cAAc,OAAOjC,EAAYC,CAAW,EACvE,KAAK,mBAAqBgC,EAC1B,KAAK,aAAe,KAAK,IACzB,MAAMzqD,EAAM,KAAK,IAAMyqD,EAAc,QACrCzqD,EAAI,aAAa,KAAK,aAAa,aAAY,CAAE,EACjD6jD,GAAa,KAAK,aAAc7jD,CAAG,EACnC2hD,GAAwB3hD,EAAK,KAAK,YAAY,EAC9C,KAAK,qBAAqB,KAAK,QAAQ,WAAW,EAClD,KAAK,UAAUwmC,EAAO,CAAC,CAAC,KAAM,aAAa,CAAC,CAAC,CAC/C,CACA,cAAe,CACb,GAAI,CAAC,KAAK,YACR,MAAM,IAAI,MAAM,6CAA6C,EAE/D,KAAK,IAAI,iBAAgB,EACzBqd,GAAa,KAAK,IAAK,KAAK,YAAY,EACxC,KAAK,IAAM,KAAK,aAChB,KAAK,aAAe,KACpB,KAAK,cAAc,QAAQ,KAAK,kBAAkB,EAClD,KAAK,mBAAqB,KAC1B,KAAK,oBAAmB,CAC1B,CAsLA,QAAQ6G,EAAU,CAChB,GAAI,CAAC,KAAK,QAAQ,YAChB,OAEFA,EAAWA,EAAW,CAAC,KAAK,MAAMA,EAAS,CAAC,CAAC,EAAG,KAAK,MAAMA,EAAS,CAAC,CAAC,EAAG,KAAK,KAAKA,EAAS,CAAC,CAAC,EAAG,KAAK,KAAKA,EAAS,CAAC,CAAC,CAAC,EAAI,CAAC,EAAG,EAAG,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EAC/K,MAAMvB,EAAQ,KAAK,QAAQ,YACrBwB,EAAe,KAAK,aACpBC,EAAoBtuC,EAAA,KAAK4oC,IAAwB,GAAKyF,IAAiB,KAAK,IAClF,KAAK,aAAaC,EAAoB,KAAOD,EAAcxB,EAAO,KAAK,IAAKuB,CAAQ,EAChF,CAAAE,IAGJ,KAAK,IAAI,KAAI,EACb,KAAK,IAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtC,KAAK,IAAI,UAAU,EAAG,EAAG,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EACtE,KAAK,IAAI,QAAO,EAClB,CACA,aAAa5qD,EAAKmpD,EAAO0B,EAAUC,EAAU,CAC3C,MAAMC,EAAeD,EAAS,CAAC,EACzBE,EAAeF,EAAS,CAAC,EACzBG,EAAaH,EAAS,CAAC,EAAIC,EAC3BG,EAAcJ,EAAS,CAAC,EAAIE,EAClC,GAAIC,IAAe,GAAKC,IAAgB,EACtC,OAEF,MAAMhB,EAAgB,KAAK,mBAC3B,GAAIA,EAAe,CACjB,IAAIiB,EAAQJ,EACRK,EAAQJ,EACRK,EAAQJ,EACRK,EAAQJ,EACZ,MAAMK,EAAW,KAAK,sBAChBC,EAAcD,IAAa,KACjC,GAAIC,EAAa,CACfL,EAAQ,KAAK,IAAIJ,EAAc5B,EAAM,OAAO,EAC5CiC,EAAQ,KAAK,IAAIJ,EAAc7B,EAAM,OAAO,EAC5C,MAAMvzC,EAAK,KAAK,IAAIm1C,EAAeE,EAAY9B,EAAM,QAAUA,EAAM,OAAO,KAAK,EAC3EtzC,EAAK,KAAK,IAAIm1C,EAAeE,EAAa/B,EAAM,QAAUA,EAAM,OAAO,MAAM,EACnFkC,EAAQz1C,EAAKu1C,EACbG,EAAQz1C,EAAKu1C,CACf,CACA,GAAIC,EAAQ,GAAKC,EAAQ,EAAG,CAC1B,MAAMrJ,EAAOkJ,EAAQ,KAAK,qBACpBjJ,EAAOkJ,EAAQ,KAAK,qBAC1BP,EAAS,KAAI,EACbA,EAAS,YAAc,EACvBA,EAAS,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM/J,EAAO,IAAI,OACjBA,EAAK,KAAKqK,EAAOC,EAAOC,EAAOC,CAAK,EACpCT,EAAS,KAAK/J,CAAI,EAClB+J,EAAS,yBAA2B,iBACpCA,EAAS,UAAUX,EAAc,OAAQjI,EAAMC,EAAMmJ,EAAOC,EAAOH,EAAOC,EAAOC,EAAOC,CAAK,EAC7FT,EAAS,QAAO,CAClB,CACIW,GAAeD,EAAW,KAC5B,KAAK,oBAAoBV,EAAUE,EAAcC,EAAcC,EAAYC,EAAaC,EAAOC,EAAOD,EAAQE,EAAOD,EAAQE,EAAOC,CAAQ,CAEhJ,MACE,KAAK,oBAAoBpC,EAAO0B,EAAUI,EAAYC,EAAaH,EAAcC,CAAY,EAE1FhrD,IAGLA,EAAI,KAAI,EACRA,EAAI,YAAc,EAClBA,EAAI,yBAA2BmpD,EAAM,WAAa,cAClDnpD,EAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjCA,EAAI,UAAU6qD,EAAS,OAAQE,EAAcC,EAAcC,EAAYC,EAAaH,EAAcC,EAAcC,EAAYC,CAAW,EACvIlrD,EAAI,QAAO,EACb,CACA,oBAAoB6qD,EAAUE,EAAcC,EAAcC,EAAYC,EAAaO,EAAQC,EAAQC,EAAQC,EAAQnY,EAAO,CACxH,MAAMoY,EAAiBJ,EAASE,GAAUD,EAASE,EACnD,GAAIC,GAAkBJ,IAAWV,GAAgBW,IAAWV,GAAgBW,IAAWZ,EAAeE,GAAcW,IAAWZ,EAAeE,EAC5I,OAEF,MAAMl0D,EAAO,IAAI,OACjBA,EAAK,KAAK+zD,EAAcC,EAAcC,EAAYC,CAAW,EACzDW,GACF70D,EAAK,KAAKy0D,EAAQC,EAAQC,EAASF,EAAQG,EAASF,CAAM,EAE5Db,EAAS,KAAI,EACbA,EAAS,YAAcpX,EAAQ,IAC/BoX,EAAS,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtCA,EAAS,KAAK7zD,EAAM,SAAS,EAC7B6zD,EAAS,yBAA2B,iBACpCA,EAAS,UAAY,UACrBA,EAAS,SAASE,EAAcC,EAAcC,EAAYC,CAAW,EACrEL,EAAS,QAAO,CAClB,CACA,oBAAoB1B,EAAO0B,EAAU/xC,EAAOC,EAAQgyC,EAAcC,EAAc,CAC9E,KAAM,CACJ,QAASc,EACT,QAASC,EACT,QAASC,CACf,EAAQ7C,EACJ0B,EAAS,KAAI,EACbA,EAAS,YAAc,EACvBA,EAAS,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM/J,EAAO,IAAI,OACjBA,EAAK,KAAKiK,EAAcC,EAAclyC,EAAOC,CAAM,EACnD8xC,EAAS,KAAK/J,CAAI,EAClB+J,EAAS,yBAA2B,iBACpCA,EAAS,UAAUiB,EAAQ,OAAQf,EAAegB,EAAaf,EAAegB,EAAalzC,EAAOC,EAAQgyC,EAAcC,EAAclyC,EAAOC,CAAM,EACnJ8xC,EAAS,QAAO,CAClB,CACA,KAAKrkB,EAAO,OACN,KAAK,aACPqd,GAAa,KAAK,IAAK,KAAK,YAAY,EAE1C,KAAK,IAAI,KAAI,EACb,MAAMoI,EAAM,KAAK,QACjB,KAAK,WAAW,KAAKA,CAAG,EACxB,KAAK,QAAUA,EAAI,MAAK,GACxB/8E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,KAAKs3D,EAC/B,CACA,QAAQA,EAAO,OAEb,IADAt3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,QAAQs3D,GAC5B,KAAK,WAAW,SAAW,EAAG,CAC5B,KAAK,aACP,KAAK,aAAY,EAEnB,MACF,CACA,KAAK,QAAU,KAAK,WAAW,IAAG,EAClC,KAAK,IAAI,QAAO,EACZ,KAAK,cACPqd,GAAa,KAAK,aAAc,KAAK,GAAG,EACxC,KAAK,IAAI,aAAa,KAAK,aAAa,aAAY,CAAE,GAExD,KAAK,gBAAgBrd,CAAK,EAC1B,KAAK,YAAc,KACnB,KAAK,wBAAwB,CAAC,EAAI,GAClC,KAAK,2BAA6B,IACpC,CACA,UAAUA,EAAO7yD,EAAGU,EAAGT,EAAGE,EAAGR,EAAGW,EAAG,QACjC/E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,sBAAsB,YAAas3D,GAC3D,KAAK,IAAI,UAAU7yD,EAAGU,EAAGT,EAAGE,EAAGR,EAAGW,CAAC,EACnC,KAAK,wBAAwB,CAAC,EAAI,GAClC,KAAK,2BAA6B,IACpC,CACA,cAAcuyD,EAAO0lB,EAAIh6E,EAAMujC,EAAQ,CACrC,GAAI,CAACze,CAAI,EAAI9kB,EACb,GAAI,CAACujC,EAAQ,CACXze,MAAS9kB,EAAK,CAAC,EAAI,IAAI,QACnBg6E,IAAOl8C,GAAI,QAAUk8C,IAAOl8C,GAAI,cAClC,KAAK,QAAQ,kBAAoB,MAEnC,KAAKk8C,CAAE,EAAE1lB,EAAOxvC,CAAI,EACpB,MACF,CACA,GAAI,KAAK,oBAAsB,KAAM,CACnC,MAAMm1D,EAAiBD,IAAOl8C,GAAI,OAAS,KAAK,QAAQ,UAAY,EAAI,EACxE,KAAK,kBAAkB,UAAUw2B,CAAK,EAAE,WAAWA,EAAO,KAAK,IAAK/wB,EAAO,CAAC,EAAI02C,EAAgB12C,EAAO,CAAC,EAAI02C,EAAgB12C,EAAO,CAAC,EAAI02C,EAAgB12C,EAAO,CAAC,EAAI02C,CAAc,EAAE,mBAAmB3lB,EAAO,CAAC,WAAW,CAAC,CAC7N,CACMxvC,aAAgB,SACpBA,EAAO9kB,EAAK,CAAC,EAAIqvC,GAAoBvqB,CAAI,GAE3Cgc,GAAK,wBAAwByC,EAAQsI,GAAoB,KAAK,GAAG,EAAG,KAAK,QAAQ,MAAM,EACvF,MAAMquC,EAAa,KAAK,QAAQ,kBAChC,GAAIA,GAAcF,IAAOl8C,GAAI,QAAUk8C,IAAOl8C,GAAI,aAAe,KAAK,QAAQ,qBAAqBmxC,GAAe,CAChH,MAAM5B,EAAcvsC,GAAK,UAAU,KAAK,QAAQ,QAAS,KAAK,QAAQ,MAAM,EACvEusC,EAGH,KAAK,QAAQ,UAAU,kBAAkBA,EAAa6M,CAAU,EAFhE,KAAK,QAAQ,kBAAoB,IAIrC,CACA,KAAKF,CAAE,EAAE1lB,EAAOxvC,CAAI,EACpB,KAAK,cAAgBwvC,CACvB,CACA,UAAUA,EAAO,CACf,KAAK,IAAI,UAAS,CACpB,CACA,OAAOA,EAAOxvC,EAAMq1D,EAAc,GAAM,OACtC,MAAMC,EAAUD,GAAen2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,aACjEvsD,EAAM,KAAK,IACXwsD,EAAc,KAAK,QAAQ,YAEjC,GADAxsD,EAAI,YAAc,KAAK,QAAQ,YAC3B,KAAK,eACP,GAAI,OAAOwsD,GAAgB,WAAYA,GAAA,MAAAA,EAAa,YAAY,CAC9D,MAAMxN,EAAgBwN,EAAY,4BAA2B,EAAKxsD,EAAI,aAAY,EAAK,KAGvF,GAFAA,EAAI,KAAI,EACRA,EAAI,YAAcwsD,EAAY,WAAWxsD,EAAK,KAAMge,GAA2Bhe,CAAG,EAAGo7C,GAAS,OAAQ5U,CAAK,EACvGwY,EAAe,CACjB,MAAMyN,EAAU,IAAI,OACpBA,EAAQ,QAAQz1D,EAAMgJ,EAAI,aAAY,EAAG,WAAU,EAAG,aAAag/C,CAAa,CAAC,EACjFhoD,EAAOy1D,CACT,CACA,KAAK,iBAAiBz1D,EAAM,EAAK,EACjCgJ,EAAI,QAAO,CACb,MACE,KAAK,iBAAiBhJ,EAAM,EAAI,GAGpC9nB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBAAmBs3D,EAAOgD,GAAa,QAC3D6iB,GACF,KAAK,YAAY7lB,EAAOxvC,EAAM,KAAK,QAAQ,0BAA0BokD,GAAS,OAAQr9B,GAAoB,KAAK,GAAG,CAAC,CAAC,EAEtH/d,EAAI,YAAc,KAAK,QAAQ,UAC/BkW,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,YAAY9lB,EAAOxvC,EAAM,CACvB,KAAK,OAAOwvC,EAAOxvC,CAAI,CACzB,CACA,KAAKwvC,EAAOxvC,EAAMq1D,EAAc,GAAM,WACpC,MAAMC,EAAUD,GAAen2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WACjEvsD,EAAM,KAAK,IACX+nD,EAAY,KAAK,QAAQ,UACzBC,EAAgB,KAAK,QAAQ,YACnC,IAAI2E,EAAc,GAClB,MAAMvJ,EAAY,KAAK,QAAQ,0BAAyB,EAExD,IADAl0E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBAAmBs3D,EAAOgD,GAAa,MAC3Dwe,EAAe,CACjB,MAAMhvC,EAAO,KAAK,QAAQ,kBACpB4zC,EAAU5zC,GAAQ+uC,EAAU,qBAAqB/uC,CAAI,EAC3D,GAAI4zC,EAAS,CACX7E,EAAU,YAAY,KAAM/wD,EAAM,KAAK,cAAe41D,EAASpmB,CAAK,EACpE,KAAK,cAAgB,GACjB6lB,GACF,KAAK,YAAY7lB,EAAOxvC,EAAMosD,CAAS,EAEzC,KAAK,QAAQ,kBAAoB,KACjCltC,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,GACzB,MACF,CACA,MAAMtN,EAAgB+I,EAAU,4BAA2B,EAAK/nD,EAAI,aAAY,EAAK,KAIrF,IAHA/wB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,KAAKu3D,GAC7BxmC,EAAI,KAAI,EACRA,EAAI,UAAY+nD,EAAU,WAAW/nD,EAAK,KAAMge,GAA2Bhe,CAAG,EAAGo7C,GAAS,KAAM5U,CAAK,EACjGwY,EAAe,CACjB,MAAMyN,EAAU,IAAI,OACpBA,EAAQ,QAAQz1D,EAAMgJ,EAAI,aAAY,EAAG,WAAU,EAAG,aAAag/C,CAAa,CAAC,EACjFhoD,EAAOy1D,CACT,CACAE,EAAc,EAChB,CACI,KAAK,gBAAkBvJ,IAAc,OACnC,KAAK,eACPpjD,EAAI,KAAKhJ,EAAM,SAAS,EACxB,KAAK,cAAgB,IAErBgJ,EAAI,KAAKhJ,CAAI,GAGb21D,IACF3sD,EAAI,QAAO,GACX9N,EAAA,KAAK,oBAAL,MAAAA,EAAwB,QAAQs0C,IAE9B6lB,GACF,KAAK,YAAY7lB,EAAOxvC,EAAMosD,CAAS,EAEzCltC,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,OAAO9lB,EAAOxvC,EAAM,CAClB,KAAK,cAAgB,GACrB,KAAK,KAAKwvC,EAAOxvC,CAAI,CACvB,CACA,WAAWwvC,EAAOxvC,EAAM,CACtB,MAAMs1D,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,IAAI,KAAK,QAAQ,UAAW,KAAK,QAAQ,WAAW,GACpG,KAAK,KAAK/lB,EAAOxvC,EAAM,EAAK,EAC5B,KAAK,OAAOwvC,EAAOxvC,EAAM,EAAK,EAC9B,KAAK,YAAYwvC,EAAOxvC,CAAI,EAC5Bkf,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,aAAa9lB,EAAOxvC,EAAM,CACxB,KAAK,cAAgB,GACrB,KAAK,WAAWwvC,EAAOxvC,CAAI,CAC7B,CACA,gBAAgBwvC,EAAOxvC,EAAM,CAC3B,KAAK,WAAWwvC,EAAOxvC,CAAI,CAC7B,CACA,kBAAkBwvC,EAAOxvC,EAAM,CAC7B,KAAK,cAAgB,GACrB,KAAK,WAAWwvC,EAAOxvC,CAAI,CAC7B,CACA,QAAQwvC,EAAOxvC,EAAM,CACnB,KAAK,YAAYwvC,EAAOxvC,CAAI,CAC9B,CACA,YAAYwvC,EAAOxvC,EAAM,OACvB,MAAMs1D,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WACxD,KAAK,IAAI,KAAKv1D,CAAI,GAClB9nB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBAAmBs3D,EAAOgD,GAAa,aAAa,gBAAgBhD,GAC5FtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,KAAK9lB,EAAO,QACVt3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,6BAA6B,WAAYs3D,GACjE,KAAK,YAAc8d,EACrB,CACA,OAAO9d,EAAO,QACZt3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,6BAA6B,WAAYs3D,GACjE,KAAK,YAAc+d,EACrB,CACA,UAAU/d,EAAO,OACf,KAAK,QAAQ,WAAa,KAC1B,KAAK,QAAQ,gBAAkB,EAC/B,KAAK,QAAQ,EAAI,KAAK,QAAQ,MAAQ,EACtC,KAAK,QAAQ,EAAI,KAAK,QAAQ,MAAQ,GACtCt3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiBs3D,GAAO,qBAAqB,gBAAgB,qBAAqB,WAAYA,EACxH,CACA,QAAQA,EAAO,CACb,MAAMqmB,EAAQ,KAAK,iBACb7sD,EAAM,KAAK,IACjB,GAAI,KAAK,kBAAmB,CAC1B,KAAM,CACJ,kBAAAgpC,CACR,EAAU,KACA6jB,IAAU,QACZ7jB,EAAkB,6BAA6B,WAAYA,EAAkB,cAAa,CAAE,EAAE,6BAA6B,WAAYxC,CAAK,EAE9IwC,EAAkB,kBAAkBxC,CAAK,CAC3C,CACA,GAAIqmB,IAAU,OAAW,CACvB,MAAMJ,EAAU,IAAI,OACdnsB,EAAYtgC,EAAI,aAAY,EAAG,WAAU,EAC/C,SAAW,CACT,UAAAuT,EACA,EAAAp+B,EACA,EAAAf,EACA,SAAA04E,EACA,KAAA91D,CACR,IAAW61D,EACE71D,GAGLy1D,EAAQ,QAAQz1D,EAAM,IAAI,UAAUuc,CAAS,EAAE,gBAAgB+sB,CAAS,EAAE,UAAUnrD,EAAGf,CAAC,EAAE,MAAM04E,EAAU,CAACA,CAAQ,CAAC,EAEtH9sD,EAAI,KAAKysD,CAAO,CAClB,CACA,OAAO,KAAK,gBACd,CACA,eAAejmB,EAAOumB,EAAS,QAC7B79E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,cAAes3D,GACxD,KAAK,QAAQ,YAAcumB,CAC7B,CACA,eAAevmB,EAAOumB,EAAS,QAC7B79E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,cAAes3D,GACxD,KAAK,QAAQ,YAAcumB,CAC7B,CACA,UAAUvmB,EAAOr9B,EAAO,QACtBj6B,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,SAAUs3D,GACnD,KAAK,QAAQ,WAAar9B,EAAQ,GACpC,CACA,WAAWq9B,EAAOwmB,EAAS,QACzB99E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,UAAWs3D,GACpD,KAAK,QAAQ,QAAU,CAACwmB,CAC1B,CACA,QAAQxmB,EAAOymB,EAAannC,EAAM,UAChC52C,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,OAAQs3D,GAAO,0BAA0B,UAAWymB,EAAazmB,GAC1G,MAAM0mB,EAAU,KAAK,WAAW,IAAID,CAAW,EACzCjM,EAAU,KAAK,QACrB,GAAI,CAACkM,EACH,MAAM,IAAI,MAAM,uBAAuBD,CAAW,EAAE,EActD,GAZAjM,EAAQ,WAAakM,EAAQ,YAAch+C,IACvC8xC,EAAQ,WAAW,CAAC,IAAM,GAAKA,EAAQ,WAAW,CAAC,IAAM,IAC3DxwC,GAAK,gCAAkCy8C,CAAW,EAEhDnnC,EAAO,GACTA,EAAO,CAACA,EACRk7B,EAAQ,cAAgB,IAExBA,EAAQ,cAAgB,EAE1B,KAAK,QAAQ,KAAOkM,EACpB,KAAK,QAAQ,SAAWpnC,EACpBonC,EAAQ,YACV,OAEF,MAAMt3D,EAAOs3D,EAAQ,YAAc,aAC7BC,IAAWl+E,EAAAi+E,EAAQ,iBAAR,YAAAj+E,EAAwB,MAAO,IAAI2mB,CAAI,MAAMs3D,EAAQ,YAAY,GAClF,IAAIE,EAAO,SACPF,EAAQ,MACVE,EAAO,MACEF,EAAQ,OACjBE,EAAO,QAET,MAAMC,EAASH,EAAQ,OAAS,SAAW,SACrCI,EAAkB11C,GAAUkO,EAAMs7B,GAAeC,EAAa,EACpE,KAAK,QAAQ,cAAgBv7B,EAAOwnC,EACpC,KAAK,IAAI,KAAO,GAAGD,CAAM,IAAID,CAAI,IAAIE,CAAe,MAAMH,CAAQ,EACpE,CACA,qBAAqB3mB,EAAOzX,EAAM,QAChC7/C,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,oBAAqBs3D,GAC9D,KAAK,QAAQ,kBAAoBzX,CACnC,CACA,YAAYyX,EAAO+mB,EAAM,QACvBr+E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,WAAYs3D,GACrD,KAAK,QAAQ,SAAW+mB,CAC1B,CACA,SAAS/mB,EAAOrxD,EAAGf,EAAG,QACpBlF,EAAA,KAAK,oBAAL,MAAAA,EAAwB,qBAAqB,gBAAgB,sBAAsB,WAAYs3D,GAC/F,KAAK,QAAQ,EAAI,KAAK,QAAQ,OAASrxD,EACvC,KAAK,QAAQ,EAAI,KAAK,QAAQ,OAASf,CACzC,CACA,mBAAmBoyD,EAAOrxD,EAAGf,EAAG,CAC9B,KAAK,WAAWoyD,EAAO,CAACpyD,CAAC,EACzB,KAAK,SAASoyD,EAAOrxD,EAAGf,CAAC,CAC3B,CACA,cAAcoyD,EAAOxxB,EAAQ,QAC3B9lC,EAAA,KAAK,oBAAL,MAAAA,EAAwB,qBAAqB,gBAAgB,iBAAiB,aAAcs3D,GAC5F,KAAM,CACJ,QAAAwa,CACN,EAAQ,KACJA,EAAQ,WAAahsC,EACrBgsC,EAAQ,gBAAkB,KAAK,MAAMhsC,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EACzDgsC,EAAQ,EAAIA,EAAQ,MAAQ,EAC5BA,EAAQ,EAAIA,EAAQ,MAAQ,CAC9B,CACA,SAASxa,EAAO,OACd,KAAK,SAASA,EAAO,EAAG,KAAK,QAAQ,OAAO,GAC5Ct3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,sBAAsB,WAAY,KAAK,kBAAkB,eAAe,SAAS,GAAKs3D,EAChH,CAMA,UAAUA,EAAO2G,EAAWh4D,EAAGf,EAAGo5E,EAAsBC,EAAwB,aAC9E,MAAMztD,EAAM,KAAK,IACXghD,EAAU,KAAK,QACf5Z,EAAO4Z,EAAQ,KACf0M,EAAoB1M,EAAQ,kBAC5B8L,EAAW9L,EAAQ,SAAWA,EAAQ,cACtC2M,EAAiBD,EAAoB/9C,GAAkB,iBACvDi+C,EAAiB,CAAC,EAAEF,EAAoB/9C,GAAkB,kBAC1Dk+C,EAAc7M,EAAQ,aAAe,CAAC5Z,EAAK,YAC3C0mB,EAAgB9M,EAAQ,eAAiB,CAAC5Z,EAAK,YACrD,IAAIpwC,EAIJ,IAHKowC,EAAK,iBAAmBwmB,GAAkBC,GAAeC,IAAkB,CAAC1mB,EAAK,cACpFpwC,EAAOowC,EAAK,iBAAiB,KAAK,WAAY+F,CAAS,GAErDn2C,IAASowC,EAAK,iBAAmBymB,GAAeC,GAAgB,CAClE9tD,EAAI,KAAI,EACRA,EAAI,UAAU7qB,EAAGf,CAAC,EAClB4rB,EAAI,MAAM8sD,EAAU,CAACA,CAAQ,GAC7B59E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,oBAAoBs3D,EAAOxmC,EAAKonC,GACxD,IAAI6gB,EACJ,GAAI0F,IAAmBh+C,GAAkB,MAAQg+C,IAAmBh+C,GAAkB,YACpF,GAAI69C,EAAsB,CACxBvF,EAAmBjoD,EAAI,aAAY,EACnCA,EAAI,aAAa,GAAGwtD,CAAoB,EACxC,MAAMO,EAAa73C,EAAA,KAAK8uC,GAAAgJ,IAAL,UAAoBh3D,EAAMixD,EAAkBuF,GAC/DxtD,EAAI,KAAK+tD,CAAU,CACrB,MACE/tD,EAAI,KAAKhJ,CAAI,EAGjB,GAAI22D,IAAmBh+C,GAAkB,QAAUg+C,IAAmBh+C,GAAkB,YACtF,GAAI89C,EAAwB,CAC1BxF,MAAqBjoD,EAAI,aAAY,GACrCA,EAAI,aAAa,GAAGytD,CAAsB,EAC1C,KAAM,CACJ,EAAA95E,EACA,EAAAU,EACA,EAAAT,EACA,EAAAE,CACZ,EAAcm0E,EACEgG,EAAsBj7C,GAAK,iBAAiBy6C,CAAsB,EAClErtB,EAASptB,GAAK,UAAU,CAACr/B,EAAGU,EAAGT,EAAGE,EAAG,EAAG,CAAC,EAAGm6E,CAAmB,EACrEj7C,GAAK,8BAA8BotB,EAAQshB,EAAE,EAC7C1hD,EAAI,WAAa,KAAK,IAAI0hD,GAAG,CAAC,EAAGA,GAAG,CAAC,CAAC,EAAIoL,EAC1C9sD,EAAI,OAAOkW,EAAA,KAAK8uC,GAAAgJ,IAAL,UAAoBh3D,EAAMixD,EAAkBwF,EAAuB,CAChF,MACEztD,EAAI,WAAa8sD,EACjB9sD,EAAI,OAAOhJ,CAAI,EAGnBgJ,EAAI,QAAO,CACb,MACM2tD,IAAmBh+C,GAAkB,MAAQg+C,IAAmBh+C,GAAkB,eACpF3P,EAAI,SAASmtC,EAAWh4D,EAAGf,CAAC,GAC5BnF,EAAA,KAAK,oBAAL,MAAAA,EAAwB,oBAAoBu3D,EAAOxmC,EAAKonC,EAAM0lB,EAAU33E,EAAGf,EAAG,IAAM4rB,EAAI,YAAYmtC,CAAS,KAE3GwgB,IAAmBh+C,GAAkB,QAAUg+C,IAAmBh+C,GAAkB,eAClF,KAAK,qBACPzd,EAAA,KAAK,oBAAL,MAAAA,EAAwB,oBAAoBs0C,EAAOxmC,EAAKonC,EAAM0lB,EAAU33E,EAAGf,EAAG,IAAM4rB,EAAI,YAAYmtC,CAAS,GAAG,mBAAmB3G,EAAOgD,GAAa,SAEzJxpC,EAAI,WAAWmtC,EAAWh4D,EAAGf,CAAC,GAG9Bw5E,KACY,KAAK,mBAAL,KAAK,iBAAqB,CAAA,IAClC,KAAK,CACT,UAAW7vC,GAAoB/d,CAAG,EAClC,EAAA7qB,EACA,EAAAf,EACA,SAAA04E,EACA,KAAA91D,CACR,CAAO,GACDoF,EAAA,KAAK,oBAAL,MAAAA,EAAwB,oBAAoBoqC,EAAOxmC,EAAKonC,EAAM0lB,EAAU33E,EAAGf,GAE/E,CACA,IAAI,yBAA0B,CAC5B,MAAMmoE,EAAY,KAAK,cAAc,OAAO,GAAI,EAAE,EAC5Cv8C,EAAMu8C,EAAU,QACtBv8C,EAAI,MAAM,IAAK,CAAC,EAChBA,EAAI,SAAS,IAAK,EAAG,EAAE,EACvB,MAAM9tB,EAAO8tB,EAAI,aAAa,EAAG,EAAG,GAAI,EAAE,EAAE,KAC5C,KAAK,cAAc,QAAQu8C,CAAS,EACpC,IAAIhjD,EAAU,GACd,QAAS/lB,EAAI,EAAGA,EAAItB,EAAK,OAAQsB,GAAK,EACpC,GAAItB,EAAKsB,CAAC,EAAI,GAAKtB,EAAKsB,CAAC,EAAI,IAAK,CAChC+lB,EAAU,GACV,KACF,CAEF,OAAOgY,GAAO,KAAM,0BAA2BhY,CAAO,CACxD,CACA,SAASitC,EAAO0nB,EAAQ,aAClB,KAAK,oBACP,KAAK,kBAAkB,mBAAmB1nB,EAAOgD,GAAa,QAAQ,EAAE,UAAUhD,CAAK,EACnF,KAAK,QAAQ,kBAAoB72B,GAAkB,kBACrD,KAAK,kBAAkB,6BAA6B,WAAY62B,CAAK,EAAE,qDAAoD,GAG/H,MAAMwa,EAAU,KAAK,QACf5Z,EAAO4Z,EAAQ,KACrB,GAAI5Z,EAAK,YAAa,CACpB,MAAMklB,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2BvL,EAAQ,WACnD,KAAK,cAAcxa,EAAO0nB,CAAM,GAChCh/E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,wBAAwBs3D,GAChDtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,GACzB,MACF,CACA,MAAMQ,EAAW9L,EAAQ,SACzB,GAAI8L,IAAa,EAAG,EAClB79E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,gBAAgBu3D,GACxC,MACF,CACA,MAAM8lB,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2BvL,EAAQ,WAC7ChhD,EAAM,KAAK,IACXmuD,EAAgBnN,EAAQ,cACxBoN,EAAcpN,EAAQ,YACtBqN,EAAcrN,EAAQ,YACtBsN,EAAgBtN,EAAQ,cACxBuN,EAAavN,EAAQ,WAAasN,EAClCE,EAAeN,EAAO,OACtBO,EAAWrnB,EAAK,SAChBsnB,EAAaD,EAAW,EAAI,GAC5BE,EAAkBvnB,EAAK,gBACvBwnB,EAAoB9B,EAAW9L,EAAQ,WAAW,CAAC,EACnD6N,EAAiB7N,EAAQ,oBAAsBrxC,GAAkB,MAAQ,CAACy3B,EAAK,iBAAmB,CAAC4Z,EAAQ,YACjHhhD,EAAI,KAAI,EACJghD,EAAQ,YACVhhD,EAAI,UAAU,GAAGghD,EAAQ,UAAU,EAErChhD,EAAI,UAAUghD,EAAQ,EAAGA,EAAQ,EAAIA,EAAQ,QAAQ,EACjDsN,EAAgB,EAClBtuD,EAAI,MAAMuuD,EAAY,EAAE,EAExBvuD,EAAI,MAAMuuD,EAAY,CAAC,EAEzB,IAAIf,EAAsBC,EAC1B,MAAME,EAAiB3M,EAAQ,kBAAoBrxC,GAAkB,iBAC/Dm/C,EAAYnB,IAAmBh+C,GAAkB,MAAQg+C,IAAmBh+C,GAAkB,YAC9Fo/C,EAAcpB,IAAmBh+C,GAAkB,QAAUg+C,IAAmBh+C,GAAkB,YACxG,IAAIq/C,EAAYhO,EAAQ,UACxB,MAAM73C,EAAQ63C,EAAQ,gBAatB,GAZI73C,IAAU,GAAK6lD,IAAc,EAC3BD,IACFC,EAAY,KAAK,oBAAmB,GAGtCA,GAAa7lD,EAEXglD,IAAkB,IACpBnuD,EAAI,MAAMmuD,EAAeA,CAAa,EACtCa,GAAab,GAEfnuD,EAAI,UAAYgvD,EACZF,GAAa9N,EAAQ,YAAa,CACpChhD,EAAI,KAAI,EACR,MAAMyC,EAAUu+C,EAAQ,UAAU,WAAWhhD,EAAK,KAAMge,GAA2Bhe,CAAG,EAAGo7C,GAAS,KAAM5U,CAAK,EAC7GgnB,EAAuBzvC,GAAoB/d,CAAG,EAC9CA,EAAI,QAAO,EACXA,EAAI,UAAYyC,CAClB,CACA,GAAIssD,GAAe/N,EAAQ,cAAe,CACxChhD,EAAI,KAAI,EACR,MAAMyC,EAAUu+C,EAAQ,YAAY,WAAWhhD,EAAK,KAAMge,GAA2Bhe,CAAG,EAAGo7C,GAAS,OAAQ5U,CAAK,EACjHinB,EAAyB1vC,GAAoB/d,CAAG,EAChDA,EAAI,QAAO,EACXA,EAAI,YAAcyC,CACpB,CACA,GAAI2kC,EAAK,mBAAoB,CAC3B,MAAM6nB,EAAQ,CAAA,EACd,IAAIn2C,EAAQ,EACZ,UAAWo2C,KAAShB,EAClBe,EAAM,KAAKC,EAAM,OAAO,EACxBp2C,GAASo2C,EAAM,MAEjB,MAAMC,GAAcF,EAAM,KAAK,EAAE,EAEjC,GADAjvD,EAAI,SAASmvD,GAAa,EAAG,CAAC,EAC1B,KAAK,oBAAsB,KAAM,CACnC,MAAM3mB,EAAUxoC,EAAI,YAAYmvD,EAAW,EAC3C,KAAK,kBAAkB,WAAW3oB,EAAO,KAAK,IAAK,CAACgC,EAAQ,sBAAuBA,EAAQ,uBAAwB,CAACA,EAAQ,wBAAyBA,EAAQ,wBAAwB,EAAE,wBAAwBhC,CAAK,CACtN,CACAwa,EAAQ,GAAKloC,EAAQ81C,EAAoBL,EACzCvuD,EAAI,QAAO,EACX,KAAK,QAAO,EACZkW,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,GACzB,MACF,CACA,IAAIn3E,EAAI,EACN3B,EACF,IAAKA,EAAI,EAAGA,EAAIg7E,EAAc,EAAEh7E,EAAG,CACjC,MAAM07E,EAAQhB,EAAO16E,CAAC,EACtB,GAAI,OAAO07E,GAAU,SAAU,CAC7B/5E,GAAKu5E,EAAaQ,EAAQpC,EAAW,IACrC,QACF,CACA,IAAIsC,EAAgB,GACpB,MAAMrC,IAAWmC,EAAM,QAAUb,EAAc,GAAKD,EAC9CjhB,EAAY+hB,EAAM,SAClBG,GAASH,EAAM,OACrB,IAAII,EAASC,EACTz2C,EAAQo2C,EAAM,MAClB,GAAIT,EAAU,CACZ,MAAMe,EAAUN,EAAM,SAAWP,EAC3Bc,EAAK,EAAEP,EAAM,QAAUM,EAAQ,CAAC,EAAI12C,EAAQ,IAAO81C,EACnDc,GAAKF,EAAQ,CAAC,EAAIZ,EACxB91C,EAAQ02C,EAAU,CAACA,EAAQ,CAAC,EAAI12C,EAChCw2C,EAAUG,EAAKtB,EACfoB,GAAWp6E,EAAIu6E,IAAMvB,CACvB,MACEmB,EAAUn6E,EAAIg5E,EACdoB,EAAU,EAEZ,IAAI/mB,EACJ,GAAIpB,EAAK,WAAatuB,EAAQ,EAAG,CAC/B0vB,EAAUxoC,EAAI,YAAYmtC,CAAS,EACnC,MAAMwiB,EAAgBnnB,EAAQ,MAAQ,IAAOskB,EAAWqB,EACxD,GAAIr1C,EAAQ62C,GAAiB,KAAK,wBAAyB,CACzD,MAAMC,EAAkB92C,EAAQ62C,EAChCP,EAAgB,GAChBpvD,EAAI,KAAI,EACRA,EAAI,MAAM4vD,EAAiB,CAAC,EAC5BN,GAAWM,CACb,MAAW92C,IAAU62C,IACnBL,IAAYx2C,EAAQ62C,GAAiB,IAAO7C,EAAWqB,EAE3D,CACA,GAAI,KAAK,iBAAmBe,EAAM,UAAY9nB,EAAK,cACjD,GAAIynB,GAAkB,CAACQ,GACrBrvD,EAAI,SAASmtC,EAAWmiB,EAASC,CAAO,GACxCr9D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,oBAAoBs0C,EAAOxmC,EAAKwoC,EAAU,CAChE,KAAM,IAClB,EAAcpB,EAAM0lB,EAAWqB,EAAemB,EAASC,EAAS,IAAM/mB,GAAWxoC,EAAI,YAAYmtC,CAAS,WAEhG,KAAK,UAAU3G,EAAO2G,EAAWmiB,EAASC,EAAS/B,EAAsBC,CAAsB,EAC3F4B,GAAQ,CACV,MAAMQ,EAAgBP,EAAUxC,EAAWuC,GAAO,OAAO,EAAIlB,EACvD2B,EAAgBP,EAAUzC,EAAWuC,GAAO,OAAO,EAAIlB,EAC7D,KAAK,UAAU3nB,EAAO6oB,GAAO,SAAUQ,EAAeC,EAAetC,EAAsBC,CAAsB,CACnH,EAGJ,MAAMsC,EAAYtB,EAAW31C,EAAQ81C,EAAoB7B,GAAUuB,EAAgBx1C,EAAQ81C,EAAoB7B,GAAUuB,EACzHn5E,GAAK46E,EACDX,GACFpvD,EAAI,QAAO,CAEf,CACIyuD,EACFzN,EAAQ,GAAK7rE,EAEb6rE,EAAQ,GAAK7rE,EAAIo5E,EAEnBvuD,EAAI,QAAO,EACX,KAAK,QAAO,GACZ5D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,wBAAwBoqC,GAChDtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,cAAc9lB,EAAO0nB,EAAQ,CAC3B,MAAMluD,EAAM,KAAK,IACXghD,EAAU,KAAK,QACf5Z,EAAO4Z,EAAQ,KACf8L,EAAW9L,EAAQ,SACnBsN,EAAgBtN,EAAQ,cACxB0N,EAAatnB,EAAK,SAAW,EAAI,GACjCgnB,EAAcpN,EAAQ,YACtBqN,EAAcrN,EAAQ,YACtBuN,EAAavN,EAAQ,WAAasN,EAClC0B,EAAahP,EAAQ,YAAc9xC,GACnCs/C,EAAeN,EAAO,OACtB+B,EAAkBjP,EAAQ,oBAAsBrxC,GAAkB,UACxE,IAAIn8B,EAAG07E,EAAOp2C,EAAOo3C,EACrB,GAAID,GAAmBnD,IAAa,EAClC,OAEF,KAAK,wBAAwB,CAAC,EAAI,GAClC,KAAK,2BAA6B,KAClC9sD,EAAI,KAAI,EACJghD,EAAQ,YACVhhD,EAAI,UAAU,GAAGghD,EAAQ,UAAU,EAErChhD,EAAI,UAAUghD,EAAQ,EAAGA,EAAQ,EAAIA,EAAQ,QAAQ,EACrDhhD,EAAI,MAAMuuD,EAAYD,CAAa,EACnC,MAAMtlB,EAAoB,KAAK,kBAE/B,IADA,KAAK,kBAAoBA,EAAoB,IAAIO,GAA8BP,EAAmBxC,CAAK,EAAI,KACtGhzD,EAAI,EAAGA,EAAIg7E,EAAc,EAAEh7E,EAAG,CAEjC,GADA07E,EAAQhB,EAAO16E,CAAC,EACZ,OAAO07E,GAAU,SAAU,CAC7BgB,EAAgBxB,EAAaQ,EAAQpC,EAAW,IAChD,KAAK,IAAI,UAAUoD,EAAe,CAAC,EACnClP,EAAQ,GAAKkP,EAAgB3B,EAC7B,QACF,CACA,MAAMxB,GAAWmC,EAAM,QAAUb,EAAc,GAAKD,EAC9CtI,EAAe1e,EAAK,qBAAqB8nB,EAAM,cAAc,EAC9DpJ,EAEM,KAAK,iBACd,KAAK,KAAI,EACLA,EAAa,QAAQ,CAAC,IAAM91C,GAAI,eAClCgxC,EAAQ,UAAYA,EAAQ,YAAc,EAC1ChhD,EAAI,YAAc,GAEpBA,EAAI,MAAM8sD,EAAUA,CAAQ,EAC5B9sD,EAAI,UAAU,GAAGgwD,CAAU,EAC3B,KAAK,oBAAoBlK,CAAY,EACrC,KAAK,QAAO,GAVZt1C,GAAK,oBAAoB0+C,EAAM,cAAc,qBAAqB,EAYpE,MAAMn7E,EAAI,CAACm7E,EAAM,MAAO,CAAC,EACzBl8C,GAAK,eAAej/B,EAAGi8E,CAAU,EACjCl3C,EAAQ/kC,EAAE,CAAC,EAAI+4E,EAAWC,EAC1B/sD,EAAI,UAAU8Y,EAAO,CAAC,EACtBkoC,EAAQ,GAAKloC,EAAQy1C,CACvB,CACAvuD,EAAI,QAAO,EACPgpC,IACF,KAAK,kBAAoBA,EAE7B,CACA,aAAaxC,EAAO2pB,EAAQC,EAAQ,CAAC,CACrC,sBAAsB5pB,EAAO2pB,EAAQC,EAAQC,EAAKC,EAAKC,EAAKC,EAAK,OAC/D,MAAM1P,EAAO,IAAI,OACjBA,EAAK,KAAKuP,EAAKC,EAAKC,EAAMF,EAAKG,EAAMF,CAAG,EACxC,KAAK,IAAI,KAAKxP,CAAI,GAClB5xE,EAAA,KAAK,oBAAL,MAAAA,EAAwB,WAAWs3D,EAAO,KAAK,IAAK6pB,EAAKE,EAAKD,EAAKE,GAAK,cAAchqB,EAAO,KAAK,IAAK6pB,EAAKE,EAAKD,EAAKE,GACtH,KAAK,QAAQhqB,CAAK,CACpB,CACA,kBAAkBA,EAAOiV,EAAI,CAC3B,IAAIh5C,EACJ,GAAIg5C,EAAG,CAAC,IAAM,gBAAiB,CAC7B,MAAMuD,EAAgB,KAAK,eAAiBjhC,GAAoB,KAAK,GAAG,EAClEghC,EAAwB,CAC5B,qBAAsB,CAAC/+C,EAAKywD,IAAmB,IAAIjM,GAAexkD,EAAK,KAAK,WAAY,KAAK,KAAM,KAAK,cAAe,KAAK,cAAe,CACzI,sBAAuB,KAAK,sBAC5B,mBAAoB,KAAK,kBACnC,EAAW,OAAW,OAAW,KAAK,kBAAoB,IAAIupC,GAA8B,KAAK,kBAAmBknB,EAAgB,EAAI,EAAI,IAAI,CAChJ,EACMhuD,EAAU,IAAI0+C,GAAc1F,EAAI,KAAK,IAAKsD,EAAuBC,CAAa,CAChF,MACEv8C,EAAU,KAAK,YAAY+jC,EAAOiV,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,EAEhD,OAAOh5C,CACT,CACA,gBAAgB+jC,KAAUzzC,EAAM,QAC9B7jB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,cAAes3D,GACxD,KAAK,QAAQ,YAAc,KAAK,kBAAkBA,EAAOzzC,CAAI,EAC7D,KAAK,QAAQ,cAAgB,EAC/B,CACA,cAAcyzC,KAAUzzC,EAAM,QAC5B7jB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,YAAas3D,GACtD,MAAM/jC,EAAU,KAAK,QAAQ,UAAY,KAAK,kBAAkB+jC,EAAOzzC,CAAI,EAC3E,KAAK,QAAQ,YAAc,GAC3B,KAAK,QAAQ,kBAAoB0P,aAAmB0+C,GAAgB,CAAC,EAAG,EAAG,EAAG,CAAC,EAAI,IACrF,CACA,kBAAkB3a,EAAOjpB,EAAO,QAC9BruC,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,cAAes3D,GACxD,KAAK,IAAI,YAAc,KAAK,QAAQ,YAAcjpB,EAClD,KAAK,QAAQ,cAAgB,EAC/B,CACA,qBAAqBipB,EAAO,QAC1Bt3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,cAAes3D,GACxD,KAAK,IAAI,YAAc,KAAK,QAAQ,YAAc,cAClD,KAAK,QAAQ,cAAgB,EAC/B,CACA,gBAAgBA,EAAOjpB,EAAO,QAC5BruC,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,YAAas3D,GACtD,KAAK,IAAI,UAAY,KAAK,QAAQ,UAAYjpB,EAC9C,KAAK,QAAQ,YAAc,GAC3B,KAAK,QAAQ,kBAAoB,IACnC,CACA,mBAAmBipB,EAAO,QACxBt3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiB,YAAas3D,GACtD,KAAK,IAAI,UAAY,KAAK,QAAQ,UAAY,cAC9C,KAAK,QAAQ,YAAc,GAC3B,KAAK,QAAQ,kBAAoB,IACnC,CACA,YAAYA,EAAO4G,EAAOp4B,EAAS,KAAM,CACvC,MAAMvS,EAAU,KAAK,eAAe,oBAAoB2qC,EAAO,IAAMwR,GAAkB,KAAK,UAAUpY,EAAO4G,CAAK,CAAC,CAAC,EACpH,OAAIp4B,IACFvS,EAAQ,OAASuS,GAEZvS,CACT,CACA,YAAY+jC,EAAO4G,EAAO,OACxB,GAAI,CAAC,KAAK,eACR,OAEF,MAAMkf,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WAClDvsD,EAAM,KAAK,IACjB,KAAK,KAAKwmC,CAAK,EACf,MAAM/jC,EAAU,KAAK,YAAY+jC,EAAO4G,CAAK,EAC7CptC,EAAI,UAAYyC,EAAQ,WAAWzC,EAAK,KAAMge,GAA2Bhe,CAAG,EAAGo7C,GAAS,QAAS5U,CAAK,EACtG,MAAMgZ,EAAMxhC,GAA2Bhe,CAAG,EAC1C,GAAIw/C,EAAK,CACP,KAAM,CACJ,MAAA1mC,EACA,OAAAC,CACR,EAAU/Y,EAAI,OACFyV,EAASxG,GAAc,MAAK,EAClC+D,GAAK,wBAAwB,CAAC,EAAG,EAAG8F,EAAOC,CAAM,EAAGymC,EAAK/pC,CAAM,EAC/D,KAAM,CAACC,EAAIC,EAAIC,EAAIC,CAAE,EAAIJ,EACzB,KAAK,IAAI,SAASC,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,CAAE,CAC5C,MACE,KAAK,IAAI,SAAS,MAAO,MAAO,KAAM,IAAI,GAE5CzmC,EAAA,KAAK,oBAAL,MAAAA,EAAwB,UAAUs3D,GAAO,mBAAmBA,GAAO,mBAAmBA,EAAOgD,GAAa,WAAW,mBAAmBhD,EAAOgD,GAAa,MAAM,gBAAgBhD,GAClL,KAAK,QAAQ,KAAK,QAAQ,0BAAyB,CAAE,EACrD,KAAK,QAAQA,CAAK,EAClBtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,kBAAmB,CACjB77C,GAAY,kCAAkC,CAChD,CACA,gBAAiB,CACfA,GAAY,gCAAgC,CAC9C,CACA,sBAAsB+1B,EAAOxxB,EAAQqwB,EAAM,OACzC,GAAK,KAAK,iBAGV,KAAK,KAAKmB,CAAK,EACf,KAAK,mBAAmB,KAAK,KAAK,aAAa,EAC3CxxB,GACF,KAAK,UAAUwxB,EAAO,GAAGxxB,CAAM,EAEjC,KAAK,cAAgB+I,GAAoB,KAAK,GAAG,EAC7CsnB,GAAM,CACRryB,GAAK,wBAAwBqyB,EAAM,KAAK,cAAe,KAAK,QAAQ,MAAM,EAC1E,KAAM,CAAC3vB,EAAIC,EAAIC,EAAIC,CAAE,EAAIwvB,EACnByb,EAAO,IAAI,OACjBA,EAAK,KAAKprC,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,CAAE,EAClC,KAAK,IAAI,KAAKmrC,CAAI,GAClB5xE,EAAA,KAAK,oBAAL,MAAAA,EAAwB,cAAcs3D,EAAO,KAAK,IAAK9wB,EAAIE,EAAID,EAAIE,GACnE,KAAK,QAAQ2wB,CAAK,CACpB,CACF,CACA,oBAAoBA,EAAO,CACpB,KAAK,iBAGV,KAAK,QAAQA,CAAK,EAClB,KAAK,cAAgB,KAAK,mBAAmB,IAAG,EAClD,CACA,WAAWA,EAAOkqB,EAAO,OACvB,GAAI,CAAC,KAAK,eACR,OAEF,KAAK,KAAKlqB,CAAK,EACf,KAAM,CACJ,YAAA4iB,CACN,EAAQ,KACAA,IACF,KAAK,aAAY,EACjB,KAAK,QAAQ,YAAc,MAE7B,MAAMuH,EAAa,KAAK,IACxB,IAAK,CAACD,EAAM,gBAAkB,CAACA,EAAM,UAAY,CAACA,EAAM,cAAgB,CAACA,EAAM,UAAY,CAACA,EAAM,QAAUp0C,EAAA,KAAK2oC,MAAwB,GAAK0L,EAAW,cAAgB,GAAKA,EAAW,2BAA6B,eAAiB,CAACvH,EAAa,CACnP,GAAIsH,EAAM,KAAM,CACd,IAAI5P,EAAO,IAAI,OACf,KAAM,CAACprC,EAAIC,EAAIC,EAAIC,CAAE,EAAI66C,EAAM,KAE/B,GADA5P,EAAK,KAAKprC,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,CAAE,EAC9B+6C,EAAM,OAAQ,CAChB,MAAM15D,EAAO,IAAI,OACjBA,EAAK,QAAQ8pD,EAAM,IAAI,UAAU4P,EAAM,MAAM,CAAC,EAC9C5P,EAAO9pD,CACT,CACA25D,EAAW,KAAK7P,CAAI,CACtB,CACA,KAAK,WAAW,KAAK,IAAI,EACzBxkC,EAAA,KAAKopC,IAAgB,KAAK,IAAI,EAC9B,KAAK,aACL,MACF,CACI,CAACgL,EAAM,UAAY,CAACA,EAAM,UAAYp0C,EAAA,KAAK2oC,MAAwB,GACrE30C,GAAK,uDAAuD,EAE9D,MAAM23C,EAAmBlqC,GAAoB4yC,CAAU,EACnDD,EAAM,QACRC,EAAW,UAAU,GAAGD,EAAM,MAAM,EAEtC,MAAME,EAAe,CAAC,EAAG,EAAGD,EAAW,OAAO,MAAOA,EAAW,OAAO,MAAM,EAC7E,IAAI1gB,EACAygB,EAAM,MACRzgB,EAAShhC,GAAc,MAAK,EAC5B+D,GAAK,wBAAwB09C,EAAM,KAAM3yC,GAAoB4yC,CAAU,EAAG1gB,CAAM,EAChFA,EAASj9B,GAAK,UAAUi9B,EAAQ2gB,CAAY,GAAK,CAAC,EAAG,EAAG,EAAG,CAAC,GAE5D3gB,EAAS2gB,EAEX,MAAMz4C,EAAU,KAAK,MAAM83B,EAAO,CAAC,CAAC,EAC9B73B,EAAU,KAAK,MAAM63B,EAAO,CAAC,CAAC,EAC9BuY,EAAa,KAAK,IAAI,KAAK,KAAKvY,EAAO,CAAC,CAAC,EAAI93B,EAAS,CAAC,EACvDswC,EAAc,KAAK,IAAI,KAAK,KAAKxY,EAAO,CAAC,CAAC,EAAI73B,EAAS,CAAC,EAC9D,KAAK,QAAQ,uBAAuB,CAAC,EAAG,EAAGowC,EAAYC,CAAW,CAAC,EACnE,MAAMgC,EAAgB,KAAK,cAAc,OAAOjC,EAAYC,CAAW,EACnEiI,EAAM,OACR,KAAK,mBAAmB,KAAKjG,CAAa,EAE5C,MAAMoG,EAAWpG,EAAc,QACzBqG,EAAcJ,EAAM,UAAY,CAACA,EAAM,SAAWC,EAAa,KAC/DI,EAAmB,CAACL,EAAM,UAAY,CAACA,EAAM,UAAY,CAACA,EAAM,OAASA,EAAM,gBAAkBp0C,EAAA,KAAK2oC,IAAsB,EAC5H+L,EAAoBN,EAAM,SAAW,KAAK,cAAc,OAAOlI,EAAYC,CAAW,EAAI,KAC1FwI,EAAqB30C,EAAA,KAAK2oC,IAC5ByL,EAAM,SACRprC,GAAA,KAAK2/B,IAAL,IAEAroC,EAAA,KAAKqoC,GAAsB,GAE7B4L,EAAS,UAAU,CAAC14C,EAAS,CAACC,CAAO,EACrCy4C,EAAS,UAAU,GAAG5I,CAAgB,EACtC,MAAMiJ,EAAoB,CAACR,EAAM,UAAY,CAACA,EAAM,OAASA,EAAM,eAC7DS,EAAkBD,GAAqB,CAAC9H,GAAe6H,IAAuB,GAAK,CAACP,EAAM,UAAY,CAACA,EAAM,QAAUA,EAAM,aAAeC,EAAW,cAAgB,GAAKA,EAAW,2BAA6B,eAAiB,KAAK,QAAQ,eAAiB,OAOzQ,GANIO,IAAsB9H,GAAe+H,KACvCN,EAAS,KAAI,EACbA,EAAS,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtCA,EAAS,UAAUF,EAAW,OAAQ,CAACx4C,EAAS,CAACC,CAAO,EACxDy4C,EAAS,QAAO,GAEdH,EAAM,KAAM,CACd,IAAI5P,EAAO,IAAI,OACf,KAAM,CAACprC,EAAIC,EAAIC,EAAIC,CAAE,EAAI66C,EAAM,KAE/B,GADA5P,EAAK,KAAKprC,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,CAAE,EAC9B+6C,EAAM,OAAQ,CAChB,MAAM15D,EAAO,IAAI,OACjBA,EAAK,QAAQ8pD,EAAM,IAAI,UAAU4P,EAAM,MAAM,CAAC,EAC9C5P,EAAO9pD,CACT,CACA65D,EAAS,KAAK/P,CAAI,CACpB,CACI4P,EAAM,OACR,KAAK,WAAW,KAAK,CACnB,OAAQjG,EAAc,OACtB,QAASoG,EACT,QAAA14C,EACA,QAAAC,EACA,QAASs4C,EAAM,MAAM,QACrB,SAAUA,EAAM,MAAM,SACtB,YAAaA,EAAM,MAAM,aAAe,IAChD,CAAO,GAEC,CAACA,EAAM,OAAS,KAAK,qBACvBC,EAAW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACxCA,EAAW,UAAUx4C,EAASC,CAAO,EACrCu4C,EAAW,KAAI,GAEjB9M,GAAa8M,EAAYE,CAAQ,EACjC,KAAK,IAAMA,GACX3hF,EAAA,KAAK,oBAAL,MAAAA,EAAwB,4CAA4C,CAAC,YAAa,cAAe,0BAA0B,GAAG,kBAAkByhF,GAChJ,KAAK,UAAUnqB,EAAO,CAAC,CAAC,KAAM,aAAa,EAAG,CAAC,KAAM,CAAC,EAAG,CAAC,KAAM,CAAC,EAAG,CAAC,KAAM,IAAI,CAAC,CAAC,EACjF,KAAK,WAAW,KAAKmqB,CAAU,EAC/Br0C,EAAA,KAAKopC,IAAgB,KAAK,CACxB,YAAAoL,EACA,mBAAAG,EACA,QAAA94C,EACA,QAAAC,EACA,iBAAA24C,EACA,gBAAAI,EACA,kBAAAH,EACA,kBAAmB,KACnB,sBAAuB,IAC7B,CAAK,EACD,KAAK,YACP,CACA,SAASxqB,EAAOkqB,EAAO,OACrB,GAAI,CAAC,KAAK,eACR,OAEF,KAAK,aACL,MAAMG,EAAW,KAAK,IAChB7wD,EAAM,KAAK,WAAW,IAAG,EACzBoxD,EAAY90C,EAAA,KAAKopC,IAAgB,IAAG,EAI1C,GAHI0L,GACFx0C,EAAA,KAAKqoC,GAAsBmM,EAAU,oBAEnCpxD,IAAQ,KAAM,CAChB,KAAK,QAAQwmC,CAAK,EAClB,MACF,CAOA,GANIkqB,EAAM,QACRx6C,EAAA,KAAK8uC,GAAAqM,IAAL,UAAyBR,GAE3B,KAAK,IAAM7wD,EACX,KAAK,IAAI,sBAAwB,IACjC9wB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBACpBwhF,EAAM,MACR,KAAK,UAAY,KAAK,WAAW,IAAG,EACpC,KAAK,QAAQlqB,CAAK,EACd,KAAK,oBACP,KAAK,IAAI,QAAO,EACZ,KAAK,aACP,KAAK,IAAI,aAAa,KAAK,aAAa,aAAY,CAAE,GAG1DtwB,EAAA,KAAK8uC,GAAA+B,IAAL,UAA2BqK,OACtB,CACL,KAAK,IAAI,QAAO,EAChB,MAAME,EAAavzC,GAAoB,KAAK,GAAG,EAC/C,KAAK,QAAQyoB,CAAK,EAClB,KAAK,IAAI,KAAI,EACb,KAAK,IAAI,aAAa,GAAG8qB,CAAU,EACnC,MAAM5G,EAAWz7C,GAAc,MAAK,EACpC+D,GAAK,wBAAwB,CAAC,EAAG,EAAG69C,EAAS,OAAO,MAAOA,EAAS,OAAO,MAAM,EAAGS,EAAY5G,CAAQ,EACxG,MAAM6G,EAAkBj1C,EAAA,KAAKopC,IAAgB,GAAG,EAAE,EAClD,GAAIppC,EAAA,KAAK2oC,IAAsB,EAC7B,GAAImM,EAAU,iBAAkB,CAC9B,KAAM,CACJ,MAAAt4C,EACA,OAAAC,CACZ,EAAc83C,EAAS,OACPW,EAAa,KAAK,cAAc,OAAO14C,EAAOC,CAAM,EACpD04C,EAAWD,EAAW,QAC5BC,EAAS,UAAUzxD,EAAI,OAAQoxD,EAAU,QAASA,EAAU,QAASt4C,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,CAAM,EACvG04C,EAAS,yBAA2B,cACpCA,EAAS,UAAUZ,EAAS,OAAQ,EAAG,CAAC,EACxC,MAAMa,EAAiBx7C,EAAA,KAAK8uC,GAAA2M,IAAL,UAA+Bd,EAAS,QAC/DY,EAAS,yBAA2B,iBACpCA,EAAS,UAAUC,EAAe,OAAQ,EAAG,CAAC,EAC9C,MAAME,EAA2B,KAAK,IAAI,yBACpCC,EAAc,KAAK,IAAI,YACvBC,EAAe,KAAK,IAAI,OAC9B,KAAK,IAAI,KAAI,EACb,KAAK,IAAI,aAAa,GAAGR,CAAU,EACnC,KAAK,IAAI,YAAc,EACnB1+C,GAAY,0BACd,KAAK,IAAI,OAAS,QAEpB,KAAK,IAAI,yBAA2B,kBACpC,KAAK,IAAI,UAAU8+C,EAAe,OAAQ,EAAG,CAAC,EAC9C,KAAK,IAAI,yBAA2BE,EACpC,KAAK,IAAI,YAAcC,EACnBj/C,GAAY,0BACd,KAAK,IAAI,OAASk/C,GAAgB,QAEpC,KAAK,IAAI,UAAUN,EAAW,OAAQ,EAAG,CAAC,EAC1C,KAAK,IAAI,QAAO,EAChB,KAAK,cAAc,QAAQE,CAAc,EACzC,KAAK,cAAc,QAAQF,CAAU,CACvC,KAAO,CACL,MAAMV,GAAcS,GAAA,YAAAA,EAAiB,cAAe,KACpDr7C,EAAA,KAAK8uC,GAAA+M,IAAL,UAA+B,KAAK,IAAKlB,EAAS,OAAQ,CACxD,gBAAgBC,GAAA,YAAAA,EAAa,SAAU,KACvC,cAAeQ,EACf,eAAgBR,EAAc,CAACS,EAAgB,QAAUH,EAAU,QAASG,EAAgB,QAAUH,EAAU,OAAO,EAAI,CAAC,EAAG,CAAC,EAChI,YAAa,KAAK,IAAI,YACtB,aAAc,KAAK,IAAI,MACnC,EACQ,KACK,CACL,GAAIA,EAAU,gBAAiB,CAC7B,MAAMtQ,EAAO,IAAI,OACjBA,EAAK,KAAK,EAAG,EAAG+P,EAAS,OAAO,MAAOA,EAAS,OAAO,MAAM,EAC7D,KAAK,IAAI,KAAK/P,CAAI,EAClB,KAAK,IAAI,yBAA2B,MACtC,CACA,KAAK,IAAI,UAAU+P,EAAS,OAAQ,EAAG,CAAC,CAC1C,CACA,KAAK,IAAI,QAAO,EAChB,KAAK,cAAc,QAAQ,CACzB,OAAQA,EAAS,OACjB,QAASA,CACjB,CAAO,EACD36C,EAAA,KAAK8uC,GAAA+B,IAAL,UAA2BqK,GAC3B,KAAK,QAAQ1G,CAAQ,CACvB,CACF,CA8CA,gBAAgBlkB,EAAOzuC,EAAI+b,EAAMP,EAAWyB,EAAQg9C,EAAcC,EAAY,CAQ5E,GAPA/7C,EAAA,KAAK8uC,GAAA6B,IAAL,WACA7C,GAAkB,KAAK,GAAG,EAC1B,KAAK,IAAI,KAAI,EACb,KAAK,KAAKxd,CAAK,EACX,KAAK,eACP,KAAK,IAAI,aAAa,GAAG,KAAK,aAAa,EAEzC1yB,EAAM,CACR,MAAMgF,EAAQhF,EAAK,CAAC,EAAIA,EAAK,CAAC,EACxBiF,EAASjF,EAAK,CAAC,EAAIA,EAAK,CAAC,EAC/B,GAAIk+C,GAAgB,KAAK,oBAAqB,CAC5Cz+C,EAAYA,EAAU,MAAK,EAC3BA,EAAU,CAAC,GAAKO,EAAK,CAAC,EACtBP,EAAU,CAAC,GAAKO,EAAK,CAAC,EACtBA,EAAOA,EAAK,MAAK,EACjBA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,EACpBA,EAAK,CAAC,EAAIgF,EACVhF,EAAK,CAAC,EAAIiF,EACV/F,GAAK,8BAA8B+K,GAAoB,KAAK,GAAG,EAAG2jC,EAAE,EACpE,KAAM,CACJ,cAAAwQ,CACV,EAAY,KACE/R,EAAc,KAAK,KAAKrnC,EAAQ,KAAK,aAAeo5C,CAAa,EACjE9R,EAAe,KAAK,KAAKrnC,EAAS,KAAK,aAAem5C,CAAa,EACzE,KAAK,iBAAmB,KAAK,cAAc,OAAO/R,EAAaC,CAAY,EAC3E,KAAM,CACJ,OAAAl6B,EACA,QAAAiY,CACV,EAAY,KAAK,iBACT,GAAI8zB,EAAY,CACd,MAAME,EAAW,KAAK,oBAAoB,oBAAoBp6D,EAAIwf,EAAO,EACzE2O,EAAO,aAAa,mBAAoB+rC,CAAU,EAClD,MAAMv8D,EAAQy8D,EAAS,UAAUv+E,GAAKA,EAAE,aAAa,kBAAkB,IAAMq+E,CAAU,EACnFv8D,IAAU,GACZy8D,EAAS,KAAKjsC,CAAM,EAEpBisC,EAASz8D,CAAK,EAAIwwB,CAEtB,MACE,KAAK,oBAAoB,IAAInuB,EAAImuB,CAAM,EAEzC,KAAK,iBAAiB,SAAW,KAAK,IACtC,KAAK,IAAMiY,EACX,KAAK,IAAI,KAAI,EACb,KAAK,IAAI,aAAaujB,GAAG,CAAC,EAAG,EAAG,EAAG,CAACA,GAAG,CAAC,EAAG,EAAG3oC,EAAS2oC,GAAG,CAAC,CAAC,EAC5DsC,GAAkB,KAAK,GAAG,CAC5B,KAAO,CACLA,GAAkB,KAAK,GAAG,EAC1B,KAAK,QAAQxd,CAAK,EAClB,MAAMsa,EAAO,IAAI,OACjBA,EAAK,KAAKhtC,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGgF,EAAOC,CAAM,EACzC,KAAK,IAAI,KAAK+nC,CAAI,CACpB,CACF,CACA,KAAK,QAAU,IAAImC,GAAiB,KAAK,IAAI,OAAO,MAAO,KAAK,IAAI,OAAO,MAAM,EACjF,KAAK,mBAAmB,KAAK,KAAK,aAAa,EAC/C,KAAK,UAAUzc,EAAO,GAAGjzB,CAAS,EAClC,KAAK,UAAUizB,EAAO,GAAGxxB,CAAM,EAC/B,KAAK,cAAgB+I,GAAoB,KAAK,GAAG,CACnD,CACA,cAAcyoB,EAAO,CACf,KAAK,mBACP,KAAK,IAAI,QAAO,EAChBtwB,EAAA,KAAK8uC,GAAAiC,IAAL,WACA,KAAK,IAAM,KAAK,iBAAiB,SACjC,OAAO,KAAK,iBAAiB,SAC7B,OAAO,KAAK,kBAEd,KAAK,cAAgB,KAAK,mBAAmB,IAAG,CAClD,CACA,sBAAsBzgB,EAAO0gB,EAAK,OAChC,GAAI,CAAC,KAAK,eACR,OAEF,MAAMkL,EAAQlL,EAAI,MAClBA,EAAM,KAAK,UAAU1gB,EAAO0gB,EAAI,KAAMA,CAAG,EACzCA,EAAI,MAAQkL,EACZ,MAAM9F,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WAClDvsD,EAAM,KAAK,IACXqyD,EAAO,KAAK,kBAAkB7rB,EAAO0gB,CAAG,EACxCkB,EAAaiK,EAAK,OACxBryD,EAAI,KAAI,EACRA,EAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjCA,EAAI,UAAUooD,EAAYiK,EAAK,QAASA,EAAK,OAAO,GACpDnjF,EAAA,KAAK,oBAAL,MAAAA,EAAwB,UAAUs3D,GAAO,WAAWA,EAAO,KAAK,IAAK6rB,EAAK,QAASA,EAAK,QAAUjK,EAAW,MAAOiK,EAAK,QAASA,EAAK,QAAUjK,EAAW,QAAQ,gBAAgB5hB,GACpLxmC,EAAI,QAAO,EACPqyD,EAAK,aACP,KAAK,cAAc,QAAQA,EAAK,WAAW,EAE7C,KAAK,QAAO,EACZn8C,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,4BAA4B9lB,EAAO0gB,EAAK/hB,EAAQmtB,EAAQ,EAAGC,EAAQ,EAAGntB,EAAQotB,EAAW,WACvF,GAAI,CAAC,KAAK,eACR,OAEFtL,EAAM,KAAK,UAAU1gB,EAAO0gB,EAAI,KAAMA,CAAG,EACzC,MAAMoF,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WAClDvsD,EAAM,KAAK,IACjBA,EAAI,KAAI,EACR,MAAMioD,EAAmBlqC,GAAoB/d,CAAG,EAChDA,EAAI,UAAUmlC,EAAQmtB,EAAOC,EAAOntB,EAAQ,EAAG,CAAC,EAChD,MAAMitB,EAAO,KAAK,kBAAkB7rB,EAAO0gB,CAAG,EAC9ClnD,EAAI,aAAa,EAAG,EAAG,EAAG,EAAGqyD,EAAK,QAAUpK,EAAiB,CAAC,EAAGoK,EAAK,QAAUpK,EAAiB,CAAC,CAAC,GACnG/4E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,UAAUs3D,GAClC,QAAShzD,EAAI,EAAG2Q,EAAKquE,EAAU,OAAQh/E,EAAI2Q,EAAI3Q,GAAK,EAAG,CACrD,MAAMi/E,EAAQz/C,GAAK,UAAUi1C,EAAkB,CAAC9iB,EAAQmtB,EAAOC,EAAOntB,EAAQotB,EAAUh/E,CAAC,EAAGg/E,EAAUh/E,EAAI,CAAC,CAAC,CAAC,EAC7GwsB,EAAI,UAAUqyD,EAAK,OAAQI,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,GAC7CxjF,EAAA,KAAK,oBAAL,MAAAA,EAAwB,WAAWu3D,EAAO,KAAK,IAAKisB,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAIJ,EAAK,OAAO,MAAOI,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAIJ,EAAK,OAAO,OAC/H,CACAryD,EAAI,QAAO,EACPqyD,EAAK,aACP,KAAK,cAAc,QAAQA,EAAK,WAAW,EAE7C,KAAK,QAAO,GACZngE,EAAA,KAAK,oBAAL,MAAAA,EAAwB,gBAAgBs0C,GACxCtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,2BAA2B9lB,EAAOksB,EAAQ,WACxC,GAAI,CAAC,KAAK,eACR,OAEF,MAAMpG,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WAClDvsD,EAAM,KAAK,IACX+nD,EAAY,KAAK,QAAQ,UACzBC,EAAgB,KAAK,QAAQ,aACnC94E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,UAAUs3D,GAAO,mBAAmBA,EAAOgD,GAAa,kBAChF,UAAW7jB,KAAS+sC,EAAQ,CAC1B,KAAM,CACJ,KAAAxgF,EACA,MAAA4mC,EACA,OAAAC,EACA,UAAAxF,CACR,EAAUoS,EACEyiC,EAAa,KAAK,cAAc,OAAOtvC,EAAOC,CAAM,EACpD+yC,EAAU1D,EAAW,QAC3B0D,EAAQ,KAAI,EACZ,MAAM5E,EAAM,KAAK,UAAU1gB,EAAOt0D,EAAMyzC,CAAK,EAC7Ci+B,GAAmBkI,EAAS5E,CAAG,EAC/B4E,EAAQ,yBAA2B,YACnCA,EAAQ,UAAY9D,EAAgBD,EAAU,WAAW+D,EAAS,KAAM9tC,GAA2Bhe,CAAG,EAAGo7C,GAAS,KAAM5U,CAAK,EAAIuhB,EACjI+D,EAAQ,SAAS,EAAG,EAAGhzC,EAAOC,CAAM,EACpC+yC,EAAQ,QAAO,EACf9rD,EAAI,KAAI,EACRA,EAAI,UAAU,GAAGuT,CAAS,EAC1BvT,EAAI,MAAM,EAAG,EAAE,EACf+hD,GAAyB/hD,EAAKooD,EAAW,OAAQ,EAAG,EAAGtvC,EAAOC,EAAQ,EAAG,GAAI,EAAG,CAAC,EACjF,KAAK,cAAc,QAAQqvC,CAAU,GACrCn5E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,WAAWu3D,EAAOxmC,EAAK,EAAG8Y,EAAO,EAAGC,GAC5D/Y,EAAI,QAAO,CACb,CACA,KAAK,QAAO,GACZ9N,EAAA,KAAK,oBAAL,MAAAA,EAAwB,gBAAgBs0C,GACxCtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,kBAAkB9lB,EAAO4G,EAAO,CAC9B,GAAI,CAAC,KAAK,eACR,OAEF,MAAMkW,EAAU,KAAK,UAAU9c,EAAO4G,CAAK,EAC3C,GAAI,CAACkW,EAAS,CACZ9yC,GAAK,iCAAiC,EACtC,MACF,CACA,KAAK,wBAAwBg2B,EAAO8c,CAAO,CAC7C,CACA,wBAAwB9c,EAAO4G,EAAOjI,EAAQC,EAAQotB,EAAW,CAC/D,GAAI,CAAC,KAAK,eACR,OAEF,MAAMlP,EAAU,KAAK,UAAU9c,EAAO4G,CAAK,EAC3C,GAAI,CAACkW,EAAS,CACZ9yC,GAAK,iCAAiC,EACtC,MACF,CACA,MAAMsI,EAAQwqC,EAAQ,MAChBvqC,EAASuqC,EAAQ,OACjBr1B,EAAM,CAAA,EACZ,QAASz6C,EAAI,EAAG2Q,EAAKquE,EAAU,OAAQh/E,EAAI2Q,EAAI3Q,GAAK,EAClDy6C,EAAI,KAAK,CACP,UAAW,CAACkX,EAAQ,EAAG,EAAGC,EAAQotB,EAAUh/E,CAAC,EAAGg/E,EAAUh/E,EAAI,CAAC,CAAC,EAChE,EAAG,EACH,EAAG,EACH,EAAGslC,EACH,EAAGC,CACX,CAAO,EAEH,KAAK,6BAA6BytB,EAAO8c,EAASr1B,CAAG,CACvD,CACA,0BAA0BjuB,EAAK,CAC7B,OAAI,KAAK,QAAQ,eAAiB,SAChCA,EAAI,OAAS,KAAK,QAAQ,aAC1BA,EAAI,UAAUA,EAAI,OAAQ,EAAG,CAAC,EAC9BA,EAAI,OAAS,QAERA,EAAI,MACb,CACA,0BAA0BsjD,EAAS,CACjC,GAAI,KAAK,QAAQ,eAAiB,OAChC,MAAO,CACL,IAAKA,EAAQ,OACb,YAAa,IACrB,EAEI,KAAM,CACJ,OAAAl9B,EACA,MAAAtN,EACA,OAAAC,CACN,EAAQuqC,EACE/G,EAAY,KAAK,cAAc,OAAOzjC,EAAOC,CAAM,EACnDyjC,EAASD,EAAU,QACzB,OAAAC,EAAO,OAAS,KAAK,QAAQ,aAC7BA,EAAO,UAAUp2B,EAAQ,EAAG,CAAC,EAC7Bo2B,EAAO,OAAS,OACT,CACL,IAAKD,EAAU,OACf,YAAaA,CACnB,CACE,CACA,wBAAwB/V,EAAO8c,EAAS,OACtC,GAAI,CAAC,KAAK,eACR,OAEF,MAAMxqC,EAAQwqC,EAAQ,MAChBvqC,EAASuqC,EAAQ,OACjBgJ,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WAClDvsD,EAAM,KAAK,IACjB,KAAK,KAAKwmC,CAAK,EACf,KAAM,CACJ,OAAAqO,CACN,EAAQ70C,EACA60C,IAAW,QAAUA,IAAW,KAClC70C,EAAI,OAAS,QAEfA,EAAI,MAAM,EAAI8Y,EAAO,GAAKC,CAAM,EAChC,IAAI45C,EACAC,EAAkB,KACtB,GAAItP,EAAQ,OAAQ,CAClB,MAAM3/C,EAAS,KAAK,0BAA0B2/C,CAAO,EACrDqP,EAAahvD,EAAO,IACpBivD,EAAkBjvD,EAAO,WAC3B,KAAO,CACL,MAAM44C,EAAY,KAAK,cAAc,OAAOzjC,EAAOC,CAAM,EACzDsqC,GAAmB9G,EAAU,QAAS+G,CAAO,EAC7CqP,EAAa,KAAK,0BAA0BpW,EAAU,OAAO,EAC7DqW,EAAkBrW,CACpB,CACA,MAAM4L,EAAS,KAAK,YAAYwK,EAAY30C,GAA2Bhe,CAAG,CAAC,EAC3EA,EAAI,sBAAwBikD,GAAyBlmC,GAAoB/d,CAAG,EAAGsjD,EAAQ,WAAW,EAC9F,KAAK,oBACP,KAAK,kBAAkB,UAAU9c,CAAK,EAAE,WAAWA,EAAOxmC,EAAK,EAAG8Y,EAAO,CAACC,EAAQ,CAAC,EAAE,mBAAmBytB,EAAOgD,GAAa,YAAY,EAAE,gBAAgBhD,CAAK,GAC/Jt3D,EAAA,KAAK,gBAAL,MAAAA,EAAoB,OAAO8wB,EAAK8Y,EAAOC,EAAQ,KAAK,kBAAkB,UAExEgpC,GAAyB/hD,EAAKmoD,EAAO,IAAK,EAAG,EAAGA,EAAO,WAAYA,EAAO,YAAa,EAAG,CAACpvC,EAAQD,EAAOC,CAAM,EAC5GovC,EAAO,WACT,KAAK,cAAc,QAAQA,EAAO,SAAS,EAEzCyK,GACF,KAAK,cAAc,QAAQA,CAAe,EAE5C,KAAK,QAAO,EACZ,KAAK,QAAQpsB,CAAK,EAClBtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,6BAA6B9lB,EAAO8c,EAASr1B,EAAK,WAChD,GAAI,CAAC,KAAK,eACR,OAEF,MAAMq+B,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,WAClDvsD,EAAM,KAAK,IACjB,IAAI2yD,EACAC,EAAkB,KACtB,GAAItP,EAAQ,OACVqP,EAAarP,EAAQ,WAChB,CACL,MAAM/uE,EAAI+uE,EAAQ,MACZtvE,EAAIsvE,EAAQ,OACZ/G,EAAY,KAAK,cAAc,OAAOhoE,EAAGP,CAAC,EAChDqvE,GAAmB9G,EAAU,QAAS+G,CAAO,EAC7CqP,EAAa,KAAK,0BAA0BpW,EAAU,OAAO,EAC7DqW,EAAkBrW,CACpB,EACArtE,EAAA,KAAK,oBAAL,MAAAA,EAAwB,UAAUs3D,GAClC,UAAW9C,KAASzV,EAClBjuB,EAAI,KAAI,EACRA,EAAI,UAAU,GAAG0jC,EAAM,SAAS,EAChC1jC,EAAI,MAAM,EAAG,EAAE,EACf+hD,GAAyB/hD,EAAK2yD,EAAYjvB,EAAM,EAAGA,EAAM,EAAGA,EAAM,EAAGA,EAAM,EAAG,EAAG,GAAI,EAAG,CAAC,GACzFz0D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,WAAWu3D,EAAOxmC,EAAK,EAAG,EAAG,GAAI,GACzDA,EAAI,QAAO,EAET4yD,GACF,KAAK,cAAc,QAAQA,CAAe,GAE5C1gE,EAAA,KAAK,oBAAL,MAAAA,EAAwB,gBAAgBs0C,GACxC,KAAK,QAAO,EACZtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,yBAAyB9lB,EAAO,OAC9B,GAAI,CAAC,KAAK,eACR,OAEF,MAAM8lB,EAAUp2C,EAAA,KAAK8uC,GAAAuH,IAAL,UAA2B,KAAK,QAAQ,YACxDr9E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,UAAUs3D,GAAO,WAAWA,EAAO,KAAK,IAAK,EAAG,EAAG,EAAG,GAAG,mBAAmBA,EAAOgD,GAAa,MAAM,gBAAgBhD,GAC9I,KAAK,IAAI,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5B,KAAK,QAAO,EACZtwB,EAAA,KAAK8uC,GAAA0H,IAAL,UAAyBJ,EAC3B,CACA,UAAU9lB,EAAOqsB,EAAK,CAAC,CACvB,eAAersB,EAAOqsB,EAAK9O,EAAY,CAAC,CACxC,mBAAmBvd,EAAOqsB,EAAK,QAC7B3jF,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBAAmBs3D,GAC3C,KAAK,mBAAmB,KAAK,CAC3B,QAAS,EACf,CAAK,CACH,CACA,wBAAwBA,EAAOqsB,EAAK9O,EAAY,QAC9C70E,EAAA,KAAK,oBAAL,MAAAA,EAAwB,mBAAmBs3D,GACvCqsB,IAAQ,KACV,KAAK,mBAAmB,KAAK,CAC3B,QAAS,KAAK,sBAAsB,UAAU9O,CAAU,CAChE,CAAO,EAED,KAAK,mBAAmB,KAAK,CAC3B,QAAS,EACjB,CAAO,EAEH,KAAK,eAAiB,KAAK,iBAAgB,CAC7C,CACA,iBAAiBvd,EAAO,QACtBt3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiBs3D,GACzC,KAAK,mBAAmB,IAAG,EAC3B,KAAK,eAAiB,KAAK,iBAAgB,CAC7C,CACA,YAAYA,EAAO,CAAC,CACpB,UAAUA,EAAO,CAAC,CAClB,YAAYA,EAAOxvC,EAAM4vC,EAAS,SAChC,MAAMksB,EAAU,KAAK,QAAQ,YAAW,EACpC,KAAK,aACP,KAAK,QAAQ,mBAAkB,EAE5B,KAAK,aACR,KAAK,QAAQlsB,CAAO,EAEtB,MAAM5mC,EAAM,KAAK,IACb,KAAK,aACF8yD,IACC,KAAK,cAAgBvO,GACvBvkD,EAAI,KAAKhJ,EAAM,SAAS,EAExBgJ,EAAI,KAAKhJ,CAAI,GAGjB,KAAK,YAAc,MACnB9nB,EAAA,KAAK,oBAAL,MAAAA,EAAwB,2BAA2Bs3D,GAAO,6BAA6B,WAAYA,KAEnGv3D,EAAA,KAAK,oBAAL,MAAAA,EAAwB,gBAAgBu3D,GAE1C,KAAK,QAAQ,uBAAuB,KAAK,QAAQ,OAAO,CAC1D,CACA,qBAAsB,CACpB,GAAI,CAAC,KAAK,2BAA4B,CACpC,MAAM51D,EAAImtC,GAAoB,KAAK,GAAG,EACtC,GAAIntC,EAAE,CAAC,IAAM,GAAKA,EAAE,CAAC,IAAM,EACzB,KAAK,2BAA6B,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAE,CAAC,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,CAAC,MACxE,CACL,MAAMmiF,EAAS,KAAK,IAAIniF,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,CAAC,EAC3CoiF,EAAQ,KAAK,MAAMpiF,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EAC7BqiF,EAAQ,KAAK,MAAMriF,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EACnC,KAAK,2BAA6B,KAAK,IAAIoiF,EAAOC,CAAK,EAAIF,CAC7D,CACF,CACA,OAAO,KAAK,0BACd,CACA,qBAAsB,CACpB,GAAI,KAAK,wBAAwB,CAAC,IAAM,GAAI,CAC1C,KAAM,CACJ,UAAA/D,CACR,EAAU,KAAK,QACH,CACJ,EAAAr7E,EACA,EAAAU,EACA,EAAAT,EACA,EAAAE,CACR,EAAU,KAAK,IAAI,aAAY,EACzB,IAAIqxD,EAAQC,EACZ,GAAI/wD,IAAM,GAAKT,IAAM,EAAG,CACtB,MAAMo/E,EAAQ,KAAK,IAAIr/E,CAAC,EAClBs/E,EAAQ,KAAK,IAAIn/E,CAAC,EACxB,GAAIk/E,IAAUC,EACZ,GAAIjE,IAAc,EAChB7pB,EAASC,EAAS,EAAI4tB,MACjB,CACL,MAAME,EAAkBF,EAAQhE,EAChC7pB,EAASC,EAAS8tB,EAAkB,EAAI,EAAIA,EAAkB,CAChE,SACSlE,IAAc,EACvB7pB,EAAS,EAAI6tB,EACb5tB,EAAS,EAAI6tB,MACR,CACL,MAAME,EAAmBH,EAAQhE,EAC3BoE,EAAmBH,EAAQjE,EACjC7pB,EAASguB,EAAmB,EAAI,EAAIA,EAAmB,EACvD/tB,EAASguB,EAAmB,EAAI,EAAIA,EAAmB,CACzD,CACF,KAAO,CACL,MAAML,EAAS,KAAK,IAAIp/E,EAAIG,EAAIO,EAAIT,CAAC,EAC/Bo/E,EAAQ,KAAK,MAAMr/E,EAAGU,CAAC,EACvB4+E,EAAQ,KAAK,MAAMr/E,EAAGE,CAAC,EAC7B,GAAIk7E,IAAc,EAChB7pB,EAAS8tB,EAAQF,EACjB3tB,EAAS4tB,EAAQD,MACZ,CACL,MAAMM,EAAWrE,EAAY+D,EAC7B5tB,EAAS8tB,EAAQI,EAAWJ,EAAQI,EAAW,EAC/CjuB,EAAS4tB,EAAQK,EAAWL,EAAQK,EAAW,CACjD,CACF,CACA,KAAK,wBAAwB,CAAC,EAAIluB,EAClC,KAAK,wBAAwB,CAAC,EAAIC,CACpC,CACA,OAAO,KAAK,uBACd,CACA,iBAAiBpuC,EAAMs8D,EAAa,CAClC,KAAM,CACJ,IAAAtzD,EACA,QAAS,CACP,UAAAgvD,CACR,CACA,EAAQ,KACE,CAAC7pB,EAAQC,CAAM,EAAI,KAAK,oBAAmB,EACjD,GAAID,IAAWC,EAAQ,CACrBplC,EAAI,WAAagvD,GAAa,GAAK7pB,EACnCnlC,EAAI,OAAOhJ,CAAI,EACf,MACF,CACA,MAAMu8D,EAASvzD,EAAI,YAAW,EAC1BszD,GACFtzD,EAAI,KAAI,EAEVA,EAAI,MAAMmlC,EAAQC,CAAM,EACxBqc,GAAa,EAAI,EAAItc,EACrBsc,GAAa,EAAI,EAAIrc,EACrB,MAAMqnB,EAAU,IAAI,OAEpB,GADAA,EAAQ,QAAQz1D,EAAMyqD,EAAY,EAC9B8R,EAAO,OAAS,EAAG,CACrB,MAAMpqD,EAAQ,KAAK,IAAIg8B,EAAQC,CAAM,EACrCplC,EAAI,YAAYuzD,EAAO,IAAIp+E,GAAKA,EAAIg0B,CAAK,CAAC,EAC1CnJ,EAAI,gBAAkBmJ,CACxB,CACAnJ,EAAI,UAAYgvD,GAAa,EAC7BhvD,EAAI,OAAOysD,CAAO,EACd6G,GACFtzD,EAAI,QAAO,CAEf,CACA,kBAAmB,CACjB,QAASxsB,EAAI,KAAK,mBAAmB,OAAS,EAAGA,GAAK,EAAGA,IACvD,GAAI,CAAC,KAAK,mBAAmBA,CAAC,EAAE,QAC9B,MAAO,GAGX,MAAO,EACT,CACF,EA50EEyxE,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAVFV,GAAA,YAwJE6B,GAAoB,UAAG,CACrB,KAAO,KAAK,WAAW,QAAU,KAAK,aACpC,KAAK,QAAO,EAEd,KAAK,QAAQ,YAAc,KAC3B,KAAK,IAAI,QAAO,EACZ,KAAK,oBACP,KAAK,IAAM,KAAK,aAChB,KAAK,IAAI,KAAI,EACb,KAAK,IAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtC,KAAK,IAAI,UAAU,KAAK,kBAAmB,EAAG,CAAC,EAC/C,KAAK,IAAI,QAAO,EAChB,KAAK,cAAc,QAAQ,KAAK,sBAAsB,EACtD,KAAK,kBAAoB,KACzB,KAAK,uBAAyB,KAElC,EAkCAI,GAAW,UAAG,CACZ,GAAI,KAAK,WAAY,CACnB,MAAMuM,EAAc,KAAK,cAAc,aAAa,KAAK,WAAW,WAAY,KAAK,WAAW,UAAU,EAC1G,GAAIA,IAAgB,OAAQ,CAC1B,MAAMC,EAAc,KAAK,IAAI,OAC7B,KAAK,IAAI,OAASD,EAClB,KAAK,IAAI,UAAU,KAAK,IAAI,OAAQ,EAAG,CAAC,EACxC,KAAK,IAAI,OAASC,CACpB,CACF,CACF,EA8YA9B,GAAyB,SAAC+B,EAAcC,EAAa,KAAMlgB,EAAQ,EAAG,CACpE,KAAM,CACJ,MAAA36B,EACA,OAAAC,CACN,EAAQ26C,EACEE,EAAYD,GAAc,KAAK,cAAc,OAAO76C,EAAOC,CAAM,EACjE+yC,EAAU8H,EAAU,QAC1BngB,EAAQ,KAAK,MAAMA,EAAQ,GAAG,EAAI,IAClC,MAAMogB,EAAoBpgB,EAAQ,EAC9BogB,GAAqBv3C,EAAA,KAAKkpC,MAAyB,QACrD5oC,EAAA,KAAK4oC,GAAuB5yC,GAAY,wBAA0B,IAAI,IAAQ,QAEhF,IAAIkhD,EAAiB,OAIrB,GAHID,GAAqBv3C,EAAA,KAAKkpC,cAAgC,MAC5DsO,EAAiBx3C,EAAA,KAAKkpC,IAAqB,oBAAoB/R,EAAO,IAAM,KAAK,cAAc,kBAAkBA,CAAK,CAAC,GAErH,CAACogB,GAAqBC,IAAmB,OAC3C,OAAIH,IACF7H,EAAQ,KAAI,EACZA,EAAQ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACrCA,EAAQ,UAAU,EAAG,EAAGhzC,EAAOC,CAAM,EACrC+yC,EAAQ,QAAO,GAEjBA,EAAQ,OAASgI,EACjBhI,EAAQ,UAAU4H,EAAc,EAAG,CAAC,EACpC5H,EAAQ,OAAS,OACV8H,EAET,MAAMG,EAAaL,EAAa,WAAW,KAAM,CAC/C,mBAAoB,EAC1B,CAAK,EAAE,aAAa,EAAG,EAAG56C,EAAOC,CAAM,EAC7Bi7C,EAAWlI,EAAQ,gBAAgBhzC,EAAOC,CAAM,EAChDk7C,EAAeF,EAAW,KAC9BG,EAAaF,EAAS,KAClBG,EAAa1gB,EAAQ,EAAI,EAAIA,EAAQ,IAC3C,QAASjgE,EAAI,EAAG2Q,EAAK8vE,EAAa,OAAQzgF,EAAI2Q,EAAI3Q,GAAK,EACrD0gF,EAAW1gF,CAAC,EAAI,KAAK,IAAI,KAAK,MAAMygF,EAAazgF,CAAC,EAAI2gF,CAAU,EAAG,GAAG,EAExE,OAAArI,EAAQ,aAAakI,EAAU,EAAG,CAAC,EAC5BJ,CACT,EACAQ,GAAuB,SAACtN,EAAM7xD,EAAK6jB,EAAOC,EAAQ,CAChD,IAAI2qB,GAAQojB,GAAA,YAAAA,EAAO7xD,KAAQ,KAK3B,GAJIyuC,IAAUA,EAAM,OAAO,QAAU5qB,GAAS4qB,EAAM,OAAO,SAAW3qB,KACpE,KAAK,cAAc,QAAQ2qB,CAAK,EAChCA,EAAQ,MAEN,CAACA,EACH,OAAAA,EAAQ,KAAK,cAAc,OAAO5qB,EAAOC,CAAM,EAC3C+tC,IACFA,EAAK7xD,CAAG,EAAIyuC,GAEPA,EAET,MAAM1jC,EAAM0jC,EAAM,QAClB,OAAA1jC,EAAI,KAAI,EACRA,EAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjCA,EAAI,UAAU,EAAG,EAAG8Y,EAAOC,CAAM,EACjC/Y,EAAI,QAAO,EACJ0jC,CACT,EACAquB,GAAyB,SAACnQ,EAASyS,EAAe9hF,EAAU,CAAA,EAAI,CAC9D,KAAM,CACJ,eAAA+hF,EAAiB,KACjB,cAAAC,EAAgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjC,eAAAC,EAAiB,CAAC,EAAG,CAAC,EACtB,eAAAC,EAAiB,KACjB,SAAAC,EAAW,KACX,YAAA7C,EAAc,EACd,aAAAC,EAAe,OACf,cAAA6C,EAAgB,CACtB,EAAQpiF,EACE,CACJ,MAAAumC,EACA,OAAAC,CACN,EAAQs7C,EACErD,EAAoB96C,EAAA,KAAK8uC,GAAA2M,IAAL,UAA+B0C,EAAeI,EAAgBE,GAClF/C,EAA2BhQ,EAAQ,yBASzC,GARAA,EAAQ,KAAI,EACZA,EAAQ,aAAa,GAAG2S,CAAa,EACrC3S,EAAQ,YAAc,EAClBhvC,GAAY,0BACdgvC,EAAQ,OAAS,QAEnBA,EAAQ,yBAA2B,kBACnCA,EAAQ,UAAUoP,EAAkB,OAAQ,EAAG,CAAC,EAC5CsD,EAAgB,CAClB,KAAM,CAACl4B,EAAIC,CAAE,EAAIm4B,EACXI,EAAgB1+C,EAAA,KAAK8uC,GAAAoP,IAAL,UAA6BM,EAAU,wBAAyB57C,EAAOC,GACvF+3C,EAAc8D,EAAc,QAClC9D,EAAY,UAAUwD,EAAgBl4B,EAAIC,EAAIvjB,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,CAAM,EAChF+3C,EAAY,yBAA2B,iBACvCA,EAAY,UAAUE,EAAkB,OAAQ,EAAG,CAAC,EACpDF,EAAY,yBAA2B,cACvClP,EAAQ,yBAA2B,mBACnCA,EAAQ,UAAUgT,EAAc,OAAQ,EAAG,CAAC,EACvCF,GACH,KAAK,cAAc,QAAQE,CAAa,CAE5C,CACAhT,EAAQ,yBAA2BgQ,EACnChQ,EAAQ,YAAciQ,EAClBj/C,GAAY,0BACdgvC,EAAQ,OAASkQ,GAAgB,QAEnClQ,EAAQ,UAAUyS,EAAe,EAAG,CAAC,EACrCzS,EAAQ,QAAO,EACV6S,GACH,KAAK,cAAc,QAAQzD,CAAiB,CAEhD,EACAzE,GAAqB,SAAC9Y,EAAQ,EAAG,CAC/B,GAAIn3B,EAAA,KAAK2oC,MAAwB,GAAK3oC,EAAA,KAAK4oC,IAAwB,GAAK,CAAC,KAAK,eAC5E,MAAO,GAET5/B,GAAA,KAAK4/B,IAAL,IACAtoC,EAAA,KAAK2oC,GAAwB9R,GAC7B,MAAM2d,EAAY90C,EAAA,KAAKopC,IAAgB,GAAG,EAAE,EACtC,CACJ,OAAAx/B,CACN,EAAQ,KAAK,IACH2uC,EAAY3+C,EAAA,KAAK8uC,GAAAoP,IAAL,UAA6BhD,EAAW,oBAAqBlrC,EAAO,MAAOA,EAAO,QACpGtJ,EAAA,KAAKuoC,GAA2B0P,GAChC,MAAMC,EAAUD,EAAU,QAC1B,OAAAC,EAAQ,KAAI,EACZA,EAAQ,aAAa,KAAK,IAAI,aAAY,CAAE,EAC5CjR,GAAa,KAAK,IAAKiR,CAAO,EAC9Bl4C,EAAA,KAAK0oC,GAAoBwP,EAAQ,0BACjCA,EAAQ,yBAA2B,cACnCnT,GAAwBmT,EAAS,KAAK,GAAG,EACzCl4C,EAAA,KAAK6oC,GAA4B2L,GACjCx0C,EAAA,KAAKwoC,GAAoB,KAAK,KAC9BxoC,EAAA,KAAKyoC,GAAyB,KAAK,cACnC,KAAK,IAAMyP,EACP,KAAK,cACP,KAAK,aAAeA,GAEf,EACT,EACApI,GAAmB,SAACJ,EAAS,OAC3B,GAAI,CAACA,EACH,OAEF,MAAMuI,EAAYv4C,EAAA,KAAK6oC,IACjB4P,EAAWz4C,EAAA,KAAK8oC,IAChB4P,EAAgB14C,EAAA,KAAK+oC,IACrByP,EAAUD,EAAU,QAC1Bj4C,EAAA,KAAKuoC,GAA2B,MAChCvoC,EAAA,KAAKwoC,GAAoB,MACzBxoC,EAAA,KAAKyoC,GAAyB,MAC1B,KAAK,aAAe,KAAK,eAAiByP,GAAW,KAAK,MAAQA,GACpE,KAAK,aAAY,EAEf,KAAK,cACP,KAAK,aAAeE,GAEtB,KAAK,IAAI,iBAAgB,EACzB,KAAK,IAAI,yBAA2B14C,EAAA,KAAKgpC,IACzC1oC,EAAA,KAAK0oC,GAAoB,MACzBzB,GAAa,KAAK,IAAKkR,CAAQ,EAC/B,KAAK,IAAMA,EACX,MAAM3D,EAAY90C,EAAA,KAAKmpC,IACvB7oC,EAAA,KAAK6oC,GAA4B,MACjC,MAAMkP,EAAgBr4C,EAAA,KAAKipC,IAC3B3oC,EAAA,KAAK2oC,GAAwB,GAC7B,GAAI,CACFrvC,EAAA,KAAK8uC,GAAA+M,IAAL,UAA+BiD,GAAiBD,EAAUF,EAAU,OAAQ,CAC1E,iBAAgB3lF,EAAAkiF,GAAA,YAAAA,EAAW,cAAX,YAAAliF,EAAwB,SAAU,KAClD,eAAgBkiF,GAAA,MAAAA,EAAW,YAAc,CAACA,EAAU,QAASA,EAAU,OAAO,EAAI,CAAC,EAAG,CAAC,EACvF,gBAAgBA,GAAA,YAAAA,EAAW,oBAAqB,KAChD,SAAUA,EACV,cAAAuD,CACR,EACI,QAAC,CACCG,EAAQ,QAAO,EACfxvC,GAAA,KAAK4/B,IAAL,IACKkM,GACH,KAAK,cAAc,QAAQyD,CAAS,CAExC,CACF,EA6ZA7G,GAAc,SAACh3D,EAAMixD,EAAkB10C,EAAW,CAChD,MAAMk5C,EAAU,IAAI,OACpB,OAAAA,EAAQ,QAAQz1D,EAAM,IAAI,UAAUuc,CAAS,EAAE,WAAU,EAAG,aAAa00C,CAAgB,CAAC,EACnFwE,CACT,EAwpBA4E,GAAmB,SAACR,EAAU,CAC5B,KAAM,CACJ,OAAA3qC,CACN,EAAQ2qC,EACE,CACJ,MAAA/3C,EACA,OAAAC,CACN,EAAQmN,EACJ,GAAItT,GAAY,wBAAyB,CACvCi+C,EAAS,KAAI,EACbA,EAAS,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtCA,EAAS,OAAS,eAClBA,EAAS,YAAc,EACvBA,EAAS,yBAA2B,OACpCA,EAAS,UAAU3qC,EAAQ,EAAG,CAAC,EAC/B2qC,EAAS,QAAO,EAChB,MACF,CACA,MAAMoE,EAAYpE,EAAS,aAAa,EAAG,EAAG/3C,EAAOC,CAAM,EACrD,CACJ,KAAA7mC,CACN,EAAQ+iF,EACJ,QAASzhF,EAAI,EAAG2Q,EAAKjS,EAAK,OAAQsB,EAAI2Q,EAAI3Q,GAAK,EAAG,CAChD,MAAM0hF,EAAOhjF,EAAKsB,CAAC,EAAI,MAAStB,EAAKsB,EAAI,CAAC,EAAI,MAAStB,EAAKsB,EAAI,CAAC,EAAI,MAAS,GAAM,EACpFtB,EAAKsB,CAAC,EAAItB,EAAKsB,EAAI,CAAC,EAAItB,EAAKsB,EAAI,CAAC,EAAI0hF,CACxC,CACArE,EAAS,aAAaoE,EAAW,EAAG,CAAC,CACvC,EACAlO,GAAqB,SAACqK,EAAW,CAC1BA,IAGDA,EAAU,oBACZ,KAAK,cAAc,QAAQA,EAAU,iBAAiB,EACtDA,EAAU,kBAAoB,MAE5BA,EAAU,oBACZ,KAAK,cAAc,QAAQA,EAAU,iBAAiB,EACtDA,EAAU,kBAAoB,MAE5BA,EAAU,wBACZ,KAAK,cAAc,QAAQA,EAAU,qBAAqB,EAC1DA,EAAU,sBAAwB,MAEtC,EA33DF,IAAM+D,GAAN3Q,GA80EA,UAAW0H,KAAMl8C,GACXmlD,GAAe,UAAUjJ,CAAE,IAAM,SACnCiJ,GAAe,UAAUnlD,GAAIk8C,CAAE,CAAC,EAAIiJ,GAAe,UAAUjJ,CAAE,GAMnE,MAAMkJ,EAAc,CAMlB,YAAY72D,EAAQ82D,EAAiBC,EAAsB,CAL3D7+C,EAAA,KAAA8+C,GAAmB,MACnB9+C,EAAA,KAAA++C,GAAwB,MACxB/+D,GAAA,mBAAc,MACdA,GAAA,qBAAgB,IAAI,KACpBA,GAAA,eAAU,MAER,KAAK,QAAU8H,EACfqe,EAAA,KAAK24C,GAAmBF,GACxBz4C,EAAA,KAAK44C,GAAwBF,EAC/B,CACA,IAAI,wBAAyB,OAC3B,QAAOpmF,EAAA,KAAK,cAAL,YAAAA,EAAkB,UAAW,CACtC,CACA,eAAgB,CACd,OAAAwhC,GAAO,CAAC,KAAK,YAAa,sDAAsD,EACzE,KAAK,YAAc,IAAI4L,EAAA,KAAKi5C,KAAiB,IAAI,CAC1D,CACA,eAAeE,EAAO10C,EAAK,CACzB,GAAIA,GAAO,KAAK,uBACd,OAAO,KAET,MAAMtvC,EAAS,IAAI6qC,EAAA,KAAKk5C,KAAsB,KAAMC,EAAO10C,CAAG,EAC9D,YAAK,cAAc,IAAItvC,CAAM,EACtBA,CACT,CACA,kBAAkBwgE,EAAQ,QACxB/iE,EAAA,KAAK,cAAL,MAAAA,EAAkB,OAAO+iE,GACzB,UAAWxgE,KAAU,IAAI,IAAI,KAAK,aAAa,EAC7CA,EAAO,OAAOwgE,CAAM,CAExB,CACF,CA/BEsjB,GAAA,YACAC,GAAA,YA+BF,MAAME,EAAoB,CASxB,YAAYr3D,EAAQ,CARpB5H,GAAA,kBAAa,MACbA,GAAA,sBAAiB,GACjBA,GAAA,iBAAY,MACZA,GAAA,0BAAqB,QAAQ,cAAa,GAC1CA,GAAA,yBAAoB,IACpBA,GAAA,6BAAwB,IACxBA,GAAA,eAAU,GACVA,GAAA,eAAU,MAER,KAAK,QAAU4H,CACjB,CACA,iBAAkB,QAChBnvB,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQ,KAAK,QACb,MAAO,KAAK,cAClB,EACE,CACA,IAAI,cAAe,CACjB,OAAO,KAAK,mBAAmB,OACjC,CACA,IAAI,UAAW,CACb,OAAO,KAAK,SACd,CACA,IAAI,eAAgB,CAClB,OAAO,KAAK,cACd,CACA,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACd,CACA,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACd,CACA,MAAM,MAAO,CACXuhC,GAAY,+BAA+B,CAC7C,CACA,OAAOwhC,EAAQ,CACbxhC,GAAY,iCAAiC,CAC/C,CACF,CACA,MAAMklD,EAAyB,CAE7B,YAAYt3D,EAAQo3D,EAAO10C,EAAK,CADhCtqB,GAAA,eAAU,MAER,KAAK,QAAU4H,CACjB,CACA,MAAM,MAAO,CACXoS,GAAY,+BAA+B,CAC7C,CACA,OAAOwhC,EAAQ,CACbxhC,GAAY,iCAAiC,CAC/C,CACF,CAIA,SAASmlD,GAAwCC,EAAoB,CACnE,IAAIC,EAAqB,GACrB9Y,EAAM+Y,EAAc,cAAe,GAAG,EAAE,KAAKF,CAAkB,EACnE,GAAI7Y,EAAK,CACPA,EAAMA,EAAI,CAAC,EACX,IAAIz4C,EAAWyxD,EAAehZ,CAAG,EACjC,OAAAz4C,EAAW,SAASA,CAAQ,EAC5BA,EAAW0xD,EAAc1xD,CAAQ,EACjCA,EAAW2xD,EAAc3xD,CAAQ,EAC1B4xD,EAAc5xD,CAAQ,CAC/B,CAEA,GADAy4C,EAAMoZ,EAAgBP,CAAkB,EACpC7Y,EAAK,CACP,MAAMz4C,EAAW2xD,EAAclZ,CAAG,EAClC,OAAOmZ,EAAc5xD,CAAQ,CAC/B,CAEA,GADAy4C,EAAM+Y,EAAc,WAAY,GAAG,EAAE,KAAKF,CAAkB,EACxD7Y,EAAK,CACPA,EAAMA,EAAI,CAAC,EACX,IAAIz4C,EAAWyxD,EAAehZ,CAAG,EACjC,OAAAz4C,EAAW2xD,EAAc3xD,CAAQ,EAC1B4xD,EAAc5xD,CAAQ,CAC/B,CACA,SAASwxD,EAAcM,EAAkBlgE,EAAO,CAC9C,OAAO,IAAI,OAAO,cAAgBkgE,EAAmB,sDAAgFlgE,CAAK,CAC5I,CACA,SAASmgE,EAAWC,EAAU1kF,EAAO,CACnC,GAAI0kF,EAAU,CACZ,GAAI,CAAC,iBAAiB,KAAK1kF,CAAK,EAC9B,OAAOA,EAET,GAAI,CACF,MAAMH,EAAU,IAAI,YAAY6kF,EAAU,CACxC,MAAO,EACjB,CAAS,EACK5kF,EAASghC,GAAc9gC,CAAK,EAClCA,EAAQH,EAAQ,OAAOC,CAAM,EAC7BmkF,EAAqB,EACvB,MAAQ,CAAC,CACX,CACA,OAAOjkF,CACT,CACA,SAASskF,EAActkF,EAAO,CAC5B,OAAIikF,GAAsB,cAAc,KAAKjkF,CAAK,IAChDA,EAAQykF,EAAW,QAASzkF,CAAK,EAC7BikF,IACFjkF,EAAQykF,EAAW,aAAczkF,CAAK,IAGnCA,CACT,CACA,SAASukF,EAAgBI,EAAuB,CAC9C,MAAM35C,EAAU,CAAA,EAChB,IAAIla,EACJ,MAAM8zD,EAAOV,EAAc,kCAAmC,IAAI,EAClE,MAAQpzD,EAAQ8zD,EAAK,KAAKD,CAAqB,KAAO,MAAM,CAC1D,GAAI,EAAGjjF,EAAGmjF,EAAM/tC,CAAI,EAAIhmB,EAExB,GADApvB,EAAI,SAASA,EAAG,EAAE,EACdA,KAAKspC,EAAS,CAChB,GAAItpC,IAAM,EACR,MAEF,QACF,CACAspC,EAAQtpC,CAAC,EAAI,CAACmjF,EAAM/tC,CAAI,CAC1B,CACA,MAAMnL,EAAQ,CAAA,EACd,QAASjqC,EAAI,EAAGA,EAAIspC,EAAQ,QACpBtpC,KAAKspC,EADuB,EAAEtpC,EAAG,CAIvC,GAAI,CAACmjF,EAAM/tC,CAAI,EAAI9L,EAAQtpC,CAAC,EAC5Bo1C,EAAOqtC,EAAertC,CAAI,EACtB+tC,IACF/tC,EAAO,SAASA,CAAI,EAChBp1C,IAAM,IACRo1C,EAAOstC,EAActtC,CAAI,IAG7BnL,EAAM,KAAKmL,CAAI,CACjB,CACA,OAAOnL,EAAM,KAAK,EAAE,CACtB,CACA,SAASw4C,EAAenkF,EAAO,CAC7B,GAAIA,EAAM,WAAW,GAAG,EAAG,CACzB,MAAM2rC,EAAQ3rC,EAAM,MAAM,CAAC,EAAE,MAAM,KAAK,EACxC,QAAS2B,EAAI,EAAGA,EAAIgqC,EAAM,OAAQ,EAAEhqC,EAAG,CACrC,MAAMmjF,EAAYn5C,EAAMhqC,CAAC,EAAE,QAAQ,GAAG,EAClCmjF,IAAc,KAChBn5C,EAAMhqC,CAAC,EAAIgqC,EAAMhqC,CAAC,EAAE,MAAM,EAAGmjF,CAAS,EACtCn5C,EAAM,OAAShqC,EAAI,GAErBgqC,EAAMhqC,CAAC,EAAIgqC,EAAMhqC,CAAC,EAAE,WAAW,SAAU,IAAI,CAC/C,CACA3B,EAAQ2rC,EAAM,KAAK,GAAG,CACxB,CACA,OAAO3rC,CACT,CACA,SAASokF,EAAcW,EAAU,CAC/B,MAAMC,EAAcD,EAAS,QAAQ,GAAG,EACxC,GAAIC,IAAgB,GAClB,OAAOD,EAET,MAAML,EAAWK,EAAS,MAAM,EAAGC,CAAW,EAExChlF,EADY+kF,EAAS,MAAMC,EAAc,CAAC,EACxB,QAAQ,UAAW,EAAE,EAC7C,OAAOP,EAAWC,EAAU1kF,CAAK,CACnC,CACA,SAASqkF,EAAcrkF,EAAO,CAC5B,MAAI,CAACA,EAAM,WAAW,IAAI,GAAK,uBAAuB,KAAKA,CAAK,EACvDA,EAEFA,EAAM,WAAW,gDAAiD,SAAUgrC,EAASi6C,EAASP,EAAUtjF,EAAM,CACnH,GAAIsjF,IAAa,KAAOA,IAAa,IACnC,OAAAtjF,EAAOA,EAAK,WAAW,IAAK,GAAG,EAC/BA,EAAOA,EAAK,WAAW,mBAAoB,SAAU0vB,EAAO/B,EAAK,CAC/D,OAAO,OAAO,aAAa,SAASA,EAAK,EAAE,CAAC,CAC9C,CAAC,EACM01D,EAAWQ,EAAS7jF,CAAI,EAEjC,GAAI,CACFA,EAAO,KAAKA,CAAI,CAClB,MAAQ,CAAC,CACT,OAAOqjF,EAAWQ,EAAS7jF,CAAI,CACjC,CAAC,CACH,CACA,MAAO,EACT,CAMA,SAAS8jF,GAAcC,EAAQC,EAAa,CAC1C,MAAMC,EAAU,IAAI,QACpB,GAAI,CAACF,GAAU,CAACC,GAAe,OAAOA,GAAgB,SACpD,OAAOC,EAET,UAAWjiE,KAAOgiE,EAAa,CAC7B,MAAMtzB,EAAMszB,EAAYhiE,CAAG,EACvB0uC,IAAQ,QACVuzB,EAAQ,OAAOjiE,EAAK0uC,CAAG,CAE3B,CACA,OAAOuzB,CACT,CACA,SAASC,GAAkBjmF,EAAK,OAC9B,QAAOhC,EAAA,IAAI,MAAMgC,CAAG,IAAb,YAAAhC,EAAgB,SAAU,IACnC,CACA,SAASkoF,GAAiC,CACxC,gBAAAC,EACA,OAAAL,EACA,eAAAM,EACA,aAAAC,CACF,EAAG,CACD,MAAMC,EAAK,CACT,cAAe,EACf,iBAAkB,EACtB,EACQjlD,EAAS,SAAS8kD,EAAgB,IAAI,gBAAgB,EAAG,EAAE,EAWjE,MAVI,CAAC,OAAO,UAAU9kD,CAAM,IAG5BilD,EAAG,cAAgBjlD,EACfA,GAAU,EAAI+kD,IAGdC,GAAgB,CAACP,GAGjBK,EAAgB,IAAI,eAAe,IAAM,UAGrBA,EAAgB,IAAI,kBAAkB,GAAK,cAC3C,aACtBG,EAAG,iBAAmB,IAEjBA,CACT,CACA,SAASC,GAA0BJ,EAAiB,CAClD,MAAMxB,EAAqBwB,EAAgB,IAAI,qBAAqB,EACpE,GAAIxB,EAAoB,CACtB,IAAItxD,EAAWqxD,GAAwCC,CAAkB,EACzE,GAAItxD,EAAS,SAAS,GAAG,EACvB,GAAI,CACFA,EAAW,mBAAmBA,CAAQ,CACxC,MAAQ,CAAC,CAEX,GAAIiX,GAAUjX,CAAQ,EACpB,OAAOA,CAEX,CACA,OAAO,IACT,CACA,SAASmzD,GAAoBloF,EAAQ0B,EAAK,CACxC,OAAO,IAAI+gC,GAAkB,+BAA+BziC,CAAM,2BAA2B0B,EAAI,IAAI,KAAM1B,EAAQA,IAAW,KAAOA,IAAW,GAAK0B,EAAI,WAAa,OAAO,CAC/K,CACA,SAASymF,GAAqBC,EAAa/9B,EAAQ,CACjD,GAAI+9B,IAAgB/9B,EAClB,MAAM,IAAI,MAAM,mCAAmC+9B,CAAW,eAAe/9B,CAAM,IAAI,CAE3F,CAMA,SAASg+B,GAAS3mF,EAAKgmF,EAASY,EAAiBhhE,EAAiB,CAChE,OAAO,MAAM5lB,EAAK,CAChB,OAAQ,MACR,QAAAgmF,EACA,OAAQpgE,EAAgB,OACxB,KAAM,OACN,YAAaghE,EAAkB,UAAY,cAC3C,SAAU,QACd,CAAG,CACH,CACA,SAASC,GAAqBvoF,EAAQ0B,EAAK,CACzC,GAAI1B,IAAW,KAAOA,IAAW,IAC/B,MAAMkoF,GAAoBloF,EAAQ0B,CAAG,CAEzC,CACA,SAAS8mF,GAAer0B,EAAK,CAC3B,GAAIA,aAAe,WACjB,OAAOA,EAAI,OAEb,GAAIA,aAAe,YACjB,OAAOA,EAET,MAAM,IAAI,MAAM,qCAAqCA,CAAG,EAAE,CAC5D,CACA,MAAMs0B,WAAuB7C,EAAc,CAEzC,YAAY72D,EAAQ,CAClB,MAAMA,EAAQ25D,GAAsBC,EAAyB,EAF/D1hE,GAAA,uBAAkB,MAGhB,KAAM,CACJ,YAAAwgE,EACA,IAAA/lF,CACN,EAAQqtB,EACJmS,GAAO,UAAU,KAAKx/B,EAAI,QAAQ,EAAG,+CAA+C,EACpF,KAAK,QAAU6lF,GAAc,GAAME,CAAW,CAChD,CACF,CACA,MAAMiB,WAA6BxC,EAAoB,CAGrD,YAAYr3D,EAAQ,CAClB,MAAMA,CAAM,EAHd5H,GAAA,wBAAmB,IAAI,iBACvBA,GAAA,eAAU,MAGR,KAAM,CACJ,aAAA8gE,EACA,cAAAa,EACA,eAAAd,EACA,IAAApmF,EACA,gBAAA4mF,CACN,EAAQz5D,EAAO,QACX,KAAK,sBAAwB,CAAC+5D,EAC9B,MAAMlB,EAAU,IAAI,QAAQ74D,EAAO,OAAO,EAC1Cw5D,GAAS3mF,EAAKgmF,EAASY,EAAiB,KAAK,gBAAgB,EAAE,KAAKtmF,GAAY,CAC9E6sB,EAAO,gBAAkB84D,GAAkB3lF,EAAS,GAAG,EACvDumF,GAAqBvmF,EAAS,OAAQN,CAAG,EACzC,KAAK,QAAUM,EAAS,KAAK,UAAS,EACtC,MAAM6lF,EAAkB7lF,EAAS,QAC3B,CACJ,cAAA6mF,EACA,iBAAAC,CACR,EAAUlB,GAAiC,CACnC,gBAAAC,EACA,OAAQ,GACR,eAAAC,EACA,aAAAC,CACR,CAAO,EACD,KAAK,eAAiBc,EACtB,KAAK,kBAAoBC,EACzB,KAAK,UAAYb,GAA0BJ,CAAe,EACtD,CAAC,KAAK,uBAAyB,KAAK,mBACtC,KAAK,OAAO,IAAIjlD,GAAe,wBAAwB,CAAC,EAE1D,KAAK,mBAAmB,QAAO,CACjC,CAAC,EAAE,MAAM,KAAK,mBAAmB,MAAM,CACzC,CACA,MAAM,MAAO,CACX,MAAM,KAAK,mBAAmB,QAC9B,KAAM,CACJ,MAAAvgC,EACA,KAAAD,CACN,EAAQ,MAAM,KAAK,QAAQ,KAAI,EAC3B,OAAIA,EACK,CACL,MAAAC,EACA,KAAAD,CACR,GAEI,KAAK,SAAWC,EAAM,WACtB,KAAK,gBAAe,EACb,CACL,MAAOmmF,GAAenmF,CAAK,EAC3B,KAAM,EACZ,EACE,CACA,OAAOogE,EAAQ,QACb/iE,EAAA,KAAK,UAAL,MAAAA,EAAc,OAAO+iE,GACrB,KAAK,iBAAiB,MAAK,CAC7B,CACF,CACA,MAAMkmB,WAAkCxC,EAAyB,CAI/D,YAAYt3D,EAAQo3D,EAAO10C,EAAK,CAC9B,MAAM1iB,EAAQo3D,EAAO10C,CAAG,EAJ1BtqB,GAAA,wBAAmB,IAAI,iBACvBA,GAAA,uBAAkB,QAAQ,cAAa,GACvCA,GAAA,eAAU,MAGR,KAAM,CACJ,IAAAvlB,EACA,gBAAA4mF,CACN,EAAQz5D,EAAO,QACL64D,EAAU,IAAI,QAAQ74D,EAAO,OAAO,EAC1C64D,EAAQ,OAAO,QAAS,SAASzB,CAAK,IAAI10C,EAAM,CAAC,EAAE,EACnD82C,GAAS3mF,EAAKgmF,EAASY,EAAiB,KAAK,gBAAgB,EAAE,KAAKtmF,GAAY,CAC9E,MAAM+mF,EAAiBpB,GAAkB3lF,EAAS,GAAG,EACrDmmF,GAAqBY,EAAgBl6D,EAAO,eAAe,EAC3D05D,GAAqBvmF,EAAS,OAAQN,CAAG,EACzC,KAAK,QAAUM,EAAS,KAAK,UAAS,EACtC,KAAK,gBAAgB,QAAO,CAC9B,CAAC,EAAE,MAAM,KAAK,gBAAgB,MAAM,CACtC,CACA,MAAM,MAAO,CACX,MAAM,KAAK,gBAAgB,QAC3B,KAAM,CACJ,MAAAK,EACA,KAAAD,CACN,EAAQ,MAAM,KAAK,QAAQ,KAAI,EAC3B,OAAIA,EACK,CACL,MAAAC,EACA,KAAAD,CACR,EAEW,CACL,MAAOomF,GAAenmF,CAAK,EAC3B,KAAM,EACZ,CACE,CACA,OAAOogE,EAAQ,QACb/iE,EAAA,KAAK,UAAL,MAAAA,EAAc,OAAO+iE,GACrB,KAAK,iBAAiB,MAAK,CAC7B,CACF,CAMA,SAASumB,GAAgC70B,EAAK,CAC5C,OAAOA,aAAe,YAAcA,EAAI,aAAeA,EAAI,OAAO,WAAaA,EAAI,OAAS,IAAI,WAAWA,CAAG,EAAE,MAClH,CACA,SAAS80B,IAAc,CACrB,UAAW7mB,KAAc,KAAK,UAC5BA,EAAW,QAAQ,CACjB,MAAO,OACP,KAAM,EACZ,CAAK,EAEH,KAAK,UAAU,OAAS,CAC1B,CACA,MAAM8mB,WAA+BtD,EAAc,CAGjD,YAAY72D,EAAQ,CAClB,MAAMA,EAAQo6D,GAA8BC,EAAiC,EAJjFniD,EAAA,KAAAoiD,IACEpiE,GAAA,wBAAmB,IACnBA,GAAA,qBAAgB,CAAA,GAGd,KAAM,CACJ,sBAAAqiE,CACN,EAAQv6D,EACE,CACJ,YAAAw6D,EACA,gBAAAC,CACN,EAAQF,EACJ,IAAIC,GAAA,YAAAA,EAAa,QAAS,EAAG,CAC3B,MAAMpnF,EAAS6mF,GAAgCO,CAAW,EAC1D,KAAK,cAAc,KAAKpnF,CAAM,CAChC,CACA,KAAK,iBAAmBqnF,EACxB,MAAMvlE,EAAWV,GAAQ,OACvB,OAAQA,EAAK,KAAI,CACf,IAAK,QACL,IAAK,kBACHmjB,EAAA,KAAK2iD,GAAAI,IAAL,UAAoBlmE,EAAK,MAAOA,EAAK,OACrC,MACF,IAAK,mBACH7jB,EAAA,KAAK,cAAL,MAAAA,EAAkB,kBAClB,KAAK,iBAAmB,GACxB,KACV,CACI,EACA4pF,EAAsB,eAAerlE,CAAQ,CAC/C,CAeA,eAAgB,CACd,MAAMhiB,EAAS,MAAM,cAAa,EAClC,YAAK,cAAgB,KACdA,CACT,CACA,eAAegkF,EAAO10C,EAAK,CACzB,MAAMtvC,EAAS,MAAM,eAAegkF,EAAO10C,CAAG,EAC9C,OAAItvC,IACFA,EAAO,OAAS,IAAM,KAAK,cAAc,OAAOA,CAAM,EACtD,KAAK,QAAQ,sBAAsB,iBAAiBgkF,EAAO10C,CAAG,GAEzDtvC,CACT,CACA,kBAAkBwgE,EAAQ,CACxB,MAAM,kBAAkBA,CAAM,EAC9B,KAAK,QAAQ,sBAAsB,MAAK,CAC1C,CACF,CA9DA4mB,GAAA,YA+BEI,GAAc,SAACxD,EAAOzkF,EAAO,CAC3B,MAAMW,EAAS6mF,GAAgCxnF,CAAK,EACpD,GAAIykF,IAAU,OACR,KAAK,YACP,KAAK,YAAY,SAAS9jF,CAAM,EAEhC,KAAK,cAAc,KAAKA,CAAM,MAE3B,CACL,MAAMunF,EAAc,KAAK,cAAc,KAAI,EAAG,KAAK5pF,GAAKA,EAAE,SAAWmmF,CAAK,EAC1E/kD,GAAOwoD,EAAa,yEAAyE,EAC7FA,EAAY,SAASvnF,CAAM,CAC7B,CACF,EAmBF,MAAMgnF,WAAqCjD,EAAoB,CAK7D,YAAYr3D,EAAQ,CAClB,MAAMA,CAAM,EALdoY,EAAA,KAAA0iD,GAAeV,GAAY,KAAK,IAAI,GACpChiE,GAAA,aAAQ,IACRA,GAAA,qBAAgB,MAChBA,GAAA,iBAAY,CAAA,GAGV,KAAM,CACJ,sBAAAqiE,EACA,aAAAvB,EACA,cAAAa,CACN,EAAQ/5D,EAAO,QACL,CACJ,OAAAkU,EACA,2BAAA6mD,CACN,EAAQN,EACJ,KAAK,cAAgBz6D,EAAO,eAAiB,CAAA,EAC7C,UAAWrtB,KAAS,KAAK,cACvB,KAAK,SAAWA,EAAM,WAExB,KAAK,MAAQqtB,EAAO,iBACpB,KAAK,eAAiBkU,EACtB,KAAK,sBAAwB,CAAC6lD,EAC9B,KAAK,kBAAoB,CAACb,EACtB/7C,GAAU49C,CAA0B,IACtC,KAAK,UAAYA,GAEnB,KAAK,mBAAmB,QAAO,EAC/B,MAAMC,EAAS,KAAK,QACpB,QAAQ,UAAU,KAAK,IAAM,CACvBA,EAAS,GAAK,KAAK,UAAYA,GACjC,KAAK,gBAAe,CAExB,CAAC,CACH,CACA,SAASroF,EAAO,CACV,KAAK,QAGL,KAAK,UAAU,OAAS,EACP,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACjB,MAAOA,EACP,KAAM,EACd,CAAO,EAED,KAAK,cAAc,KAAKA,CAAK,EAE/B,KAAK,SAAWA,EAAM,WACtB,KAAK,gBAAe,EACtB,CACA,MAAM,MAAO,CACX,GAAI,KAAK,cAAc,OAAS,EAE9B,MAAO,CACL,MAFY,KAAK,cAAc,MAAK,EAGpC,KAAM,EACd,EAEI,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAM4gE,EAAa,QAAQ,cAAa,EACxC,YAAK,UAAU,KAAKA,CAAU,EACvBA,EAAW,OACpB,CACA,OAAOK,EAAQ,CACb,KAAK,MAAQ,GACb31B,EAAA,KAAK68C,IAAL,UACF,CACA,iBAAkB,CAChB,KAAK,QAAL,KAAK,MAAU,IACX,KAAK,cAAc,SAAW,GAChC78C,EAAA,KAAK68C,IAAL,UAEJ,CACF,CA9EEA,GAAA,YA+EF,MAAMP,WAA0CjD,EAAyB,CAOvE,YAAYt3D,EAAQo3D,EAAO10C,EAAK,CAC9B,MAAM1iB,EAAQo3D,EAAO10C,CAAG,EAP1BtK,EAAA,KAAA0iD,GAAeV,GAAY,KAAK,IAAI,GACpChiE,GAAA,cAAS,MACTA,GAAA,cAAS,IACTA,GAAA,aAAQ,IACRA,GAAA,oBAAe,MACfA,GAAA,iBAAY,CAAA,GAGV,KAAK,OAASg/D,CAChB,CACA,SAASzkF,EAAO,OACV,KAAK,QAGL,KAAK,UAAU,SAAW,EAC5B,KAAK,aAAeA,GAED,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACjB,MAAOA,EACP,KAAM,EACd,CAAO,EACDsrC,EAAA,KAAK68C,IAAL,YAEF,KAAK,MAAQ,IACbjqF,EAAA,KAAK,SAAL,MAAAA,EAAA,WACF,CACA,MAAM,MAAO,CACX,GAAI,KAAK,aAAc,CACrB,MAAM8B,EAAQ,KAAK,aACnB,YAAK,aAAe,KACb,CACL,MAAOA,EACP,KAAM,EACd,CACI,CACA,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAM4gE,EAAa,QAAQ,cAAa,EACxC,YAAK,UAAU,KAAKA,CAAU,EACvBA,EAAW,OACpB,CACA,OAAOK,EAAQ,OACb,KAAK,MAAQ,GACb31B,EAAA,KAAK68C,IAAL,YACAjqF,EAAA,KAAK,SAAL,MAAAA,EAAA,UACF,CACF,CAnDEiqF,GAAA,YA0DF,MAAMG,GAAc,IACdC,GAA2B,IACjC,SAASC,GAAuB71B,EAAK,CACnC,OAAO,OAAOA,GAAQ,SAAWA,EAAMhxB,GAAcgxB,CAAG,EAAE,MAC5D,CACA,MAAM81B,WAAyBrE,EAAc,CAG3C,YAAY72D,EAAQ,CAClB,MAAMA,EAAQm7D,GAAwBC,EAA2B,EAJrEljD,EAAA,KAAAmjD,IACEnjD,EAAA,KAAAojD,GAAmB,IAAI,SACvBpjE,GAAA,uBAAkB,MAGhB,KAAM,CACJ,YAAAwgE,EACA,IAAA/lF,CACN,EAAQqtB,EACJ,KAAK,IAAMrtB,EACX,KAAK,OAAS,UAAU,KAAKA,EAAI,QAAQ,EACzC,KAAK,QAAU6lF,GAAc,KAAK,OAAQE,CAAW,CACvD,CACA,SAASlkE,EAAM,CACb,MAAM+mE,EAAM,IAAI,eACVC,EAAiB,CACrB,eAAgB,KAChB,kBAAmBhnE,EAAK,kBACxB,OAAQA,EAAK,OACb,QAASA,EAAK,QACd,WAAYA,EAAK,UACvB,EACIupB,EAAA,KAAKu9C,IAAiB,IAAIC,EAAKC,CAAc,EAC7CD,EAAI,KAAK,MAAO,KAAK,GAAG,EACxBA,EAAI,gBAAkB,KAAK,QAAQ,gBACnC,SAAW,CAAC7kE,EAAK0uC,CAAG,IAAK,KAAK,QAC5Bm2B,EAAI,iBAAiB7kE,EAAK0uC,CAAG,EAE/B,OAAI,KAAK,QAAU,UAAW5wC,GAAQ,QAASA,GAC7C+mE,EAAI,iBAAiB,QAAS,SAAS/mE,EAAK,KAAK,IAAIA,EAAK,IAAM,CAAC,EAAE,EACnEgnE,EAAe,eAAiBvqF,GAAUA,IAAW+pF,IAA4B/pF,IAAW8pF,IAE5FS,EAAe,eAAiBvqF,GAAUA,IAAW8pF,GAEvDQ,EAAI,aAAe,cACnBppD,GAAO3d,EAAK,QAAS,6CAA6C,EAClE+mE,EAAI,QAAU,IAAM/mE,EAAK,QAAQ+mE,EAAI,MAAM,EAC3CA,EAAI,mBAAqB5jD,EAAA,KAAK0jD,GAAAI,IAAe,KAAK,KAAMF,CAAG,EAC3DA,EAAI,WAAa5jD,EAAA,KAAK0jD,GAAAK,IAAY,KAAK,KAAMH,CAAG,EAChDA,EAAI,KAAK,IAAI,EACNA,CACT,CA6CA,cAAcA,EAAK,CACbx9C,EAAA,KAAKu9C,IAAiB,IAAIC,CAAG,IAC/Bx9C,EAAA,KAAKu9C,IAAiB,OAAOC,CAAG,EAChCA,EAAI,MAAK,EAEb,CACA,eAAerE,EAAO10C,EAAK,CACzB,MAAMtvC,EAAS,MAAM,eAAegkF,EAAO10C,CAAG,EAC9C,OAAItvC,IACFA,EAAO,SAAW,IAAM,KAAK,cAAc,OAAOA,CAAM,GAEnDA,CACT,CACF,CAlGEooF,GAAA,YADFD,GAAA,YA0CEK,GAAW,SAACH,EAAKzsC,EAAK,OACpB,MAAM0sC,EAAiBz9C,EAAA,KAAKu9C,IAAiB,IAAIC,CAAG,GACpD5qF,EAAA6qF,GAAA,YAAAA,EAAgB,aAAhB,MAAA7qF,EAAA,KAAA6qF,EAA6B1sC,EAC/B,EACA2sC,GAAc,SAACF,EAAKzsC,EAAK,CACvB,MAAM0sC,EAAiBz9C,EAAA,KAAKu9C,IAAiB,IAAIC,CAAG,EAWpD,GAVI,CAACC,IAGDD,EAAI,YAAc,GAAKC,EAAe,oBACxCA,EAAe,kBAAiB,EAChC,OAAOA,EAAe,mBAEpBD,EAAI,aAAe,IAGnB,CAACx9C,EAAA,KAAKu9C,IAAiB,IAAIC,CAAG,EAChC,OAGF,GADAx9C,EAAA,KAAKu9C,IAAiB,OAAOC,CAAG,EAC5BA,EAAI,SAAW,GAAK,KAAK,OAAQ,CACnCC,EAAe,QAAQD,EAAI,MAAM,EACjC,MACF,CACA,MAAMI,EAAYJ,EAAI,QAAUR,GAChC,GAAI,CAACS,EAAe,eAAeG,CAAS,EAAG,CAC7CH,EAAe,QAAQD,EAAI,MAAM,EACjC,MACF,CACA,MAAM9oF,EAAQwoF,GAAuBM,EAAI,QAAQ,EACjD,GAAII,IAAcX,GAA0B,CAC1C,MAAMY,EAAcL,EAAI,kBAAkB,eAAe,EACrD,qBAAqB,KAAKK,CAAW,EACvCJ,EAAe,OAAO/oF,CAAK,GAE3Bw/B,GAAK,4CAA4C,EACjDupD,EAAe,QAAQ,CAAC,EAE5B,MAAW/oF,EACT+oF,EAAe,OAAO/oF,CAAK,EAE3B+oF,EAAe,QAAQD,EAAI,MAAM,CAErC,EAeF,MAAMJ,WAA+BhE,EAAoB,CAMvD,YAAYr3D,EAAQ,CAClB,MAAMA,CAAM,EAPhBoY,EAAA,KAAA2jD,IACE3jD,EAAA,KAAA0iD,GAAeV,GAAY,KAAK,IAAI,GACpChiE,GAAA,qBAAgB,CAAA,GAChBA,GAAA,aAAQ,IACRA,GAAA,iBAAY,CAAA,GACZA,GAAA,oBAAe,MAGb,KAAK,gBAAkB4H,EAAO,SAAS,CACrC,kBAAmB6X,EAAA,KAAKkkD,GAAAC,IAAmB,KAAK,IAAI,EACpD,OAAQnkD,EAAA,KAAKkkD,GAAAE,IAAQ,KAAK,IAAI,EAC9B,QAASpkD,EAAA,KAAKkkD,GAAAG,IAAS,KAAK,IAAI,EAChC,WAAYrkD,EAAA,KAAKkkD,GAAAH,IAAY,KAAK,IAAI,CAC5C,CAAK,CACH,CA6DA,MAAM,MAAO,CAEX,GADA,MAAM,KAAK,mBAAmB,QAC1B,KAAK,aACP,MAAM,KAAK,aAEb,GAAI,KAAK,cAAc,OAAS,EAE9B,MAAO,CACL,MAFY,KAAK,cAAc,MAAK,EAGpC,KAAM,EACd,EAEI,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAMroB,EAAa,QAAQ,cAAa,EACxC,YAAK,UAAU,KAAKA,CAAU,EACvBA,EAAW,OACpB,CACA,OAAOK,EAAQ,CACb,KAAK,MAAQ,GACb,KAAK,mBAAmB,OAAOA,CAAM,EACrC31B,EAAA,KAAK68C,IAAL,WACA,KAAK,QAAQ,cAAc,KAAK,eAAe,EAC/C,KAAK,gBAAkB,IACzB,CACF,CAvGEA,GAAA,YADFiB,GAAA,YAeEC,GAAkB,UAAG,CACnB,MAAMh8D,EAAS,KAAK,QACd,CACJ,aAAAk5D,EACA,eAAAD,CACN,EAAQj5D,EAAO,QACLm8D,EAAiB,KAAK,gBAC5Bn8D,EAAO,gBAAkB84D,GAAkBqD,EAAe,WAAW,EACrE,MAAMC,EAAqBD,EAAe,sBAAqB,EACzDnD,EAAkB,IAAI,QAAQoD,EAAqBA,EAAmB,UAAS,EAAG,QAAQ,WAAY,EAAE,EAAE,MAAM,SAAS,EAAE,IAAItlF,GAAK,CACxI,KAAM,CAAC8f,EAAK,GAAG0uC,CAAG,EAAIxuD,EAAE,MAAM,IAAI,EAClC,MAAO,CAAC8f,EAAK0uC,EAAI,KAAK,IAAI,CAAC,CAC7B,CAAC,EAAI,CAAA,CAAE,EACD,CACJ,cAAA00B,EACA,iBAAAC,CACN,EAAQlB,GAAiC,CACnC,gBAAAC,EACA,OAAQh5D,EAAO,OACf,eAAAi5D,EACA,aAAAC,CACN,CAAK,EACD,KAAK,eAAiBc,EACtB,KAAK,kBAAoBC,EACzB,KAAK,UAAYb,GAA0BJ,CAAe,EACtD,KAAK,mBACPh5D,EAAO,cAAcm8D,CAAc,EAErC,KAAK,mBAAmB,QAAO,CACjC,EACAF,GAAO,SAACtpF,EAAO,CACT,KAAK,UAAU,OAAS,EACP,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACjB,MAAOA,EACP,KAAM,EACd,CAAO,EAED,KAAK,cAAc,KAAKA,CAAK,EAE/B,KAAK,MAAQ,GACT,KAAK,cAAc,SAAW,GAChCsrC,EAAA,KAAK68C,IAAL,UAEJ,EACAoB,GAAQ,SAAC/qF,EAAQ,CACf,KAAK,aAAekoF,GAAoBloF,EAAQ,KAAK,QAAQ,GAAG,EAChE,KAAK,mBAAmB,OAAO,KAAK,YAAY,EAChD,UAAWoiE,KAAc,KAAK,UAC5BA,EAAW,OAAO,KAAK,YAAY,EAErC,KAAK,UAAU,OAAS,EACxB,KAAK,cAAc,OAAS,CAC9B,EACAqoB,GAAW,SAAC5sC,EAAK,QACfn+C,EAAA,KAAK,aAAL,MAAAA,EAAA,UAAkB,CAChB,OAAQm+C,EAAI,OACZ,MAAOA,EAAI,iBAAmBA,EAAI,MAAQ,KAAK,cACrD,EACE,EA+BF,MAAMssC,WAAoChE,EAAyB,CAOjE,YAAYt3D,EAAQo3D,EAAO10C,EAAK,CAC9B,MAAM1iB,EAAQo3D,EAAO10C,CAAG,EAR5BtK,EAAA,KAAAikD,IACEjkD,EAAA,KAAA0iD,GAAeV,GAAY,KAAK,IAAI,GACpChiE,GAAA,gBAAW,MACXA,GAAA,aAAQ,IACRA,GAAA,oBAAe,MACfA,GAAA,iBAAY,CAAA,GACZA,GAAA,oBAAe,MAGb,KAAK,YAAc4H,EAAO,SAAS,CACjC,MAAAo3D,EACA,IAAA10C,EACA,kBAAmB7K,EAAA,KAAKwkD,GAAAL,IAAmB,KAAK,IAAI,EACpD,OAAQnkD,EAAA,KAAKwkD,GAAAJ,IAAQ,KAAK,IAAI,EAC9B,QAASpkD,EAAA,KAAKwkD,GAAAH,IAAS,KAAK,IAAI,EAChC,WAAY,IAClB,CAAK,CACH,CAgCA,MAAM,MAAO,CACX,GAAI,KAAK,aACP,MAAM,KAAK,aAEb,GAAI,KAAK,eAAiB,KAAM,CAC9B,MAAMvpF,EAAQ,KAAK,aACnB,YAAK,aAAe,KACb,CACL,MAAOA,EACP,KAAM,EACd,CACI,CACA,GAAI,KAAK,MACP,MAAO,CACL,MAAO,OACP,KAAM,EACd,EAEI,MAAM4gE,EAAa,QAAQ,cAAa,EACxC,YAAK,UAAU,KAAKA,CAAU,EACvBA,EAAW,OACpB,CACA,OAAOK,EAAQ,OACb,KAAK,MAAQ,GACb31B,EAAA,KAAK68C,IAAL,WACA,KAAK,QAAQ,cAAc,KAAK,WAAW,GAC3CjqF,EAAA,KAAK,WAAL,MAAAA,EAAA,UACF,CACF,CA5EEiqF,GAAA,YADFuB,GAAA,YAkBEL,GAAkB,UAAG,OACnB,MAAM9B,EAAiBpB,IAAkBjoF,EAAA,KAAK,cAAL,YAAAA,EAAkB,WAAW,EACtE,GAAI,CACFyoF,GAAqBY,EAAgB,KAAK,QAAQ,eAAe,CACnE,OAAShoC,EAAI,CACX,KAAK,aAAeA,EACpBra,EAAA,KAAKwkD,GAAAH,IAAL,UAAc,EAChB,CACF,EACAD,GAAO,SAACtpF,EAAO,OACT,KAAK,UAAU,OAAS,EACP,KAAK,UAAU,MAAK,EAC5B,QAAQ,CACjB,MAAOA,EACP,KAAM,EACd,CAAO,EAED,KAAK,aAAeA,EAEtB,KAAK,MAAQ,GACbsrC,EAAA,KAAK68C,IAAL,YACAjqF,EAAA,KAAK,WAAL,MAAAA,EAAA,UACF,EACAqrF,GAAQ,SAAC/qF,EAAQ,CACf,KAAK,eAAL,KAAK,aAAiBkoF,GAAoBloF,EAAQ,KAAK,QAAQ,GAAG,GAClE,UAAWoiE,KAAc,KAAK,UAC5BA,EAAW,OAAO,KAAK,YAAY,EAErC,KAAK,UAAU,OAAS,EACxB,KAAK,aAAe,IACtB,EAoCF,SAAS+oB,GAAkBzpF,EAAKonD,EAAO,KAAM,CAC3C,MAAMvsC,EAAK,QAAQ,iBAAiB,IAAI,EAClC,CACJ,SAAA6uE,CACJ,EAAM,QAAQ,iBAAiB,QAAQ,EAC/BC,EAAa9uE,EAAG,iBAAiB7a,EAAKonD,CAAI,EAChD,OAAOsiC,EAAS,MAAMC,CAAU,CAClC,CACA,MAAMC,WAAsB1F,EAAc,CACxC,YAAY72D,EAAQ,CAClB,MAAMA,EAAQw8D,GAAqBC,EAAwB,EAC3D,KAAM,CACJ,IAAA9pF,CACN,EAAQqtB,EACJmS,GAAOx/B,EAAI,WAAa,QAAS,2CAA2C,CAC9E,CACF,CACA,MAAM6pF,WAA4BrF,EAAoB,CAEpD,YAAYr3D,EAAQ,CAClB,MAAMA,CAAM,EAFd5H,GAAA,eAAU,MAGR,KAAM,CACJ,aAAA8gE,EACA,cAAAa,EACA,eAAAd,EACA,IAAApmF,CACN,EAAQmtB,EAAO,QACX,KAAK,sBAAwB,CAAC+5D,EACnB,QAAQ,iBAAiB,aAAa,EAC9C,MAAMlnF,CAAG,EAAE,KAAK+pF,GAAQ,CACzB,MAAMC,EAAiBP,GAAkBzpF,CAAG,EAC5C,KAAK,QAAUgqF,EAAe,UAAS,EACvC,KAAM,CACJ,KAAAp1C,CACR,EAAUm1C,EACJ,KAAK,eAAiBn1C,EACtB,KAAK,kBAAoB,CAACyxC,GAAgBzxC,EAAO,EAAIwxC,EACjD,CAAC,KAAK,uBAAyB,KAAK,mBACtC,KAAK,OAAO,IAAIllD,GAAe,wBAAwB,CAAC,EAE1D,KAAK,mBAAmB,QAAO,CACjC,CAAC,EAAE,MAAMp/B,GAAS,CACZA,EAAM,OAAS,WACjBA,EAAQ0kF,GAAoB,EAAGxmF,CAAG,GAEpC,KAAK,mBAAmB,OAAO8B,CAAK,CACtC,CAAC,CACH,CACA,MAAM,MAAO,CACX,MAAM,KAAK,mBAAmB,QAC9B,KAAM,CACJ,MAAAnB,EACA,KAAAD,CACN,EAAQ,MAAM,KAAK,QAAQ,KAAI,EAC3B,OAAIA,EACK,CACL,MAAAC,EACA,KAAAD,CACR,GAEI,KAAK,SAAWC,EAAM,WACtB,KAAK,gBAAe,EACb,CACL,MAAOmmF,GAAenmF,CAAK,EAC3B,KAAM,EACZ,EACE,CACA,OAAOogE,EAAQ,QACb/iE,EAAA,KAAK,UAAL,MAAAA,EAAc,OAAO+iE,EACvB,CACF,CACA,MAAM+oB,WAAiCrF,EAAyB,CAG9D,YAAYt3D,EAAQo3D,EAAO10C,EAAK,CAC9B,MAAM1iB,EAAQo3D,EAAO10C,CAAG,EAH1BtqB,GAAA,uBAAkB,QAAQ,cAAa,GACvCA,GAAA,eAAU,MAGR,KAAM,CACJ,IAAAvlB,CACN,EAAQmtB,EAAO,QACX,GAAI,CACF,MAAM68D,EAAiBP,GAAkBzpF,EAAK,CAC5C,MAAOukF,EACP,IAAK10C,EAAM,CACnB,CAAO,EACD,KAAK,QAAUm6C,EAAe,UAAS,EACvC,KAAK,gBAAgB,QAAO,CAC9B,OAASloF,EAAO,CACd,KAAK,gBAAgB,OAAOA,CAAK,CACnC,CACF,CACA,MAAM,MAAO,CACX,MAAM,KAAK,gBAAgB,QAC3B,KAAM,CACJ,MAAAnB,EACA,KAAAD,CACN,EAAQ,MAAM,KAAK,QAAQ,KAAI,EAC3B,OAAIA,EACK,CACL,MAAAC,EACA,KAAAD,CACR,EAEW,CACL,MAAOomF,GAAenmF,CAAK,EAC3B,KAAM,EACZ,CACE,CACA,OAAOogE,EAAQ,QACb/iE,EAAA,KAAK,UAAL,MAAAA,EAAc,OAAO+iE,EACvB,CACF,CAQA,SAASkpB,GAAiBjqF,EAAK,CAC7B,OAAOiqC,GAAgBjqC,CAAG,EAAI+mF,GAAiBlpD,GAAW+rD,GAAgBrB,EAC5E,CAGA,MAAM2B,EAAoB,CAGxB,WAAW,YAAa,CACtB,OAAO9+C,EAAA,KAAK++C,GACd,CACA,WAAW,WAAW13B,EAAK,CACzB,GAAI,EAAE,OAAO,OAAW,KAAeA,aAAe,SAAWA,IAAQ,KACvE,MAAM,IAAI,MAAM,4BAA4B,EAE9C/mB,EAAA,KAAKy+C,GAAQ13B,EACf,CACA,WAAW,WAAY,CACrB,OAAOrnB,EAAA,KAAKg/C,GACd,CACA,WAAW,UAAU33B,EAAK,CACxB,GAAI,OAAOA,GAAQ,SACjB,MAAM,IAAI,MAAM,2BAA2B,EAE7C/mB,EAAA,KAAK0+C,GAAO33B,EACd,CACF,CApBS03B,GAAA,YACAC,GAAA,YADP7kD,EADI2kD,GACGC,GAAQ,MACf5kD,EAFI2kD,GAEGE,GAAO,IAsBhB,MAAMC,EAAS,CAGb,YAAY,CACV,WAAAC,EACA,QAAAn1C,CACJ,EAAK,CALH5P,EAAA,KAAAglD,IACAhlD,EAAA,KAAAilD,IAKE9+C,EAAA,KAAK6+C,GAAOD,GACZ5+C,EAAA,KAAK8+C,GAAQr1C,EACf,CACA,QAAS,CACP,OAAO/J,EAAA,KAAKo/C,GACd,CACA,IAAI9lE,EAAM,CACR,OAAO0mB,EAAA,KAAKm/C,IAAK,IAAI7lE,CAAI,GAAK,IAChC,CACA,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO0mB,EAAA,KAAKm/C,IAAK,QAAO,CAC1B,CACF,CAlBEA,GAAA,YACAC,GAAA,YAsBF,MAAMC,GAAW,OAAO,UAAU,EAClC,MAAMC,EAAqB,CAKzB,YAAYC,EAAiB,CAC3B,KAAAjmE,EACA,OAAA8jB,EACA,MAAAoiD,EACA,SAAAC,CACJ,EAAK,CATHtlD,EAAA,KAAAulD,GAAa,IACbvlD,EAAA,KAAAwlD,GAAW,IACXxlD,EAAA,KAAAylD,GAAW,IACXzlD,EAAA,KAAA0lD,GAAW,IAOTv/C,EAAA,KAAKo/C,GAAa,CAAC,EAAEH,EAAkBzsD,GAAoB,UAC3DwN,EAAA,KAAKq/C,GAAW,CAAC,EAAEJ,EAAkBzsD,GAAoB,QACzD,KAAK,KAAOxZ,EACZ,KAAK,OAAS8jB,EACd,KAAK,MAAQoiD,EACb,KAAK,SAAWC,CAClB,CACA,IAAI,SAAU,CACZ,GAAIz/C,EAAA,KAAK4/C,IACP,OAAO5/C,EAAA,KAAK6/C,IAEd,GAAI,CAAC7/C,EAAA,KAAK6/C,IACR,MAAO,GAET,KAAM,CACJ,MAAAC,EACA,KAAAC,CACN,EAAQ,KAAK,MACT,OAAI//C,EAAA,KAAK0/C,KACAK,GAAA,YAAAA,EAAM,aAAc,MAClB//C,EAAA,KAAK2/C,KACPG,GAAA,YAAAA,EAAO,cAAe,MAExB,EACT,CACA,YAAYE,EAAU9pC,EAAS+pC,EAAU,GAAO,CAC1CD,IAAaX,IACflrD,GAAY,uCAAuC,EAErDmM,EAAA,KAAKs/C,GAAWK,GAChB3/C,EAAA,KAAKu/C,GAAW3pC,EAClB,CACA,IAAI,cAAe,CACjB,MAAO,CACL,QAASlW,EAAA,KAAK4/C,IACd,QAAS5/C,EAAA,KAAK6/C,GACpB,CACE,CACF,CAhDEH,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YA8CF,MAAMK,GAAN,MAAMA,EAAsB,CAQ1B,YAAYtqF,EAAM2pF,EAAkBzsD,GAAoB,QAASqtD,EAAa,KAAM,CARtFhmD,EAAA,KAAAimD,IACEjmD,EAAA,KAAAkmD,GAAiB,MACjBlmD,EAAA,KAAAmmD,GAAU,IAAI,KACdnmD,EAAA,KAAAomD,GAAe,MACfpmD,EAAA,KAAAqmD,GAAS,MACTrmD,EAAA,KAAAsmD,IACAtmE,GAAA,eAAU,MACVA,GAAA,YAAO,MAIL,GAFAmmB,EAAA,KAAKmgD,GAAW7qF,GAChB,KAAK,gBAAkB2pF,EACnB3pF,IAAS,KAGb,MAAK,KAAOA,EAAK,KACjB,KAAK,QAAUA,EAAK,QACpB0qC,EAAA,KAAKkgD,GAAS5qF,EAAK,OACnB,UAAWw+E,KAASx+E,EAAK,OACvBoqC,EAAA,KAAKsgD,IAAQ,IAAIlM,EAAM,GAAI,IAAIkL,GAAqBC,EAAiBnL,CAAK,CAAC,EAE7E,GAAI+L,EAAY,CACVA,EAAW,OAASngD,EAAA,KAAKsgD,IAAQ,MACnCnsD,GAAY,kCAAkC,EAEhD,SAAW,CAAC1Y,EAAI24D,CAAK,IAAK+L,EACxBngD,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EAAE,YAAY4jE,GAAUjL,EAAM,QAASA,EAAM,OAAO,CAE3E,KAAO,CACL,GAAIx+E,EAAK,YAAc,MACrB,UAAWw+E,KAASp0C,EAAA,KAAKsgD,IAAQ,OAAM,EACrClM,EAAM,YAAYiL,GAAU,EAAK,EAGrC,UAAWl+E,KAAMvL,EAAK,GACpBoqC,EAAA,KAAKsgD,IAAQ,IAAIn/E,CAAE,EAAE,YAAYk+E,GAAU,EAAI,EAEjD,UAAWqB,KAAO9qF,EAAK,IACrBoqC,EAAA,KAAKsgD,IAAQ,IAAII,CAAG,EAAE,YAAYrB,GAAU,EAAK,CAErD,CACA/+C,EAAA,KAAKigD,GAAe,KAAK,QAAO,GAClC,CAqCA,UAAUnM,EAAO,CACf,GAAIp0C,EAAA,KAAKsgD,IAAQ,OAAS,EACxB,MAAO,GAET,GAAI,CAAClM,EACH,OAAApgD,GAAK,qCAAqC,EACnC,GAET,GAAIogD,EAAM,OAAS,MACjB,OAAKp0C,EAAA,KAAKsgD,IAAQ,IAAIlM,EAAM,EAAE,EAIvBp0C,EAAA,KAAKsgD,IAAQ,IAAIlM,EAAM,EAAE,EAAE,SAHhClgD,GAAK,qCAAqCkgD,EAAM,EAAE,EAAE,EAC7C,IAGJ,GAAIA,EAAM,OAAS,OAAQ,CAChC,GAAIA,EAAM,WACR,OAAOx6C,EAAA,KAAKwmD,GAAAO,IAAL,UAAmCvM,EAAM,YAElD,GAAI,CAACA,EAAM,QAAUA,EAAM,SAAW,QAAS,CAC7C,UAAW34D,KAAM24D,EAAM,IAAK,CAC1B,GAAI,CAACp0C,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EACtB,OAAAyY,GAAK,qCAAqCzY,CAAE,EAAE,EACvC,GAET,GAAIukB,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EAAE,QACvB,MAAO,EAEX,CACA,MAAO,EACT,SAAW24D,EAAM,SAAW,QAAS,CACnC,UAAW34D,KAAM24D,EAAM,IAAK,CAC1B,GAAI,CAACp0C,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EACtB,OAAAyY,GAAK,qCAAqCzY,CAAE,EAAE,EACvC,GAET,GAAI,CAACukB,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EAAE,QACxB,MAAO,EAEX,CACA,MAAO,EACT,SAAW24D,EAAM,SAAW,SAAU,CACpC,UAAW34D,KAAM24D,EAAM,IAAK,CAC1B,GAAI,CAACp0C,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EACtB,OAAAyY,GAAK,qCAAqCzY,CAAE,EAAE,EACvC,GAET,GAAI,CAACukB,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EAAE,QACxB,MAAO,EAEX,CACA,MAAO,EACT,SAAW24D,EAAM,SAAW,SAAU,CACpC,UAAW34D,KAAM24D,EAAM,IAAK,CAC1B,GAAI,CAACp0C,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EACtB,OAAAyY,GAAK,qCAAqCzY,CAAE,EAAE,EACvC,GAET,GAAIukB,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EAAE,QACvB,MAAO,EAEX,CACA,MAAO,EACT,CACA,OAAAyY,GAAK,mCAAmCkgD,EAAM,MAAM,GAAG,EAChD,EACT,CACA,OAAAlgD,GAAK,sBAAsBkgD,EAAM,IAAI,GAAG,EACjC,EACT,CACA,cAAc34D,EAAIy6B,EAAU,GAAM0qC,EAAa,GAAM,OACnD,MAAMxM,EAAQp0C,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,EACjC,GAAI,CAAC24D,EAAO,CACVlgD,GAAK,qCAAqCzY,CAAE,EAAE,EAC9C,MACF,CACA,GAAImlE,GAAc1qC,GAAWk+B,EAAM,SAAS,OAC1C,UAAWyM,KAAWzM,EAAM,SAC1B,UAAW0M,KAAWD,EAChBC,IAAYrlE,KACd7oB,EAAAotC,EAAA,KAAKsgD,IAAQ,IAAIQ,CAAO,IAAxB,MAAAluF,EAA2B,YAAYysF,GAAU,GAAO,KAKhEjL,EAAM,YAAYiL,GAAU,CAAC,CAACnpC,EAAS,EAAI,EAC3C5V,EAAA,KAAK+/C,GAAiB,KACxB,CACA,YAAY,CACV,MAAAjoE,EACA,WAAAwoE,CACJ,EAAK,CACD,IAAIG,EACJ,UAAWzkB,KAAQlkD,EAAO,CACxB,OAAQkkD,EAAI,CACV,IAAK,KACL,IAAK,MACL,IAAK,SACHykB,EAAWzkB,EACX,QACV,CACM,MAAM8X,EAAQp0C,EAAA,KAAKsgD,IAAQ,IAAIhkB,CAAI,EACnC,GAAK8X,EAGL,OAAQ2M,EAAQ,CACd,IAAK,KACH,KAAK,cAAczkB,EAAM,GAAMskB,CAAU,EACzC,MACF,IAAK,MACH,KAAK,cAActkB,EAAM,GAAOskB,CAAU,EAC1C,MACF,IAAK,SACH,KAAK,cAActkB,EAAM,CAAC8X,EAAM,QAASwM,CAAU,EACnD,KACV,CACI,CACAtgD,EAAA,KAAK+/C,GAAiB,KACxB,CACA,IAAI,sBAAuB,CACzB,OAAOrgD,EAAA,KAAKugD,MAAiB,MAAQ,KAAK,QAAO,IAAOvgD,EAAA,KAAKugD,GAC/D,CACA,UAAW,CACT,OAAKvgD,EAAA,KAAKsgD,IAAQ,KAGdtgD,EAAA,KAAKwgD,IACAxgD,EAAA,KAAKwgD,IAAO,MAAK,EAEnB,CAAC,GAAGxgD,EAAA,KAAKsgD,IAAQ,KAAI,CAAE,EALrB,IAMX,CACA,SAAS7kE,EAAI,CACX,OAAOukB,EAAA,KAAKsgD,IAAQ,IAAI7kE,CAAE,GAAK,IACjC,CACA,SAAU,CACR,GAAIukB,EAAA,KAAKqgD,MAAmB,KAC1B,OAAOrgD,EAAA,KAAKqgD,IAEd,MAAMzrD,EAAO,IAAIkxB,GACjB,SAAW,CAACrqC,EAAI24D,CAAK,IAAKp0C,EAAA,KAAKsgD,IAC7B1rD,EAAK,OAAO,GAAGnZ,CAAE,IAAI24D,EAAM,OAAO,EAAE,EAEtC,OAAO9zC,EAAA,KAAK+/C,GAAiBzrD,EAAK,UAAS,EAC7C,CACA,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAOoL,EAAA,KAAKsgD,IAAQ,QAAO,CAC7B,CACA,IAAI,cAAe,CACjB,MAAMH,EAAa,IAAI,IACvB,SAAW,CAAC1kE,EAAI24D,CAAK,IAAKp0C,EAAA,KAAKsgD,IAC7BH,EAAW,IAAI1kE,EAAI24D,EAAM,YAAY,EAEvC,MAAO,CACL,KAAMp0C,EAAA,KAAKygD,IACX,gBAAiB,KAAK,gBACtB,WAAAN,CACN,CACE,CACA,OAAO,iBAAiB,CACtB,KAAAvqF,EACA,gBAAA2pF,EACA,WAAAY,CACJ,EAAK,CACD,OAAO,IAAID,GAAsBtqF,EAAM2pF,EAAiBY,CAAU,CACpE,CACF,EAjPEE,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YALFL,GAAA,YA0CEO,GAA6B,SAACx8C,EAAO,CACnC,MAAMlO,EAASkO,EAAM,OACrB,GAAIlO,EAAS,EACX,MAAO,GAET,MAAM8qD,EAAW58C,EAAM,CAAC,EACxB,QAASjtC,EAAI,EAAGA,EAAI++B,EAAQ/+B,IAAK,CAC/B,MAAMgmC,EAAUiH,EAAMjtC,CAAC,EACvB,IAAIkhB,EACJ,GAAI,MAAM,QAAQ8kB,CAAO,EACvB9kB,EAAQwhB,EAAA,KAAKwmD,GAAAO,IAAL,UAAmCzjD,WAClC8C,EAAA,KAAKsgD,IAAQ,IAAIpjD,CAAO,EACjC9kB,EAAQ4nB,EAAA,KAAKsgD,IAAQ,IAAIpjD,CAAO,EAAE,YAElC,QAAAhJ,GAAK,qCAAqCgJ,CAAO,EAAE,EAC5C,GAET,OAAQ6jD,EAAQ,CACd,IAAK,MACH,GAAI,CAAC3oE,EACH,MAAO,GAET,MACF,IAAK,KACH,GAAIA,EACF,MAAO,GAET,MACF,IAAK,MACH,MAAO,CAACA,EACV,QACE,MAAO,EACjB,CACI,CACA,OAAO2oE,IAAa,KACtB,EA7EF,IAAMC,GAANd,GAuPA,MAAMe,EAAY,CAAlB,cAAA9mD,EAAA,KAAA+mD,IACE/mD,EAAA,KAAAgnD,GAAkB,MAClBhnD,EAAA,KAAAinD,GAAmB,MACnBjnD,EAAA,KAAAknD,GAAe,GACflnD,EAAA,KAAAmnD,GAAa,MACbnnD,EAAA,KAAAonD,GAAa,MACb,IAAI,aAAc,CAChB,OAAOvhD,EAAA,KAAKqhD,GACd,CACA,IAAI,YAAYpqF,EAAG,CACb+oC,EAAA,KAAKqhD,MAAiBpqF,IAG1BqpC,EAAA,KAAK+gD,GAAepqF,GACpBqpC,EAAA,KAAK6gD,GAAkB,MACvB7gD,EAAA,KAAK8gD,GAAmB,MAC1B,CA0BA,UAAUI,EAAeC,EAAaroE,EAAO,CAC3CwgB,EAAA,KAAKsnD,GAAAQ,IAAL,WACA,MAAMC,EAAiB3hD,EAAA,KAAKmhD,IACtBS,EAAqBhoD,EAAA,KAAKsnD,GAAAW,IAAL,WACrBC,EAAaL,EAAY,OACzBM,EAAoB,IAAI,YAAYD,CAAU,EACpD,IAAIE,EAAsB,EAC1B,QAAS9qF,EAAI,EAAGA,EAAI4qF,EAAY5qF,IAAK,CACnC,MAAMg7C,EAAYuvC,EAAYvqF,CAAC,EAAI,EACnC6qF,EAAkB7qF,CAAC,EAAIyqF,EAAezvC,CAAS,EAC3CA,EAAY94B,GACd4oE,GAEJ,CACA,MAAMC,EAAcjiD,EAAA,KAAKqhD,IACnBa,EAAeD,EAAcH,EAC7BK,EAAiB7mD,GAAUliB,EAAQ4oE,EAAqB,EAAGE,CAAY,EAC7E,QAAShrF,EAAI,EAAGlE,EAAI,EAAGkE,EAAI+qF,EAAa/qF,IACjCsqF,EAAc,IAAItqF,EAAI,CAAC,IAC1ByqF,EAAe3uF,GAAG,EAAI2uF,EAAezqF,CAAC,GAG1CyqF,EAAe,WAAWQ,EAAiBL,EAAYK,EAAgBD,CAAY,EACnFP,EAAe,IAAII,EAAmBI,CAAc,EACpDvoD,EAAA,KAAKsnD,GAAAkB,IAAL,UAA4BR,GACxBD,EAAe,MAAM,CAAClmE,EAAIvkB,IAAMukB,IAAOvkB,EAAI,CAAC,GAC9CopC,EAAA,KAAK6gD,GAAkB,KAE3B,CACA,YAAYkB,EAAe,CACzBzoD,EAAA,KAAKsnD,GAAAQ,IAAL,WACA,MAAMC,EAAiB3hD,EAAA,KAAKmhD,IACtBS,EAAqBhoD,EAAA,KAAKsnD,GAAAW,IAAL,WAC3BvhD,EAAA,KAAKihD,GAAa,CAChB,eAAgBI,EAAe,MAAK,EACpC,YAAa3hD,EAAA,KAAKqhD,IAClB,gBAAiBrhD,EAAA,KAAKohD,IAAiB,MAAK,CAClD,GACI,MAAMkB,EAAOtiD,EAAA,KAAKqhD,IAAegB,EAAc,OAC/C/hD,EAAA,KAAK+gD,GAAeiB,GACpB,MAAMC,EAAoBjiD,EAAA,KAAK6gD,GAAkB,IAAI,YAAYmB,CAAI,GACrEhiD,EAAA,KAAK8gD,GAAmB,IAAI,WAAWkB,CAAI,GAC3C,IAAIE,EAAc,EACdC,EAAY,EAChB,UAAWlwC,KAAc8vC,EAAe,CACtC,MAAMnwC,EAAYK,EAAa,EAC3BL,IAAcswC,IAChBD,EAAkB,IAAIZ,EAAe,SAASa,EAAatwC,CAAS,EAAGuwC,CAAS,EAChFA,GAAavwC,EAAYswC,GAE3BA,EAActwC,EAAY,CAC5B,CACIswC,EAAcb,EAAe,QAC/BY,EAAkB,IAAIZ,EAAe,SAASa,CAAW,EAAGC,CAAS,EAEvE7oD,EAAA,KAAKsnD,GAAAkB,IAAL,UAA4BR,EAAoB,IAAI,IAAIS,CAAa,EACvE,CACA,cAAe,CACTriD,EAAA,KAAKuhD,MACPjhD,EAAA,KAAK6gD,GAAkBnhD,EAAA,KAAKuhD,IAAW,gBACvCjhD,EAAA,KAAK+gD,GAAerhD,EAAA,KAAKuhD,IAAW,aACpCjhD,EAAA,KAAK8gD,GAAmBphD,EAAA,KAAKuhD,IAAW,iBACxCjhD,EAAA,KAAKihD,GAAa,MAEtB,CACA,gBAAiB,CACfjhD,EAAA,KAAKihD,GAAa,KACpB,CACA,UAAUmB,EAAa,CACrB9oD,EAAA,KAAKsnD,GAAAQ,IAAL,WACAphD,EAAA,KAAKghD,GAAa,CAChB,YAAaoB,EACb,QAASA,EAAY,IAAIzrF,GAAK+oC,EAAA,KAAKmhD,IAAgBlqF,EAAI,CAAC,CAAC,CAC/D,EACE,CACA,YAAa,CACXqpC,EAAA,KAAKghD,GAAa,KACpB,CACA,WAAWloE,EAAO,CAChBwgB,EAAA,KAAKsnD,GAAAQ,IAAL,WACA,MAAMC,EAAiB3hD,EAAA,KAAKmhD,IACtBS,EAAqBhoD,EAAA,KAAKsnD,GAAAW,IAAL,WACrB,CACJ,YAAac,EACb,QAASC,CACf,EAAQ5iD,EAAA,KAAKshD,IACHgB,EAAOtiD,EAAA,KAAKqhD,IAAesB,EAAkB,OACnDriD,EAAA,KAAK+gD,GAAeiB,GACpB,MAAMC,EAAoBjiD,EAAA,KAAK6gD,GAAkB,IAAI,YAAYmB,CAAI,GACrEhiD,EAAA,KAAK8gD,GAAmB,IAAI,WAAWkB,CAAI,GAC3CC,EAAkB,IAAIZ,EAAe,SAAS,EAAGvoE,CAAK,EAAG,CAAC,EAC1DmpE,EAAkB,IAAIK,EAAexpE,CAAK,EAC1CmpE,EAAkB,IAAIZ,EAAe,SAASvoE,CAAK,EAAGA,EAAQupE,EAAkB,MAAM,EACtF/oD,EAAA,KAAKsnD,GAAAkB,IAAL,UAA4BR,EAAoB,KAAMxoE,EAAOupE,GAC7DriD,EAAA,KAAKghD,GAAa,KACpB,CAuBA,gBAAiB,CACf,OAAOthD,EAAA,KAAKmhD,MAAoB,IAClC,CACA,wBAAwB0B,EAAiB,KAAM,CAC7CA,MAAmBjpD,EAAA,KAAKsnD,GAAAW,IAAL,YACnB,IAAIiB,EAAQ,EACZ,UAAWC,KAAeF,EAAe,SACvCC,EAAQ,KAAK,IAAIA,EAAOC,EAAY,MAAM,EAE5C,MAAMC,EAAgB,IAAI,MAAMF,CAAK,EACrC,QAAS5rF,EAAI,EAAGA,EAAI4rF,EAAO5rF,IACzB8rF,EAAc9rF,CAAC,EAAI,CACjB,SAAU,KACV,YAAa,CAAA,EACb,aAAc,CAAA,CACtB,EAEI,SAAW,CAACukB,EAAIsnE,CAAW,IAAKF,EAC9B,QAAS3rF,EAAI,EAAG2Q,EAAKk7E,EAAY,OAAQ7rF,EAAI2Q,EAAI3Q,IAC/C8rF,EAAc9rF,CAAC,EAAE,aAAa,KAAK,CAACukB,EAAK,EAAGsnE,EAAY7rF,CAAC,EAAI,CAAC,CAAC,EAGnE,SAAW,CACT,aAAA+rF,EACA,YAAAC,CACN,IAASF,EAAe,CAClBC,EAAa,KAAK,CAAC5rF,EAAGU,IAAMV,EAAE,CAAC,EAAIU,EAAE,CAAC,CAAC,EACvC,QAASb,EAAI,EAAG2Q,EAAKo7E,EAAa,OAAQ/rF,EAAI2Q,EAAI3Q,IAChDgsF,EAAY,KAAKD,EAAa/rF,CAAC,EAAE,CAAC,CAAC,EACnC+rF,EAAa/rF,CAAC,EAAI+rF,EAAa/rF,CAAC,EAAE,CAAC,CAEvC,CACA,OAAO8rF,CACT,CACA,aAAaG,EAAsB,CACjCA,EAAuB,MAAM,KAAKA,CAAoB,EAAE,KAAK,CAAC9rF,EAAGU,IAAMV,EAAIU,CAAC,EAC5E,MAAMqrF,EAAU,IAAI,IACpB,QAAS,EAAI,EAAGv7E,EAAKs7E,EAAqB,OAAQ,EAAIt7E,EAAI,IAAK,CAC7D,MAAM4T,EAAK,KAAK,UAAU0nE,EAAqB,CAAC,CAAC,EACzBC,EAAQ,oBAAoB3nE,EAAIwf,EAAO,EAC/C,KAAK,EAAI,CAAC,CAC5B,CACA,OAAO,KAAK,wBAAwBmoD,CAAO,CAC7C,CACA,kBAAkB7wC,EAAY,OAC5B,QAAO3/C,EAAAotC,EAAA,KAAKohD,MAAL,YAAAxuF,EAAwB2/C,EAAa,KAAM,CACpD,CACA,cAAc92B,EAAI,CAChB,GAAI,CAACukB,EAAA,KAAKmhD,IACR,OAAO1lE,EAET,MAAMkmE,EAAiB3hD,EAAA,KAAKmhD,IAC5B,QAAS,EAAI,EAAGt5E,EAAKm4B,EAAA,KAAKqhD,IAAc,EAAIx5E,EAAI,IAC9C,GAAI85E,EAAe,CAAC,IAAMlmE,EACxB,OAAO,EAAI,EAGf,MAAO,EACT,CACA,UAAU82B,EAAY,OACpB,QAAO3/C,EAAAotC,EAAA,KAAKmhD,MAAL,YAAAvuF,EAAuB2/C,EAAa,KAAMA,CACnD,CACA,YAAa,OACX,OAAO3/C,EAAAotC,EAAA,KAAKmhD,MAAL,YAAAvuF,EAAsB,SAAS,EAAG,KAAK,YAChD,CACF,CAhOEuuF,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YALFL,GAAA,YAiBEQ,GAAW,UAAG,CACZ,GAAI1hD,EAAA,KAAKmhD,IACP,OAEF,MAAMlqF,EAAI+oC,EAAA,KAAKqhD,IACTM,EAAiBrhD,EAAA,KAAK6gD,GAAkB,IAAI,YAAYlqF,CAAC,GAC/D,QAAS,EAAI,EAAG,EAAIA,EAAG,IACrB0qF,EAAe,CAAC,EAAI,EAAI,EAE1BrhD,EAAA,KAAK8gD,GAAmB,IAAI,WAAWO,CAAc,EACvD,EACAE,GAAoB,UAAG,CACrB,MAAMgB,EAAiB,IAAI,IACrBlB,EAAiB3hD,EAAA,KAAKmhD,IAC5B,QAAS,EAAI,EAAGt5E,EAAKm4B,EAAA,KAAKqhD,IAAc,EAAIx5E,EAAI,IAAK,CACnD,MAAM4T,EAAKkmE,EAAe,CAAC,EACrBoB,EAAcF,EAAe,IAAIpnE,CAAE,EACrCsnE,EACFA,EAAY,KAAK,EAAI,CAAC,EAEtBF,EAAe,IAAIpnE,EAAI,CAAC,EAAI,CAAC,CAAC,CAElC,CACA,OAAOonE,CACT,EAiGAT,GAAsB,SAACR,EAAoByB,EAAqB,KAAMC,EAAa,GAAIX,EAAoB,KAAM,CAC/G,MAAMY,EAAkBvjD,EAAA,KAAKohD,IACvBmB,EAAoBviD,EAAA,KAAKmhD,IACzBqC,EAAWF,IAAcX,GAAA,YAAAA,EAAmB,SAAU,GACtDc,EAAa,IAAI,IACvB,QAASvsF,EAAI,EAAG2Q,EAAKm4B,EAAA,KAAKqhD,IAAcnqF,EAAI2Q,EAAI3Q,IAAK,CACnD,GAAIA,GAAKosF,GAAcpsF,EAAIssF,EAAU,CACnCD,EAAgBrsF,CAAC,EAAI,CAACyrF,EAAkBzrF,EAAIosF,CAAU,EACtD,QACF,CACA,MAAM7nE,EAAK8mE,EAAkBrrF,CAAC,EACxBwsF,EAAe9B,EAAmB,IAAInmE,CAAE,EAC9C,IAAI9iB,EAAI8qF,EAAW,IAAIhoE,CAAE,GAAK,EAC9B,GAAI4nE,GAAsBK,EACxB,KAAO/qF,EAAI+qF,EAAa,QAAUL,EAAmB,IAAIK,EAAa/qF,CAAC,CAAC,GACtEA,IAGJ4qF,EAAgBrsF,CAAC,EAAIwsF,GAAA,YAAAA,EAAe/qF,GACpC8qF,EAAW,IAAIhoE,EAAI9iB,EAAI,CAAC,CAC1B,CACF,EAqEF,MAAMgrF,GAAe,OAAO,cAAc,EACpCC,GAAU,KAAO,CACrB,GAAG,QAAQ,cAAa,EACxB,KAAMD,EACR,GACA,MAAME,EAAW,CAAjB,cACE1pD,EAAA,KAAA2pD,GAAQ,IAAI,KACZ,IAAIhzB,EAAOzlB,EAAW,KAAM,CAC1B,GAAIA,EAAU,CACZ,MAAMnW,EAAM8K,EAAA,KAAK8jD,IAAM,oBAAoBhzB,EAAO8yB,EAAO,EACzD,OAAA1uD,EAAI,QAAQ,KAAK,IAAMmW,EAASnW,EAAI,IAAI,CAAC,EAClC,IACT,CACA,MAAMA,EAAM8K,EAAA,KAAK8jD,IAAM,IAAIhzB,CAAK,EAChC,GAAI,CAAC57B,GAAOA,EAAI,OAASyuD,GACvB,MAAM,IAAI,MAAM,6CAA6C7yB,CAAK,GAAG,EAEvE,OAAO57B,EAAI,IACb,CACA,IAAI47B,EAAO,CACT,MAAM57B,EAAM8K,EAAA,KAAK8jD,IAAM,IAAIhzB,CAAK,EAChC,MAAO,CAAC,CAAC57B,GAAOA,EAAI,OAASyuD,EAC/B,CACA,OAAO7yB,EAAO,CACZ,MAAM57B,EAAM8K,EAAA,KAAK8jD,IAAM,IAAIhzB,CAAK,EAChC,MAAI,CAAC57B,GAAOA,EAAI,OAASyuD,GAChB,IAET3jD,EAAA,KAAK8jD,IAAM,OAAOhzB,CAAK,EAChB,GACT,CACA,QAAQA,EAAOl7D,EAAO,KAAM,CAC1B,MAAMs/B,EAAM8K,EAAA,KAAK8jD,IAAM,oBAAoBhzB,EAAO8yB,EAAO,EACzD,GAAI1uD,EAAI,OAASyuD,GACf,MAAM,IAAI,MAAM,2BAA2B7yB,CAAK,GAAG,EAErD57B,EAAI,KAAOt/B,EACXs/B,EAAI,QAAO,CACb,CACA,OAAQ,OACN,SAAW,CACT,KAAAt/B,CACN,IAASoqC,EAAA,KAAK8jD,IAAM,UACdlxF,EAAAgD,GAAA,YAAAA,EAAM,SAAN,MAAAhD,EAAc,QAEhBotC,EAAA,KAAK8jD,IAAM,MAAK,CAClB,CACA,EAAE,OAAO,QAAQ,GAAI,CACnB,SAAW,CAAChzB,EAAO,CACjB,KAAAl7D,CACN,CAAK,IAAKoqC,EAAA,KAAK8jD,IACLluF,IAAS+tF,KACX,KAAM,CAAC7yB,EAAOl7D,CAAI,EAGxB,CACF,CAlDEkuF,GAAA,YAuDF,MAAMC,GAA0B,IAC1BC,GAAoB,GACpBC,GAAN,MAAMA,EAAU,CAyBd,YAAY,CACV,kBAAAC,EACA,OAAA9N,EACA,UAAArxC,EACA,SAAAlD,CACJ,EAAK,CA9BL1H,EAAA,KAAAgqD,IACEhqD,EAAA,KAAAiqD,GAAc,QAAQ,cAAa,GACnCjqD,EAAA,KAAAuW,GAAa,MACbvW,EAAA,KAAAkqD,GAAuB,IACvBlqD,EAAA,KAAAmqD,GAAwB,CAAC,GAAC3xF,GAAA,WAAW,gBAAX,MAAAA,GAA0B,UACpDwnC,EAAA,KAAAoqD,GAAiB,MACjBpqD,EAAA,KAAAqqD,GAAQ,MACRrqD,EAAA,KAAAsqD,GAAoB,MACpBtqD,EAAA,KAAAuqD,GAAc,GACdvqD,EAAA,KAAAwqD,GAAa,GACbxqD,EAAA,KAAAyqD,GAAU,MACVzqD,EAAA,KAAA0qD,GAAiB,MACjB1qD,EAAA,KAAA2qD,GAAY,GACZ3qD,EAAA,KAAA4qD,GAAS,GACT5qD,EAAA,KAAA6qD,GAAc,OAAO,OAAO,IAAI,GAChC7qD,EAAA,KAAA8qD,GAAuB,CAAA,GACvB9qD,EAAA,KAAA+qD,GAAqB,MACrB/qD,EAAA,KAAAgrD,GAAY,CAAA,GACZhrD,EAAA,KAAAirD,GAAqB,IAAI,SACzBjrD,EAAA,KAAAkrD,GAAa,YAYX,GAAInB,aAA6B,eAC/B5jD,EAAA,KAAK4kD,GAAqBhB,WACjB,OAAOA,GAAsB,SACtC5jD,EAAA,KAAK4kD,GAAqB,IAAI,eAAe,CAC3C,MAAM3uF,EAAY,CAChBA,EAAW,QAAQ2tF,CAAiB,EACpC3tF,EAAW,MAAK,CAClB,CACR,CAAO,OAED,OAAM,IAAI,MAAM,6CAA6C,EAE/D+pC,EAAA,KAAKoQ,GAAapQ,EAAA,KAAKukD,GAAiB9/C,IACxCzE,EAAA,KAAKikD,GAAiBnO,GACtB91C,EAAA,KAAKykD,GAASljD,EAAS,MAAQQ,GAAY,YAC3C/B,EAAA,KAAKwkD,GAAYjjD,EAAS,UAC1BvB,EAAA,KAAKmkD,GAAoB,CACvB,IAAK,KACL,WAAY,KACZ,IAAK,IACX,GACI,KAAM,CACJ,UAAAziD,EACA,WAAAC,EACA,MAAAid,EACA,MAAAC,CACN,EAAQtd,EAAS,QACbvB,EAAA,KAAK+kD,GAAa,CAAC,EAAG,EAAG,EAAG,GAAI,CAACnmC,EAAOC,EAAQld,CAAU,GAC1D3B,EAAA,KAAKqkD,GAAa3iD,GAClB1B,EAAA,KAAKokD,GAAcziD,GACnBrI,EAAAhnC,EAAAqxF,GAAUqB,GAAAC,IAAV,KAAA3yF,GACAmyC,EAAU,MAAM,YAAY,kBAAmB/E,EAAAikD,GAAUuB,GAAY,EACrE7jD,GAAmBoD,EAAWlD,CAAQ,EACtC7B,EAAA,KAAKokD,IAAY,QAAQ,QAAQ,IAAM,CACrCpkD,EAAAikD,GAAUwB,IAAmB,OAAO,IAAI,EACxCnlD,EAAA,KAAKmkD,GAAoB,MACzBnkD,EAAA,KAAK0kD,GAAc,KACrB,CAAC,EAAE,MAAM,IAAM,CAAC,CAAC,CACnB,CACA,WAAW,eAAgB,CACzB,KAAM,CACJ,UAAAU,EACA,UAAAC,CACN,EAAQrvD,GAAY,SAChB,OAAOrB,GAAO,KAAM,gBAAiB,IAAI,IAAI,CAAC,CAAC,aAAc,GAAGywD,GAAaC,EAAY,YAAc,EAAE,YAAY,EAAG,CAAC,YAAa,GAAGD,GAAaC,EAAY,mBAAqB,EAAE,WAAW,CAAC,CAAC,CAAC,CACzM,CACA,QAAS,CACH3lD,EAAA,KAAKukD,KACPvkD,EAAA,KAAK0Q,IAAW,OAAO1Q,EAAA,KAAKukD,IAAe,OAAM,CAAE,EAErD,MAAMqB,EAAO,IAAM,CACjB5lD,EAAA,KAAK4kD,IAAQ,KAAI,EAAG,KAAK,CAAC,CACxB,MAAArvF,EACA,KAAAD,CACR,IAAY,CACJ,GAAIA,EAAM,CACR0qC,EAAA,KAAKokD,IAAY,QAAO,EACxB,MACF,CACApkD,EAAA,KAAKwkD,KAALlkD,EAAA,KAAKkkD,GAAUjvF,EAAM,MACrB,OAAO,OAAOyqC,EAAA,KAAKglD,IAAazvF,EAAM,MAAM,EAC5CqkC,EAAA,KAAKuqD,GAAA0B,IAAL,UAAmBtwF,EAAM,OACzBqwF,EAAI,CACN,EAAG5lD,EAAA,KAAKokD,IAAY,MAAM,CAC5B,EACA,OAAA9jD,EAAA,KAAKskD,GAAU5kD,EAAA,KAAKklD,IAAmB,UAAS,GAChDllD,EAAAikD,GAAUwB,IAAmB,IAAI,IAAI,EACrCG,EAAI,EACG5lD,EAAA,KAAKokD,IAAY,OAC1B,CACA,OAAO,CACL,SAAAviD,EACA,SAAAikD,EAAW,IACf,EAAK,OACD,MAAMj5D,EAAQgV,EAAS,MAAQQ,GAAY,WACrCzG,EAAWiG,EAAS,SAQ1B,GAPIjG,IAAaoE,EAAA,KAAK8kD,MACpBgB,GAAA,MAAAA,IACAxlD,EAAA,KAAKwkD,GAAYlpD,GACjB+F,GAAmB3B,EAAA,KAAK6kD,IAAgB,CACtC,SAAAjpD,CACR,CAAO,GAEC/O,IAAUmT,EAAA,KAAK+kD,IAAQ,CACzBe,GAAA,MAAAA,IACAxlD,EAAA,KAAKykD,GAASl4D,GACd,MAAM/R,EAAS,CACb,IAAK,KACL,WAAY,KACZ,IAAK8e,EAAAhnC,EAAAqxF,GAAUqB,GAAAS,IAAV,KAAAnzF,EAAkBotC,EAAA,KAAKwkD,IACpC,EACM,UAAW5iD,KAAO5B,EAAA,KAAKmlD,IACrBrqE,EAAO,WAAaklB,EAAA,KAAKolD,IAAmB,IAAIxjD,CAAG,EACnD9mB,EAAO,IAAM8mB,EACbhI,EAAA,KAAKuqD,GAAA6B,IAAL,UAAalrE,EAEjB,CACF,CACA,QAAS,OACP,MAAMmrE,EAAU,IAAInwD,GAAe,2BAA2B,GAC9DljC,EAAAotC,EAAA,KAAK4kD,MAAL,MAAAhyF,EAAc,OAAOqzF,GAAS,MAAM,IAAM,CAAC,GAC3C3lD,EAAA,KAAKskD,GAAU,MACf5kD,EAAA,KAAKokD,IAAY,OAAO6B,CAAO,CACjC,CACA,IAAI,UAAW,CACb,OAAOjmD,EAAA,KAAKmlD,GACd,CACA,IAAI,qBAAsB,CACxB,OAAOnlD,EAAA,KAAKilD,GACd,CAqIA,OAAO,SAAU,CACf,GAAI,EAAAjlD,EAAA,KAAKylD,IAAmB,KAAO,GAGnC,CAAAzlD,EAAA,KAAKkmD,IAAa,MAAK,EACvB,SAAW,CACT,OAAAt8C,CACN,IAAS5J,EAAA,KAAKmmD,IAAgB,SACxBv8C,EAAO,OAAM,EAEf5J,EAAA,KAAKmmD,IAAgB,MAAK,EAC5B,CAuEF,EAlWE/B,GAAA,YACA1zC,GAAA,YACA2zC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACOa,GAAA,YACAC,GAAA,YACAC,GAAA,YACAZ,GAAA,YACAC,GAAA,YAxBTtB,GAAA,YA6IE0B,GAAa,SAACj/D,EAAO,SACnB,GAAIoZ,EAAA,KAAKqkD,IACP,QAEF1xF,EAAAqtC,EAAA,KAAKykD,KAAkB,MAAvB9xF,EAAuB,IAAQinC,EAAAhnC,EAAAqxF,GAAUqB,GAAAS,IAAV,KAAAnzF,EAAkBotC,EAAA,KAAKwkD,MACtD,MAAMpmD,EAAW4B,EAAA,KAAKmlD,IACpBkB,EAAsBrmD,EAAA,KAAKilD,IAC7B,UAAW/6D,KAAQtD,EAAO,CACxB,GAAIwX,EAAS,OAAS2lD,GAAyB,CAC7C7vD,GAAK,uDAAuD,EAC5DoM,EAAA,KAAK+jD,GAAuB,IAC5B,MACF,CACA,GAAIn6D,EAAK,MAAQ,OAAW,CAC1B,GAAIA,EAAK,OAAS,2BAA6BA,EAAK,OAAS,qBAAsB,CACjF,MAAMoU,EAAS0B,EAAA,KAAK0Q,IACpBpQ,EAAA,KAAKoQ,GAAa,SAAS,cAAc,MAAM,GAC/C1Q,EAAA,KAAK0Q,IAAW,UAAU,IAAI,eAAe,EACzCxmB,EAAK,IACP8V,EAAA,KAAK0Q,IAAW,aAAa,KAAMxmB,EAAK,EAAE,EAExCA,EAAK,MAAQ,aACf8V,EAAA,KAAK0Q,IAAW,WAAa,IAE/BpS,EAAO,OAAO0B,EAAA,KAAK0Q,GAAU,CAC/B,MAAWxmB,EAAK,OAAS,oBACvBoW,EAAA,KAAKoQ,GAAa1Q,EAAA,KAAK0Q,IAAW,YAEpC,QACF,CACA21C,EAAoB,KAAKn8D,EAAK,GAAG,EACjC0P,EAAA,KAAKuqD,GAAAmC,IAAL,UAAiBp8D,EACnB,CACF,EACAo8D,GAAW,SAACC,EAAM,OAChB,MAAMC,EAAU,SAAS,cAAc,MAAM,EACvCC,EAAoB,CACxB,MAAO,EACP,YAAa,EACb,QAASF,EAAK,MAAQ,GACtB,OAAQA,EAAK,OACb,SAAU,CAChB,EACIvmD,EAAA,KAAKmlD,IAAU,KAAKqB,CAAO,EAC3B,MAAMrvC,EAAKzgB,GAAK,UAAUsJ,EAAA,KAAKqlD,IAAYkB,EAAK,SAAS,EACzD,IAAI1jC,EAAQ,KAAK,MAAM1L,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,EACnC,MAAMjV,EAAQlC,EAAA,KAAKglD,IAAYuB,EAAK,QAAQ,EACxCrkD,EAAM,WACR2gB,GAAS,KAAK,GAAK,GAErB,IAAI6jC,EAAa1mD,EAAA,KAAKskD,KAAyBpiD,EAAM,kBAAoBA,EAAM,WAC/EwkD,EAAazC,GAAU,cAAc,IAAIyC,CAAU,GAAKA,EACxD,MAAMC,EAAa,KAAK,MAAMxvC,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,EACpCyvC,EAAaD,EAAa/sD,EAAAhnC,EAAAqxF,GAAUqB,GAAAuB,IAAV,KAAAj0F,EAAqB8zF,EAAYxkD,EAAOlC,EAAA,KAAKwkD,KAC7E,IAAIjjC,EAAMD,EACNuB,IAAU,GACZtB,EAAOpK,EAAG,CAAC,EACXmK,EAAMnK,EAAG,CAAC,EAAIyvC,IAEdrlC,EAAOpK,EAAG,CAAC,EAAIyvC,EAAa,KAAK,IAAI/jC,CAAK,EAC1CvB,EAAMnK,EAAG,CAAC,EAAIyvC,EAAa,KAAK,IAAI/jC,CAAK,GAE3C,MAAMikC,EAAWN,EAAQ,MACzBM,EAAS,KAAO,IAAI,IAAMvlC,EAAOvhB,EAAA,KAAK2kD,KAAY,QAAQ,CAAC,CAAC,IAC5DmC,EAAS,IAAM,IAAI,IAAMxlC,EAAMthB,EAAA,KAAK0kD,KAAa,QAAQ,CAAC,CAAC,IAC3DoC,EAAS,YAAY,gBAAiB,GAAGH,EAAW,QAAQ,CAAC,CAAC,IAAI,EAClEG,EAAS,WAAaJ,EACtBD,EAAkB,SAAWE,EAC7BH,EAAQ,aAAa,OAAQ,cAAc,EAC3CA,EAAQ,YAAcD,EAAK,IAC3BC,EAAQ,IAAMD,EAAK,IACfvmD,EAAA,KAAKskD,MACPkC,EAAQ,QAAQ,SAAWtkD,EAAM,4BAA8BqkD,EAAK,UAElE1jC,IAAU,IACZ4jC,EAAkB,MAAQ5jC,GAAS,IAAM,KAAK,KAEhD,IAAIkkC,EAAkB,GACtB,GAAIR,EAAK,IAAI,OAAS,EACpBQ,EAAkB,WACTR,EAAK,MAAQ,KAAOA,EAAK,UAAU,CAAC,IAAMA,EAAK,UAAU,CAAC,EAAG,CACtE,MAAMS,EAAY,KAAK,IAAIT,EAAK,UAAU,CAAC,CAAC,EAC1CU,EAAY,KAAK,IAAIV,EAAK,UAAU,CAAC,CAAC,EACpCS,IAAcC,GAAa,KAAK,IAAID,EAAWC,CAAS,EAAI,KAAK,IAAID,EAAWC,CAAS,EAAI,MAC/FF,EAAkB,GAEtB,CAWA,GAVIA,IACFN,EAAkB,YAAcvkD,EAAM,SAAWqkD,EAAK,OAASA,EAAK,OAEtEvmD,EAAA,KAAKolD,IAAmB,IAAIoB,EAASC,CAAiB,EACtDzmD,EAAA,KAAKykD,IAAkB,IAAM+B,EAC7BxmD,EAAA,KAAKykD,IAAkB,WAAagC,EACpC7sD,EAAA,KAAKuqD,GAAA6B,IAAL,UAAahmD,EAAA,KAAKykD,KACdgC,EAAkB,SACpBzmD,EAAA,KAAK0Q,IAAW,OAAO81C,CAAO,EAE5BC,EAAkB,OAAQ,CAC5B,MAAMnhF,EAAK,SAAS,cAAc,IAAI,EACtCA,EAAG,aAAa,OAAQ,cAAc,EACtC06B,EAAA,KAAK0Q,IAAW,OAAOprC,CAAE,CAC3B,CACF,EACA0gF,GAAO,SAAClrE,EAAQ,OACd,KAAM,CACJ,IAAA8mB,EACA,WAAA6lC,EACA,IAAA/jD,CACN,EAAQ5I,EACE,CACJ,MAAAonB,CACN,EAAQN,EACJ,GAAI6lC,EAAW,cAAgB,GAAKA,EAAW,QAAS,CACtD,KAAM,CACJ,WAAAif,CACR,EAAUxkD,EACE,CACJ,YAAA2hC,EACA,SAAA2M,CACR,EAAU/I,EACJ7tC,EAAAhnC,EAAAqxF,GAAUqB,GAAA4B,IAAV,KAAAt0F,EAAyB8wB,EAAK8sD,EAAWxwC,EAAA,KAAK+kD,IAAQ2B,GACtD,KAAM,CACJ,MAAAlqD,CACR,EAAU9Y,EAAI,YAAYke,EAAI,WAAW,EAC/BpF,EAAQ,GACV0F,EAAM,YAAY,YAAa2hC,EAAc7jC,EAAA,KAAK+kD,IAASvoD,CAAK,CAEpE,CACIirC,EAAW,QAAU,GACvBvlC,EAAM,YAAY,WAAY,GAAGulC,EAAW,KAAK,KAAK,CAE1D,EAhRF6d,GAAA,YA6RSS,GAAO,SAAClgE,EAAO,KAAM,CAC1B,IAAInC,EAAMsc,EAAA,KAAKmmD,IAAgB,IAAItgE,MAAS,GAAE,EAC9C,GAAI,CAACnC,EAAK,CACR,MAAMkmB,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,MAAM,QAAU,yGACvBA,EAAO,KAAO/jB,EACd,SAAS,KAAK,OAAO+jB,CAAM,EAC3BlmB,EAAMkmB,EAAO,WAAW,KAAM,CAC5B,MAAO,GACP,mBAAoB,EAC5B,CAAO,EACD5J,EAAA,KAAKmmD,IAAgB,IAAItgE,EAAMnC,CAAG,EAClCsc,EAAA,KAAKomD,IAAgB,IAAI1iE,EAAK,CAC5B,KAAM,EACN,OAAQ,EAChB,CAAO,CACH,CACA,OAAOA,CACT,EACOwjE,GAAc,SAACxjE,EAAK8lB,EAAM29C,EAAQ,CACvC,MAAMC,EAASpnD,EAAA,KAAKomD,IAAgB,IAAI1iE,CAAG,EACvC8lB,IAAS49C,EAAO,MAAQD,IAAWC,EAAO,SAG9C1jE,EAAI,KAAO,GAAG8lB,CAAI,MAAM29C,CAAM,GAC9BC,EAAO,KAAO59C,EACd49C,EAAO,OAASD,EAClB,EACO5B,GAA0B,UAAG,CAClC,GAAIvlD,EAAA,KAAKwlD,MAAiB,KACxB,OAEF,MAAM5jD,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,MAAM,QAAU,EACpBA,EAAI,MAAM,WAAa,EACvBA,EAAI,MAAM,SAAW,MACrBA,EAAI,MAAM,SAAW,WACrBA,EAAI,YAAc,IAClB,SAAS,KAAK,OAAOA,CAAG,EACxBtB,EAAA,KAAKklD,GAAe5jD,EAAI,sBAAqB,EAAG,QAChDA,EAAI,OAAM,CACZ,EACOilD,GAAU,SAACH,EAAYxkD,EAAOrc,EAAM,CACzC,MAAMwhE,EAAernD,EAAA,KAAKkmD,IAAa,IAAIQ,CAAU,EACrD,GAAIW,EACF,OAAOA,EAET,MAAM3jE,EAAMkW,EAAA,KAAK0rD,GAAAS,IAAL,UAAalgE,GACzBnC,EAAI,OAAO,MAAQA,EAAI,OAAO,OAASsgE,GACvCpqD,EAAA,KAAK0rD,GAAA4B,IAAL,UAAoBxjE,EAAKsgE,GAAmB0C,GAC5C,MAAMY,EAAU5jE,EAAI,YAAY,EAAE,EAC5B6jE,EAASD,EAAQ,sBACjBE,EAAU,KAAK,IAAIF,EAAQ,sBAAsB,EACvD5jE,EAAI,OAAO,MAAQA,EAAI,OAAO,OAAS,EACvC,IAAI+jE,EAAQ,GACZ,OAAIF,EACFE,EAAQF,GAAUA,EAASC,IAEvBlxD,GAAY,SAAS,WACvBpC,GAAK,mHAAwH,EAE3HgO,EAAM,OACRulD,EAAQvlD,EAAM,OACLA,EAAM,UACfulD,EAAQ,EAAIvlD,EAAM,UAGtBlC,EAAA,KAAKkmD,IAAa,IAAIQ,EAAYe,CAAK,EAChCA,CACT,EAlWFttD,EAAM8pD,GAANqB,IAoBEnrD,EApBI8pD,GAoBGiC,GAAe,IAAI,KAC1B/rD,EArBI8pD,GAqBGkC,GAAkB,IAAI,KAC7BhsD,EAtBI8pD,GAsBGmC,GAAkB,IAAI,SAC7BjsD,EAvBI8pD,GAuBGuB,GAAe,MACtBrrD,EAxBI8pD,GAwBGwB,GAAqB,IAAI,KAxBlC,IAAMiC,GAANzD,GA+XA,MAAM0D,GAA8B,IACpC,SAASC,GAAY1jE,EAAM,GAAI,CAC7B,MAAM2jE,EAAO,IAAIC,GACX,CACJ,MAAArwB,CACJ,EAAMowB,EACEjzF,EAAMsvB,EAAI,IAAM2vC,GAAW3vC,EAAI,GAAG,EAAI,KACtCtuB,EAAOsuB,EAAI,KAAO4vC,GAAY5vC,EAAI,IAAI,EAAI,KAC1Cy2D,EAAcz2D,EAAI,aAAe,KACjCs3D,EAAkBt3D,EAAI,kBAAoB,GAC1C6jE,EAAW7jE,EAAI,UAAY,KAC3B8jE,EAAiB9jE,EAAI,iBAAiB+jE,GAAwB/jE,EAAI,MAAQ,KAC1E82D,EAAiB,OAAO,UAAU92D,EAAI,cAAc,GAAKA,EAAI,eAAiB,EAAIA,EAAI,eAAiB,GAAK,GAClH,IAAIgkE,EAAShkE,EAAI,kBAAkBikE,GAAYjkE,EAAI,OAAS,KAC5D,MAAM2P,EAAY3P,EAAI,UAChBkkE,EAAa,OAAOlkE,EAAI,YAAe,UAAY,CAAC+a,GAAa/a,EAAI,UAAU,EAAIA,EAAI,WAAa,KACpGmyC,EAAUtC,GAAkB7vC,EAAI,OAAO,EACvCmkE,EAAankE,EAAI,aAAe,GAChCokE,EAASv0B,GAAkB7vC,EAAI,MAAM,EACrCoyC,EAAsBvC,GAAkB7vC,EAAI,mBAAmB,EAC/DqyC,EAAUxC,GAAkB7vC,EAAI,OAAO,EACvCqkE,EAAerkE,EAAI,eAAiB,GACpCskE,EAAe,OAAO,UAAUtkE,EAAI,YAAY,GAAKA,EAAI,aAAe,GAAKA,EAAI,aAAe,GAChGukE,EAA6B,OAAOvkE,EAAI,4BAA+B,UAAYA,EAAI,2BAA6B,CAACuO,GACrHi2D,EAA0B,OAAOxkE,EAAI,yBAA4B,UAAYA,EAAI,wBAA0B,CAACuO,GAC5Gk2D,EAAuB,OAAO,UAAUzkE,EAAI,oBAAoB,EAAIA,EAAI,qBAAuB,GAC/F4qC,EAAkB,OAAO5qC,EAAI,iBAAoB,UAAYA,EAAI,gBAAkBuO,GACnFm2D,EAAsB1kE,EAAI,sBAAwB,GAClD2kE,EAAY3kE,EAAI,YAAc,GAC9BkqC,EAAgBlqC,EAAI,eAAiB,WAAW,SAChD+2D,EAAe/2D,EAAI,eAAiB,GACpC43D,EAAgB53D,EAAI,gBAAkB,GACtC4kE,EAAmB5kE,EAAI,mBAAqB,GAC5C6kE,EAAS7kE,EAAI,SAAW,GACxB8kE,EAAgB9kE,EAAI,gBAAkBuO,GAAW+oC,GAAoB1E,IACrEmyB,EAAgB/kE,EAAI,gBAAkBuO,GAAW8oC,GAAoB/D,IACrE0xB,EAAoBhlE,EAAI,oBAAsBuO,GAAWgpC,GAAwBhF,IACjFE,GAAYzyC,EAAI,YAAc,GAE9BilE,GADejlE,EAAI,eAAiB,GACRw6C,GAAO,EAAK,QAAQ,QAAQ,EAAK,EAC7D0qB,EAAUllE,EAAI,UAAY,GAC1BmlE,EAAcnlE,EAAI,aAAe,IAAI+8D,GACrCqI,EAAiB,OAAOplE,EAAI,gBAAmB,UAAYA,EAAI,eAAiB,CAACuO,IAAY,CAACq8B,EAC9Fy6B,EAAiB,OAAOrlE,EAAI,gBAAmB,UAAYA,EAAI,eAAiB,CAAC,EAAEglE,IAAsBzyB,IAAwBJ,GAAWgyB,GAAc/xB,GAAuBC,GAAW13B,GAAgBw3B,EAAS,SAAS,OAAO,GAAKx3B,GAAgBy3B,EAAqB,SAAS,OAAO,GAAKz3B,GAAgB03B,EAAS,SAAS,OAAO,GAC7UlI,EAAe,KACrBv6B,GAAkBD,CAAS,EAC3B,MAAM21D,EAAmB,CACvB,cAAe,IAAIR,EAAc,CAC/B,cAAA56B,EACA,UAAAuI,EACN,CAAK,EACD,cAAe,IAAIsyB,EAAc,CAC/B,MAAAxxB,EACA,cAAArJ,CACN,CAAK,EACD,kBAAmBm7B,EAAiB,KAAO,IAAIL,EAAkB,CAC/D,QAAA7yB,EACA,oBAAAC,EACA,QAAAC,CACN,CAAK,CACL,EACO2xB,IACHA,EAASC,GAAU,OAAO,CACxB,UAAAt0D,EACA,KAAMirD,GAAoB,UAChC,CAAK,EACD+I,EAAK,QAAUK,GAEjB,MAAMuB,EAAY,CAChB,MAAAhyB,EACA,WAAY,UACZ,KAAA7hE,EACA,SAAAmyF,EACA,iBAAAe,EACA,eAAA9N,EACA,WAAAoN,EACA,UAAAS,EACA,iBAAkB,CAChB,aAAAL,EACA,gBAAA15B,EACA,aAAAy5B,EACA,2BAAAE,EACA,wBAAAC,EACA,qBAAAC,EACA,oBAAAC,EACA,eAAAU,EACA,QAAAF,EACA,eAAAG,EACA,QAAAlzB,EACA,WAAAgyB,EACA,OAAAC,EACA,oBAAAhyB,EACA,QAAAC,EACA,OAAQ,EACd,CACA,EACQmzB,GAAkB,CACtB,cAAAt7B,EACA,OAAA26B,EACA,aAAA16B,EACA,UAAAsI,GACA,cAAe,CACb,iBAAAmyB,EACA,UAAAD,CACN,CACA,EACE,eAAQ,IAAI,CAACX,EAAO,QAASiB,EAAU,CAAC,EAAE,KAAK,SAAU,CAAA,CAAGQ,EAAM,EAAG,CACnE,GAAIzB,EAAO,UACT,MAAM,IAAI,MAAM,sBAAsB,EAExCuB,EAAU,iBAAiB,OAASE,GACpC,MAAMC,GAAkB1B,EAAO,eAAe,gBAAgB,gBAAiBuB,EAAW7zF,EAAO,CAACA,EAAK,MAAM,EAAI,IAAI,EACrH,IAAIi0F,GACJ,GAAI,CAAAj0F,EAAc,GAAIoyF,EACpB6B,GAAgB,IAAIzN,GAAuB,CACzC,sBAAuB4L,EACvB,aAAA/M,EACA,cAAAa,CACR,CAAO,UACQlnF,EAAK,CACd,MAAMk1F,GAAgBjL,GAAiBjqF,CAAG,EAC1Ci1F,GAAgB,IAAIC,GAAc,CAChC,IAAAl1F,EACA,YAAA+lF,EACA,gBAAAa,EACA,eAAAR,EACA,aAAAC,EACA,cAAAa,CACR,CAAO,CACH,KACE,OAAM,IAAI,MAAM,oEAAoE,EAEtF,OAAO8N,GAAgB,KAAKG,IAAY,CACtC,GAAI7B,EAAO,UACT,MAAM,IAAI,MAAM,sBAAsB,EAExC,MAAM8B,GAAiB,IAAIr1B,GAAe8C,EAAOsyB,GAAU7B,EAAO,IAAI,EAChE+B,EAAY,IAAIC,GAAgBF,GAAgBnC,EAAMgC,GAAeH,GAAiBF,EAAkBH,CAAW,EAEzH,GADAxB,EAAK,WAAaoC,EACdpC,EAAK,UACP,MAAM,IAAI,MAAM,iBAAiB,EAEnCmC,GAAe,KAAK,QAAS,IAAI,CACnC,CAAC,CACH,CAAC,EAAE,MAAMnC,EAAK,YAAY,MAAM,EAAE,QAAQA,EAAK,iBAAiB,OAAO,EAChEA,CACT,CACA,MAAMsC,GAAN,MAAMA,EAAuB,CAA7B,cAEEhwE,GAAA,mBAAc,QAAQ,cAAa,GACnCA,GAAA,wBAAmB,QAAQ,cAAa,GACxCA,GAAA,kBAAa,MACbA,GAAA,eAAU,MACVA,GAAA,aAAQ,IAAI6uB,GAAAmhD,GAAuBryB,IAAvB,GAA+B,IAC3C39C,GAAA,iBAAY,IACZA,GAAA,kBAAa,MACbA,GAAA,kBAAa,MACb,IAAI,SAAU,CACZ,OAAO,KAAK,YAAY,OAC1B,CACA,MAAM,SAAU,aACd,KAAK,UAAY,GACjB,KAAK,YAAY,QAAQ,MAAM,IAAM,CAAC,CAAC,EACvC,GAAI,EACEvnB,EAAA,KAAK,UAAL,MAAAA,EAAc,OAChB,KAAK,QAAQ,gBAAkB,IAEjC,MAAM,KAAK,iBAAiB,QAC5B,OAAMD,EAAA,KAAK,aAAL,YAAAA,EAAiB,UACzB,OAASshD,EAAI,CACX,MAAIr+B,EAAA,KAAK,UAAL,MAAAA,EAAc,MAChB,OAAO,KAAK,QAAQ,gBAEhBq+B,CACR,CACA,KAAK,WAAa,MAClBn0B,EAAA,KAAK,UAAL,MAAAA,EAAc,UACd,KAAK,QAAU,IACjB,CACA,MAAM,SAAU,CACd,OAAO,KAAK,WAAW,QAAO,CAChC,CACF,EAlCSg4C,GAAA,YAAP39B,EADIgwD,GACGryB,GAAS,GADlB,IAAMgwB,GAANqC,GAoCA,MAAMlC,EAAsB,CAG1B,YAAYhyD,EAAQwmD,EAAaC,EAAkB,GAAOI,EAA6B,KAAM,CAF7F3iD,EAAA,KAAAiqD,GAAc,QAAQ,cAAa,GACnCjqD,EAAA,KAAAiwD,GAAY,MAEV,KAAK,OAASn0D,EACd,KAAK,YAAcwmD,EACnB,KAAK,gBAAkBC,EACvB,KAAK,2BAA6BI,CACpC,CACA,YAAY3D,EAAOzkF,EAAO,CACxBsrC,EAAA,KAAKoqD,IAAL,UAAe,CACb,KAAM,QACN,MAAAjR,EACA,MAAAzkF,CACN,EACE,CACA,sBAAsBA,EAAO,CAC3BsrC,EAAA,KAAKokD,IAAY,QAAQ,KAAK,IAAM,CAClCpkD,EAAA,KAAKoqD,IAAL,UAAe,CACb,KAAM,kBACN,MAAA11F,CACR,EACI,CAAC,CACH,CACA,uBAAwB,CACtBsrC,EAAA,KAAKokD,IAAY,QAAQ,KAAK,IAAM,CAClCpkD,EAAA,KAAKoqD,IAAL,UAAe,CACb,KAAM,iBACd,EACI,CAAC,CACH,CACA,eAAejzE,EAAU,CACvBmpB,EAAA,KAAK8pD,GAAYjzE,GACjB6oB,EAAA,KAAKokD,IAAY,QAAO,CAC1B,CACA,iBAAiBjL,EAAO10C,EAAK,CAC3BtQ,GAAY,wDAAwD,CACtE,CACA,OAAQ,CAAC,CACX,CAtCEiwD,GAAA,YACAgG,GAAA,YAsCF,MAAMC,EAAiB,CACrB,YAAYC,EAASL,EAAW,CAC9B,KAAK,SAAWK,EAChB,KAAK,WAAaL,CACpB,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,WAAW,WACzB,CACA,IAAI,mBAAoB,CACtB,OAAO,KAAK,WAAW,iBACzB,CACA,IAAI,eAAgB,CAClB,OAAO,KAAK,WAAW,aACzB,CACA,IAAI,eAAgB,CAClB,OAAO,KAAK,WAAW,aACzB,CACA,IAAI,UAAW,CACb,OAAO,KAAK,SAAS,QACvB,CACA,IAAI,cAAe,CACjB,OAAO,KAAK,SAAS,YACvB,CACA,IAAI,WAAY,CACd,OAAOh1D,GAAO,KAAM,YAAa,CAAC,CAAC,KAAK,WAAW,WAAW,CAChE,CACA,IAAI,YAAa,CACf,OAAO,KAAK,WAAW,WACzB,CACA,QAAQsd,EAAY,CAClB,OAAO,KAAK,WAAW,QAAQA,CAAU,CAC3C,CACA,aAAag4C,EAAK,CAChB,OAAO,KAAK,WAAW,aAAaA,CAAG,CACzC,CACA,iBAAkB,CAChB,OAAO,KAAK,WAAW,gBAAe,CACxC,CACA,eAAe9uE,EAAI,CACjB,OAAO,KAAK,WAAW,eAAeA,CAAE,CAC1C,CACA,eAAgB,CACd,OAAO,KAAK,WAAW,cAAa,CACtC,CACA,eAAgB,CACd,OAAO,KAAK,WAAW,cAAa,CACtC,CACA,aAAc,CACZ,OAAO,KAAK,WAAW,YAAW,CACpC,CACA,sBAAuB,CACrB,OAAO,KAAK,WAAW,qBAAoB,CAC7C,CACA,eAAgB,CACd,OAAO,KAAK,WAAW,cAAa,CACtC,CACA,gBAAiB,CACf,OAAO,KAAK,WAAW,eAAc,CACvC,CACA,qBAAqBA,EAAI,CACvB,OAAO,KAAK,WAAW,qBAAqBA,CAAE,CAChD,CACA,qBAAqBu5B,EAAOw1C,EAAmB,CAC7C,OAAO,KAAK,WAAW,qBAAqBx1C,EAAOw1C,CAAiB,CACtE,CACA,cAAe,CACb,OAAO,KAAK,WAAW,gBAAe,CACxC,CACA,YAAa,CACX,OAAO,KAAK,WAAW,WAAU,CACnC,CACA,yBAAyB,CACvB,OAAAptD,EAAS,SACb,EAAM,GAAI,CACN,KAAM,CACJ,gBAAAmiD,CACN,EAAQ,KAAK,WAAW,mBAAmBniD,CAAM,EAC7C,OAAO,KAAK,WAAW,yBAAyBmiD,CAAe,CACjE,CACA,gBAAiB,CACf,OAAO,KAAK,WAAW,eAAc,CACvC,CACA,aAAc,CACZ,OAAO,KAAK,WAAW,YAAW,CACpC,CACA,aAAc,CACZ,OAAO,KAAK,WAAW,YAAW,CACpC,CACA,SAAU,CACR,OAAO,KAAK,WAAW,QAAO,CAChC,CACA,cAAe,CACb,OAAO,KAAK,WAAW,aAAY,CACrC,CACA,aAAakL,EAAW,CACtB,OAAO,KAAK,WAAW,aAAaA,CAAS,CAC/C,CACA,iBAAkB,CAChB,OAAO,KAAK,WAAW,uBAAuB,OAChD,CACA,WAAW70F,EAAM,CACf,OAAO,KAAK,WAAW,WAAWA,CAAI,CACxC,CACA,QAAQ80F,EAAkB,GAAO,CAC/B,OAAO,KAAK,WAAW,aAAaA,GAAmB,KAAK,SAAS,CACvE,CACA,iBAAiBH,EAAK,CACpB,OAAO,KAAK,WAAW,iBAAiBA,CAAG,CAC7C,CACA,IAAI,eAAgB,CAClB,OAAO,KAAK,WAAW,aACzB,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,WAAW,WACzB,CACA,iBAAkB,CAChB,OAAO,KAAK,WAAW,gBAAe,CACxC,CACA,eAAgB,CACd,OAAO,KAAK,WAAW,cAAa,CACtC,CACA,iBAAiB9uE,EAAI,CACnB,OAAO,KAAK,WAAW,iBAAiBA,CAAE,CAC5C,CACA,cAAe,CACb,OAAO,KAAK,WAAW,aAAY,CACrC,CACA,wBAAyB,CACvB,OAAO,KAAK,WAAW,uBAAsB,CAC/C,CACF,CACA,MAAMkvE,GAAN,MAAMA,EAAa,CAGjB,YAAYz4C,EAAW04C,EAAUX,EAAWZ,EAAaN,EAAS,GAAO,CAH3E5uD,EAAA,KAAA0wD,IACE1wD,EAAA,KAAA2wD,GAAkB,IAClB3wD,EAAA,KAAA4wD,GAAe,MAEb,KAAK,WAAa74C,EAClB,KAAK,UAAY04C,EACjB,KAAK,WAAaX,EAClB,KAAK,OAASlB,EAAS,IAAIjpD,GAAc,KACzC,KAAK,QAAUipD,EACf,KAAK,WAAakB,EAAU,WAC5B,KAAK,KAAO,IAAIpG,GAChB,KAAK,cAAgB,IAAI,IACzB,KAAK,UAAY,GACjB,KAAK,eAAiB,KACtBvjD,EAAA,KAAKyqD,GAAe1B,GACpB,KAAK,iBAAmB,IAC1B,CACA,MAAM5tE,EAAI,CACR,MAAM0sC,EAAQ,IAAIwiC,GAAalvE,EAAI,KAAK,UAAW,KAAK,WAAYukB,EAAA,KAAK+qD,IAAc,KAAK,OAAO,EACnG,OAAA5iC,EAAM,gBAAkB,KAAK,iBAAmB,KAAK,WACrD,KAAK,WAAW,WAAWA,CAAK,EACzBA,CACT,CACA,IAAI,YAAa,CACf,OAAO,KAAK,WAAa,CAC3B,CACA,IAAI,WAAW5yD,EAAO,CACpB,KAAK,WAAaA,EAAQ,EAC1B,KAAK,WAAW,WAAW,IAAI,CACjC,CACA,IAAI,QAAS,CACX,OAAO,KAAK,UAAU,MACxB,CACA,IAAI,KAAM,CACR,OAAO,KAAK,UAAU,GACxB,CACA,IAAI,UAAW,CACb,OAAO,KAAK,UAAU,QACxB,CACA,IAAI,MAAO,CACT,OAAO,KAAK,UAAU,IACxB,CACA,YAAY,CACV,MAAAs3B,EACA,SAAA+O,EAAW,KAAK,OAChB,QAAAC,EAAU,EACV,QAAAC,EAAU,EACV,SAAAC,EAAW,EACf,EAAM,GAAI,CACN,OAAO,IAAIN,GAAa,CACtB,QAAS,KAAK,KACd,SAAU,KAAK,SACf,MAAA5O,EACA,SAAA+O,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,CACN,CAAK,CACH,CACA,eAAe,CACb,OAAAqB,EAAS,SACb,EAAM,GAAI,CACN,KAAM,CACJ,gBAAAmiD,CACN,EAAQ,KAAK,WAAW,mBAAmBniD,CAAM,EAC7C,OAAO,KAAK,WAAW,eAAe,KAAK,WAAYmiD,CAAe,CACxE,CACA,cAAe,CACb,OAAO,KAAK,WAAW,iBAAiB,KAAK,UAAU,CACzD,CACA,IAAI,eAAgB,CAClB,OAAO,KAAK,WAAW,aACzB,CACA,IAAI,WAAY,CACd,OAAOtqD,GAAO,KAAM,YAAa,CAAC,CAAC,KAAK,WAAW,WAAW,CAChE,CACA,MAAM,QAAS,OACb,QAAOriC,EAAA,KAAK,WAAW,cAAhB,YAAAA,EAA6B,SAAS,KAAK,cAAe,IACnE,CACA,OAAO,CACL,cAAAo4F,EACA,OAAAphD,EAASohD,EAAc,OACvB,SAAAnpD,EACA,OAAAzE,EAAS,UACT,eAAA6tD,EAAiBl4D,GAAe,OAChC,UAAAkE,EAAY,KACZ,WAAAw8B,EAAa,KACb,6BAAAy3B,EAA+B,KAC/B,oBAAA1iB,EAAsB,KACtB,WAAAr7B,EAAa,KACb,uBAAAg+C,EAAyB,KACzB,UAAA12C,EAAY,GACZ,aAAA22C,EAAe,GACf,iBAAAC,EAAmB,GACnB,iBAAAzhB,EAAmB,IACvB,EAAK,YACDh3E,EAAA,KAAK,SAAL,MAAAA,EAAa,KAAK,WAClB,MAAM04F,EAAa,KAAK,WAAW,mBAAmBluD,EAAQ6tD,EAAgBE,EAAwB12C,CAAS,EACzG,CACJ,gBAAA8qC,EACA,SAAA3T,CACN,EAAQ0f,EACJhrD,EAAA,KAAKwqD,GAAkB,IACvBI,MAAiC,KAAK,WAAW,yBAAyB3L,CAAe,GACzF,MAAMgM,EAAc,KAAK,cAAc,oBAAoB3f,EAAUzwC,EAAO,EACxEowD,EAAY,4BACd,aAAaA,EAAY,yBAAyB,EAClDA,EAAY,0BAA4B,MAE1C,MAAMC,EAAc,CAAC,EAAEjM,EAAkBzsD,GAAoB,OACxDy4D,EAAY,yBACfA,EAAY,uBAAyB,QAAQ,cAAa,EAC1DA,EAAY,aAAe,CACzB,QAAS,CAAA,EACT,UAAW,CAAA,EACX,UAAW,GACX,eAAgB,IACxB,GACM54F,EAAA,KAAK,SAAL,MAAAA,EAAa,KAAK,gBAClB,KAAK,kBAAkB24F,CAAU,GAEnC,MAAMG,EAAoB,CAAC,EAAE,KAAK,WAAW71E,EAAA,WAAW,iBAAX,MAAAA,EAA2B,UAClE81E,EAAyB,CAAC,CAAC9hD,GAAU,CAAC,KAAK,iBAAmByhD,GAAoBI,GAClFE,EAAqB,CAAC,CAAC/hD,GAAU,CAAC,KAAK,kBAAoBwhD,EAC3DQ,EAAWl1F,GAAS,eAExB,GADA60F,EAAY,YAAY,OAAOM,CAAkB,EAC7CH,EAAwB,CAC1B,MAAMI,GAAiBl5F,EAAAi5F,EAAmB,MAAnB,YAAAj5F,EAAwB,kBAAkB,OAC7Dk5F,KACFn5F,GAAAk5F,EAAmB,UAAnB,MAAAl5F,GAA4B,kBAAkBm5F,EAAgBD,EAAmB,IAAI,kBAAkB,qBACnGR,IACF,KAAK,eAAiBS,GAG5B,CACIH,GAAsB,CAACj1F,IACzB,KAAK,kBAAmBkf,EAAAi2E,EAAmB,MAAnB,YAAAj2E,EAAwB,cAAc,QAE5D41E,GACFlrD,EAAA,KAAKwqD,GAAkB,IAEzBlxD,EAAA,KAAKixD,GAAAkB,IAAL,WACIr1F,GACFm1F,EAAmB,WAAW,OAAOn1F,CAAK,EAC1C,KAAK,mBAAmB,CACtB,YAAA60F,EACA,OAAQ70F,aAAiB,MAAQA,EAAQ,IAAI,MAAMA,CAAK,CAClE,CAAS,GAEDm1F,EAAmB,WAAW,QAAO,EAEnC,KAAK,SACP,KAAK,OAAO,QAAQ,WAAW,EAC/B,KAAK,OAAO,QAAQ,SAAS,GACzB/rE,GAAA,WAAW,QAAX,MAAAA,GAAkB,SACpB,WAAW,MAAM,IAAI,KAAK,WAAY,KAAK,MAAM,EAGvD,EACA,IAAI4sC,EAAoB,KACpBtB,EAAc,MACdsgC,GAA0BC,KAC5BvgC,EAAc,IAAI5B,GAAkB5f,EAAQ2hD,EAAY,aAAa,MAAM,GAEzEG,IACFh/B,EAAoB,IAAIvB,GAAwBC,EAAaqgC,CAAiB,GAEhF,MAAMI,EAAqB,IAAIG,GAAmB,CAChD,SAAUJ,EACV,OAAQ,CACN,OAAAhiD,EACA,cAAAohD,EACA,kBAAmBt+B,GAAqBtB,EACxC,cAAeugC,EAAqB,IAAIz9B,GAAoBtkB,CAAM,EAAI,KACtE,SAAA/H,EACA,UAAA5K,EACA,WAAAw8B,CACR,EACM,KAAM,KAAK,KACX,WAAY,KAAK,WACjB,oBAAA+U,EACA,aAAc+iB,EAAY,aAC1B,UAAW,KAAK,WAChB,cAAe,KAAK,WAAW,cAC/B,cAAe,KAAK,WAAW,cAC/B,yBAA0B,CAACC,EAC3B,OAAQ,KAAK,QACb,WAAAr+C,EACA,UAAW,KAAK,WAAW,UAC3B,iBAAAy8B,CACN,CAAK,GACA2hB,EAAY,cAAZA,EAAY,YAAgB,IAAI,MAAO,IAAIM,CAAkB,EAC9D,MAAMI,EAAaJ,EAAmB,KACtC,eAAQ,IAAI,CAACN,EAAY,uBAAuB,QAASL,CAA4B,CAAC,EAAE,KAAK,CAAC,CAAC7hB,EAAcf,CAAqB,IAAM,QACtI,GAAI,KAAK,UAAW,CAClBsjB,EAAQ,EACR,MACF,CAEA,IADAh5F,GAAA,KAAK,SAAL,MAAAA,GAAa,KAAK,aACd,EAAE01E,EAAsB,gBAAkBiX,GAC5C,MAAM,IAAI,MAAM,qIAA0I,EAE5JsM,EAAmB,mBAAmB,CACpC,aAAAxiB,EACA,sBAAAf,CACR,CAAO,EACDujB,EAAmB,oBAAmB,CACxC,CAAC,EAAE,MAAMD,CAAQ,EACVK,CACT,CACA,gBAAgB,CACd,OAAA7uD,EAAS,UACT,eAAA6tD,EAAiBl4D,GAAe,OAChC,uBAAAo4D,EAAyB,KACzB,UAAA12C,EAAY,EAChB,EAAM,GAAI,OACN,SAASy3C,GAAsB,CACzBX,EAAY,aAAa,YAC3BA,EAAY,qBAAqB,QAAQA,EAAY,YAAY,EACjEA,EAAY,YAAY,OAAOY,CAAU,EAE7C,CACA,MAAMb,EAAa,KAAK,WAAW,mBAAmBluD,EAAQ6tD,EAAgBE,EAAwB12C,EAAW,EAAI,EAC/G82C,EAAc,KAAK,cAAc,oBAAoBD,EAAW,SAAUnwD,EAAO,EACvF,IAAIgxD,EACJ,OAAKZ,EAAY,uBACfY,EAAa,OAAO,OAAO,IAAI,EAC/BA,EAAW,oBAAsBD,EACjCX,EAAY,qBAAuB,QAAQ,cAAa,GACvDA,EAAY,cAAZA,EAAY,YAAgB,IAAI,MAAO,IAAIY,CAAU,EACtDZ,EAAY,aAAe,CACzB,QAAS,CAAA,EACT,UAAW,CAAA,EACX,UAAW,GACX,eAAgB,IACxB,GACM34F,EAAA,KAAK,SAAL,MAAAA,EAAa,KAAK,gBAClB,KAAK,kBAAkB04F,CAAU,GAE5BC,EAAY,qBAAqB,OAC1C,CACA,kBAAkB,CAChB,qBAAAa,EAAuB,GACvB,qBAAAC,EAAuB,EAC3B,EAAM,GAAI,CAEN,OAAO,KAAK,WAAW,eAAe,eAAe,iBAAkB,CACrE,OAAQrsD,EAAA,KAAK+qD,IAAa,UAAU,KAAK,WAAa,CAAC,EAAI,EAC3D,UAAW,KAAK,WAChB,qBAAsBqB,IAAyB,GAC/C,qBAAsBC,IAAyB,EACrD,EAAO,CACD,cAAe,IACf,KAAKC,EAAa,CAChB,OAAOA,EAAY,MAAM,MAC3B,CACN,CAAK,CACH,CACA,MAAM,eAAexxE,EAAS,GAAI,CAChC,GAAI,KAAK,WAAW,YAClB,OAAO,KAAK,OAAM,EAAG,KAAK8hB,GAAOD,GAAQ,YAAYC,CAAG,CAAC,EAE3D,MAAMgiD,EAAiB,KAAK,kBAAkB9jE,CAAM,EAC9CwxE,EAAc,CAClB,MAAO,CAAA,EACP,OAAQ,OAAO,OAAO,IAAI,EAC1B,KAAM,IACZ,EACI,gBAAiB/2F,KAASqpF,EACxB0N,EAAY,OAAZA,EAAY,KAAS/2F,EAAM,MAC3B,OAAO,OAAO+2F,EAAY,OAAQ/2F,EAAM,MAAM,EAC9C+2F,EAAY,MAAM,KAAK,GAAG/2F,EAAM,KAAK,EAEvC,OAAO+2F,CACT,CACA,eAAgB,CACd,OAAO,KAAK,WAAW,cAAc,KAAK,UAAU,CACtD,CACA,UAAW,CACT,KAAK,UAAY,GACjB,MAAMC,EAAS,CAAA,EACf,UAAWhB,KAAe,KAAK,cAAc,OAAM,EAMjD,GALA,KAAK,mBAAmB,CACtB,YAAAA,EACA,OAAQ,IAAI,MAAM,qBAAqB,EACvC,MAAO,EACf,CAAO,EACG,CAAAA,EAAY,qBAGhB,UAAWM,KAAsBN,EAAY,YAC3CgB,EAAO,KAAKV,EAAmB,SAAS,EACxCA,EAAmB,OAAM,EAG7B,YAAK,KAAK,MAAK,EACfvrD,EAAA,KAAKwqD,GAAkB,IAChB,QAAQ,IAAIyB,CAAM,CAC3B,CACA,QAAQC,EAAa,GAAO,CAC1BlsD,EAAA,KAAKwqD,GAAkB,IACvB,MAAM2B,EAAU7yD,EAAA,KAAKixD,GAAAkB,IAAL,WAChB,OAAIS,GAAcC,GAChB,KAAK,SAAL,KAAK,OAAW,IAAI3sD,IAEf2sD,CACT,CAkBA,iBAAiBpjB,EAAcuC,EAAU,SACvC,MAAM2f,EAAc,KAAK,cAAc,IAAI3f,CAAQ,EAC9C2f,KAGL34F,EAAA,KAAK,SAAL,MAAAA,EAAa,QAAQ,iBACrBD,EAAA44F,EAAY,yBAAZ,MAAA54F,EAAoC,QAAQ02E,GAC9C,CACA,iBAAiBqjB,EAAmBnB,EAAa,CAC/C,QAAS,EAAI,EAAG1jF,EAAK6kF,EAAkB,OAAQ,EAAI7kF,EAAI,IACrD0jF,EAAY,aAAa,QAAQ,KAAKmB,EAAkB,QAAQ,CAAC,CAAC,EAClEnB,EAAY,aAAa,UAAU,KAAKmB,EAAkB,UAAU,CAAC,CAAC,EAExEnB,EAAY,aAAa,UAAYmB,EAAkB,UACvDnB,EAAY,aAAa,eAAiBmB,EAAkB,eAC5D,UAAWb,KAAsBN,EAAY,YAC3CM,EAAmB,oBAAmB,EAEpCa,EAAkB,WACpB9yD,EAAA,KAAKixD,GAAAkB,IAAL,UAEJ,CACA,kBAAkB,CAChB,gBAAAxM,EACA,SAAA3T,EACA,8BAAA+gB,EACA,YAAAC,CACJ,EAAK,CACD,KAAM,CACJ,IAAAj7C,EACA,SAAA6V,CACN,EAAQmlC,EASEx3F,EARiB,KAAK,WAAW,eAAe,eAAe,kBAAmB,CACtF,OAAQ6qC,EAAA,KAAK+qD,IAAa,UAAU,KAAK,WAAa,CAAC,EAAI,EAC3D,UAAW,KAAK,WAChB,OAAQxL,EACR,SAAA3T,EACA,kBAAmBj6B,EACnB,YAAAi7C,CACN,EAAO,OAAWplC,CAAQ,EACQ,UAAS,EACjC+jC,EAAc,KAAK,cAAc,IAAI3f,CAAQ,EACnD2f,EAAY,aAAep2F,EAC3B,MAAMywF,EAAO,IAAM,CACjBzwF,EAAO,OAAO,KAAK,CAAC,CAClB,MAAAI,EACA,KAAAD,CACR,IAAY,CACJ,GAAIA,EAAM,CACRi2F,EAAY,aAAe,KAC3B,MACF,CACI,KAAK,WAAW,YAGpB,KAAK,iBAAiBh2F,EAAOg2F,CAAW,EACxC3F,EAAI,EACN,EAAGjwB,GAAU,CAEX,GADA41B,EAAY,aAAe,KACvB,MAAK,WAAW,UAGpB,IAAIA,EAAY,aAAc,CAC5BA,EAAY,aAAa,UAAY,GACrC,UAAWM,KAAsBN,EAAY,YAC3CM,EAAmB,oBAAmB,EAExCjyD,EAAA,KAAKixD,GAAAkB,IAAL,UACF,CACA,GAAIR,EAAY,uBACdA,EAAY,uBAAuB,OAAO51B,CAAM,UACvC41B,EAAY,qBACrBA,EAAY,qBAAqB,OAAO51B,CAAM,MAE9C,OAAMA,EAEV,CAAC,CACH,EACAiwB,EAAI,CACN,CACA,mBAAmB,CACjB,YAAA2F,EACA,OAAA51B,EACA,MAAAk3B,EAAQ,EACZ,EAAK,CACD,GAAKtB,EAAY,aAOjB,IAJIA,EAAY,4BACd,aAAaA,EAAY,yBAAyB,EAClDA,EAAY,0BAA4B,MAEtC,CAACsB,EAAO,CACV,GAAItB,EAAY,YAAY,KAAO,EACjC,OAEF,GAAI51B,aAAkB52B,GAA6B,CACjD,IAAI+tD,EAAQnF,GACRhyB,EAAO,WAAa,GAAKA,EAAO,WAAa,MAC/Cm3B,GAASn3B,EAAO,YAElB41B,EAAY,0BAA4B,WAAW,IAAM,CACvDA,EAAY,0BAA4B,KACxC,KAAK,mBAAmB,CACtB,YAAAA,EACA,OAAA51B,EACA,MAAO,EACnB,CAAW,CACH,EAAGm3B,CAAK,EACR,MACF,CACF,CAGA,GAFAvB,EAAY,aAAa,OAAO,IAAIz1D,GAAe6/B,EAAO,OAAO,CAAC,EAAE,MAAM,IAAM,CAAC,CAAC,EAClF41B,EAAY,aAAe,KACvB,MAAK,WAAW,UAGpB,UAAW,CAACwB,EAAaC,CAAc,IAAK,KAAK,cAC/C,GAAIA,IAAmBzB,EAAa,CAClC,KAAK,cAAc,OAAOwB,CAAW,EACrC,KACF,CAEF,KAAK,QAAO,GACd,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,MACd,CACF,EAncEjC,GAAA,YACAC,GAAA,YAFFF,GAAA,YAmTEkB,GAAW,UAAG,CACZ,GAAI,CAAC/rD,EAAA,KAAK8qD,KAAmB,KAAK,UAChC,MAAO,GAET,SAAW,CACT,YAAAmC,EACA,aAAAzjB,CACN,IAAS,KAAK,cAAc,SACtB,GAAIyjB,EAAY,KAAO,GAAK,CAACzjB,EAAa,UACxC,MAAO,GAGX,YAAK,cAAc,MAAK,EACxB,KAAK,KAAK,MAAK,EACflpC,EAAA,KAAKwqD,GAAkB,IAChB,EACT,EAnUF,IAAMoC,GAANvC,GAqcA,MAAMwC,GAAN,MAAMA,EAAU,CA4Bd,YAAY,CACV,KAAA7zE,EAAO,KACP,KAAA8zE,EAAO,KACP,UAAAv5D,EAAYE,GAAiB,CACjC,EAAM,GAAI,CAhCVoG,EAAA,KAAAkzD,IACElzD,EAAA,KAAAiqD,GAAc,QAAQ,cAAa,GACnCjqD,EAAA,KAAAmzD,GAAkB,MAClBnzD,EAAA,KAAA4kD,GAAQ,MACR5kD,EAAA,KAAAozD,GAAa,MAgCX,GAHA,KAAK,KAAOj0E,EACZ,KAAK,UAAY,GACjB,KAAK,UAAYua,EACbu5D,EAAM,CACR,GAAIptD,EAAAmtD,GAAUK,IAAa,IAAIJ,CAAI,EACjC,MAAM,IAAI,MAAM,8CAA8C,EAEhEptD,EAAAmtD,GAAUK,IAAa,IAAIJ,EAAM,IAAI,EACrCxzD,EAAA,KAAKyzD,GAAAI,IAAL,UAAyBL,EAC3B,MACExzD,EAAA,KAAKyzD,GAAAK,IAAL,UAEJ,CACA,IAAI,SAAU,CACZ,OAAO1tD,EAAA,KAAKokD,IAAY,OAC1B,CAOA,IAAI,MAAO,CACT,OAAOpkD,EAAA,KAAK++C,GACd,CACA,IAAI,gBAAiB,CACnB,OAAO/+C,EAAA,KAAKstD,GACd,CAgGA,SAAU,SACR,KAAK,UAAY,IACjB16F,EAAAotC,EAAA,KAAKutD,MAAL,MAAA36F,EAAiB,YACjB0tC,EAAA,KAAKitD,GAAa,MAClBvtD,EAAAmtD,GAAUK,IAAa,OAAOxtD,EAAA,KAAK++C,GAAK,EACxCz+C,EAAA,KAAKy+C,GAAQ,OACbpsF,EAAAqtC,EAAA,KAAKstD,MAAL,MAAA36F,EAAsB,UACtB2tC,EAAA,KAAKgtD,GAAkB,KACzB,CACA,OAAO,OAAOxyE,EAAQ,CACpB,MAAM6yE,EAAa3tD,EAAA,KAAKwtD,IAAa,IAAI1yE,GAAA,YAAAA,EAAQ,IAAI,EACrD,GAAI6yE,EAAY,CACd,GAAIA,EAAW,gBACb,MAAM,IAAI,MAAM,uHAA4H,EAE9I,OAAOA,CACT,CACA,OAAO,IAAIR,GAAUryE,CAAM,CAC7B,CACA,WAAW,WAAY,CACrB,GAAIgkE,GAAoB,UACtB,OAAOA,GAAoB,UAE7B,MAAM,IAAI,MAAM,+CAA+C,CACjE,CAQA,WAAW,wBAAyB,CAWlC,OAAO7pD,GAAO,KAAM,0BAVL,SACT+K,EAAA,KAAK4tD,GAAAC,IACA7tD,EAAA,KAAK4tD,GAAAC,KAEC,MAAM,OAGrB,KAAK,YACS,sBAEoC,CAAE,CACxD,CACF,EAxMEzJ,GAAA,YACAkJ,GAAA,YACAvO,GAAA,YACAwO,GAAA,YACOO,GAAA,YACAC,GAAA,YACAP,GAAA,YAPTH,GAAA,YAiDEW,GAAQ,UAAG,CACThuD,EAAA,KAAKokD,IAAY,QAAO,EACxBpkD,EAAA,KAAKstD,IAAgB,KAAK,YAAa,CACrC,UAAW,KAAK,SACtB,CAAK,CACH,EAOAG,GAAmB,SAACL,EAAM,CACxB9sD,EAAA,KAAKy+C,GAAQqO,GACb9sD,EAAA,KAAKgtD,GAAkB,IAAI34B,GAAe,OAAQ,SAAUy4B,CAAI,GAChEptD,EAAA,KAAKstD,IAAgB,GAAG,QAAS,IAAM,CAAC,CAAC,EACzC1zD,EAAA,KAAKyzD,GAAAW,IAAL,UACF,EACAN,GAAW,UAAG,CACZ,GAAI1tD,EAAAmtD,GAAUY,KAAqB/tD,EAAAmtD,GAAUS,GAAAC,IAAiC,CAC5Ej0D,EAAA,KAAKyzD,GAAAY,IAAL,WACA,MACF,CACA,GAAI,CACF,UAAAC,CACN,EAAQf,GACJ,GAAI,CACGA,GAAU,cAAc,OAAO,SAAUe,CAAS,IACrDA,EAAYf,GAAU,kBAAkB,IAAI,IAAIe,EAAW,OAAO,QAAQ,EAAE,IAAI,GAElF,MAAMhG,EAAS,IAAI,OAAOgG,EAAW,CACnC,KAAM,QACd,CAAO,EACKlE,EAAiB,IAAIr1B,GAAe,OAAQ,SAAUuzB,CAAM,EAC5DiG,EAAiB,IAAM,CAC3Br5E,EAAG,MAAK,EACRk1E,EAAe,QAAO,EACtB9B,EAAO,UAAS,EACZ,KAAK,UACPloD,EAAA,KAAKokD,IAAY,OAAO,IAAI,MAAM,sBAAsB,CAAC,EAEzDxqD,EAAA,KAAKyzD,GAAAY,IAAL,UAEJ,EACMn5E,EAAK,IAAI,gBACfozE,EAAO,iBAAiB,QAAS,IAAM,CAChCloD,EAAA,KAAKutD,KACRY,EAAc,CAElB,EAAG,CACD,OAAQr5E,EAAG,MACnB,CAAO,EACDk1E,EAAe,GAAG,OAAQp0F,GAAQ,CAEhC,GADAkf,EAAG,MAAK,EACJ,KAAK,WAAa,CAAClf,EAAM,CAC3Bu4F,EAAc,EACd,MACF,CACA7tD,EAAA,KAAKgtD,GAAkBtD,GACvB1pD,EAAA,KAAKy+C,GAAQmJ,GACb5nD,EAAA,KAAKitD,GAAarF,GAClBtuD,EAAA,KAAKyzD,GAAAW,IAAL,UACF,CAAC,EACDhE,EAAe,GAAG,QAASp0F,GAAQ,CAEjC,GADAkf,EAAG,MAAK,EACJ,KAAK,UAAW,CAClBq5E,EAAc,EACd,MACF,CACA,GAAI,CACFC,EAAQ,CACV,MAAQ,CACNx0D,EAAA,KAAKyzD,GAAAY,IAAL,UACF,CACF,CAAC,EACD,MAAMG,EAAW,IAAM,CACrB,MAAMC,EAAU,IAAI,WACpBrE,EAAe,KAAK,OAAQqE,EAAS,CAACA,EAAQ,MAAM,CAAC,CACvD,EACAD,EAAQ,EACR,MACF,MAAQ,CACNp6D,GAAK,+BAA+B,CACtC,CACA4F,EAAA,KAAKyzD,GAAAY,IAAL,UACF,EACAA,GAAgB,UAAG,CACZjuD,EAAAmtD,GAAUY,MACb75D,GAAK,yBAAyB,EAC9BoM,EAAA6sD,GAAUY,GAAoB,KAEhCZ,GAAU,uBAAuB,KAAKmB,GAAwB,CAC5D,GAAI,KAAK,UAAW,CAClBtuD,EAAA,KAAKokD,IAAY,OAAO,IAAI,MAAM,sBAAsB,CAAC,EACzD,MACF,CACA,MAAMgJ,EAAO,IAAIj5B,GACjB7zB,EAAA,KAAKy+C,GAAQqO,GACb,MAAM3xE,EAAK,OAAOutB,GAAAmkD,GAAUW,IAAV,GAAyB,GACrCS,EAAgB,IAAI55B,GAAel5C,EAAK,UAAWA,EAAI2xE,CAAI,EACjEkB,EAAqB,MAAMC,EAAenB,CAAI,EAC9C9sD,EAAA,KAAKgtD,GAAkB,IAAI34B,GAAel5C,EAAIA,EAAK,UAAW2xE,CAAI,GAClExzD,EAAA,KAAKyzD,GAAAW,IAAL,UACF,CAAC,EAAE,MAAMr4B,GAAU,CACjB31B,EAAA,KAAKokD,IAAY,OAAO,IAAI,MAAM,mCAAmCzuB,EAAO,OAAO,IAAI,CAAC,CAC1F,CAAC,CACH,EA3JFi4B,GAAA,YAqLaC,GAA+B,UAAG,OAC3C,GAAI,CACF,QAAOj7F,EAAA,WAAW,cAAX,YAAAA,EAAwB,uBAAwB,IACzD,MAAQ,CACN,OAAO,IACT,CACF,EA3LFunC,EAAMgzD,GAANS,IAKEzzD,EALIgzD,GAKGW,GAAgB,GACvB3zD,EANIgzD,GAMGY,GAAoB,IAC3B5zD,EAPIgzD,GAOGK,GAAe,IAAI,SAEpB/6D,KACF6N,EAAA6sD,GAAKY,GAAoB,IACzBjP,GAAoB,YAApBA,GAAoB,UAAc,qBAEpCqO,GAAK,cAAgB,CAACtyE,EAAS2zE,IAAa,CAC1C,MAAMxoE,EAAO,IAAI,MAAMnL,CAAO,EAC9B,GAAI,EAACmL,GAAA,MAAAA,EAAM,SAAUA,EAAK,SAAW,OACnC,MAAO,GAET,MAAMyoE,EAAQ,IAAI,IAAID,EAAUxoE,CAAI,EACpC,OAAOA,EAAK,SAAWyoE,EAAM,MAC/B,EACAtB,GAAK,kBAAoBv4F,GAAO,CAC9B,MAAM85F,EAAU,iBAAiB95F,CAAG,MACpC,OAAO,IAAI,gBAAgB,IAAI,KAAK,CAAC85F,CAAO,EAAG,CAC7C,KAAM,iBACd,CAAO,CAAC,CACJ,EA1BJ,IAAMvG,GAANgF,GA0MA,MAAMjD,EAAgB,CASpB,YAAYF,EAAgB2E,EAAa9E,EAAe/uE,EAAQ8zE,EAASvF,EAAa,CATxFlvD,EAAA,KAAA00D,IACE10E,GAAA,8BAAyB,QAAQ,cAAa,GAC9CggB,EAAA,KAAA20D,GAAc,MACd30D,EAAA,KAAA40D,GAAkB,IAAI,KACtB50D,EAAA,KAAA60D,GAAiB,MACjB70D,EAAA,KAAA80D,GAAa,IAAI,KACjB90D,EAAA,KAAA+0D,GAAgB,IAAI,KACpB/0D,EAAA,KAAAg1D,GAAgB,IAAI,KACpBh1D,EAAA,KAAAi1D,GAAsB,MAEpB,KAAK,eAAiBpF,EACtB,KAAK,YAAc2E,EACnBruD,EAAA,KAAK0uD,GAAiBnF,GACtB,KAAK,WAAa,IAAIhG,GACtB,KAAK,WAAa,IAAI11B,GAAW,CAC/B,cAAerzC,EAAO,cACtB,aAAcA,EAAO,YAC3B,CAAK,EACD,KAAK,UAAYA,EAAO,UACxB,KAAK,cAAgBA,EAAO,cAC5B,KAAK,QAAUA,EACf,KAAK,cAAgB8zE,EAAQ,cAC7B,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,kBAAoBA,EAAQ,kBACjC,KAAK,YAAcvF,EACnB,KAAK,UAAY,GACjB,KAAK,kBAAoB,KACzB,KAAK,oBAAmB,CAC1B,CACA,WAAWxuD,EAAM,CACf,KAAM,CACJ,WAAAw0D,CACN,EAAQx0D,EACJmF,EAAA,KAAKivD,IAAW,IAAII,EAAYx0D,CAAI,EACpCmF,EAAA,KAAKkvD,IAAc,IAAIG,EAAY,QAAQ,QAAQx0D,CAAI,CAAC,CAC1D,CAcA,IAAI,mBAAoB,CACtB,OAAO5F,GAAO,KAAM,oBAAqB,IAAI2xB,EAAmB,CAClE,CACA,mBAAmBxpB,EAAQ6tD,EAAiBl4D,GAAe,OAAQo4D,EAAyB,KAAM12C,EAAY,GAAO66C,EAAW,GAAO,CACrI,IAAI/P,EAAkBzsD,GAAoB,QACtC65D,EAAgChmC,GACpC,OAAQvpB,EAAM,CACZ,IAAK,MACHmiD,EAAkBzsD,GAAoB,IACtC,MACF,IAAK,UACH,MACF,IAAK,QACHysD,EAAkBzsD,GAAoB,MACtC,MACF,QACEoB,GAAK,wCAAwCkJ,CAAM,EAAE,CAC7D,CACI,MAAMmyD,EAAoBhQ,EAAkBzsD,GAAoB,OAASq4D,aAAkC5jC,GAAyB4jC,EAAyB,KAAK,kBAClK,OAAQF,EAAc,CACpB,KAAKl4D,GAAe,QAClBwsD,GAAmBzsD,GAAoB,oBACvC,MACF,KAAKC,GAAe,OAClB,MACF,KAAKA,GAAe,aAClBwsD,GAAmBzsD,GAAoB,kBACvC,MACF,KAAKC,GAAe,eAClBwsD,GAAmBzsD,GAAoB,oBACvC65D,EAAgC4C,EAAkB,aAClD,MACF,QACEr7D,GAAK,gDAAgD+2D,CAAc,EAAE,CAC7E,CACQx2C,IACF8qC,GAAmBzsD,GAAoB,YAErCw8D,IACF/P,GAAmBzsD,GAAoB,QAEzC,KAAM,CACJ,IAAK85D,EACL,KAAM4C,CACZ,EAAQD,EAAkB,YAChBE,EAAc,CAAClQ,EAAiBoN,EAA8B,KAAM6C,CAAe,EACzF,MAAO,CACL,gBAAAjQ,EACA,SAAUkQ,EAAY,KAAK,GAAG,EAC9B,8BAAA9C,EACA,YAAAC,CACN,CACE,CACA,SAAU,OACR,GAAI,KAAK,kBACP,OAAO,KAAK,kBAAkB,QAEhC,KAAK,UAAY,GACjB,KAAK,kBAAoB,QAAQ,cAAa,GAC9Ch6F,EAAAotC,EAAA,KAAKovD,MAAL,MAAAx8F,EAA0B,OAAO,IAAI,MAAM,iDAAiD,GAC5F,MAAM25F,EAAS,CAAA,EACf,UAAW1xD,KAAQmF,EAAA,KAAKivD,IAAW,OAAM,EACvC1C,EAAO,KAAK1xD,EAAK,UAAU,EAE7BmF,EAAA,KAAKivD,IAAW,MAAK,EACrBjvD,EAAA,KAAKkvD,IAAc,MAAK,EACxBlvD,EAAA,KAAKmvD,IAAc,MAAK,EACpB,OAAO,OAAO,KAAM,mBAAmB,GACzC,KAAK,kBAAkB,cAAa,EAEtC,MAAMO,EAAa,KAAK,eAAe,gBAAgB,YAAa,IAAI,EACxE,OAAAnD,EAAO,KAAKmD,CAAU,EACtB,QAAQ,IAAInD,CAAM,EAAE,KAAK,IAAM,SAC7B,KAAK,WAAW,MAAK,EACrB,KAAK,WAAW,MAAK,EACrBvsD,EAAA,KAAK+uD,IAAgB,MAAK,EAC1B,KAAK,cAAc,QAAO,EAC1BrH,GAAU,QAAO,GACjB90F,EAAAotC,EAAA,KAAKgvD,MAAL,MAAAp8F,EAAqB,kBAAkB,IAAIkjC,GAAe,wBAAwB,IAClFnjC,EAAA,KAAK,iBAAL,MAAAA,EAAqB,UACrB,KAAK,eAAiB,KACtB,KAAK,kBAAkB,QAAO,CAChC,EAAG,KAAK,kBAAkB,MAAM,EACzB,KAAK,kBAAkB,OAChC,CACA,qBAAsB,CACpB,KAAM,CACJ,eAAAq3F,EACA,YAAA2E,CACN,EAAQ,KACJ3E,EAAe,GAAG,YAAa,CAACp0F,EAAM+5F,IAAS,CAC7Cv7D,GAAO4L,EAAA,KAAKgvD,IAAgB,oDAAoD,EAChF1uD,EAAA,KAAKwuD,GAAc9uD,EAAA,KAAKgvD,IAAe,cAAa,GACpDhvD,EAAA,KAAK8uD,IAAY,WAAa/9C,GAAOnX,EAAA,KAAKi1D,GAAAlR,IAAL,UAAiB5sC,GACtD4+C,EAAK,OAAS,IAAM,CAClB3vD,EAAA,KAAK8uD,IAAY,KAAI,EAAG,KAAK,SAAU,CACrC,MAAAv5F,EACA,KAAAD,CACV,EAAW,CACD,GAAIA,EAAM,CACRq6F,EAAK,MAAK,EACV,MACF,CACAv7D,GAAO7+B,aAAiB,YAAa,sCAAsC,EAC3Eo6F,EAAK,QAAQ,IAAI,WAAWp6F,CAAK,EAAG,EAAG,CAACA,CAAK,CAAC,CAChD,CAAC,EAAE,MAAMogE,GAAU,CACjBg6B,EAAK,MAAMh6B,CAAM,CACnB,CAAC,CACH,EACAg6B,EAAK,SAAWh6B,GAAU,CACxB31B,EAAA,KAAK8uD,IAAY,OAAOn5B,CAAM,EAC9Bg6B,EAAK,MAAM,MAAMC,GAAe,CAC9B,GAAI,MAAK,UAGT,MAAMA,CACR,CAAC,CACH,CACF,CAAC,EACD5F,EAAe,GAAG,qBAAsB,MAAMp0F,GAAQ,CACpD,MAAMoqC,EAAA,KAAK8uD,IAAY,aACvB,KAAM,CACJ,qBAAAe,EACA,iBAAA7T,EACA,cAAAD,CACR,EAAU/7C,EAAA,KAAK8uD,IACT,OAAIe,GAAwB7T,IAC1Bh8C,EAAA,KAAK8uD,IAAY,WAAa,MAEzB,CACL,qBAAAe,EACA,iBAAA7T,EACA,cAAAD,CACR,CACI,CAAC,EACDiO,EAAe,GAAG,iBAAkB,CAACp0F,EAAM+5F,IAAS,CAClDv7D,GAAO4L,EAAA,KAAKgvD,IAAgB,yDAAyD,EACrF,MAAMpS,EAAc58C,EAAA,KAAKgvD,IAAe,eAAep5F,EAAK,MAAOA,EAAK,GAAG,EAC3E,GAAI,CAACgnF,EAAa,CAChB+S,EAAK,MAAK,EACV,MACF,CACAA,EAAK,OAAS,IAAM,CAClB/S,EAAY,OAAO,KAAK,SAAU,CAChC,MAAArnF,EACA,KAAAD,CACV,EAAW,CACD,GAAIA,EAAM,CACRq6F,EAAK,MAAK,EACV,MACF,CACAv7D,GAAO7+B,aAAiB,YAAa,2CAA2C,EAChFo6F,EAAK,QAAQ,IAAI,WAAWp6F,CAAK,EAAG,EAAG,CAACA,CAAK,CAAC,CAChD,CAAC,EAAE,MAAMogE,GAAU,CACjBg6B,EAAK,MAAMh6B,CAAM,CACnB,CAAC,CACH,EACAg6B,EAAK,SAAWh6B,GAAU,CACxBinB,EAAY,OAAOjnB,CAAM,EACzBg6B,EAAK,MAAM,MAAMC,GAAe,CAC9B,GAAI,MAAK,UAGT,MAAMA,CACR,CAAC,CACH,CACF,CAAC,EACD5F,EAAe,GAAG,SAAU,CAAC,CAC3B,QAAAM,CACN,IAAU,CACJ,KAAK,YAAY,YAAcA,EAAQ,SACvC,KAAK,UAAYA,EAAQ,SACzB,KAAK,YAAcA,EAAQ,WAC3B,OAAOA,EAAQ,WACfqE,EAAY,YAAY,QAAQ,IAAItE,GAAiBC,EAAS,IAAI,CAAC,CACrE,CAAC,EACDN,EAAe,GAAG,eAAgB/1C,GAAM,CACtC06C,EAAY,YAAY,OAAOj6B,GAAWzgB,CAAE,CAAC,CAC/C,CAAC,EACD+1C,EAAe,GAAG,kBAAmB/1C,GAAM,CACzC3T,EAAA,KAAK8uD,GAAsB,QAAQ,cAAa,GAChD,GAAI,CACF,GAAI,CAACT,EAAY,WACf,MAAMj6B,GAAWzgB,CAAE,EAErB,MAAM67C,EAAiB/H,GAAY,CAC7BA,aAAoB,MACtB/nD,EAAA,KAAKovD,IAAoB,OAAOrH,CAAQ,EAExC/nD,EAAA,KAAKovD,IAAoB,QAAQ,CAC/B,SAAArH,CACd,CAAa,CAEL,EACA4G,EAAY,WAAWmB,EAAgB77C,EAAG,IAAI,CAChD,OAASv8B,EAAK,CACZsoB,EAAA,KAAKovD,IAAoB,OAAO13E,CAAG,CACrC,CACA,OAAOsoB,EAAA,KAAKovD,IAAoB,OAClC,CAAC,EACDpF,EAAe,GAAG,aAAcp0F,GAAQ,CACtCgkC,EAAA,KAAKi1D,GAAAlR,IAAL,UAAiB,CACf,OAAQ/nF,EAAK,OACb,MAAOA,EAAK,MACpB,GACM,KAAK,uBAAuB,QAAQA,CAAI,CAC1C,CAAC,EACDo0F,EAAe,GAAG,kBAAmBp0F,GAAQ,CAC3C,GAAI,KAAK,UACP,OAEWoqC,EAAA,KAAKivD,IAAW,IAAIr5F,EAAK,SAAS,EAC1C,iBAAiBA,EAAK,aAAcA,EAAK,QAAQ,CACxD,CAAC,EACDo0F,EAAe,GAAG,YAAa,CAAC,CAACvuE,EAAIlE,EAAMw4E,CAAY,IAAM,OAI3D,GAHI,KAAK,WAGL,KAAK,WAAW,IAAIt0E,CAAE,EACxB,OAAO,KAET,OAAQlE,EAAI,CACV,IAAK,OACH,GAAI,UAAWw4E,EAAc,CAC3B,MAAMC,EAAgBD,EAAa,MACnC77D,GAAK,8BAA8B87D,CAAa,EAAE,EAClD,KAAK,WAAW,QAAQv0E,EAAIu0E,CAAa,EACzC,KACF,CACA,MAAMC,EAAW,IAAIj+B,GAAS+9B,CAAY,EACpCv/B,EAAc,KAAK,QAAQ,UAAU59D,EAAA,WAAW,gBAAX,MAAAA,EAA0B,SAAU,CAACk4D,EAAMl2D,IAAQ,WAAW,cAAc,UAAUk2D,EAAMl2D,CAAG,EAAI,KACxIk2D,EAAO,IAAIwF,GAAe2/B,EAAUz/B,EAAau/B,EAAa,qBAAsBA,EAAa,KAAK,EAC5G,KAAK,WAAW,KAAKjlC,CAAI,EAAE,MAAM,IAAMk/B,EAAe,gBAAgB,eAAgB,CACpF,GAAAvuE,CACZ,CAAW,CAAC,EAAE,QAAQ,IAAM,CACXqvC,EAAK,qBACRA,EAAK,UAAS,EAEhB,KAAK,WAAW,QAAQrvC,EAAIqvC,CAAI,CAClC,CAAC,EACD,MACF,IAAK,iBACH,KAAM,CACJ,SAAAolC,CACZ,EAAcH,EACJ37D,GAAO87D,EAAU,+BAA+B,EAChD,UAAWC,KAAanwD,EAAA,KAAKivD,IAAW,OAAM,EAC5C,SAAW,CAAA,CAAGr5F,CAAI,IAAKu6F,EAAU,KAAM,CACrC,IAAIv6F,GAAA,YAAAA,EAAM,OAAQs6F,EAChB,SAEF,GAAI,CAACt6F,EAAK,QACR,OAAO,KAET,MAAMujB,EAAO,gBAAgBvjB,CAAI,EACjC,YAAK,WAAW,QAAQ6lB,EAAItC,CAAI,EACzBvjB,EAAK,OACd,CAEF,MACF,IAAK,WACH,KAAK,WAAW,QAAQ6lB,EAAI,IAAIm4C,GAAam8B,CAAY,CAAC,EAC1D,MACF,IAAK,QACH,KAAK,WAAW,QAAQt0E,EAAIs0E,CAAY,EACxC,MACF,IAAK,UACH,MAAM5pE,EAAU,IAAI6sC,GAAY+8B,CAAY,EAC5C,KAAK,WAAW,QAAQt0E,EAAI0K,EAAQ,MAAK,CAAE,EAC3C,MACF,QACE,MAAM,IAAI,MAAM,kCAAkC5O,CAAI,EAAE,CAClE,CACM,OAAO,IACT,CAAC,EACDyyE,EAAe,GAAG,MAAO,CAAC,CAACvuE,EAAIy2B,EAAW36B,EAAMohE,CAAS,IAAM,OAC7D,GAAI,KAAK,UACP,OAEF,MAAMwX,EAAYnwD,EAAA,KAAKivD,IAAW,IAAI/8C,CAAS,EAC/C,GAAI,CAAAi+C,EAAU,KAAK,IAAI10E,CAAE,EAGzB,IAAI00E,EAAU,cAAc,OAAS,EAAG,EACtCv9F,EAAA+lF,GAAA,YAAAA,EAAW,SAAX,MAAA/lF,EAAmB,QACnB,MACF,CACA,OAAQ2kB,EAAI,CACV,IAAK,QACL,IAAK,UACH44E,EAAU,KAAK,QAAQ10E,EAAIk9D,CAAS,EACpC,MACF,QACE,MAAM,IAAI,MAAM,2BAA2BphE,CAAI,EAAE,CAC3D,EACI,CAAC,EACDyyE,EAAe,GAAG,cAAep0F,GAAQ,CACnC,KAAK,WAGTgkC,EAAA,KAAKi1D,GAAAlR,IAAL,UAAiB/nF,EACnB,CAAC,EACDo0F,EAAe,GAAG,kBAAmB,MAAMp0F,GAAQ,CACjD,GAAI,KAAK,UACP,MAAM,IAAI,MAAM,uBAAuB,EAEzC,GAAI,CAAC,KAAK,kBACR,MAAM,IAAI,MAAM,0EAA0E,EAE5F,OAAO,KAAK,kBAAkB,MAAMA,CAAI,CAC1C,CAAC,CACH,CACA,SAAU,CACR,OAAO,KAAK,eAAe,gBAAgB,UAAW,IAAI,CAC5D,CACA,cAAe,OACT,KAAK,kBAAkB,MAAQ,GACjCs+B,GAAK,gGAAqG,EAE5G,KAAM,CACJ,IAAAyd,EACA,SAAA6V,CACN,EAAQ,KAAK,kBAAkB,aAC3B,OAAO,KAAK,eAAe,gBAAgB,eAAgB,CACzD,UAAW,CAAC,CAAC,KAAK,YAClB,SAAU,KAAK,UACf,kBAAmB7V,EACnB,WAAU/+C,EAAAotC,EAAA,KAAK8uD,MAAL,YAAAl8F,EAAkB,WAAY,IAC9C,EAAO40D,CAAQ,EAAE,QAAQ,IAAM,CACzB,KAAK,kBAAkB,cAAa,CACtC,CAAC,CACH,CACA,aAAaijC,EAAW,OACtB,MAAM3vE,EAAS,CACb,UAAA2vE,CACN,EACI,IAAIjjC,EACJ,MAAM4oC,EAAkB,WAAW,YACnC,GAAI,OAAOA,GAAoB,WAAY,CACzC,MAAMC,EAAQ,MAAM,QAAQ5F,CAAS,EAAIA,EAAY,CAACA,CAAS,EAC/D,UAAWG,KAAYyF,GACjBzF,GAAA,YAAAA,EAAU,iBAAiBwF,IAC5B5oC,MAAa,CAAA,IAAI,KAAKojC,EAAS,KAAK,CAG3C,CACA,GAAI,KAAK,kBAAkB,KAAO,EAAG,CACnC,MAAM5sE,EAAa,KAAK,kBAAkB,aAC1C,GAAI,CACF,IAAA2zB,CACR,EAAU3zB,GACAprB,EAAAorB,EAAW,WAAX,MAAAprB,EAAqB,SACnB40D,EACFA,EAAS,KAAK,GAAGxpC,EAAW,QAAQ,EAEpCwpC,EAAWxpC,EAAW,UAG1B,MAAMsyE,EAAU,KAAK,YAAY,WAAU,EAC3C,GAAIA,EAAS,CACX,MAAMC,EAAW,IAAI,IACrB,SAAW,CAACp4F,EAAGP,CAAC,IAAK+5C,EAAK,CACxB,IAAI/5C,GAAA,YAAAA,EAAG,aAAc,QAAaA,EAAE,WAAa,GAAKA,EAAE,UAAY04F,EAAQ,OAAQ,CAClF,MAAME,EAAYF,EAAQ14F,EAAE,SAAS,EAAI,EACzC,GAAI44F,IAAc54F,EAAE,UAAW,CAC7B24F,EAAS,IAAIp4F,EAAG,CACd,GAAGP,EACH,UAAW44F,CAC3B,CAAe,EACD,QACF,CACF,CACAD,EAAS,IAAIp4F,EAAGP,CAAC,CACnB,CACA+5C,EAAM4+C,CACR,CACAz1E,EAAO,kBAAoB62B,CAC7B,CACA,OAAO,KAAK,eAAe,gBAAgB,eAAgB72B,EAAQ0sC,CAAQ,EAAE,QAAQ,IAAM,CACzF,KAAK,kBAAkB,cAAa,CACtC,CAAC,CACH,CACA,QAAQjV,EAAY,CAClB,GAAI,CAAC,OAAO,UAAUA,CAAU,GAAKA,GAAc,GAAKA,EAAa,KAAK,YAAY,YACpF,OAAO,QAAQ,OAAO,IAAI,MAAM,uBAAuB,CAAC,EAE1D,MAAML,EAAYK,EAAa,EACzBgC,EAAe,KAAK,YAAY,UAAUhC,CAAU,EAAI,EACxDk+C,EAAgBzwD,EAAA,KAAKkvD,IAAc,IAAIh9C,CAAS,EACtD,GAAIu+C,EACF,OAAOA,EAET,MAAMnnD,EAAU,KAAK,eAAe,gBAAgB,UAAW,CAC7D,UAAWiL,CACjB,CAAK,EAAE,KAAKq2C,GAAY,CAClB,GAAI,KAAK,UACP,MAAM,IAAI,MAAM,qBAAqB,EAEnCA,EAAS,QACX5qD,EAAA,KAAKmvD,IAAc,IAAIvE,EAAS,OAAQr2C,CAAY,EAEtD,MAAM1Z,EAAO,IAAIqyD,GAAah7C,EAAW04C,EAAU,KAAM,KAAK,YAAa,KAAK,QAAQ,MAAM,EAC9F,OAAA5qD,EAAA,KAAKivD,IAAW,IAAI/8C,EAAWrX,CAAI,EAC5BA,CACT,CAAC,EACD,OAAAmF,EAAA,KAAKkvD,IAAc,IAAIh9C,EAAW5I,CAAO,EAClCA,CACT,CACA,MAAM,aAAaihD,EAAK,CACtB,GAAI,CAACv2B,GAAWu2B,CAAG,EACjB,MAAM,IAAI,MAAM,4BAA4B,EAE9C,MAAMnxE,EAAQ,MAAM,KAAK,eAAe,gBAAgB,eAAgB,CACtE,IAAKmxE,EAAI,IACT,IAAKA,EAAI,GACf,CAAK,EACKh4C,EAAa,KAAK,YAAY,cAAcn5B,EAAQ,CAAC,EAC3D,GAAIm5B,IAAe,EACjB,MAAM,IAAI,MAAM,sCAAsC,EAExD,OAAOA,EAAa,CACtB,CACA,eAAeL,EAAW9U,EAAQ,CAChC,OAAO,KAAK,eAAe,gBAAgB,iBAAkB,CAC3D,UAAW,KAAK,YAAY,UAAU8U,EAAY,CAAC,EAAI,EACvD,OAAA9U,CACN,CAAK,CACH,CACA,iBAAkB,CAChB,OAAOxD,EAAA,KAAKi1D,GAAA6B,IAAL,UAAwB,kBACjC,CACA,eAAgB,CACd,OAAO92D,EAAA,KAAKi1D,GAAA6B,IAAL,UAAwB,gBACjC,CACA,iBAAiBj1E,EAAI,CACnB,OAAO,KAAK,eAAe,gBAAgB,mBAAoBA,CAAE,CACnE,CACA,cAAe,CACb,OAAOme,EAAA,KAAKi1D,GAAA6B,IAAL,UAAwB,eACjC,CACA,wBAAyB,CACvB,OAAO,KAAK,eAAe,gBAAgB,yBAA0B,IAAI,CAC3E,CACA,iBAAkB,CAChB,OAAO,KAAK,eAAe,gBAAgB,kBAAmB,IAAI,CACpE,CACA,eAAej1E,EAAI,CACjB,OAAI,OAAOA,GAAO,SACT,QAAQ,OAAO,IAAI,MAAM,8BAA8B,CAAC,EAE1D,KAAK,eAAe,gBAAgB,iBAAkB,CAC3D,GAAAA,CACN,CAAK,CACH,CACA,eAAgB,CACd,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,IAAI,CAClE,CACA,eAAgB,CACd,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,IAAI,CAClE,CACA,aAAc,CACZ,OAAO,KAAK,eAAe,gBAAgB,cAAe,IAAI,CAChE,CACA,sBAAuB,CACrB,OAAO,KAAK,eAAe,gBAAgB,uBAAwB,IAAI,CACzE,CACA,eAAgB,CACd,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,IAAI,CAClE,CACA,gBAAiB,CACf,OAAO,KAAK,eAAe,gBAAgB,iBAAkB,IAAI,CACnE,CACA,qBAAqBA,EAAI,CACvB,OAAO,KAAK,eAAe,gBAAgB,uBAAwBA,CAAE,CACvE,CACA,qBAAqBu5B,EAAOw1C,EAAmB,CAC7C,OAAO,KAAK,eAAe,gBAAgB,uBAAwB,CACjE,MAAAx1C,EACA,kBAAAw1C,CACN,CAAK,CACH,CACA,iBAAkB,CAChB,OAAO5wD,EAAA,KAAKi1D,GAAA6B,IAAL,UAAwB,kBACjC,CACA,iBAAiBx+C,EAAW,CAC1B,OAAO,KAAK,eAAe,gBAAgB,mBAAoB,CAC7D,UAAW,KAAK,YAAY,UAAUA,EAAY,CAAC,EAAI,CAC7D,CAAK,CACH,CACA,cAAcA,EAAW,CACvB,OAAO,KAAK,eAAe,gBAAgB,gBAAiB,CAC1D,UAAW,KAAK,YAAY,UAAUA,EAAY,CAAC,EAAI,CAC7D,CAAK,CACH,CACA,YAAa,CACX,OAAO,KAAK,eAAe,gBAAgB,aAAc,IAAI,CAC/D,CACA,yBAAyBqtC,EAAiB,CACxC,OAAO3lD,EAAA,KAAKi1D,GAAA6B,IAAL,UAAwB,4BAA4B,KAAK96F,GAAQ,IAAIorF,GAAsBprF,EAAM2pF,CAAe,CAAC,CAC1H,CACA,gBAAiB,CACf,OAAO,KAAK,eAAe,gBAAgB,iBAAkB,IAAI,CACnE,CACA,aAAc,CACZ,MAAMjmE,EAAO,cACb,OAAO0mB,EAAA,KAAK+uD,IAAgB,oBAAoBz1E,EAAM,IAAM,KAAK,eAAe,gBAAgBA,EAAM,IAAI,EAAE,KAAKsJ,GAAO,SAAK,OAC3H,KAAMA,EAAQ,CAAC,EACf,SAAUA,EAAQ,CAAC,EAAI,IAAIq8D,GAASr8D,EAAQ,CAAC,CAAC,EAAI,KAClD,6BAA4BhwB,EAAAotC,EAAA,KAAK8uD,MAAL,YAAAl8F,EAAkB,WAAY,KAC1D,gBAAeD,EAAAqtC,EAAA,KAAK8uD,MAAL,YAAAn8F,EAAkB,gBAAiB,KAClD,cAAeiwB,EAAQ,CAAC,CAC9B,EAAM,CAAC,CACL,CACA,aAAc,CACZ,OAAO,KAAK,eAAe,gBAAgB,cAAe,IAAI,CAChE,CACA,WAAWhtB,EAAM,CACf,OAAO,KAAK,eAAe,gBAAgB,aAAcA,CAAI,CAC/D,CACA,MAAM,aAAa80F,EAAkB,GAAO,CAC1C,GAAI,MAAK,UAGT,OAAM,KAAK,eAAe,gBAAgB,UAAW,IAAI,EACzD,UAAW7vD,KAAQmF,EAAA,KAAKivD,IAAW,OAAM,EAEvC,GAAI,CADsBp0D,EAAK,QAAO,EAEpC,MAAM,IAAI,MAAM,sBAAsBA,EAAK,UAAU,0BAA0B,EAGnF,KAAK,WAAW,MAAK,EAChB6vD,GACH,KAAK,WAAW,MAAK,EAEvB1qD,EAAA,KAAK+uD,IAAgB,MAAK,EAC1B,KAAK,cAAc,QAAQ,EAAI,EAC/BrH,GAAU,QAAO,EACnB,CACA,iBAAiB6C,EAAK,CACpB,GAAI,CAACv2B,GAAWu2B,CAAG,EACjB,OAAO,KAET,MAAMoG,EAASpG,EAAI,MAAQ,EAAI,GAAGA,EAAI,GAAG,IAAM,GAAGA,EAAI,GAAG,IAAIA,EAAI,GAAG,GAC9Dr4C,EAAYlS,EAAA,KAAKmvD,IAAc,IAAIwB,CAAM,EAC/C,GAAIz+C,GAAa,EAAG,CAClB,MAAMK,EAAa,KAAK,YAAY,cAAcL,EAAY,CAAC,EAC/D,GAAIK,IAAe,EACjB,OAAOA,CAEX,CACA,OAAO,IACT,CACF,CAvlBEu8C,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YARFP,GAAA,YAoCE6B,GAAkB,SAACp3E,EAAM1jB,EAAO,KAAM,CACpC,OAAOoqC,EAAA,KAAK+uD,IAAgB,oBAAoBz1E,EAAM,IAAM,KAAK,eAAe,gBAAgBA,EAAM1jB,CAAI,CAAC,CAC7G,EACA+nF,GAAW,SAAC,CACV,OAAAZ,EACA,MAAA6T,CACJ,EAAK,UACDj+F,GAAAC,EAAA,KAAK,aAAY,aAAjB,MAAAD,EAAA,KAAAC,EAA8B,CAC5B,OAAAmqF,EACA,MAAA6T,EACA,QAASA,EAAQt1D,GAAU,KAAK,MAAMyhD,EAAS6T,EAAQ,GAAG,EAAG,EAAG,GAAG,EAAI,GAC7E,EACE,EA0iBF,MAAMC,EAAW,CAIf,YAAYhF,EAAoB,CAHhC1xE,GAAA,2BAAsB,MACtBA,GAAA,kBAAa,MACbA,GAAA,eAAU,MAER,KAAK,oBAAsB0xE,CAC7B,CACA,IAAI,SAAU,CACZ,OAAO,KAAK,oBAAoB,WAAW,OAC7C,CACA,OAAO7sD,EAAa,EAAG,CACrB,KAAK,oBAAoB,OAAO,KAAMA,CAAU,CAClD,CACA,IAAI,gBAAiB,CACnB,KAAM,CACJ,eAAA8xD,CACN,EAAQ,KAAK,oBAAoB,aAC7B,GAAI,CAACA,EACH,MAAO,GAET,KAAM,CACJ,oBAAAtoB,CACN,EAAQ,KAAK,oBACT,OAAOsoB,EAAe,MAAQA,EAAe,SAAUtoB,GAAA,YAAAA,EAAqB,MAAO,CACrF,CACA,IAAI,kBAAmB,CACrB,OAAO,KAAK,oBAAoB,kBAAoB,IACtD,CACF,CACA,MAAMuoB,GAAN,MAAMA,EAAmB,CAGvB,YAAY,CACV,SAAA1lD,EACA,OAAAvwB,EACA,KAAA81C,EACA,WAAAwX,EACA,oBAAAI,EACA,aAAAgB,EACA,UAAAt3B,EACA,cAAA6vB,EACA,cAAAsG,EACA,yBAAA2oB,EAA2B,GAC3B,OAAAjI,EAAS,GACT,WAAA57C,EAAa,KACb,UAAAwpB,EAAY,GACZ,iBAAAiT,EAAmB,IACvB,EAAK,CAjBHzvC,EAAA,KAAA82D,GAAO,MAkBL,KAAK,SAAW5lD,EAChB,KAAK,OAASvwB,EACd,KAAK,KAAO81C,EACZ,KAAK,WAAawX,EAClB,KAAK,oBAAsBI,EAC3B,KAAK,gBAAkB,KACvB,KAAK,aAAegB,EACpB,KAAK,WAAat3B,EAClB,KAAK,cAAgB6vB,EACrB,KAAK,cAAgBsG,EACrB,KAAK,QAAU0gB,EACf,KAAK,WAAa57C,EAClB,KAAK,QAAU,GACf,KAAK,sBAAwB,KAC7B,KAAK,cAAgB,GACrB,KAAK,0BAA4B6jD,IAA6B,IAAQ,OAAO,OAAW,IACxF,KAAK,UAAY,GACjB,KAAK,WAAa,QAAQ,cAAa,EACvC,KAAK,KAAO,IAAIH,GAAW,IAAI,EAC/B,KAAK,aAAe,KAAK,OAAO,KAAK,IAAI,EACzC,KAAK,eAAiB,KAAK,UAAU,KAAK,IAAI,EAC9C,KAAK,mBAAqB,KAAK,cAAc,KAAK,IAAI,EACtD,KAAK,WAAa,KAAK,MAAM,KAAK,IAAI,EACtC,KAAK,QAAU/1E,EAAO,OACtB,KAAK,eAAiBA,EAAO,OAAS,KAAOA,EAAO,cACpD,KAAK,WAAa67C,EAClB,KAAK,mBAAqB77C,EAAO,kBACjC,KAAK,eAAiBA,EAAO,cAC7B,KAAK,kBAAoB8uD,CAC3B,CACA,IAAI,WAAY,CACd,OAAO,KAAK,WAAW,QAAQ,MAAM,UAAY,CAAC,CAAC,CACrD,CACA,mBAAmB,CACjB,aAAAP,EAAe,GACf,sBAAAf,CACJ,EAAK,SACD,GAAI,KAAK,UACP,OAEF,GAAI,KAAK,QAAS,CAChB,GAAItoC,EAAA+wD,GAAmBG,IAAa,IAAI,KAAK,OAAO,EAClD,MAAM,IAAI,MAAM,iJAA2J,EAE7KlxD,EAAA+wD,GAAmBG,IAAa,IAAI,KAAK,OAAO,CAClD,CACI,KAAK,WAAWt+F,EAAA,WAAW,iBAAX,MAAAA,EAA2B,WAC7C,KAAK,QAAU,WAAW,eAAe,OAAO,KAAK,UAAU,EAC/D,KAAK,QAAQ,KAAK,KAAK,YAAY,EACnC,KAAK,QAAQ,eAAiB,KAAK,QAAQ,kBAAiB,GAE9D,KAAM,CACJ,SAAAivC,EACA,UAAA5K,EACA,WAAAw8B,EACA,kBAAA/G,EACA,cAAA+b,CACN,EAAQ,KAAK,OACHuiB,EAAgB,KAAK,gBAAkB,KAAK,QAAQ,WAAW,KAAM,CACzE,MAAO,GACP,mBAAoB,CAAC,KAAK,UAChC,CAAK,EACD,KAAK,IAAM,IAAInS,GAAemS,EAAe,KAAK,WAAY,KAAK,KAAM,KAAK,cAAe,KAAK,cAAe,CAC/G,sBAAA1iB,CACN,EAAO,KAAK,oBAAqB,KAAK,WAAY5b,EAAmB+b,CAAa,EAC9E,KAAK,IAAI,aAAa,CACpB,UAAAxxC,EACA,SAAA4K,EACA,aAAAwnC,EACA,WAAA5V,CACN,CAAK,EACD,KAAK,gBAAkB,EACvB,KAAK,cAAgB,IACrB9gE,EAAA,KAAK,wBAAL,MAAAA,EAAA,UACF,CACA,OAAO+D,EAAQ,KAAMsoC,EAAa,EAAG,WACnC,KAAK,QAAU,GACf,KAAK,UAAY,IACjBpsC,EAAA,KAAK,MAAL,MAAAA,EAAU,aACNotC,EAAA,KAAKixD,MACP,OAAO,qBAAqBjxD,EAAA,KAAKixD,GAAI,EACrC3wD,EAAA,KAAK2wD,GAAO,OAEdjxD,EAAA+wD,GAAmBG,IAAa,OAAO,KAAK,OAAO,EACnDx6F,MAAU,IAAIqoC,GAA4B,6BAA6B,KAAK,WAAa,CAAC,GAAIC,CAAU,GACxG,KAAK,SAAStoC,CAAK,GACnBkf,GAAAjjB,EAAA,KAAK,MAAK,UAAV,MAAAijB,EAAA,KAAAjjB,EAAoB+D,EACtB,CACA,qBAAsB,SACpB,GAAI,CAAC,KAAK,cAAe,CACvB,KAAK,wBAAL,KAAK,sBAA0B,KAAK,gBACpC,MACF,EACA9D,EAAA,KAAK,IAAI,oBAAT,MAAAA,EAA4B,oBAAoB,KAAK,aAAa,QAAQ,SAC1ED,EAAA,KAAK,UAAL,MAAAA,EAAc,mBAAmB,KAAK,cAClC,MAAK,SAGT,KAAK,UAAS,CAChB,CACA,WAAY,CACV,KAAK,QAAU,GACX,MAAK,YAGL,KAAK,KAAK,WACZ,KAAK,KAAK,WAAW,KAAK,kBAAkB,EAE5C,KAAK,cAAa,EAEtB,CACA,eAAgB,CACV,KAAK,0BACP2tC,EAAA,KAAK2wD,GAAO,OAAO,sBAAsB,IAAM,CAC7C3wD,EAAA,KAAK2wD,GAAO,MACZ,KAAK,WAAU,EAAG,MAAM,KAAK,YAAY,CAC3C,CAAC,GAED,QAAQ,QAAO,EAAG,KAAK,KAAK,UAAU,EAAE,MAAM,KAAK,YAAY,CAEnE,CACA,MAAM,OAAQ,CACR,KAAK,YAGT,KAAK,gBAAkB,KAAK,IAAI,oBAAoB,KAAK,aAAc,KAAK,gBAAiB,KAAK,eAAgB,KAAK,QAAS,KAAK,iBAAiB,EAClJ,KAAK,kBAAoB,KAAK,aAAa,UAAU,SACvD,KAAK,QAAU,GACX,KAAK,aAAa,YACpB,KAAK,IAAI,WAAU,EACnBjxD,EAAA+wD,GAAmBG,IAAa,OAAO,KAAK,OAAO,EACnD,KAAK,SAAQ,IAGnB,CACF,EAzJED,GAAA,YACOC,GAAA,YAAP/2D,EAFI42D,GAEGG,GAAe,IAAI,SAF5B,IAAMlF,GAAN+E,GA2JA,MAAMr1E,GAAU,UACV8F,GAAQ,YAMR2vE,GAAN,MAAMA,EAAY,CAehB,YAAY,CACV,OAAAhsD,EAAS,KACT,UAAAiC,EAAY,IAChB,EAAK,CAlBLjN,EAAA,KAAAi3D,IACEj3D,EAAA,KAAAk3D,GAAU,MACVl3D,EAAA,KAAAm3D,GAAgB,MAChBn3D,EAAA,KAAAo3D,IACAp3D,EAAA,KAAAq3D,GAAY,MACZr3D,EAAA,KAAAs3D,GAA2B,IAC3Bt3D,EAAA,KAAAu3D,GAAqB,IACrBv3D,EAAA,KAAAoL,GAAU,MACVpL,EAAA,KAAAw3D,IACAx3D,EAAA,KAAAy3D,GAAkB,MAClBz3D,EAAA,KAAAgM,GAAa,cASPhB,GACF7E,EAAA,KAAKoxD,GAAqB,IAC1BpxD,EAAA,KAAKiF,GAAUJ,IAEf7E,EAAA,KAAKoxD,GAAqB,IAE5BpxD,EAAA,KAAK6F,IAAahB,GAAA,YAAAA,EAAQ,aAAciC,GACxC9G,EAAA,KAAKqxD,GAAY3xD,EAAA,KAAKmG,IAAW,WACjC7F,EAAA,KAAKixD,KAAgB3+F,EAAAuyC,GAAA,YAAAA,EAAQ,QAAR,YAAAvyC,EAAe,kBAAiBD,EAAAqtC,EAAA,KAAKmG,MAAL,YAAAxzC,EAAiB,gBAAgB,SAAS,OAAO,QAAS,WAC/GqtC,EAAAmxD,GAAYU,KAAZvxD,EAAA6wD,GAAYU,GAAe,OAAO,OAAO,CACvC,KAAM,gCACN,MAAO,iCACP,KAAM,gCACN,IAAK,+BACL,OAAQ,iCACd,CAAK,EACH,CAvBA,WAAW,kBAAmB,CAC5B,OAAO58D,GAAO,KAAM,mBAAoB,IAAIuX,GAAgB,CAAC,CAAC,CAAC,QAAQ,EAAG2kD,GAAY,UAAU,yBAAyB,EAAG,CAAC,CAAC,OAAO,EAAGA,GAAY,UAAU,wBAAwB,EAAG,CAAC,CAAC,YAAa,YAAY,EAAGA,GAAY,UAAU,WAAW,EAAG,CAAC,CAAC,UAAW,WAAW,EAAGA,GAAY,UAAU,eAAe,EAAG,CAAC,CAAC,MAAM,EAAGA,GAAY,UAAU,gBAAgB,EAAG,CAAC,CAAC,KAAK,EAAGA,GAAY,UAAU,UAAU,CAAC,CAAC,CAAC,CACja,CAsBA,cAAe,CACb,MAAM/qD,EAAS9F,EAAA,KAAK+wD,GAAU,SAAS,cAAc,QAAQ,GAC7DjrD,EAAO,UAAY,cACnBA,EAAO,SAAW,IAClBA,EAAO,aAAa,eAAgB,iCAAiC,EACrEA,EAAO,aAAe,OAClBpG,EAAA,KAAKuF,MACPa,EAAO,aAAe,GAAGpG,EAAA,KAAKuF,IAAQ,EAAE,yBAE1C,MAAMvwC,EAASgrC,EAAA,KAAKmG,IAAW,QAC/BC,EAAO,iBAAiB,QAASxM,EAAA,KAAKw3D,GAAAU,IAAc,KAAK,IAAI,EAAG,CAC9D,OAAA98F,CACN,CAAK,EACDoxC,EAAO,iBAAiB,UAAWxM,EAAA,KAAKw3D,GAAAW,IAAS,KAAK,IAAI,EAAG,CAC3D,OAAA/8F,CACN,CAAK,EACD,MAAMg9F,EAAS1xD,EAAA,KAAKgxD,GAAgB,SAAS,cAAc,MAAM,GACjE,OAAAU,EAAO,UAAY,SACnBA,EAAO,WAAa,OACpBA,EAAO,MAAM,gBAAkBhyD,EAAA,KAAKuxD,IACpCnrD,EAAO,OAAO4rD,CAAM,EACb5rD,CACT,CACA,oBAAqB,CACnB,MAAM6rD,EAAW3xD,EAAA,KAAKkxD,GAAY53D,EAAA,KAAKw3D,GAAAc,IAAL,YAClC,OAAAD,EAAS,gBAAkB,aAC3BA,EAAS,eAAiB,4BACnBA,CACT,CA8CA,yBAAyBnzE,EAAO,CAC9B,GAAIA,EAAM,SAAWkhB,EAAA,KAAKqxD,IAAS,CACjCz3D,EAAA,KAAKw3D,GAAAU,IAAL,UAAmBhzE,GACnB,MACF,CACA,MAAMmiB,EAAQniB,EAAM,OAAO,aAAa,YAAY,EAC/CmiB,GAGLrH,EAAA,KAAKw3D,GAAAe,IAAL,UAAkBlxD,EAAOniB,EAC3B,CACA,YAAYA,EAAO,SACjB,GAAI,CAACkhB,EAAA,KAAKoxD,GAAAgB,IAAoB,CAC5Bx4D,EAAA,KAAKw3D,GAAAU,IAAL,UAAmBhzE,GACnB,MACF,CACA,GAAIA,EAAM,SAAWkhB,EAAA,KAAKqxD,IAAS,EACjCz+F,EAAAotC,EAAA,KAAKwxD,IAAU,oBAAf,MAAA5+F,EAAkC,QAClC,MACF,EACAD,EAAAmsB,EAAM,OAAO,cAAb,MAAAnsB,EAA0B,OAC5B,CACA,gBAAgBmsB,EAAO,SACrB,GAAIA,EAAM,WAAWlsB,EAAAotC,EAAA,KAAKwxD,MAAL,YAAA5+F,EAAgB,oBAAqBksB,EAAM,SAAWkhB,EAAA,KAAKqxD,IAAS,CACnFrxD,EAAA,KAAKoxD,GAAAgB,KACP,KAAK,0BAAyB,EAEhC,MACF,CACKpyD,EAAA,KAAKoxD,GAAAgB,KACRx4D,EAAA,KAAKw3D,GAAAU,IAAL,UAAmBhzE,IAErBnsB,EAAAmsB,EAAM,OAAO,kBAAb,MAAAnsB,EAA8B,OAChC,CACA,iBAAiBmsB,EAAO,OACtB,GAAI,CAACkhB,EAAA,KAAKoxD,GAAAgB,IAAoB,CAC5Bx4D,EAAA,KAAKw3D,GAAAU,IAAL,UAAmBhzE,GACnB,MACF,EACAlsB,EAAAotC,EAAA,KAAKwxD,IAAU,oBAAf,MAAA5+F,EAAkC,OACpC,CACA,WAAWksB,EAAO,OAChB,GAAI,CAACkhB,EAAA,KAAKoxD,GAAAgB,IAAoB,CAC5Bx4D,EAAA,KAAKw3D,GAAAU,IAAL,UAAmBhzE,GACnB,MACF,EACAlsB,EAAAotC,EAAA,KAAKwxD,IAAU,mBAAf,MAAA5+F,EAAiC,OACnC,CA8BA,cAAe,UACbA,EAAAotC,EAAA,KAAKwxD,MAAL,MAAA5+F,EAAgB,UAAU,IAAI,UAC9BotC,EAAA,KAAKqxD,IAAQ,aAAe,SAC5B1+F,EAAAqtC,EAAA,KAAK4xD,MAAL,MAAAj/F,EAAsB,QACtB2tC,EAAA,KAAKsxD,GAAkB,KACzB,CAIA,2BAA4B,OAC1B,GAAI,CAAA5xD,EAAA,KAAK0xD,IAGT,IAAI,CAAC1xD,EAAA,KAAKoxD,GAAAgB,IAAoB,EAC5Bx/F,EAAAotC,EAAA,KAAKuF,MAAL,MAAA3yC,EAAc,WACd,MACF,CACA,KAAK,aAAY,EACjBotC,EAAA,KAAKqxD,IAAQ,MAAM,CACjB,cAAe,GACf,aAAcrxD,EAAA,KAAKyxD,GACzB,CAAK,EACH,CACA,YAAYxwD,EAAO,CAIjB,GAHIjB,EAAA,KAAKsxD,MACPtxD,EAAA,KAAKsxD,IAAc,MAAM,gBAAkBrwD,GAEzC,CAACjB,EAAA,KAAKwxD,IACR,OAEF,MAAMt6F,EAAI8oC,EAAA,KAAKmG,IAAW,gBAAgB,OAAM,EAChD,UAAWrJ,KAASkD,EAAA,KAAKwxD,IAAU,SACjC10D,EAAM,aAAe5lC,EAAE,KAAI,EAAG,QAAU+pC,EAAM,YAAW,CAE7D,CACA,SAAU,UACRruC,EAAAotC,EAAA,KAAKqxD,MAAL,MAAAz+F,EAAc,SACd0tC,EAAA,KAAK+wD,GAAU,MACf/wD,EAAA,KAAKgxD,GAAgB,OACrB3+F,EAAAqtC,EAAA,KAAKwxD,MAAL,MAAA7+F,EAAgB,SAChB2tC,EAAA,KAAKkxD,GAAY,KACnB,CACF,EApOEH,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAnsD,GAAA,YACAosD,GAAA,YACAC,GAAA,YACAzrD,GAAA,YACO0rD,GAAA,YAXTT,GAAA,YAiEEc,GAAgB,UAAG,CACjB,MAAMtwD,EAAM,SAAS,cAAc,KAAK,EAClC5sC,EAASgrC,EAAA,KAAKmG,IAAW,QAC/BvE,EAAI,iBAAiB,cAAe1B,GAAe,CACjD,OAAAlrC,CACN,CAAK,EACD4sC,EAAI,UAAY,WAChBA,EAAI,KAAO,UACXA,EAAI,oBAAsB,QAC1BA,EAAI,gBAAkB,WACtBA,EAAI,aAAa,eAAgB,mCAAmC,EAChE5B,EAAA,KAAKuF,MACP3D,EAAI,GAAK,GAAG5B,EAAA,KAAKuF,IAAQ,EAAE,yBAE7B,SAAW,CAACjsB,EAAM2nB,CAAK,IAAKjB,EAAA,KAAKmG,IAAW,gBAAiB,CAC3D,MAAMC,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,SAAW,IAClBA,EAAO,KAAO,SACdA,EAAO,aAAa,aAAcnF,CAAK,EACvCmF,EAAO,MAAQ9sB,EACf8sB,EAAO,aAAa,eAAgBpG,EAAAmxD,GAAYU,IAAWv4E,CAAI,CAAC,EAChE,MAAM04E,EAAS,SAAS,cAAc,MAAM,EAC5C5rD,EAAO,OAAO4rD,CAAM,EACpBA,EAAO,UAAY,SACnBA,EAAO,MAAM,gBAAkB/wD,EAC/BmF,EAAO,aAAenF,IAAUjB,EAAA,KAAKuxD,IACrCnrD,EAAO,iBAAiB,QAASxM,EAAA,KAAKw3D,GAAAe,IAAa,KAAK,KAAMlxD,CAAK,EAAG,CACpE,OAAAjsC,CACR,CAAO,EACD4sC,EAAI,OAAOwE,CAAM,CACnB,CACA,OAAAxE,EAAI,iBAAiB,UAAWhI,EAAA,KAAKw3D,GAAAW,IAAS,KAAK,IAAI,EAAG,CACxD,OAAA/8F,CACN,CAAK,EACM4sC,CACT,EACAuwD,GAAY,SAAClxD,EAAOniB,EAAO,CACzBA,EAAM,gBAAe,EACrBkhB,EAAA,KAAK2xD,IAAU,SAAS,+BAAgC,CACtD,OAAQ,KACR,KAAMx+D,GAA2B,gBACjC,MAAO8N,CACb,CAAK,EACD,KAAK,YAAYA,CAAK,CACxB,EAiDA8wD,GAAQ,SAACjzE,EAAO,CACdqyE,GAAY,iBAAiB,KAAK,KAAMryE,CAAK,CAC/C,EACAgzE,GAAa,SAAChzE,EAAO,CACnB,GAAIkhB,EAAA,KAAKoxD,GAAAgB,IAAoB,CAC3B,KAAK,aAAY,EACjB,MACF,CASA,GARA9xD,EAAA,KAAKmxD,GAA2B3yE,EAAM,SAAW,GAC5CkhB,EAAA,KAAK4xD,MACRtxD,EAAA,KAAKsxD,GAAkB,IAAI,iBAC3B,OAAO,iBAAiB,cAAeh4D,EAAA,KAAKw3D,GAAAprD,IAAa,KAAK,IAAI,EAAG,CACnE,OAAQhG,EAAA,KAAKmG,IAAW,eAAenG,EAAA,KAAK4xD,GAAe,CACnE,CAAO,GAEH5xD,EAAA,KAAKqxD,IAAQ,aAAe,OACxBrxD,EAAA,KAAKwxD,IAAW,CAClBxxD,EAAA,KAAKwxD,IAAU,UAAU,OAAO,QAAQ,EACxC,MACF,CACA,MAAM1zD,EAAOwC,EAAA,KAAKkxD,GAAY53D,EAAA,KAAKw3D,GAAAc,IAAL,YAC9BlyD,EAAA,KAAKqxD,IAAQ,OAAOvzD,CAAI,CAC1B,EACAkI,GAAY,SAAClnB,EAAO,QACdlsB,EAAAotC,EAAA,KAAKwxD,MAAL,MAAA5+F,EAAgB,SAASksB,EAAM,SAGnC,KAAK,aAAY,CACnB,EAOIszE,GAAkB,UAAG,CACvB,OAAOpyD,EAAA,KAAKwxD,KAAa,CAACxxD,EAAA,KAAKwxD,IAAU,UAAU,SAAS,QAAQ,CACtE,EAxLAr3D,EAXIg3D,GAWGU,GAAa,MAXtB,IAAMQ,GAANlB,GAsOA,MAAMmB,GAAN,MAAMA,EAAiB,CAMrB,YAAYntD,EAAQ,CALpBhL,EAAA,KAAAo4D,GAAS,MACTp4D,EAAA,KAAAq4D,GAAY,IACZr4D,EAAA,KAAAoL,GAAU,MACVpL,EAAA,KAAAgM,GAAa,MAGX7F,EAAA,KAAKiF,GAAUJ,GACf7E,EAAA,KAAK6F,GAAahB,EAAO,YACzBnF,EAAAsyD,GAAiBT,KAAjBvxD,EAAAgyD,GAAiBT,GAAe,OAAO,OAAO,CAC5C,SAAU,4CACV,IAAK,qCACX,CAAK,EACH,CACA,cAAe,CACb,GAAI7xD,EAAA,KAAKuyD,IACP,OAAOvyD,EAAA,KAAKuyD,IAEd,KAAM,CACJ,WAAArsD,EACA,UAAAusD,EACA,oBAAAC,EACA,YAAAC,EACA,MAAA1xD,EACA,QAAAkC,CACN,EAAQnD,EAAA,KAAKuF,IACHqtD,EAAWtyD,EAAA,KAAKkyD,GAAYl8D,GAAY,4BAA8Bq8D,IAAgB,QACtFz8F,EAAQoqC,EAAA,KAAKiyD,GAAS,SAAS,cAAc,OAAO,GAE1D,GADAr8F,EAAM,KAAO,QACT08F,EAAU,CACZ18F,EAAM,aAAa,QAAS,EAAE,EAC9B,MAAM28F,EAAWn8D,GAAK,QAAQ,KAAK,OAAOyM,GAAW,GAAK,GAAG,CAAC,EAC9DjtC,EAAM,OAAS+qC,GAAS,WAAa4xD,CACvC,MACE38F,EAAM,MAAQ+qC,GAAS,UAEzB,OAAA/qC,EAAM,UAAY,mBAClBA,EAAM,SAAW,EACjBA,EAAM,aAAa,eAAgB8pC,EAAAsyD,GAAiBT,IAAW3rD,CAAU,CAAC,EAC1EhwC,EAAM,iBAAiB,QAAS,IAAM,CACpC,GAAI08F,EAAU,CACZ,MAAMxxD,EAAOJ,GAAQ9qC,EAAM,KAAK,EAChC,GAAI,CAACkrC,EACH,OAEF,KAAM,CAAC,EAAGvpC,EAAGE,EAAG63E,CAAE,EAAIxuC,EAChB9c,EAAMoS,GAAK,aAAa,EAAG7+B,EAAGE,CAAC,EACjC26F,IAAwB,OAC1B1yD,EAAA,KAAKmG,IAAW,aAAausD,EAAqB,CAChD,MAAOpuE,EACP,QAASsrD,CACrB,CAAW,GAED5vC,EAAA,KAAKmG,IAAW,aAAassD,EAAWnuE,CAAG,EAC3C0b,EAAA,KAAKmG,IAAW,aAAawsD,EAAa/iB,CAAE,EAEhD,MACE5vC,EAAA,KAAKmG,IAAW,aAAassD,EAAWv8F,EAAM,KAAK,CAEvD,EAAG,CACD,OAAQ8pC,EAAA,KAAKmG,IAAW,OAC9B,CAAK,EACMjwC,CACT,CACA,OAAOX,EAAO,CACZ,GAAKyqC,EAAA,KAAKuyD,IAGV,GAAIvyD,EAAA,KAAKwyD,IAAW,CAClB,MAAMK,EAAWn8D,GAAK,QAAQ,KAAK,MAAMsJ,EAAA,KAAKuF,IAAQ,QAAU,GAAG,CAAC,EACpEvF,EAAA,KAAKuyD,IAAO,MAAQh9F,EAAQs9F,CAC9B,MACE7yD,EAAA,KAAKuyD,IAAO,MAAQh9F,CAExB,CACA,cAAcA,EAAO,CACnB,GAAI,CAACyqC,EAAA,KAAKuyD,KAAU,CAACvyD,EAAA,KAAKwyD,IACxB,OAEF,MAAMK,EAAWn8D,GAAK,QAAQ,KAAK,MAAMnhC,EAAQ,GAAG,CAAC,EACrDyqC,EAAA,KAAKuyD,IAAO,MAAQvyD,EAAA,KAAKuF,IAAQ,MAAQstD,CAC3C,CACA,SAAU,QACRjgG,EAAAotC,EAAA,KAAKuyD,MAAL,MAAA3/F,EAAa,SACb0tC,EAAA,KAAKiyD,GAAS,KAChB,CACA,cAAe,CAAC,CAClB,EAtFEA,GAAA,YACAC,GAAA,YACAjtD,GAAA,YACAY,GAAA,YACO0rD,GAAA,YAAP13D,EALIm4D,GAKGT,GAAa,MALtB,IAAMiB,GAANR,GA2FA,SAASS,GAAc97F,EAAG,CACxB,OAAO,KAAK,MAAMqkC,GAAUrkC,EAAG,EAAG,CAAC,EAAI,GAAG,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAC1E,CACA,SAAS+7F,GAAcn6F,EAAG,CACxB,OAAOyiC,GAAUziC,EAAG,EAAG,CAAC,EAAI,GAC9B,CACA,MAAMo6F,EAAgB,CACpB,OAAO,OAAO,CAAC37F,EAAGQ,EAAGxD,EAAG6D,CAAC,EAAG,CAC1B,MAAO,CAAC,IAAK,EAAI,KAAK,IAAI,EAAG,GAAMb,EAAI,IAAOhD,EAAI,IAAOwD,EAAIK,CAAC,CAAC,CACjE,CACA,OAAO,OAAO,CAACN,CAAC,EAAG,CACjB,MAAO,CAAC,OAAQ,EAAG,EAAG,EAAG,EAAIA,CAAC,CAChC,CACA,OAAO,MAAM,CAACA,CAAC,EAAG,CAChB,MAAO,CAAC,MAAOA,EAAGA,EAAGA,CAAC,CACxB,CACA,OAAO,MAAM,CAACA,CAAC,EAAG,CAChB,OAAAA,EAAIm7F,GAAcn7F,CAAC,EACZ,CAACA,EAAGA,EAAGA,CAAC,CACjB,CACA,OAAO,OAAO,CAACA,CAAC,EAAG,CACjB,MAAMgC,EAAIk5F,GAAcl7F,CAAC,EACzB,MAAO,IAAIgC,CAAC,GAAGA,CAAC,GAAGA,CAAC,EACtB,CACA,OAAO,MAAM,CAAC7G,EAAG6E,EAAGE,CAAC,EAAG,CACtB,MAAO,CAAC,IAAK,GAAM/E,EAAI,IAAO6E,EAAI,IAAOE,CAAC,CAC5C,CACA,OAAO,QAAQkpC,EAAO,CACpB,OAAOA,EAAM,IAAI+xD,EAAa,CAChC,CACA,OAAO,SAAS/xD,EAAO,CACrB,MAAO,IAAIA,EAAM,IAAI8xD,EAAa,EAAE,KAAK,EAAE,CAAC,EAC9C,CACA,OAAO,QAAS,CACd,MAAO,WACT,CACA,OAAO,OAAQ,CACb,MAAO,CAAC,IAAI,CACd,CACA,OAAO,SAAS,CAACz7F,EAAGQ,EAAGxD,EAAG6D,CAAC,EAAG,CAC5B,MAAO,CAAC,MAAO,EAAI,KAAK,IAAI,EAAGb,EAAIa,CAAC,EAAG,EAAI,KAAK,IAAI,EAAG7D,EAAI6D,CAAC,EAAG,EAAI,KAAK,IAAI,EAAGL,EAAIK,CAAC,CAAC,CACvF,CACA,OAAO,SAAS,CAACb,EAAGQ,EAAGxD,EAAG6D,CAAC,EAAG,CAC5B,MAAO,CAAC66F,GAAc,EAAI,KAAK,IAAI,EAAG17F,EAAIa,CAAC,CAAC,EAAG66F,GAAc,EAAI,KAAK,IAAI,EAAG1+F,EAAI6D,CAAC,CAAC,EAAG66F,GAAc,EAAI,KAAK,IAAI,EAAGl7F,EAAIK,CAAC,CAAC,CAAC,CAC7H,CACA,OAAO,UAAU+6F,EAAY,CAC3B,MAAM5vD,EAAM,KAAK,SAAS4vD,CAAU,EAAE,MAAM,CAAC,EAC7C,OAAO,KAAK,SAAS5vD,CAAG,CAC1B,CACA,OAAO,SAAS,CAACtwC,EAAG6E,EAAGE,CAAC,EAAG,CACzB,MAAMT,EAAI,EAAItE,EACRsB,EAAI,EAAIuD,EACRC,EAAI,EAAIC,EACRI,EAAI,KAAK,IAAIb,EAAGhD,EAAGwD,CAAC,EAC1B,MAAO,CAAC,OAAQR,EAAGhD,EAAGwD,EAAGK,CAAC,CAC5B,CACF,CAMA,MAAMg7F,EAAe,CACnB,OAAO32D,EAAOC,EAAQ22D,EAAiB,GAAO,CAC5C,GAAI52D,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAI,MAAM,wBAAwB,EAE1C,MAAM3R,EAAM,KAAK,WAAW,SAAS,EACrC,OAAAA,EAAI,aAAa,UAAW,KAAK,EAC5BsoE,IACHtoE,EAAI,aAAa,QAAS,GAAG0R,CAAK,IAAI,EACtC1R,EAAI,aAAa,SAAU,GAAG2R,CAAM,IAAI,GAE1C3R,EAAI,aAAa,sBAAuB,MAAM,EAC9CA,EAAI,aAAa,UAAW,OAAO0R,CAAK,IAAIC,CAAM,EAAE,EAC7C3R,CACT,CACA,cAAcvT,EAAM,CAClB,GAAI,OAAOA,GAAS,SAClB,MAAM,IAAI,MAAM,0BAA0B,EAE5C,OAAO,KAAK,WAAWA,CAAI,CAC7B,CACA,WAAWA,EAAM,CACf4c,GAAY,sCAAsC,CACpD,CACF,CACA,MAAMk/D,WAAsBF,EAAe,CACzC,WAAW57E,EAAM,CACf,OAAO,SAAS,gBAAgBsb,GAAQtb,CAAI,CAC9C,CACF,CAQA,MAAM+7E,GAAqC,EACrCC,GAAuB,IAAI,QAC3BC,GAAkB,IAAI,KAAI,EAAG,kBAAiB,EAAK,GAAK,IAC9D,MAAMC,EAAyB,CAC7B,OAAO,OAAO51D,EAAY,CAExB,OADgBA,EAAW,KAAK,eACjB,CACb,KAAKtK,GAAe,KAClB,OAAO,IAAImgE,GAAsB71D,CAAU,EAC7C,KAAKtK,GAAe,KAClB,OAAO,IAAIogE,GAAsB91D,CAAU,EAC7C,KAAKtK,GAAe,OAElB,OADkBsK,EAAW,KAAK,UACjB,CACf,IAAK,KACH,OAAO,IAAI+1D,GAA4B/1D,CAAU,EACnD,IAAK,MACH,OAAIA,EAAW,KAAK,YACX,IAAIg2D,GAAmCh2D,CAAU,EAC/CA,EAAW,KAAK,SAClB,IAAIi2D,GAAgCj2D,CAAU,EAEhD,IAAIk2D,GAAkCl2D,CAAU,EACzD,IAAK,KACH,OAAO,IAAIm2D,GAA8Bn2D,CAAU,EACrD,IAAK,MACH,OAAO,IAAIo2D,GAAiCp2D,CAAU,CAClE,CACQ,OAAO,IAAIq2D,GAAwBr2D,CAAU,EAC/C,KAAKtK,GAAe,MAClB,OAAO,IAAI4gE,GAAuBt2D,CAAU,EAC9C,KAAKtK,GAAe,SAClB,OAAO,IAAI6gE,GAA0Bv2D,CAAU,EACjD,KAAKtK,GAAe,KAClB,OAAO,IAAI8gE,GAAsBx2D,CAAU,EAC7C,KAAKtK,GAAe,OAClB,OAAO,IAAI+gE,GAAwBz2D,CAAU,EAC/C,KAAKtK,GAAe,OAClB,OAAO,IAAIghE,GAAwB12D,CAAU,EAC/C,KAAKtK,GAAe,SAClB,OAAO,IAAIihE,GAA0B32D,CAAU,EACjD,KAAKtK,GAAe,MAClB,OAAO,IAAIkhE,GAAuB52D,CAAU,EAC9C,KAAKtK,GAAe,IAClB,OAAO,IAAImhE,GAAqB72D,CAAU,EAC5C,KAAKtK,GAAe,QAClB,OAAO,IAAIohE,GAAyB92D,CAAU,EAChD,KAAKtK,GAAe,UAClB,OAAO,IAAIqhE,GAA2B/2D,CAAU,EAClD,KAAKtK,GAAe,UAClB,OAAO,IAAIshE,GAA2Bh3D,CAAU,EAClD,KAAKtK,GAAe,SAClB,OAAO,IAAIuhE,GAA0Bj3D,CAAU,EACjD,KAAKtK,GAAe,UAClB,OAAO,IAAIwhE,GAA2Bl3D,CAAU,EAClD,KAAKtK,GAAe,MAClB,OAAO,IAAIyhE,GAAuBn3D,CAAU,EAC9C,KAAKtK,GAAe,eAClB,OAAO,IAAI0hE,GAAgCp3D,CAAU,EACvD,KAAKtK,GAAe,UACpB,KAAKA,GAAe,OACpB,KAAKA,GAAe,MAClB,OAAO,IAAI2hE,GAAuBr3D,CAAU,EAC9C,QACE,OAAO,IAAIs3D,GAAkBt3D,CAAU,CAC/C,CACE,CACF,CACA,MAAMu3D,GAAN,MAAMA,EAAkB,CAItB,YAAYv3D,EAAY,CACtB,aAAAw3D,EAAe,GACf,aAAAC,EAAe,GACf,qBAAAC,EAAuB,EAC3B,EAAM,GAAI,CARVp7D,EAAA,KAAAq7D,IACEr7D,EAAA,KAAAs7D,GAAW,MACXt7D,EAAA,KAAAu7D,GAAa,IACbv7D,EAAA,KAAAw7D,GAAgB,MAMd,KAAK,aAAeN,EACpB,KAAK,KAAOx3D,EAAW,KACvB,KAAK,MAAQA,EAAW,MACxB,KAAK,YAAcA,EAAW,YAC9B,KAAK,gBAAkBA,EAAW,gBAClC,KAAK,mBAAqBA,EAAW,mBACrC,KAAK,YAAcA,EAAW,YAC9B,KAAK,WAAaA,EAAW,WAC7B,KAAK,kBAAoBA,EAAW,kBACpC,KAAK,cAAgBA,EAAW,cAChC,KAAK,gBAAkBA,EAAW,gBAClC,KAAK,aAAeA,EAAW,aAC/B,KAAK,cAAgBA,EAAW,aAChC,KAAK,OAASA,EAAW,OACzB,KAAK,oBAAsB,GACvBw3D,IACF,KAAK,eAAiB,KAAK,UAAY,KAAK,iBAAiBC,CAAY,GAEvEC,GACF,KAAK,sBAAqB,CAE9B,CACA,OAAO,cAAc,CACnB,YAAAt/C,EACA,SAAAwE,CACJ,EAAK,CACD,MAAO,CAAC,EAAExE,GAAA,MAAAA,EAAa,KAAOwE,GAAA,MAAAA,EAAU,IAC1C,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,KAAK,UACnB,CACA,IAAI,cAAe,CACjB,OAAO26C,GAAkB,cAAc,KAAK,IAAI,GAAK,KAAK,eAAiB,CAAC,CAAC,KAAK,WACpF,CACA,IAAI,aAAc,OAChB,KAAM,CACJ,KAAAx/F,CACN,EAAQ,KACEuvC,GAASvyC,EAAA,KAAK,oBAAL,YAAAA,EAAwB,UAAUgD,EAAK,IACtD,OAAIuvC,EACKA,EAAO,QAAO,EAEhBvvC,CACT,CACA,IAAI,kBAAmB,CACrB,OAAO,KAAK,eAAiB,KAAK,eACpC,CACA,IAAI,uBAAwB,OAC1B,MAAMuvC,GAASvyC,EAAA,KAAK,oBAAL,YAAAA,EAAwB,UAAU,KAAK,KAAK,IAC3D,GAAIuyC,EACF,OAAOA,EAAO,4BAEhB,KAAM,CACJ,WAAAywD,EACA,SAAAC,EACA,KAAAr+D,CACN,EAAQ,KAAK,KACT,IAAIkxB,EAAO,KACPC,EAAO,KACX,IAAIitC,GAAA,YAAAA,EAAY,SAAU,EAAG,CAC3B,QAAS1+F,EAAI,EAAGA,EAAI0+F,EAAW,OAAQ1+F,GAAK,EACtC0+F,EAAW1+F,EAAI,CAAC,EAAIyxD,GACtBA,EAAOitC,EAAW1+F,EAAI,CAAC,EACvBwxD,EAAOktC,EAAW1+F,EAAI,CAAC,GACd0+F,EAAW1+F,EAAI,CAAC,IAAMyxD,IAC/BD,EAAO,KAAK,IAAIA,EAAMktC,EAAW1+F,EAAI,CAAC,CAAC,GAG3C,MAAO,CAACwxD,EAAMC,CAAI,CACpB,CACA,IAAIktC,GAAA,YAAAA,EAAU,SAAU,EAAG,CACzB,UAAWC,KAAWD,EACpB,QAAS3+F,EAAI,EAAG2Q,EAAKiuF,EAAQ,OAAQ5+F,EAAI2Q,EAAI3Q,GAAK,EAC5C4+F,EAAQ5+F,EAAI,CAAC,EAAIyxD,GACnBA,EAAOmtC,EAAQ5+F,EAAI,CAAC,EACpBwxD,EAAOotC,EAAQ5+F,CAAC,GACP4+F,EAAQ5+F,EAAI,CAAC,IAAMyxD,IAC5BD,EAAO,KAAK,IAAIA,EAAMotC,EAAQ5+F,CAAC,CAAC,GAItC,GAAIwxD,IAAS,IACX,MAAO,CAACA,EAAMC,CAAI,CAEtB,CACA,OAAInxB,EACK,CAACA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAEnB,IACT,CACA,gBAAgB6sB,EAAO,CACrB,KAAM,CACJ,KAAM,CACJ,KAAA07B,CACR,EACM,SAAU,CACR,QAAS,CACP,UAAA/9C,EACA,WAAAC,EACA,MAAAid,EACA,MAAAC,CACV,CACA,CACA,EAAQ,KAAK,OACT,OAAAkF,EAAM,CAAC,EAAI07B,EAAK,CAAC,EAAI17B,EAAM,CAAC,EAAI07B,EAAK,CAAC,EACtC17B,EAAM,CAAC,EAAI,KAAOA,EAAM,CAAC,EAAInF,GAASld,EACtCqiB,EAAM,CAAC,EAAI,KAAOA,EAAM,CAAC,EAAIlF,GAASld,EAC/BoiB,CACT,CACA,IAAI,aAAc,WAChB,KAAM,CACJ,KAAAzuD,CACN,EAAQ,KACJ,QAAOjD,GAAAC,EAAA,KAAK,kBAAkB,YAAY,GAAGqgC,EAAsB,GAAGr9B,EAAK,EAAE,EAAE,IAAxE,YAAAhD,EAA2E,QAA3E,YAAAD,EAAkF,aAAYijB,EAAAhgB,EAAK,cAAL,YAAAggB,EAAkB,MAAO,EAChI,CACA,IAAI,YAAYjf,EAAM,CACpB,KAAM,CACJ,KAAAf,CACN,EAAQ,KACEmgG,EAAQ,CACZ,QAAS,CAACp/F,EACV,SAAUA,GAAQ,EACxB,EACS,KAAK,kBAAkB,aAAaf,EAAK,GAAI,CAChD,MAAAmgG,CACN,CAAK,GACC,KAAK,kBAAkB,SAAS,GAAG9iE,EAAsB,GAAGr9B,EAAK,EAAE,GAAI,CACrE,GAAIA,EAAK,GACT,eAAgBA,EAAK,eACrB,KAAM,KAAK,OAAO,KAClB,MAAAmgG,EACA,SAAUngG,EAAK,SACf,iBAAkB,IAAI,IAC9B,CAAO,EAEEe,GACH,KAAK,YAAW,CAEpB,CACA,aAAc,UACXhE,IAAAC,EAAAotC,EAAA,KAAK21D,MAAL,YAAA/iG,EAAoB,QAAS,KAAK,QAAlC,MAAAD,EAA0C,SAC3C2tC,EAAA,KAAKq1D,GAAgB,KAAK,MAAQ,KACpC,CACA,aAAa76E,EAAQ,OACnB,GAAI,CAAC,KAAK,UACR,OAEEA,EAAO,OACTklB,EAAA,KAAKy1D,KAALn1D,EAAA,KAAKm1D,GAAa,CAChB,KAAM,KAAK,KAAK,KAAK,MAAM,CAAC,CACpC,IAEI,KAAM,CACJ,KAAAj+D,EACA,MAAOw+D,CACb,EAAQl7E,EACA0c,GACFoC,EAAA,KAAK47D,GAAAS,IAAL,UAAoBz+D,GAEtB,IAAIu+D,IAAQnjG,EAAAotC,EAAA,KAAK21D,MAAL,YAAA/iG,EAAoB,QAAS,KAAK,MAC1C,CAACmjG,IAASC,GAAA,MAAAA,EAAU,QACtB,KAAK,aAAaA,CAAQ,EAC1BD,EAAQ/1D,EAAA,KAAK21D,IAAc,OAExBI,IAGLA,EAAM,aAAaj7E,CAAM,EACrBk7E,GAAA,MAAAA,EAAU,UACZD,EAAM,OAAM,EACZz1D,EAAA,KAAKq1D,GAAgB,MACrB,KAAK,MAAQ,MAEjB,CACA,aAAc,OACP31D,EAAA,KAAKy1D,MAGV77D,EAAA,KAAK47D,GAAAS,IAAL,UAAoBj2D,EAAA,KAAKy1D,IAAS,OAClC7iG,EAAAotC,EAAA,KAAK21D,MAAL,MAAA/iG,EAAoB,MAAM,cAC1B0tC,EAAA,KAAKm1D,GAAW,MAClB,CA+BA,iBAAiBH,EAAc,CAC7B,KAAM,CACJ,KAAA1/F,EACA,OAAQ,CACN,KAAAilC,EACA,SAAAgH,CACR,CACA,EAAQ,KACEkD,EAAY,SAAS,cAAc,SAAS,EAClDA,EAAU,aAAa,qBAAsBnvC,EAAK,EAAE,EAChD,EAAE,gBAAgBs+F,KAA4B,EAAE,gBAAgBR,KAA0B,EAAE,gBAAgBwB,MAC9GnwD,EAAU,SAAW,GAEvB,KAAM,CACJ,MAAA7C,CACN,EAAQ6C,EASJ,GARA7C,EAAM,OAAS,KAAK,OAAO,OAC3B,KAAK,OAAO,QAAU,EAClBtsC,EAAK,kBACPmvC,EAAU,MAAQnvC,EAAK,iBAErBA,EAAK,UACPmvC,EAAU,UAAU,IAAI,UAAU,EAEhC,CAACnvC,EAAK,MAAQ,gBAAgBu+F,GAAwB,CACxD,KAAM,CACJ,SAAAv4D,CACR,EAAUhmC,EACJ,MAAI,CAACA,EAAK,cAAgBgmC,IAAa,GACrC,KAAK,YAAYA,EAAUmJ,CAAS,EAE/BA,CACT,CACA,KAAM,CACJ,MAAAvI,EACA,OAAAC,CACN,EAAQ,KACJ,GAAI,CAAC64D,GAAgB1/F,EAAK,YAAY,MAAQ,EAAG,CAC/CssC,EAAM,YAAc,GAAGtsC,EAAK,YAAY,KAAK,KAC7C,MAAMsgG,EAAmBtgG,EAAK,YAAY,uBACpCugG,EAAiBvgG,EAAK,YAAY,qBACxC,GAAIsgG,EAAmB,GAAKC,EAAiB,EAAG,CAC9C,MAAMC,EAAS,QAAQF,CAAgB,0CAA0CC,CAAc,kCAC/Fj0D,EAAM,aAAek0D,CACvB,CACA,OAAQxgG,EAAK,YAAY,MAAK,CAC5B,KAAK49B,GAA0B,MAC7B0O,EAAM,YAAc,QACpB,MACF,KAAK1O,GAA0B,OAC7B0O,EAAM,YAAc,SACpB,MACF,KAAK1O,GAA0B,QAC7BU,GAAK,qCAAqC,EAC1C,MACF,KAAKV,GAA0B,MAC7BU,GAAK,mCAAmC,EACxC,MACF,KAAKV,GAA0B,UAC7B0O,EAAM,kBAAoB,QAC1B,KAGV,CACM,MAAMm0D,EAAczgG,EAAK,aAAe,KACpCygG,GACF/1D,EAAA,KAAKo1D,GAAa,IAClBxzD,EAAM,YAAcxL,GAAK,aAAa,GAAG2/D,CAAW,GAEpDn0D,EAAM,YAAc,CAExB,CACA,MAAM1K,EAAOd,GAAK,cAAc,CAAC9gC,EAAK,KAAK,CAAC,EAAGilC,EAAK,KAAK,CAAC,EAAIjlC,EAAK,KAAK,CAAC,EAAIilC,EAAK,KAAK,CAAC,EAAGjlC,EAAK,KAAK,CAAC,EAAGilC,EAAK,KAAK,CAAC,EAAIjlC,EAAK,KAAK,CAAC,EAAIilC,EAAK,KAAK,CAAC,CAAC,CAAC,EAC9I,CACJ,UAAAmH,EACA,WAAAC,EACA,MAAAid,EACA,MAAAC,CACN,EAAQtd,EAAS,QACbK,EAAM,KAAO,GAAG,KAAO1K,EAAK,CAAC,EAAI0nB,GAASld,CAAS,IACnDE,EAAM,IAAM,GAAG,KAAO1K,EAAK,CAAC,EAAI2nB,GAASld,CAAU,IACnD,KAAM,CACJ,SAAArG,CACN,EAAQhmC,EACJ,OAAIA,EAAK,cAAgBgmC,IAAa,GACpCsG,EAAM,MAAQ,GAAG,IAAM1F,EAAQwF,CAAS,IACxCE,EAAM,OAAS,GAAG,IAAMzF,EAASwF,CAAU,KAE3C,KAAK,YAAYrG,EAAUmJ,CAAS,EAE/BA,CACT,CACA,YAAY8d,EAAO9d,EAAY,KAAK,UAAW,CAC7C,GAAI,CAAC,KAAK,KAAK,KACb,OAEF,KAAM,CACJ,UAAA/C,EACA,WAAAC,CACN,EAAQ,KAAK,OAAO,SAAS,QACzB,GAAI,CACF,MAAAzF,EACA,OAAAC,CACN,EAAQ,KACAomB,EAAQ,MAAQ,IAClB,CAACrmB,EAAOC,CAAM,EAAI,CAACA,EAAQD,CAAK,GAElCuI,EAAU,MAAM,MAAQ,GAAG,IAAMvI,EAAQwF,CAAS,IAClD+C,EAAU,MAAM,OAAS,GAAG,IAAMtI,EAASwF,CAAU,IACrD8C,EAAU,aAAa,sBAAuB,IAAM8d,GAAS,GAAG,CAClE,CACA,IAAI,gBAAiB,CACnB,MAAMyzC,EAAW,CAACC,EAAQ54D,EAAW7e,IAAU,CAC7C,MAAMmiB,EAAQniB,EAAM,OAAOy3E,CAAM,EAC3B9D,EAAYxxD,EAAM,CAAC,EACnBu1D,EAAav1D,EAAM,MAAM,CAAC,EAChCniB,EAAM,OAAO,MAAM6e,CAAS,EAAIs1D,GAAgB,GAAGR,CAAS,OAAO,EAAE+D,CAAU,EAC/E,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,CAAC74D,CAAS,EAAGs1D,GAAgB,GAAGR,CAAS,MAAM,EAAE+D,CAAU,CACnE,CAAO,CACH,EACA,OAAOvhE,GAAO,KAAM,iBAAkB,CACpC,QAASnW,GAAS,CAChB,KAAM,CACJ,QAAAqS,CACV,EAAYrS,EAAM,OACJ23E,EAAStlE,EAAU,IAAM,EAC/B,KAAK,UAAU,MAAM,WAAaslE,EAAS,SAAW,UACtD,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,OAAQA,EACR,QAAStlE,IAAY,GAAKA,IAAY,CAChD,CAAS,CACH,EACA,MAAOrS,GAAS,CACd,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,QAAS,CAACA,EAAM,OAAO,KACjC,CAAS,CACH,EACA,OAAQA,GAAS,CACf,KAAM,CACJ,OAAA23E,CACV,EAAY33E,EAAM,OACV,KAAK,UAAU,MAAM,WAAa23E,EAAS,SAAW,UACtD,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,QAASA,EACT,OAAQA,CAClB,CAAS,CACH,EACA,MAAO33E,GAAS,CACd,WAAW,IAAMA,EAAM,OAAO,MAAM,CAClC,cAAe,EACzB,CAAS,EAAG,CAAC,CACP,EACA,SAAUA,GAAS,CACjBA,EAAM,OAAO,MAAQA,EAAM,OAAO,QACpC,EACA,SAAUA,GAAS,CACjBA,EAAM,OAAO,SAAWA,EAAM,OAAO,QACvC,EACA,SAAUA,GAAS,CACjB,KAAK,aAAaA,EAAM,OAAQA,EAAM,OAAO,QAAQ,CACvD,EACA,QAASA,GAAS,CAChBw3E,EAAS,UAAW,kBAAmBx3E,CAAK,CAC9C,EACA,UAAWA,GAAS,CAClBw3E,EAAS,YAAa,kBAAmBx3E,CAAK,CAChD,EACA,QAASA,GAAS,CAChBw3E,EAAS,UAAW,QAASx3E,CAAK,CACpC,EACA,UAAWA,GAAS,CAClBw3E,EAAS,YAAa,QAASx3E,CAAK,CACtC,EACA,YAAaA,GAAS,CACpBw3E,EAAS,cAAe,cAAex3E,CAAK,CAC9C,EACA,YAAaA,GAAS,CACpBw3E,EAAS,cAAe,cAAex3E,CAAK,CAC9C,EACA,SAAUA,GAAS,CACjB,MAAM+jC,EAAQ/jC,EAAM,OAAO,SAC3B,KAAK,YAAY+jC,CAAK,EACtB,KAAK,kBAAkB,SAAS,KAAK,KAAK,GAAI,CAC5C,SAAUA,CACpB,CAAS,CACH,CACN,CAAK,CACH,CACA,0BAA0B6zC,EAASC,EAAS,CAC1C,MAAMC,EAAgB,KAAK,eAC3B,UAAWt9E,KAAQ,OAAO,KAAKq9E,EAAQ,MAAM,EAAG,CAC9C,MAAMj0C,EAASg0C,EAAQp9E,CAAI,GAAKs9E,EAAct9E,CAAI,EAClDopC,GAAA,MAAAA,EAASi0C,EACX,CACF,CACA,4BAA4Bz5D,EAAS,CACnC,GAAI,CAAC,KAAK,gBACR,OAEF,MAAMG,EAAa,KAAK,kBAAkB,YAAY,KAAK,KAAK,EAAE,EAClE,GAAI,CAACA,EACH,OAEF,MAAMu5D,EAAgB,KAAK,eAC3B,SAAW,CAAC1hC,EAAY2hC,CAAM,IAAK,OAAO,QAAQx5D,CAAU,EAAG,CAC7D,MAAMqlB,EAASk0C,EAAc1hC,CAAU,EACvC,GAAIxS,EAAQ,CACV,MAAMo0C,EAAa,CACjB,OAAQ,CACN,CAAC5hC,CAAU,EAAG2hC,CAC1B,EACU,OAAQ35D,CAClB,EACQwlB,EAAOo0C,CAAU,EACjB,OAAOz5D,EAAW63B,CAAU,CAC9B,CACF,CACF,CACA,uBAAwB,CACtB,GAAI,CAAC,KAAK,UACR,OAEF,KAAM,CACJ,WAAA0gC,CACN,EAAQ,KAAK,KACT,GAAI,CAACA,EACH,OAEF,KAAM,CAACmB,EAASC,EAASC,EAASC,CAAO,EAAI,KAAK,KAAK,KAAK,IAAIr+F,GAAK,KAAK,OAAOA,CAAC,CAAC,EACnF,GAAI+8F,EAAW,SAAW,EAAG,CAC3B,KAAM,CAACn1C,EAAKH,EAAKC,EAAKC,CAAG,EAAIo1C,EAAW,SAAS,EAAG,CAAC,EACrD,GAAIqB,IAAYx2C,GAAOy2C,IAAY52C,GAAOy2C,IAAYx2C,GAAOy2C,IAAYx2C,EACvE,MAEJ,CACA,KAAM,CACJ,MAAAte,CACN,EAAQ,KAAK,UACT,IAAIi1D,EACJ,GAAIn3D,EAAA,KAAK01D,IAAY,CACnB,KAAM,CACJ,YAAAW,EACA,YAAAe,CACR,EAAUl1D,EACJA,EAAM,YAAc,EACpBi1D,EAAY,CAAC,gCAAiC,eAAetkE,EAAM,kDAAmD,iCAAiCwjE,CAAW,mBAAmBe,CAAW,IAAI,EACpM,KAAK,UAAU,UAAU,IAAI,WAAW,CAC1C,CACA,MAAM56D,EAAQy6D,EAAUF,EAClBt6D,EAASy6D,EAAUF,EACnB,CACJ,WAAAK,CACN,EAAQ,KACEvsE,EAAMusE,EAAW,cAAc,KAAK,EAC1CvsE,EAAI,UAAU,IAAI,yBAAyB,EAC3CA,EAAI,aAAa,QAAS,CAAC,EAC3BA,EAAI,aAAa,SAAU,CAAC,EAC5BA,EAAI,KAAO,OACX,MAAMwsE,EAAOD,EAAW,cAAc,MAAM,EAC5CvsE,EAAI,OAAOwsE,CAAI,EACf,MAAMC,EAAWF,EAAW,cAAc,UAAU,EAC9C57E,EAAK,YAAY,KAAK,KAAK,EAAE,GACnC87E,EAAS,aAAa,KAAM97E,CAAE,EAC9B87E,EAAS,aAAa,gBAAiB,mBAAmB,EAC1DD,EAAK,OAAOC,CAAQ,EACpB,QAASrgG,EAAI,EAAG2Q,EAAK+tF,EAAW,OAAQ1+F,EAAI2Q,EAAI3Q,GAAK,EAAG,CACtD,MAAMupD,EAAMm1C,EAAW1+F,CAAC,EAClBopD,EAAMs1C,EAAW1+F,EAAI,CAAC,EACtBqpD,EAAMq1C,EAAW1+F,EAAI,CAAC,EACtBspD,EAAMo1C,EAAW1+F,EAAI,CAAC,EACtBsgC,EAAO6/D,EAAW,cAAc,MAAM,EACtCx+F,GAAK0nD,EAAMw2C,GAAWv6D,EACtB1kC,GAAKo/F,EAAU52C,GAAO7jB,EACtB+6D,GAAa/2C,EAAMF,GAAO/jB,EAC1Bi7D,GAAcn3C,EAAME,GAAO/jB,EACjCjF,EAAK,aAAa,IAAK3+B,CAAC,EACxB2+B,EAAK,aAAa,IAAK1/B,CAAC,EACxB0/B,EAAK,aAAa,QAASggE,CAAS,EACpChgE,EAAK,aAAa,SAAUigE,CAAU,EACtCF,EAAS,OAAO//D,CAAI,EACpB2/D,GAAA,MAAAA,EAAW,KAAK,+CAA+Ct+F,CAAC,QAAQf,CAAC,YAAY0/F,CAAS,aAAaC,CAAU,MACvH,CACIz3D,EAAA,KAAK01D,MACPyB,EAAU,KAAK,cAAc,EAC7Bj1D,EAAM,gBAAkBi1D,EAAU,KAAK,EAAE,GAE3C,KAAK,UAAU,OAAOrsE,CAAG,EACzB,KAAK,UAAU,MAAM,SAAW,QAAQrP,CAAE,GAC5C,CACA,aAAai8E,EAAY,KAAM,CAC7B,KAAM,CACJ,KAAA9hG,CACN,EAAQ,KACJ,IAAIqgD,EAAamL,EACbs2C,GACFzhD,EAAc,CACZ,IAAKyhD,EAAU,IACvB,EACMt2C,EAAmBs2C,EAAU,OAE7BzhD,EAAcrgD,EAAK,YACnBwrD,EAAmBxrD,EAAK,kBAE1B0qC,EAAA,KAAKq1D,GAAgB,IAAIxB,GAAuB,CAC9C,KAAM,CACJ,MAAOv+F,EAAK,MACZ,SAAUA,EAAK,SACf,iBAAAwrD,EACA,YAAAnL,EACA,SAAUrgD,EAAK,SACf,WAAYA,EAAK,KACjB,YAAa,EACb,GAAI,SAASA,EAAK,EAAE,GACpB,SAAUA,EAAK,SACf,SAAU,EAClB,EACM,YAAa,KAAK,YAClB,OAAQ,KAAK,OACb,SAAU,CAAC,IAAI,CACrB,CAAK,EACH,CACA,IAAI,iBAAkB,CACpB,MAAO,CAAC,EAAEoqC,EAAA,KAAK21D,KAAiB,KAAK,OAAS,KAAK,KAAK,SAC1D,CACA,IAAI,mBAAoB,CACtB,OAAO31D,EAAA,KAAK21D,GACd,CACA,QAAS,CACPxhE,GAAY,mDAAmD,CACjE,CACA,mBAAmB7a,EAAMq+E,EAAS,KAAM,CACtC,MAAMC,EAAS,CAAA,EACf,GAAI,KAAK,cAAe,CACtB,MAAMC,EAAW,KAAK,cAAcv+E,CAAI,GAAK,CAAA,EAC7C,SAAW,CACT,KAAAuhB,EACA,GAAApf,EACA,aAAAq8E,CACR,IAAWD,EAAU,CAIb,GAHIh9D,IAAS,IAGTpf,IAAOk8E,EACT,SAEF,MAAMI,EAAc,OAAOD,GAAiB,SAAWA,EAAe,KAChEE,EAAa,SAAS,cAAc,qBAAqBv8E,CAAE,IAAI,EACrE,GAAIu8E,GAAc,CAACzE,GAAqB,IAAIyE,CAAU,EAAG,CACvD9jE,GAAK,6CAA6CzY,CAAE,EAAE,EACtD,QACF,CACAm8E,EAAO,KAAK,CACV,GAAAn8E,EACA,YAAAs8E,EACA,WAAAC,CACV,CAAS,CACH,CACA,OAAOJ,CACT,CACA,UAAWI,KAAc,SAAS,kBAAkB1+E,CAAI,EAAG,CACzD,KAAM,CACJ,YAAAy+E,CACR,EAAUC,EACEv8E,EAAKu8E,EAAW,aAAa,iBAAiB,EAChDv8E,IAAOk8E,GAGNpE,GAAqB,IAAIyE,CAAU,GAGxCJ,EAAO,KAAK,CACV,GAAAn8E,EACA,YAAAs8E,EACA,WAAAC,CACR,CAAO,CACH,CACA,OAAOJ,CACT,CACA,MAAO,OACD,KAAK,YACP,KAAK,UAAU,OAAS,KAE1BhlG,EAAA,KAAK,QAAL,MAAAA,EAAY,WACd,CACA,MAAO,OACD,KAAK,YACP,KAAK,UAAU,OAAS,KAE1BA,EAAA,KAAK,QAAL,MAAAA,EAAY,WACd,CACA,2BAA4B,CAC1B,OAAO,KAAK,SACd,CACA,kBAAmB,CACjB,MAAMqlG,EAAW,KAAK,0BAAyB,EAC/C,GAAI,MAAM,QAAQA,CAAQ,EACxB,UAAW/6D,KAAW+6D,EACpB/6D,EAAQ,UAAU,IAAI,eAAe,OAGvC+6D,EAAS,UAAU,IAAI,eAAe,CAE1C,CACA,oBAAqB,CACnB,GAAI,CAAC,KAAK,YACR,OAEF,KAAM,CACJ,qBAAsBxlD,EACtB,KAAM,CACJ,GAAIyC,CACZ,CACA,EAAQ,KACJ,KAAK,UAAU,iBAAiB,WAAY,IAAM,QAChDtiD,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,6BAA8B,CAChE,OAAQ,KACR,KAAA6/C,EACA,OAAAyC,EACA,oBAAqB,EAC7B,EACI,CAAC,CACH,CACA,SAASozB,EAAuB,CAC9B,GAAI,CAAC,KAAK,KAAK,IAAM,CAACA,EACpB,OAEgBA,EAAsB,UAAU,KAAK,KAAK,EAAE,EAE5D,KAAK,KAAI,EAET,KAAK,KAAI,CAEb,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,CAC7C,CACA,IAAI,QAAS,CACX,OAAO,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,CAC7C,CACA,oBAAoBprC,EAAS,CAC3B,MAAM+D,EAAQ,KAAK,KAAK,iBAAmB,KAC3C/D,EAAQ,MAAM,gBAAkB+D,IAAU,KAAO,cAAgBvK,GAAK,aAAa,GAAGuK,CAAK,CAC7F,CACF,EAxpBEw0D,GAAA,YACAC,GAAA,YACAC,GAAA,YAHFH,GAAA,YA+LES,GAAc,SAACz+D,EAAM,CACnB,KAAM,CACJ,UAAW,CACT,MAAA0K,CACR,EACM,KAAM,CACJ,KAAMg2D,EACN,SAAAt8D,CACR,EACM,OAAQ,CACN,SAAU,CACR,QAAS,CACP,UAAAoG,EACA,WAAAC,EACA,MAAAid,EACA,MAAAC,CACZ,CACA,CACA,CACA,EAAQ,KACJ+4C,GAAA,MAAAA,EAAa,OAAO,EAAG,EAAG,GAAG1gE,GAC7B0K,EAAM,KAAO,GAAG,KAAO1K,EAAK,CAAC,EAAI0nB,GAASld,CAAS,IACnDE,EAAM,IAAM,GAAG,KAAOD,EAAazK,EAAK,CAAC,EAAI2nB,GAASld,CAAU,IAC5DrG,IAAa,GACfsG,EAAM,MAAQ,GAAG,KAAO1K,EAAK,CAAC,EAAIA,EAAK,CAAC,GAAKwK,CAAS,IACtDE,EAAM,OAAS,GAAG,KAAO1K,EAAK,CAAC,EAAIA,EAAK,CAAC,GAAKyK,CAAU,KAExD,KAAK,YAAYrG,CAAQ,CAE7B,EA5NF,IAAMu5D,GAANC,GA0pBA,MAAM+C,WAAgChD,EAAkB,CACtD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EACD,KAAK,OAASA,EAAW,MAC3B,CACA,QAAS,CACP,YAAK,UAAU,UAAY,mBACpB,KAAK,SACd,CACA,qBAAsB,CACpB,KAAM,CACJ,OAAAsH,CACN,EAAQ,KACCA,EAAO,YAGZ,KAAK,aAAaA,EAAO,OAAO,CAClC,CACA,IAAI,kBAAmB,CACrB,OAAO,KAAK,eAAiB,KAAK,OAAO,UAC3C,CACA,IAAI,uBAAwB,CAC1B,OAAO,KAAK,OAAO,2BACrB,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,OAAO,QAAQ,IAC7B,CACA,IAAI,YAAYxuC,EAAM,CACpB,KAAK,OAAO,QAAUA,EACjBA,GACH,KAAK,YAAW,CAEpB,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,OAAO,QAAO,CAC5B,CACA,QAAS,CACP,KAAK,OAAO,iBAAiB,KAAK,KAAK,EAAE,EACzC,KAAK,UAAU,OAAM,EACrB,KAAK,UAAY,KACjB,KAAK,YAAW,CAClB,CACF,CACA,MAAM+8F,WAA8ByB,EAAkB,CACpD,YAAYt3D,EAAY5nC,EAAU,KAAM,CACtC,MAAM4nC,EAAY,CAChB,aAAc,GACd,aAAc,CAAC,EAAC5nC,GAAA,MAAAA,EAAS,cACzB,qBAAsB,EAC5B,CAAK,EANLkkC,EAAA,KAAAi+D,IAOI,KAAK,cAAgBv6D,EAAW,KAAK,aACvC,CACA,QAAS,CACP,KAAM,CACJ,KAAAjoC,EACA,YAAA2nC,CACN,EAAQ,KACE86D,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,aAAa,kBAAmBziG,EAAK,EAAE,EAC5C,IAAI0iG,EAAU,GACd,OAAI1iG,EAAK,KACP2nC,EAAY,kBAAkB86D,EAAMziG,EAAK,IAAKA,EAAK,SAAS,EAC5D0iG,EAAU,IACD1iG,EAAK,QACd,KAAK,iBAAiByiG,EAAMziG,EAAK,OAAQA,EAAK,YAAY,EAC1D0iG,EAAU,IACD1iG,EAAK,YACdgkC,EAAA,KAAKw+D,GAAAG,IAAL,UAAqBF,EAAMziG,EAAK,aAAcA,EAAK,WAAYA,EAAK,aAAcA,EAAK,gBACvF0iG,EAAU,IACD1iG,EAAK,aACdgkC,EAAA,KAAKw+D,GAAAI,IAAL,UAAsBH,EAAMziG,EAAK,YAAaA,EAAK,cACnD0iG,EAAU,IACD1iG,EAAK,MACd,KAAK,UAAUyiG,EAAMziG,EAAK,KAAMA,EAAK,YAAY,EACjD0iG,EAAU,KAEN1iG,EAAK,UAAYA,EAAK,QAAQ,QAAUA,EAAK,QAAQ,UAAU,GAAKA,EAAK,QAAQ,YAAY,IAAM,KAAK,iBAAmB,KAAK,eAClI,KAAK,cAAcyiG,EAAMziG,CAAI,EAC7B0iG,EAAU,IAER1iG,EAAK,WACP,KAAK,qBAAqByiG,EAAMziG,EAAK,SAAS,EAC9C0iG,EAAU,IACD,KAAK,eAAiB,CAACA,IAChC,KAAK,UAAUD,EAAM,EAAE,EACvBC,EAAU,KAGd,KAAK,UAAU,UAAU,IAAI,gBAAgB,EACzCA,IACF,KAAK,eAAiBD,EACtB,KAAK,UAAU,OAAOA,CAAI,GAErB,KAAK,SACd,CAIA,UAAUA,EAAMl2E,EAAas2E,EAAe,GAAI,CAC9CJ,EAAK,KAAO,KAAK,YAAY,mBAAmBl2E,CAAW,EAC3Dk2E,EAAK,QAAU,KACTl2E,GACF,KAAK,YAAY,gBAAgBA,CAAW,EAEvC,KAELA,GAAeA,IAAgB,KACjCyX,EAAA,KAAKw+D,GAAAM,IAAL,WAEED,IACFJ,EAAK,MAAQI,EAEjB,CACA,iBAAiBJ,EAAM31C,EAAQ+1C,EAAe,GAAI,CAChDJ,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EAC5CA,EAAK,QAAU,KACb,KAAK,YAAY,mBAAmB31C,CAAM,EACnC,IAEL+1C,IACFJ,EAAK,MAAQI,GAEf7+D,EAAA,KAAKw+D,GAAAM,IAAL,UACF,CA+BA,cAAcL,EAAMziG,EAAM,CACxByiG,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EAC5C,MAAM1mD,EAAM,IAAI,IAAI,CAAC,CAAC,SAAU,SAAS,EAAG,CAAC,WAAY,WAAW,EAAG,CAAC,aAAc,aAAa,CAAC,CAAC,EACrG,UAAWr4B,KAAQ,OAAO,KAAK1jB,EAAK,OAAO,EAAG,CAC5C,MAAM2gG,EAAS5kD,EAAI,IAAIr4B,CAAI,EACtBi9E,IAGL8B,EAAK9B,CAAM,EAAI,IAAM,OACnB,OAAA3jG,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAIgD,EAAK,GACT,KAAA0jB,CACZ,CACA,GACe,EACT,EACF,CACI1jB,EAAK,eACPyiG,EAAK,MAAQziG,EAAK,cAEpByiG,EAAK,UAALA,EAAK,QAAY,IAAM,IACvBz+D,EAAA,KAAKw+D,GAAAM,IAAL,UACF,CACA,qBAAqBL,EAAMM,EAAW,CACpC,MAAMC,EAAmBP,EAAK,QAK9B,GAJKO,IACHP,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,GAE9Cz+D,EAAA,KAAKw+D,GAAAM,IAAL,WACI,CAAC,KAAK,cAAe,CACvBxkE,GAAK,gHAAqH,EACrH0kE,IACHP,EAAK,QAAU,IAAM,IAEvB,MACF,CACAA,EAAK,QAAU,IAAM,OACnBO,GAAA,MAAAA,IACA,KAAM,CACJ,OAAQC,EACR,KAAMC,EACN,QAAAC,CACR,EAAUJ,EACEK,EAAY,CAAA,EAClB,GAAIH,EAAgB,SAAW,GAAKC,EAAc,SAAW,EAAG,CAC9D,MAAMG,EAAW,IAAI,IAAIH,CAAa,EACtC,UAAWI,KAAaL,EAAiB,CACvC,MAAMjB,EAAS,KAAK,cAAcsB,CAAS,GAAK,CAAA,EAChD,SAAW,CACT,GAAAz9E,CACZ,IAAem8E,EACHqB,EAAS,IAAIx9E,CAAE,CAEnB,CACA,UAAWm8E,KAAU,OAAO,OAAO,KAAK,aAAa,EACnD,UAAW3uE,KAAS2uE,EACdqB,EAAS,IAAIhwE,EAAM,EAAE,IAAM8vE,GAC7BC,EAAU,KAAK/vE,CAAK,CAI5B,KACE,WAAW2uE,KAAU,OAAO,OAAO,KAAK,aAAa,EACnDoB,EAAU,KAAK,GAAGpB,CAAM,EAG5B,MAAMz6D,EAAU,KAAK,kBACfg8D,EAAS,CAAA,EACf,UAAWlwE,KAAS+vE,EAAW,CAC7B,KAAM,CACJ,GAAAv9E,CACV,EAAYwN,EAEJ,OADAkwE,EAAO,KAAK19E,CAAE,EACNwN,EAAM,KAAI,CAChB,IAAK,OACH,CACE,MAAM1zB,EAAQ0zB,EAAM,cAAgB,GACpCkU,EAAQ,SAAS1hB,EAAI,CACnB,MAAAlmB,CAChB,CAAe,EACD,KACF,CACF,IAAK,WACL,IAAK,cACH,CACE,MAAMA,EAAQ0zB,EAAM,eAAiBA,EAAM,aAC3CkU,EAAQ,SAAS1hB,EAAI,CACnB,MAAAlmB,CAChB,CAAe,EACD,KACF,CACF,IAAK,WACL,IAAK,UACH,CACE,MAAMA,EAAQ0zB,EAAM,cAAgB,GACpCkU,EAAQ,SAAS1hB,EAAI,CACnB,MAAAlmB,CAChB,CAAe,EACD,KACF,CACF,QACE,QACZ,CACQ,MAAMyiG,EAAa,SAAS,cAAc,qBAAqBv8E,CAAE,IAAI,EACrE,GAAKu8E,GAEE,GAAI,CAACzE,GAAqB,IAAIyE,CAAU,EAAG,CAChD9jE,GAAK,+CAA+CzY,CAAE,EAAE,EACxD,QACF,MAJE,UAKFu8E,EAAW,cAAc,IAAI,MAAM,WAAW,CAAC,CACjD,CACA,OAAI,KAAK,mBACPplG,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAI,MACJ,IAAKumG,EACL,KAAM,WAClB,CACA,IAEa,EACT,CACF,CACF,CA9OAf,GAAA,YAoDEM,GAAgB,UAAG,CACjB,KAAK,UAAU,aAAa,qBAAsB,EAAE,CACtD,EA2BAH,GAAe,SAACF,EAAMe,EAAcC,EAAYZ,EAAe,GAAI79D,EAAO,KAAM,CAC9Ey9D,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EACxCgB,EAAW,YACbhB,EAAK,MAAQgB,EAAW,YACfZ,IACTJ,EAAK,MAAQI,GAEf,MAAMa,EAAiB,SAAY,OACjC,MAAMvlG,EAAU,MAAM,KAAK,YAAY,qBAAqBqlG,CAAY,EACpErlG,KACFnB,EAAA,KAAK,kBAAL,MAAAA,EAAsB,mBAAmBmB,EAASslG,EAAW,SAAUz+D,GAE3E,EACAy9D,EAAK,QAAU,KACbiB,EAAc,EACP,IAET1/D,EAAA,KAAKw+D,GAAAM,IAAL,UACF,EACAF,GAAgB,SAACH,EAAM31C,EAAQ+1C,EAAe,GAAI,CAChDJ,EAAK,KAAO,KAAK,YAAY,aAAa,EAAE,EAC5CA,EAAK,QAAU,KACb,KAAK,YAAY,mBAAmB31C,CAAM,EACnC,IAEL+1C,IACFJ,EAAK,MAAQI,GAEf7+D,EAAA,KAAKw+D,GAAAM,IAAL,UACF,EAiIF,MAAM/E,WAA8BwB,EAAkB,CACpD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,EACpB,CAAK,CACH,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,gBAAgB,EAC7C,MAAMwL,EAAQ,SAAS,cAAc,KAAK,EAC1C,OAAAA,EAAM,IAAM,KAAK,mBAAqB,cAAgB,KAAK,KAAK,KAAK,YAAW,EAAK,OACrFA,EAAM,aAAa,eAAgB,4BAA4B,EAC/DA,EAAM,aAAa,iBAAkB,KAAK,UAAU,CAClD,KAAM,KAAK,KAAK,IACtB,CAAK,CAAC,EACE,CAAC,KAAK,KAAK,UAAY,KAAK,eAC9B,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,UAAU,OAAOA,CAAK,EACpB,KAAK,SACd,CACF,CACA,MAAM6qD,WAAgCiB,EAAkB,CACtD,QAAS,CACP,OAAO,KAAK,SACd,CACA,gBAAgBr2E,EAAO,CACrB,OAAOwX,GAAY,SAAS,MAAQxX,EAAM,QAAUA,EAAM,OAC5D,CACA,kBAAkBoe,EAASq8D,EAAaC,EAAUC,EAAWC,EAAa,CACpEF,EAAS,SAAS,OAAO,EAC3Bt8D,EAAQ,iBAAiBs8D,EAAU16E,GAAS,QAC1ClsB,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAI,KAAK,KAAK,GACd,KAAM6mG,EACN,MAAOC,EAAY56E,CAAK,EACxB,MAAOA,EAAM,SACb,SAAU,KAAK,gBAAgBA,CAAK,CAChD,CACA,EACM,CAAC,EAEDoe,EAAQ,iBAAiBs8D,EAAU16E,GAAS,OAC1C,GAAI06E,IAAa,OAAQ,CACvB,GAAI,CAACD,EAAY,SAAW,CAACz6E,EAAM,cACjC,OAEFy6E,EAAY,QAAU,EACxB,SAAWC,IAAa,QAAS,CAC/B,GAAID,EAAY,QACd,OAEFA,EAAY,QAAU,EACxB,CACKG,KAGL9mG,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAI,KAAK,KAAK,GACd,KAAM6mG,EACN,MAAOC,EAAY56E,CAAK,CACpC,CACA,GACM,CAAC,CAEL,CACA,mBAAmBoe,EAASq8D,EAAanxD,EAAOuxD,EAAQ,WACtD,SAAW,CAACH,EAAUC,CAAS,IAAKrxD,GAC9BqxD,IAAc,WAAY7mG,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAoB6mG,OAC5CA,IAAc,SAAWA,IAAc,UACzCF,MAAgB,CACd,QAAS,EACrB,IAEQ,KAAK,kBAAkBr8D,EAASq8D,EAAaC,EAAUC,EAAWE,CAAM,EACpEF,IAAc,SAAW,GAAC9mG,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAmB,MAC/C,KAAK,kBAAkBuqC,EAASq8D,EAAa,OAAQ,OAAQ,IAAI,EACxDE,IAAc,QAAU,GAAC7jF,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAmB,QACrD,KAAK,kBAAkBsnB,EAASq8D,EAAa,QAAS,QAAS,IAAI,EAI3E,CACA,cAAcr8D,EAAS,CACrB,MAAM08D,EAAiB,CAAC,OAAQ,SAAU,OAAO,EAC3C,CACJ,UAAAC,CACN,EAAQ,KAAK,KAAK,sBACRrpB,EAAW,KAAK,KAAK,sBAAsB,UAAY8iB,GACvDpxD,EAAQhF,EAAQ,MACtB,IAAI48D,EACJ,MAAMC,EAAc,EACdC,EAAoBnhG,GAAK,KAAK,MAAM,GAAKA,CAAC,EAAI,GACpD,GAAI,KAAK,KAAK,UAAW,CACvB,MAAM4jC,EAAS,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,EAAIs9D,CAAW,EACrEE,EAAgB,KAAK,MAAMx9D,GAA4C,KAAQ+zC,EAAS,GAAK,EAC7F0pB,EAAaz9D,EAASw9D,EAC5BH,EAAmB,KAAK,IAAItpB,EAAUwpB,EAAkBE,EAA+C,IAAK,CAAC,CAC/G,KAAO,CACL,MAAMz9D,EAAS,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,EAAIs9D,CAAW,EAC3ED,EAAmB,KAAK,IAAItpB,EAAUwpB,EAAkBv9D,EAA2C,IAAK,CAAC,CAC3G,CACAyF,EAAM,SAAW,QAAQ43D,CAAgB,kCACzC53D,EAAM,MAAQxL,GAAK,aAAa,GAAGmjE,CAAS,EACxC,KAAK,KAAK,gBAAkB,MAAQ,CAAC,KAAK,KAAK,OACjD33D,EAAM,UAAY03D,EAAe,KAAK,KAAK,aAAa,EAE5D,CACA,aAAa18D,EAASi9D,EAAY,CAC5BA,EACFj9D,EAAQ,aAAa,WAAY,EAAI,EAErCA,EAAQ,gBAAgB,UAAU,EAEpCA,EAAQ,aAAa,gBAAiBi9D,CAAU,CAClD,CACF,CACA,MAAMvG,WAAoCM,EAAwB,CAChE,YAAYr2D,EAAY,CACtB,MAAMw3D,EAAex3D,EAAW,aAAeA,EAAW,KAAK,cAAgB,CAACA,EAAW,KAAK,eAAiB,CAAC,CAACA,EAAW,KAAK,WACnI,MAAMA,EAAY,CAChB,aAAAw3D,CACN,CAAK,CACH,CACA,sBAAsBrvE,EAAMrN,EAAKpjB,EAAO6kG,EAAc,CACpD,MAAMj9D,EAAU,KAAK,kBACrB,UAAWD,KAAW,KAAK,mBAAmBlX,EAAK,KAAMA,EAAK,EAAE,EAC1DkX,EAAQ,aACVA,EAAQ,WAAWvkB,CAAG,EAAIpjB,GAE5B4nC,EAAQ,SAASD,EAAQ,GAAI,CAC3B,CAACk9D,CAAY,EAAG7kG,CACxB,CAAO,CAEL,CACA,QAAS,SACP,MAAM4nC,EAAU,KAAK,kBACf1hB,EAAK,KAAK,KAAK,GACrB,KAAK,UAAU,UAAU,IAAI,sBAAsB,EACnD,IAAIyhB,EAAU,KACd,GAAI,KAAK,YAAa,CACpB,MAAMG,EAAaF,EAAQ,SAAS1hB,EAAI,CACtC,MAAO,KAAK,KAAK,UACzB,CAAO,EACD,IAAI6wE,EAAcjvD,EAAW,OAAS,GACtC,MAAMg9D,EAASl9D,EAAQ,SAAS1hB,EAAI,CAClC,UAAW,KAAK,KAAK,MAC7B,CAAO,EAAE,UACC4+E,GAAU/N,EAAY,OAAS+N,IACjC/N,EAAcA,EAAY,MAAM,EAAG+N,CAAM,GAE3C,IAAIC,EAAuBj9D,EAAW,kBAAkBzqC,EAAA,KAAK,KAAK,cAAV,YAAAA,EAAuB,KAAK;AAAA,KAAS,KACzF0nG,GAAwB,KAAK,KAAK,OACpCA,EAAuBA,EAAqB,WAAW,OAAQ,EAAE,GAEnE,MAAMf,EAAc,CAClB,UAAWjN,EACX,eAAgBgO,EAChB,mBAAoB,KACpB,UAAW,EACX,QAAS,EACjB,EACU,KAAK,KAAK,WACZp9D,EAAU,SAAS,cAAc,UAAU,EAC3CA,EAAQ,YAAco9D,GAAwBhO,EAC1C,KAAK,KAAK,cACZpvD,EAAQ,MAAM,UAAY,YAG5BA,EAAU,SAAS,cAAc,OAAO,EACxCA,EAAQ,KAAO,KAAK,KAAK,SAAW,WAAa,OACjDA,EAAQ,aAAa,QAASo9D,GAAwBhO,CAAW,EAC7D,KAAK,KAAK,cACZpvD,EAAQ,MAAM,UAAY,WAG1B,KAAK,KAAK,eACZ,KAAK,UAAU,UAAU,IAAI,cAAc,EACvCC,EAAQ,IAAI1hB,CAAE,GAChB,KAAK,UAAU,UAAU,IAAI,iBAAiB,GAGlD83E,GAAqB,IAAIr2D,CAAO,EAChC,KAAK,eAAiBA,EACtBA,EAAQ,aAAa,kBAAmBzhB,CAAE,EAC1CyhB,EAAQ,SAAW,KAAK,KAAK,SAC7BA,EAAQ,KAAO,KAAK,KAAK,UACzBA,EAAQ,SAAW,EACnB,KAAM,CACJ,eAAAq9D,EACA,aAAAC,EACA,SAAAC,CACR,EAAU,KAAK,KACHC,EAAgB,CAAC,CAACF,GAAgB,KAAK,gBACzCD,IACFr9D,EAAQ,MAAQq9D,GAElB,KAAK,aAAar9D,EAAS,KAAK,KAAK,QAAQ,EACzCm9D,IACFn9D,EAAQ,UAAYm9D,GAEtBn9D,EAAQ,iBAAiB,QAASpe,GAAS,CACzCqe,EAAQ,SAAS1hB,EAAI,CACnB,MAAOqD,EAAM,OAAO,KAC9B,CAAS,EACD,KAAK,sBAAsBoe,EAAS,QAASpe,EAAM,OAAO,MAAO,OAAO,EACxEy6E,EAAY,eAAiB,IAC/B,CAAC,EACDr8D,EAAQ,iBAAiB,YAAape,GAAS,CAC7C,MAAMooC,EAAe,KAAK,KAAK,mBAAqB,GACpDhqB,EAAQ,MAAQq8D,EAAY,UAAYryC,EACxCqyC,EAAY,eAAiB,IAC/B,CAAC,EACD,IAAIoB,EAAe77E,GAAS,CAC1B,KAAM,CACJ,eAAA87E,CACV,EAAYrB,EACAqB,GAAmB,OACrB97E,EAAM,OAAO,MAAQ87E,GAEvB97E,EAAM,OAAO,WAAa,CAC5B,EACA,GAAI,KAAK,iBAAmB,KAAK,aAAc,CAC7Coe,EAAQ,iBAAiB,QAASpe,GAAS,OACzC,GAAIy6E,EAAY,QACd,OAEF,KAAM,CACJ,OAAAhjF,CACZ,EAAcuI,EAOJ,GANI47E,IACFnkF,EAAO,KAAOikF,EACVC,IACFlkF,EAAO,KAAOkkF,IAGdlB,EAAY,UAAW,CACzB,MAAMhkG,EAAQgkG,EAAY,UAC1B,GAAImB,EACF,GAAIF,IAAiB,OAAQ,CAC3B,MAAM9/C,EAAO,IAAI,KAAKnlD,CAAK,EACrB2rC,EAAQ,CAACwZ,EAAK,SAAQ,EAAIA,EAAK,WAAU,EAAIA,EAAK,YAAY,EACpEnkC,EAAO,MAAQ2qB,EAAM,IAAItpC,GAAKA,EAAE,WAAW,SAAS,EAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CACvE,MACE2e,EAAO,MAAQ,IAAI,KAAKhhB,EAAQi+F,EAAe,EAAE,YAAW,EAAG,MAAMgH,IAAiB,OAAS,IAAM,IAAK,CAAC,EAAE,CAAC,OAGhHjkF,EAAO,MAAQhhB,CAEnB,CACAgkG,EAAY,mBAAqBhjF,EAAO,MACxCgjF,EAAY,UAAY,GACnB3mG,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAmB,QACtB2mG,EAAY,QAAU,GAE1B,CAAC,EACDr8D,EAAQ,iBAAiB,oBAAqBy5D,GAAW,CACvD,KAAK,UAAU,UAAU,IAAI,iBAAiB,EAC9C,MAAMD,EAAU,CACd,MAAM53E,EAAO,CACXy6E,EAAY,UAAYz6E,EAAM,OAAO,OAAS,GACzC47E,GACHv9D,EAAQ,SAAS1hB,EAAI,CACnB,MAAO89E,EAAY,UAAU,SAAQ,CACvD,CAAiB,EAEHz6E,EAAM,OAAO,MAAQy6E,EAAY,SACnC,EACA,eAAez6E,EAAO,CACpB,KAAM,CACJ,eAAA87E,CAChB,EAAkB97E,EAAM,OACVy6E,EAAY,eAAiBqB,EACzBA,GAAmB,MAAwC97E,EAAM,SAAW,SAAS,gBACvFA,EAAM,OAAO,MAAQ87E,GAEvB,MAAMhlG,EAAO,CACX,eAAAglG,CAChB,EACkBF,IACF9kG,EAAK,MAAQglG,GAEfz9D,EAAQ,SAAS1hB,EAAI7lB,CAAI,CAC3B,EACA,SAASkpB,EAAO,CACdA,EAAM,OAAO,kBAAkB,GAAGA,EAAM,OAAO,QAAQ,CACzD,EACA,UAAWA,GAAS,OAClB,KAAM,CACJ,UAAA+7E,CAChB,EAAkB/7E,EAAM,OACJ,CACJ,OAAAvI,CAChB,EAAkBuI,EACJ,GAAI+7E,IAAc,EAAG,CACnBtkF,EAAO,gBAAgB,WAAW,EAClC,MACF,CACAA,EAAO,aAAa,YAAaskF,CAAS,EAC1C,IAAItlG,EAAQgkG,EAAY,UACpB,CAAChkG,GAASA,EAAM,QAAUslG,IAG9BtlG,EAAQA,EAAM,MAAM,EAAGslG,CAAS,EAChCtkF,EAAO,MAAQgjF,EAAY,UAAYhkG,EACvC4nC,EAAQ,SAAS1hB,EAAI,CACnB,MAAAlmB,CAChB,CAAe,GACD3C,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA6oB,EACA,KAAM,YACN,MAAAlmB,EACA,WAAY,GACZ,UAAW,EACX,SAAUghB,EAAO,eACjB,OAAQA,EAAO,YACjC,CACA,GACY,CACZ,EACU,KAAK,0BAA0BmgF,EAASC,CAAO,CACjD,CAAC,EACDz5D,EAAQ,iBAAiB,UAAWpe,GAAS,OAC3Cy6E,EAAY,UAAY,EACxB,IAAIuB,EAAY,GAQhB,GAPIh8E,EAAM,MAAQ,SAChBg8E,EAAY,EACHh8E,EAAM,MAAQ,SAAW,CAAC,KAAK,KAAK,UAC7Cg8E,EAAY,EACHh8E,EAAM,MAAQ,QACvBy6E,EAAY,UAAY,GAEtBuB,IAAc,GAChB,OAEF,KAAM,CACJ,MAAAvlG,CACZ,EAAcupB,EAAM,OACNy6E,EAAY,qBAAuBhkG,IAGvCgkG,EAAY,mBAAqBhkG,EACjCgkG,EAAY,UAAYhkG,GACxB3C,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA6oB,EACA,KAAM,YACN,MAAAlmB,EACA,WAAY,GACZ,UAAAulG,EACA,SAAUh8E,EAAM,OAAO,eACvB,OAAQA,EAAM,OAAO,YACnC,CACA,GACQ,CAAC,EACD,MAAMi8E,EAAgBJ,EACtBA,EAAe,KACfz9D,EAAQ,iBAAiB,OAAQpe,GAAS,SACxC,GAAI,CAACy6E,EAAY,SAAW,CAACz6E,EAAM,cACjC,QAEGlsB,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAmB,OACtB2mG,EAAY,QAAU,IAExB,KAAM,CACJ,OAAAhjF,CACZ,EAAcuI,EACJ,GAAI,CACF,MAAAvpB,CACZ,EAAcghB,EACJ,GAAImkF,EAAe,CACjB,GAAInlG,GAASilG,IAAiB,OAAQ,CACpC,MAAMt5D,EAAQ3rC,EAAM,MAAM,GAAG,EAAE,IAAIqC,GAAK,SAASA,EAAG,EAAE,CAAC,EACvDrC,EAAQ,IAAI,KAAK,IAAM,EAAG,EAAG2rC,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,CAAC,GAAK,CAAC,EAAE,QAAO,EACvE3qB,EAAO,KAAO,EAChB,MACOhhB,EAAM,SAAS,GAAG,IACrBA,EAAQ,GAAGA,CAAK,UAElBA,EAAQ,IAAI,KAAKA,CAAK,EAAE,QAAO,EAEjCghB,EAAO,KAAO,MAChB,CACAgjF,EAAY,UAAYhkG,EACpBgkG,EAAY,qBAAuBhkG,KACrC5C,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA8oB,EACA,KAAM,YACN,MAAAlmB,EACA,WAAY,GACZ,UAAWgkG,EAAY,UACvB,SAAUz6E,EAAM,OAAO,eACvB,OAAQA,EAAM,OAAO,YACrC,CACA,IAEUi8E,EAAcj8E,CAAK,CACrB,CAAC,GACGnsB,EAAA,KAAK,KAAK,UAAV,MAAAA,EAAmB,WACrBuqC,EAAQ,iBAAiB,cAAepe,GAAS,OAC/Cy6E,EAAY,mBAAqB,KACjC,KAAM,CACJ,KAAA3jG,EACA,OAAA2gB,CACd,EAAgBuI,EACE,CACJ,MAAAvpB,EACA,eAAAylG,EACA,aAAAC,CACd,EAAgB1kF,EACJ,IAAI2kF,EAAWF,EACbG,EAASF,EACX,OAAQn8E,EAAM,UAAS,CACrB,IAAK,qBACH,CACE,MAAMuH,EAAQ9wB,EAAM,UAAU,EAAGylG,CAAc,EAAE,MAAM,SAAS,EAC5D30E,IACF60E,GAAY70E,EAAM,CAAC,EAAE,QAEvB,KACF,CACF,IAAK,oBACH,CACE,MAAMA,EAAQ9wB,EAAM,UAAUylG,CAAc,EAAE,MAAM,SAAS,EACzD30E,IACF80E,GAAU90E,EAAM,CAAC,EAAE,QAErB,KACF,CACF,IAAK,wBACC20E,IAAmBC,IACrBC,GAAY,GAEd,MACF,IAAK,uBACCF,IAAmBC,IACrBE,GAAU,GAEZ,KAChB,CACYr8E,EAAM,eAAc,GACpBlsB,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA6oB,EACA,KAAM,YACN,MAAAlmB,EACA,OAAQK,GAAQ,GAChB,WAAY,GACZ,SAAAslG,EACA,OAAAC,CAChB,CACA,EACU,CAAC,EAEH,KAAK,mBAAmBj+D,EAASq8D,EAAa,CAAC,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,CAAC,EAAGz6E,GAASA,EAAM,OAAO,KAAK,CACtO,CAIA,GAHI67E,GACFz9D,EAAQ,iBAAiB,OAAQy9D,CAAY,EAE3C,KAAK,KAAK,KAAM,CAElB,MAAMS,GADa,KAAK,KAAK,KAAK,CAAC,EAAI,KAAK,KAAK,KAAK,CAAC,GACxBf,EAC/Bn9D,EAAQ,UAAU,IAAI,MAAM,EAC5BA,EAAQ,MAAM,YAAY,eAAgB,QAAQk+D,CAAS,iCAAiC,EAC5F,MAAMC,EAAY,KAAK,KAAK,cAC5B,GAAIA,IAAc,GAAKA,IAAc,EAAG,CACtC,MAAMC,EAAgB,IAAM,CAC1B,MAAMC,EAAOlB,EAASn9D,EAAQ,MAAM,OACpCA,EAAQ,MAAM,YAAY,gBAAiB,GAAGm+D,IAAc,EAAIE,GAAQ,EAAIA,CAAI,EAAE,CACpF,EACAD,EAAa,EACb,UAAWvqD,IAAO,CAAC,QAAS,OAAQ,YAAa,mBAAmB,EAClE7T,EAAQ,iBAAiB6T,EAAKuqD,CAAa,CAE/C,CACF,CACF,MACEp+D,EAAU,SAAS,cAAc,KAAK,EACtCA,EAAQ,YAAc,KAAK,KAAK,WAChCA,EAAQ,MAAM,cAAgB,SAC9BA,EAAQ,MAAM,QAAU,aACpB,KAAK,KAAK,eACZA,EAAQ,OAAS,IAGrB,YAAK,cAAcA,CAAO,EAC1B,KAAK,oBAAoBA,CAAO,EAChC,KAAK,4BAA4BA,CAAO,EACxC,KAAK,UAAU,OAAOA,CAAO,EACtB,KAAK,SACd,CACF,CACA,MAAM+2D,WAAyCC,EAAwB,CACrE,YAAYr2D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,CAAC,CAACA,EAAW,KAAK,YACtC,CAAK,CACH,CACF,CACA,MAAMi2D,WAAwCI,EAAwB,CACpE,YAAYr2D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,WAC/B,CAAK,CACH,CACA,QAAS,CACP,MAAMV,EAAU,KAAK,kBACfvnC,EAAO,KAAK,KACZ6lB,EAAK7lB,EAAK,GAChB,IAAIL,EAAQ4nC,EAAQ,SAAS1hB,EAAI,CAC/B,MAAO7lB,EAAK,cAAgBA,EAAK,UACvC,CAAK,EAAE,MACC,OAAOL,GAAU,WACnBA,EAAQA,IAAU,MAClB4nC,EAAQ,SAAS1hB,EAAI,CACnB,MAAAlmB,CACR,CAAO,GAEH,KAAK,UAAU,UAAU,IAAI,yBAA0B,UAAU,EACjE,MAAM2nC,EAAU,SAAS,cAAc,OAAO,EAC9C,OAAAq2D,GAAqB,IAAIr2D,CAAO,EAChCA,EAAQ,aAAa,kBAAmBzhB,CAAE,EAC1CyhB,EAAQ,SAAWtnC,EAAK,SACxB,KAAK,aAAasnC,EAAS,KAAK,KAAK,QAAQ,EAC7CA,EAAQ,KAAO,WACfA,EAAQ,KAAOtnC,EAAK,UAChBL,GACF2nC,EAAQ,aAAa,UAAW,EAAI,EAEtCA,EAAQ,aAAa,cAAetnC,EAAK,WAAW,EACpDsnC,EAAQ,SAAW,EACnBA,EAAQ,iBAAiB,SAAUpe,GAAS,CAC1C,KAAM,CACJ,KAAAxF,EACA,QAAAkiF,CACR,EAAU18E,EAAM,OACV,UAAW28E,KAAY,KAAK,mBAAmBniF,EAAMmC,CAAE,EAAG,CACxD,MAAMigF,EAAaF,GAAWC,EAAS,cAAgB7lG,EAAK,YACxD6lG,EAAS,aACXA,EAAS,WAAW,QAAUC,GAEhCv+D,EAAQ,SAASs+D,EAAS,GAAI,CAC5B,MAAOC,CACjB,CAAS,CACH,CACAv+D,EAAQ,SAAS1hB,EAAI,CACnB,MAAO+/E,CACf,CAAO,CACH,CAAC,EACDt+D,EAAQ,iBAAiB,YAAape,GAAS,CAC7C,MAAMooC,EAAetxD,EAAK,mBAAqB,MAC/CkpB,EAAM,OAAO,QAAUooC,IAAiBtxD,EAAK,WAC/C,CAAC,EACG,KAAK,iBAAmB,KAAK,eAC/BsnC,EAAQ,iBAAiB,oBAAqBy5D,GAAW,CACvD,MAAMD,EAAU,CACd,MAAM53E,EAAO,CACXA,EAAM,OAAO,QAAUA,EAAM,OAAO,QAAU,MAC9Cqe,EAAQ,SAAS1hB,EAAI,CACnB,MAAOqD,EAAM,OAAO,OAClC,CAAa,CACH,CACV,EACQ,KAAK,0BAA0B43E,EAASC,CAAO,CACjD,CAAC,EACD,KAAK,mBAAmBz5D,EAAS,KAAM,CAAC,CAAC,SAAU,UAAU,EAAG,CAAC,SAAU,QAAQ,EAAG,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,CAAC,EAAGpe,GAASA,EAAM,OAAO,OAAO,GAE/Q,KAAK,4BAA4Boe,CAAO,EACxC,KAAK,UAAU,OAAOA,CAAO,EACtB,KAAK,SACd,CACF,CACA,MAAM22D,WAA2CK,EAAwB,CACvE,YAAYr2D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,WAC/B,CAAK,CACH,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,yBAA0B,aAAa,EACpE,MAAMV,EAAU,KAAK,kBACfvnC,EAAO,KAAK,KACZ6lB,EAAK7lB,EAAK,GAChB,IAAIL,EAAQ4nC,EAAQ,SAAS1hB,EAAI,CAC/B,MAAO7lB,EAAK,cAAgB,MAAQA,EAAK,aAAeA,EAAK,WACnE,CAAK,EAAE,MAOH,GANI,OAAOL,GAAU,WACnBA,EAAQA,IAAUK,EAAK,YACvBunC,EAAQ,SAAS1hB,EAAI,CACnB,MAAAlmB,CACR,CAAO,GAECA,EACF,UAAWomG,KAAS,KAAK,mBAAmB/lG,EAAK,UAAW6lB,CAAE,EAC5D0hB,EAAQ,SAASw+D,EAAM,GAAI,CACzB,MAAO,EACjB,CAAS,EAGL,MAAMz+D,EAAU,SAAS,cAAc,OAAO,EA6B9C,GA5BAq2D,GAAqB,IAAIr2D,CAAO,EAChCA,EAAQ,aAAa,kBAAmBzhB,CAAE,EAC1CyhB,EAAQ,SAAWtnC,EAAK,SACxB,KAAK,aAAasnC,EAAS,KAAK,KAAK,QAAQ,EAC7CA,EAAQ,KAAO,QACfA,EAAQ,KAAOtnC,EAAK,UAChBL,GACF2nC,EAAQ,aAAa,UAAW,EAAI,EAEtCA,EAAQ,SAAW,EACnBA,EAAQ,iBAAiB,SAAUpe,GAAS,CAC1C,KAAM,CACJ,KAAAxF,EACA,QAAAkiF,CACR,EAAU18E,EAAM,OACV,UAAW68E,KAAS,KAAK,mBAAmBriF,EAAMmC,CAAE,EAClD0hB,EAAQ,SAASw+D,EAAM,GAAI,CACzB,MAAO,EACjB,CAAS,EAEHx+D,EAAQ,SAAS1hB,EAAI,CACnB,MAAO+/E,CACf,CAAO,CACH,CAAC,EACDt+D,EAAQ,iBAAiB,YAAape,GAAS,CAC7C,MAAMooC,EAAetxD,EAAK,kBAC1BkpB,EAAM,OAAO,QAAUooC,GAAiB,MAAsCA,IAAiBtxD,EAAK,WACtG,CAAC,EACG,KAAK,iBAAmB,KAAK,aAAc,CAC7C,MAAMgmG,EAAiBhmG,EAAK,YAC5BsnC,EAAQ,iBAAiB,oBAAqBy5D,GAAW,CACvD,MAAMD,EAAU,CACd,MAAO53E,GAAS,CACd,MAAM08E,EAAUI,IAAmB98E,EAAM,OAAO,MAChD,UAAW68E,KAAS,KAAK,mBAAmB78E,EAAM,OAAO,IAAI,EAAG,CAC9D,MAAM48E,EAAaF,GAAWG,EAAM,KAAOlgF,EACvCkgF,EAAM,aACRA,EAAM,WAAW,QAAUD,GAE7Bv+D,EAAQ,SAASw+D,EAAM,GAAI,CACzB,MAAOD,CACvB,CAAe,CACH,CACF,CACV,EACQ,KAAK,0BAA0BhF,EAASC,CAAO,CACjD,CAAC,EACD,KAAK,mBAAmBz5D,EAAS,KAAM,CAAC,CAAC,SAAU,UAAU,EAAG,CAAC,SAAU,QAAQ,EAAG,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,CAAC,EAAGpe,GAASA,EAAM,OAAO,OAAO,CAC/Q,CACA,YAAK,4BAA4Boe,CAAO,EACxC,KAAK,UAAU,OAAOA,CAAO,EACtB,KAAK,SACd,CACF,CACA,MAAM62D,WAA0CL,EAAsB,CACpE,YAAY71D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,KAAK,aACpC,CAAK,CACH,CACA,QAAS,CACP,MAAMkH,EAAY,MAAM,OAAM,EAC9BA,EAAU,UAAU,IAAI,yBAA0B,YAAY,EAC9D,MAAM82D,EAAc92D,EAAU,UAC9B,OAAI,KAAK,iBAAmB,KAAK,cAAgB82D,IAC/C,KAAK,4BAA4BA,CAAW,EAC5CA,EAAY,iBAAiB,oBAAqBlF,GAAW,CAC3D,KAAK,0BAA0B,CAAA,EAAIA,CAAO,CAC5C,CAAC,GAEI5xD,CACT,CACF,CACA,MAAMivD,WAAsCE,EAAwB,CAClE,YAAYr2D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAcA,EAAW,WAC/B,CAAK,CACH,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,wBAAwB,EACrD,MAAMV,EAAU,KAAK,kBACf1hB,EAAK,KAAK,KAAK,GACf4hB,EAAaF,EAAQ,SAAS1hB,EAAI,CACtC,MAAO,KAAK,KAAK,UACvB,CAAK,EACKqgF,EAAgB,SAAS,cAAc,QAAQ,EACrDvI,GAAqB,IAAIuI,CAAa,EACtCA,EAAc,aAAa,kBAAmBrgF,CAAE,EAChDqgF,EAAc,SAAW,KAAK,KAAK,SACnC,KAAK,aAAaA,EAAe,KAAK,KAAK,QAAQ,EACnDA,EAAc,KAAO,KAAK,KAAK,UAC/BA,EAAc,SAAW,EACzB,IAAIC,EAAkB,KAAK,KAAK,OAAS,KAAK,KAAK,QAAQ,OAAS,EAC/D,KAAK,KAAK,QACbD,EAAc,KAAO,KAAK,KAAK,QAAQ,OACnC,KAAK,KAAK,cACZA,EAAc,SAAW,KAG7BA,EAAc,iBAAiB,YAAah9E,GAAS,CACnD,MAAMooC,EAAe,KAAK,KAAK,kBAC/B,UAAW5pB,KAAUw+D,EAAc,QACjCx+D,EAAO,SAAWA,EAAO,QAAU4pB,CAEvC,CAAC,EACD,MAAM80C,EAAkB,CAAC1+D,EAAQ/nC,IAAU,CACzC,MAAM0mG,EAAW1mG,EAAM,WAAW,IAAK,GAAQ,EAC/C+nC,EAAO,YAAc2+D,EACjBA,IAAa1mG,GACf+nC,EAAO,aAAa,gBAAiB/nC,CAAK,CAE9C,EACA,UAAW+nC,KAAU,KAAK,KAAK,QAAS,CACtC,MAAM4+D,EAAgB,SAAS,cAAc,QAAQ,EACrDF,EAAgBE,EAAe5+D,EAAO,YAAY,EAClD4+D,EAAc,MAAQ5+D,EAAO,YACzBD,EAAW,MAAM,SAASC,EAAO,WAAW,IAC9C4+D,EAAc,aAAa,WAAY,EAAI,EAC3CH,EAAkB,IAEpBD,EAAc,OAAOI,CAAa,CACpC,CACA,IAAIC,EAAmB,KACvB,GAAIJ,EAAiB,CACnB,MAAMK,EAAoB,SAAS,cAAc,QAAQ,EACzDA,EAAkB,MAAQ,IAC1BA,EAAkB,aAAa,SAAU,EAAI,EAC7CA,EAAkB,aAAa,WAAY,EAAI,EAC/CN,EAAc,QAAQM,CAAiB,EACvCD,EAAmB,IAAM,CACvBC,EAAkB,OAAM,EACxBN,EAAc,oBAAoB,QAASK,CAAgB,EAC3DA,EAAmB,IACrB,EACAL,EAAc,iBAAiB,QAASK,CAAgB,CAC1D,CACA,MAAME,EAAWC,GAAY,CAC3B,MAAMhjF,EAAOgjF,EAAW,QAAU,cAC5B,CACJ,QAAArmG,EACA,SAAAsmG,CACR,EAAUT,EACJ,OAAKS,EAGE,MAAM,UAAU,OAAO,KAAKtmG,EAASqnC,GAAUA,EAAO,QAAQ,EAAE,IAAIA,GAAUA,EAAOhkB,CAAI,CAAC,EAFxFrjB,EAAQ,gBAAkB,GAAK,KAAOA,EAAQA,EAAQ,aAAa,EAAEqjB,CAAI,CAGpF,EACA,IAAIkjF,EAAiBH,EAAS,EAAK,EACnC,MAAMI,EAAW39E,GAAS,CACxB,MAAM7oB,EAAU6oB,EAAM,OAAO,QAC7B,OAAO,MAAM,UAAU,IAAI,KAAK7oB,EAASqnC,IAAW,CAClD,aAAcA,EAAO,aAAa,eAAe,GAAKA,EAAO,YAC7D,YAAaA,EAAO,KAC5B,EAAQ,CACJ,EACA,OAAI,KAAK,iBAAmB,KAAK,cAC/Bw+D,EAAc,iBAAiB,oBAAqBnF,GAAW,CAC7D,MAAMD,EAAU,CACd,MAAM53E,EAAO,CACXq9E,GAAA,MAAAA,IACA,MAAM5mG,EAAQupB,EAAM,OAAO,MACrB49E,EAAS,IAAI,IAAI,MAAM,QAAQnnG,CAAK,EAAIA,EAAQ,CAACA,CAAK,CAAC,EAC7D,UAAW+nC,KAAUw+D,EAAc,QACjCx+D,EAAO,SAAWo/D,EAAO,IAAIp/D,EAAO,KAAK,EAE3CH,EAAQ,SAAS1hB,EAAI,CACnB,MAAO4gF,EAAS,EAAI,CAClC,CAAa,EACDG,EAAiBH,EAAS,EAAK,CACjC,EACA,kBAAkBv9E,EAAO,CACvBg9E,EAAc,SAAW,EAC3B,EACA,OAAOh9E,EAAO,CACZ,MAAM7oB,EAAU6lG,EAAc,QACxB1iF,EAAQ0F,EAAM,OAAO,OAC3B7oB,EAAQmjB,CAAK,EAAE,SAAW,GAC1B0iF,EAAc,OAAO1iF,CAAK,EACtBnjB,EAAQ,OAAS,GACT,MAAM,UAAU,UAAU,KAAKA,EAASqnC,GAAUA,EAAO,QAAQ,IACjE,KACRrnC,EAAQ,CAAC,EAAE,SAAW,IAG1BknC,EAAQ,SAAS1hB,EAAI,CACnB,MAAO4gF,EAAS,EAAI,EACpB,MAAOI,EAAS39E,CAAK,CACnC,CAAa,EACD09E,EAAiBH,EAAS,EAAK,CACjC,EACA,MAAMv9E,EAAO,CACX,KAAOg9E,EAAc,SAAW,GAC9BA,EAAc,OAAO,CAAC,EAExB3+D,EAAQ,SAAS1hB,EAAI,CACnB,MAAO,KACP,MAAO,CAAA,CACrB,CAAa,EACD+gF,EAAiBH,EAAS,EAAK,CACjC,EACA,OAAOv9E,EAAO,CACZ,KAAM,CACJ,MAAA1F,EACA,aAAAujF,EACA,YAAA5E,CACd,EAAgBj5E,EAAM,OAAO,OACX89E,EAAcd,EAAc,SAAS1iF,CAAK,EAC1C8iF,EAAgB,SAAS,cAAc,QAAQ,EACrDF,EAAgBE,EAAeS,CAAY,EAC3CT,EAAc,MAAQnE,EAClB6E,EACFA,EAAY,OAAOV,CAAa,EAEhCJ,EAAc,OAAOI,CAAa,EAEpC/+D,EAAQ,SAAS1hB,EAAI,CACnB,MAAO4gF,EAAS,EAAI,EACpB,MAAOI,EAAS39E,CAAK,CACnC,CAAa,EACD09E,EAAiBH,EAAS,EAAK,CACjC,EACA,MAAMv9E,EAAO,CACX,KAAM,CACJ,MAAA8H,CACd,EAAgB9H,EAAM,OACV,KAAOg9E,EAAc,SAAW,GAC9BA,EAAc,OAAO,CAAC,EAExB,UAAW5xE,KAAQtD,EAAO,CACxB,KAAM,CACJ,aAAA+1E,EACA,YAAA5E,CAChB,EAAkB7tE,EACEgyE,EAAgB,SAAS,cAAc,QAAQ,EACrDF,EAAgBE,EAAeS,CAAY,EAC3CT,EAAc,MAAQnE,EACtB+D,EAAc,OAAOI,CAAa,CACpC,CACIJ,EAAc,QAAQ,OAAS,IACjCA,EAAc,QAAQ,CAAC,EAAE,SAAW,IAEtC3+D,EAAQ,SAAS1hB,EAAI,CACnB,MAAO4gF,EAAS,EAAI,EACpB,MAAOI,EAAS39E,CAAK,CACnC,CAAa,EACD09E,EAAiBH,EAAS,EAAK,CACjC,EACA,QAAQv9E,EAAO,CACb,MAAM+9E,EAAU,IAAI,IAAI/9E,EAAM,OAAO,OAAO,EAC5C,UAAWwe,KAAUxe,EAAM,OAAO,QAChCwe,EAAO,SAAWu/D,EAAQ,IAAIv/D,EAAO,KAAK,EAE5CH,EAAQ,SAAS1hB,EAAI,CACnB,MAAO4gF,EAAS,EAAI,CAClC,CAAa,EACDG,EAAiBH,EAAS,EAAK,CACjC,EACA,SAASv9E,EAAO,CACdA,EAAM,OAAO,SAAW,CAACA,EAAM,OAAO,QACxC,CACV,EACQ,KAAK,0BAA0B43E,EAASC,CAAO,CACjD,CAAC,EACDmF,EAAc,iBAAiB,QAASh9E,GAAS,OAC/C,MAAMi5E,EAAcsE,EAAS,EAAI,EAC3BS,EAAST,EAAS,EAAK,EAC7Bl/D,EAAQ,SAAS1hB,EAAI,CACnB,MAAOs8E,CACjB,CAAS,EACDj5E,EAAM,eAAc,GACpBlsB,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,yBAA0B,CAC5D,OAAQ,KACR,OAAQ,CACN,GAAA6oB,EACA,KAAM,YACN,MAAO+gF,EACP,OAAAM,EACA,SAAU/E,EACV,WAAY,GACZ,UAAW,EACX,QAAS,EACrB,CACA,EACM,CAAC,EACD,KAAK,mBAAmB+D,EAAe,KAAM,CAAC,CAAC,QAAS,OAAO,EAAG,CAAC,OAAQ,MAAM,EAAG,CAAC,YAAa,YAAY,EAAG,CAAC,aAAc,aAAa,EAAG,CAAC,aAAc,YAAY,EAAG,CAAC,UAAW,UAAU,EAAG,CAAC,QAAS,QAAQ,EAAG,CAAC,QAAS,UAAU,CAAC,EAAGh9E,GAASA,EAAM,OAAO,KAAK,GAE/Qg9E,EAAc,iBAAiB,QAAS,SAAUh9E,EAAO,CACvDqe,EAAQ,SAAS1hB,EAAI,CACnB,MAAO4gF,EAAS,EAAI,CAC9B,CAAS,CACH,CAAC,EAEC,KAAK,KAAK,OACZ,KAAK,cAAcP,CAAa,EAElC,KAAK,oBAAoBA,CAAa,EACtC,KAAK,4BAA4BA,CAAa,EAC9C,KAAK,UAAU,OAAOA,CAAa,EAC5B,KAAK,SACd,CACF,CACA,MAAM3H,WAA+BgB,EAAkB,CACrD,YAAYt3D,EAAY,CACtB,KAAM,CACJ,KAAAjoC,EACA,SAAAmnG,EACA,OAAAz+D,CACN,EAAQT,EACEm/D,EAAoB,CAAC,CAAC1+D,EAAO,gBACnC,MAAMT,EAAY,CAChB,aAAc,CAACm/D,GAAqB7H,GAAkB,cAAcv/F,CAAI,CAC9E,CAAK,EAVLukC,EAAA,KAAA8iE,IAWI,QAAK,SAAWF,EACZC,GAAqB7H,GAAkB,cAAcv/F,CAAI,EAAG,CAC9D,MAAMmgG,EAAQ,KAAK,MAAQn8D,EAAA,KAAKqjE,GAAAC,IAAL,WAC3B,UAAWhgE,KAAW6/D,EACpB7/D,EAAQ,MAAQ64D,CAEpB,MACE,KAAK,MAAQ,IAEjB,CAiBA,QAAS,CACP,KAAM,CACJ,UAAAhxD,CACN,EAAQ,KACJA,EAAU,UAAU,IAAI,iBAAiB,EACzCA,EAAU,KAAO,UACjB,MAAMgxD,EAAQ,KAAK,MAAQn8D,EAAA,KAAKqjE,GAAAC,IAAL,WACrBxnD,EAAa,CAAA,EACnB,UAAWxY,KAAW,KAAK,SACzBA,EAAQ,MAAQ64D,EAChB74D,EAAQ,UAAU,aAAe,SACjCwY,EAAW,KAAKxY,EAAQ,KAAK,EAAE,EAC/BA,EAAQ,iBAAgB,EAE1B,YAAK,UAAU,aAAa,gBAAiBwY,EAAW,IAAIj6B,GAAM,GAAGuX,EAAgB,GAAGvX,CAAE,EAAE,EAAE,KAAK,GAAG,CAAC,EAChG,KAAK,SACd,CACF,CAtDAwhF,GAAA,YAqBEC,GAAY,UAAG,CACb,OAAO,IAAIC,GAAa,CACtB,UAAW,KAAK,UAChB,MAAO,KAAK,KAAK,MACjB,SAAU,KAAK,KAAK,SACpB,iBAAkB,KAAK,KAAK,kBAAoB,KAAK,KAAK,aAC1D,YAAa,KAAK,KAAK,YACvB,SAAU,KAAK,KAAK,SACpB,KAAM,KAAK,KAAK,KAChB,WAAY,KAAK,KAAK,YAAc,KACpC,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,KAAM,KAAK,KAAK,KAChB,eAAgB,KAAK,OAAO,eAClC,CAAK,CACH,EAmBF,MAAMA,EAAa,CA2BjB,YAAY,CACV,UAAAp4D,EACA,MAAA9D,EACA,SAAA87D,EACA,SAAAK,EACA,iBAAAh8C,EACA,YAAAnL,EACA,SAAAwE,EACA,OAAAnc,EACA,KAAA9G,EACA,WAAA6lE,EACA,KAAAC,EACA,eAAAtwD,EAAiB,IACrB,EAAK,CAxCL7S,EAAA,KAAAojE,IACEpjE,EAAA,KAAAmU,GAAkB,MAClBnU,EAAA,KAAAqjE,GAAgB5jE,EAAA,KAAK2jE,GAAAxL,IAAS,KAAK,IAAI,GACvC53D,EAAA,KAAAsjE,GAAa7jE,EAAA,KAAK2jE,GAAAG,IAAM,KAAK,IAAI,GACjCvjE,EAAA,KAAAwjE,GAAa/jE,EAAA,KAAK2jE,GAAAK,IAAM,KAAK,IAAI,GACjCzjE,EAAA,KAAA0jE,GAAejkE,EAAA,KAAK2jE,GAAAO,IAAQ,KAAK,IAAI,GACrC3jE,EAAA,KAAA4jE,GAAS,MACT5jE,EAAA,KAAAuW,GAAa,MACbvW,EAAA,KAAA6jE,GAAe,MACf7jE,EAAA,KAAA8jE,GAAW,MACX9jE,EAAA,KAAA+jE,GAAY,MACZ/jE,EAAA,KAAAgkE,GAAU,MACVhkE,EAAA,KAAAikE,GAAc,MACdjkE,EAAA,KAAAkkE,GAAU,IACVlkE,EAAA,KAAAmkE,GAAS,MACTnkE,EAAA,KAAAokE,GAAwB,MACxBpkE,EAAA,KAAAuQ,GAAY,MACZvQ,EAAA,KAAAqkE,GAAiB,MACjBrkE,EAAA,KAAAskE,GAAyB,MACzBtkE,EAAA,KAAAggB,GAAiB,MACjBhgB,EAAA,KAAAukE,GAAQ,MACRvkE,EAAA,KAAA4f,GAAY,MACZ5f,EAAA,KAAAwkE,GAAY,MACZxkE,EAAA,KAAAs7D,GAAW,MACXt7D,EAAA,KAAAykE,GAAc,IACdzkE,EAAA,KAAA0kE,GAAgB,MAChB1kE,EAAA,KAAA2kE,GAAe,MAebx+D,EAAA,KAAKoQ,GAAa3L,GAClBzE,EAAA,KAAKq+D,GAAYvB,GACjB98D,EAAA,KAAK09D,GAAe/nD,GACpB3V,EAAA,KAAKyZ,GAAYU,GACjBna,EAAA,KAAK69D,GAAU7/D,GACfgC,EAAA,KAAKy9D,GAAS98D,GACdX,EAAA,KAAKo+D,GAAQlnE,GACb8I,EAAA,KAAK89D,GAAcf,GACnB/8D,EAAA,KAAK49D,GAAYnB,GACjBz8D,EAAA,KAAKgO,GAAkBtB,GACvB1M,EAAA,KAAKu+D,GAAgB9B,EAAS,CAAC,GAC/Bz8D,EAAA,KAAK29D,GAAW79D,GAAc,aAAaghB,CAAgB,GAC3D,KAAK,QAAU27C,EAAS,QAAQ/lG,GAAKA,EAAE,2BAA2B,EAC7Dg2C,IACHpT,EAAA,KAAK2jE,GAAAwB,IAAL,WACA/+D,EAAA,KAAK0Q,IAAW,OAAS,GACrB4sD,GACF1jE,EAAA,KAAK2jE,GAAAO,IAAL,WAGN,CAkCA,qBAAsB,CACpB,GAAI99D,EAAA,KAAKw+D,IAAgB,CAClBx+D,EAAA,KAAKw+D,IAAe,YACvBx+D,EAAA,KAAK6+D,IAAc,UAAU,MAAM7+D,EAAA,KAAKw+D,GAAc,EAExD,MACF,CAIA,GAHKx+D,EAAA,KAAKy+D,KACR7kE,EAAA,KAAK2jE,GAAAyB,IAAL,WAEE,CAACh/D,EAAA,KAAKy+D,IACR,OAEF,KAAM,CACJ,OAAAzpG,CACN,EAAQsrC,EAAA,KAAKi+D,GAAwB,IAAI,iBAC/BU,EAAej/D,EAAA,KAAK6+D,IAAc,oBAClCK,EAAc,IAAM,CACxBl/D,EAAA,KAAKsO,IAAgB,mBAAmB,KAAM,GAAM,OAAW,CAAC2wD,CAAY,CAC9E,EACME,EAAY,IAAM,CACtBn/D,EAAA,KAAKsO,IAAgB,mBAAmB,KAAM,GAAO,GAAM,CAAC2wD,CAAY,CAC1E,EACMG,EAAY,IAAM,CACtBp/D,EAAA,KAAKsO,IAAgB,mBAAmB,KAAM,GAAO,EAAK,CAC5D,EACA,GAAK2wD,EAwBE,CACL3+D,EAAA,KAAKk+D,GAAiBx+D,EAAA,KAAK6+D,IAAc,WACzC,UAAW3hE,KAAW,KAAK,QACzBA,EAAQ,aAAe,SACvBA,EAAQ,aAAe,eACvBA,EAAQ,iBAAiB,UAAW8C,EAAA,KAAKw9D,IAAe,CACtD,OAAAxoG,CACV,CAAS,EACDkoC,EAAQ,iBAAiB,QAASgiE,EAAa,CAC7C,OAAAlqG,CACV,CAAS,EACDkoC,EAAQ,iBAAiB,eAAgBiiE,EAAW,CAClD,OAAAnqG,CACV,CAAS,EACDkoC,EAAQ,iBAAiB,eAAgBkiE,EAAW,CAClD,OAAApqG,CACV,CAAS,EACDkoC,EAAQ,UAAU,IAAI,kBAAkB,CAE5C,KA3CmB,CACjB,MAAMkJ,EAAS9F,EAAA,KAAKk+D,GAAiB,SAAS,cAAc,QAAQ,GACpEp4D,EAAO,UAAY,0BACnB,MAAMi5D,EAAkBr/D,EAAA,KAAK6+D,IAAc,UAC3Cz4D,EAAO,MAAM,OAAS,SAASi5D,EAAgB,MAAM,OAAQ,EAAE,EAAI,EACnEj5D,EAAO,SAAW,EAClBA,EAAO,aAAe,SACtBA,EAAO,aAAe,eACtBA,EAAO,aAAa,eAAgB,2BAA2B,EAC/DxM,EAAA,KAAK2jE,GAAA+B,IAAL,WACA1lE,EAAA,KAAK2jE,GAAAgC,IAAL,WACAn5D,EAAO,iBAAiB,UAAWpG,EAAA,KAAKw9D,IAAe,CACrD,OAAAxoG,CACR,CAAO,EACDoxC,EAAO,iBAAiB,QAAS84D,EAAa,CAC5C,OAAAlqG,CACR,CAAO,EACDoxC,EAAO,iBAAiB,eAAgB+4D,EAAW,CACjD,OAAAnqG,CACR,CAAO,EACDoxC,EAAO,iBAAiB,eAAgBg5D,EAAW,CACjD,OAAApqG,CACR,CAAO,EACDqqG,EAAgB,MAAMj5D,CAAM,CAC9B,CAoBF,CAwBA,IAAI,oBAAqB,CACvB,KAAM,CACJ,MAAAnF,EACA,QAAAkC,CACN,EAAQnD,EAAA,KAAK6+D,IAAc,YACvB,OAAK59D,EAGEjB,EAAA,KAAKm+D,IAAQ,gBAAgB,iBAAiBl9D,EAAOkC,CAAO,EAF1D,IAGX,CACA,oBAAqB,CACnB,WAAW,IAAM,QACfvwC,EAAAotC,EAAA,KAAKw+D,MAAL,MAAA5rG,EAAqB,OACvB,EAAG,CAAC,CACN,CACA,SAAU,CACR,KAAM,CACJ,SAAA6nD,EACA,MAAAxZ,EACA,QAAAkC,EACA,aAAAge,EACA,iBAAAC,CACN,EAAQphB,EAAA,KAAK6+D,IAAc,YACvB,MAAO,CACL,YAAa,CACX,IAAK,KAAK,OAClB,EACM,SAAApkD,EACA,MAAAxZ,EACA,QAAAkC,EACA,aAAAge,EACA,iBAAAC,CACN,CACE,CACA,IAAI,oBAAqB,CACvB,OAAOphB,EAAA,KAAKw+D,GACd,CACA,IAAI,SAAU,CACZ,OAAAx+D,EAAA,KAAK8+D,KAALx+D,EAAA,KAAKw+D,GAAiB9+D,EAAA,KAAK6+D,IAAc,aAClC7+D,EAAA,KAAK8+D,GACd,CACA,IAAI,QAAQnoG,EAAM,CACZA,IAAS,KAAK,UAGlBqpC,EAAA,KAAK6+D,IAAc,YAAcv+D,EAAA,KAAKw+D,GAAenoG,GACvD,CACA,OAAQ,QACN/D,EAAAotC,EAAA,KAAK6+D,IAAc,YAAnB,MAAAjsG,EAA8B,OAChC,CACA,IAAI,0BAA2B,CAC7B,OAAOotC,EAAA,KAAK6+D,IAAc,MAAM,sBAAqB,CACvD,CACA,uBAAuB,CACrB,SAAAvkD,EACA,SAAAC,CACJ,EAAK,CACIva,EAAA,KAAKw+D,MAGVx+D,EAAA,KAAKw+D,IAAe,UAAU,OAAO,WAAYlkD,CAAQ,EACzDta,EAAA,KAAKw+D,IAAe,aAAejkD,EACrC,CACA,yBAAyBD,EAAU,CACjCta,EAAA,KAAKw+D,IAAe,UAAU,OAAO,WAAYlkD,CAAQ,CAC3D,CACA,IAAI,sBAAuB,CACzB,GAAIta,EAAA,KAAKma,IACP,OAAOna,EAAA,KAAKma,IAEd,KAAM,CACJ,EAAAthD,EACA,EAAAf,EACA,OAAA2kC,CACN,EAAQuD,EAAA,KAAKw+D,IAAe,sBAAqB,EACvC,CACJ,EAAGpkD,EACH,EAAGC,EACH,MAAOhD,EACP,OAAQC,CACd,EAAQtX,EAAA,KAAK6+D,IAAc,MAAM,sBAAqB,EAClD,MAAO,EAAEhmG,EAAIuhD,GAAW/C,GAAcv/C,EAAI2kC,EAAS4d,GAAW/C,CAAY,CAC5E,CACA,IAAI,qBAAqBxgB,EAAK,CAC5BwJ,EAAA,KAAK6Z,GAAiBrjB,EACxB,CACA,yBAA0B,CACxB,OAAOkJ,EAAA,KAAKma,MAAmB,IACjC,CACA,IAAI,uBAAwB,CAC1B,OAAOna,EAAA,KAAKy+D,GACd,CACA,IAAI,oBAAqB,CACvB,OAAOz+D,EAAA,KAAKw+D,IAAe,sBAAqB,EAAG,MAAQ,KAAK,yBAAyB,KAC3F,CACA,YAAYvoG,EAAS,CACnB,KAAM,CAAC+7C,EAAMC,CAAI,EAAIjS,EAAA,KAAKma,KAAkB,KAAK,sBAAsB,IAAIthD,GAAKA,EAAI,GAAG,EACjF2hD,EAAmB,KAAK,yBACxB,CACJ,EAAGJ,EACH,EAAGC,EACH,MAAOhD,EACP,OAAQC,CACd,EAAQkD,EACJxa,EAAA,KAAKsO,IAAgB,WAAW,KAAM,KAAM8L,EAAUpI,EAAOqF,EAAagD,EAAUpI,EAAOqF,EAAc,CACvG,GAAGrhD,EACH,iBAAAukD,CACN,CAAK,CACH,CACA,QAAS,SACP,GAAIxa,EAAA,KAAKs+D,IACP,OAEF,MAAMvI,EAAQz1D,EAAA,KAAKg+D,GAAS,SAAS,cAAc,KAAK,GAExD,GADAvI,EAAM,UAAY,QACd/1D,EAAA,KAAK+9D,IAAQ,CACf,MAAM/5D,EAAY+xD,EAAM,MAAM,aAAer/D,GAAK,aAAa,GAAGsJ,EAAA,KAAK+9D,GAAM,EAC7EhI,EAAM,MAAM,gBAAkB,sBAAsB/xD,CAAS,cAC/D,CACA,MAAM1a,EAAS,SAAS,cAAc,MAAM,EAE5C,GADAA,EAAO,UAAY,UACf12B,EAAAotC,EAAA,KAAK2+D,MAAL,MAAA/rG,EAAgB,IAAK,CACvB,MAAMu5B,EAAQ,SAAS,cAAc,MAAM,EAC3CA,EAAM,UAAY,QAClB7C,EAAO,OAAO6C,CAAK,EAClB,CACC,IAAKA,EAAM,IACX,IAAKA,EAAM,WACnB,EAAU6T,EAAA,KAAK2+D,GACX,CAEA,GADA5I,EAAM,OAAOzsE,CAAM,EACf0W,EAAA,KAAKi+D,IAAU,CACjB,MAAM78C,EAAmB,SAAS,cAAc,MAAM,EACtDA,EAAiB,UAAY,YAC7BA,EAAiB,aAAa,eAAgB,mCAAmC,EACjFA,EAAiB,aAAa,iBAAkB,KAAK,UAAU,CAC7D,QAASphB,EAAA,KAAKi+D,IAAS,QAAO,CACtC,CAAO,CAAC,EACF78C,EAAiB,SAAWphB,EAAA,KAAKi+D,IAAS,YAAW,EACrD30E,EAAO,OAAO83B,CAAgB,CAChC,CACAxc,GAAe,CACb,KAAM5E,EAAA,KAAKu9D,GAAAiC,KAASx/D,EAAA,KAAKg+D,IAAa,IACtC,KAAKrrG,EAAAqtC,EAAA,KAAKg+D,MAAL,YAAArrG,EAAmB,IACxB,UAAW,cACjB,EAAOojG,CAAK,EACR/1D,EAAA,KAAK0Q,IAAW,OAAOqlD,CAAK,CAC9B,CAqDA,aAAa,CACX,KAAAv+D,EACA,MAAAu+D,EACA,QAAAjgD,CACJ,EAAK,OACD,GAAI9V,EAAA,KAAKsO,IAAiB,CACpBwH,GACF,KAAK,OAAM,EACXxV,EAAA,KAAKw+D,GAAe,OACX/I,IACLA,EAAM,QACR,KAAK,OAAM,GAEXn8D,EAAA,KAAK2jE,GAAA+B,IAAL,WACAh/D,EAAA,KAAKw+D,GAAe/I,EAAM,QAG1Bv+D,IACF8I,EAAA,KAAKm+D,GAAyB,MAC9B7kE,EAAA,KAAK2jE,GAAAyB,IAAL,WACAplE,EAAA,KAAK2jE,GAAAgC,IAAL,YAEF,MACF,CACA,GAAIzpD,GAAWigD,GAAA,MAAAA,EAAO,QAAS,CAC7B,KAAK,OAAM,EACX,MACF,CACAn8D,EAAA,KAAK2jE,GAAAwB,IAAL,WACA/+D,EAAA,KAAKy1D,KAALn1D,EAAA,KAAKm1D,GAAa,CAChB,YAAaz1D,EAAA,KAAKg+D,IAClB,SAAUh+D,EAAA,KAAK+Z,GACrB,GACQviB,GACF8I,EAAA,KAAKoK,GAAY,MAEfqrD,GAASA,EAAM,OACjBz1D,EAAA,KAAKyZ,GAAYngB,EAAA,KAAK2jE,GAAAkC,IAAL,UAAuB1J,EAAM,OAC9Cz1D,EAAA,KAAK29D,GAAW79D,GAAc,aAAa21D,EAAM,IAAI,GACrDz1D,EAAA,KAAK09D,GAAe,QAEtBprG,EAAAotC,EAAA,KAAKs+D,MAAL,MAAA1rG,EAAa,SACb0tC,EAAA,KAAKg+D,GAAS,KAChB,CACA,aAAc,OACPt+D,EAAA,KAAKy1D,MAGT,CACC,YAAazsD,GAAA,KAAAg1D,IAAA,EACb,SAAUh1D,GAAA,KAAA+Q,IAAA,CAChB,EAAQ/Z,EAAA,KAAKy1D,IACTn1D,EAAA,KAAKm1D,GAAW,OAChB7iG,EAAAotC,EAAA,KAAKs+D,MAAL,MAAA1rG,EAAa,SACb0tC,EAAA,KAAKg+D,GAAS,MACdh+D,EAAA,KAAKoK,GAAY,MACnB,CACA,QAAS,WASP,IARA93C,EAAAotC,EAAA,KAAKu+D,MAAL,MAAA3rG,EAA4B,QAC5B0tC,EAAA,KAAKi+D,GAAwB,OAC7B5rG,EAAAqtC,EAAA,KAAKs+D,MAAL,MAAA3rG,EAAa,SACb2tC,EAAA,KAAKg+D,GAAS,MACdh+D,EAAA,KAAKs+D,GAAc,IACnBt+D,EAAA,KAAK+9D,GAAU,KACfzoF,EAAAoqB,EAAA,KAAKw+D,MAAL,MAAA5oF,EAAqB,SACrB0qB,EAAA,KAAKk+D,GAAiB,MAClB,KAAK,QACP,UAAWthE,KAAW,KAAK,QACzBA,EAAQ,UAAU,OAAO,kBAAkB,CAGjD,CA2EA,WAAY,CACVoD,EAAA,KAAKs+D,GAAc,KAAK,WACnB5+D,EAAA,KAAK4+D,MAGV5+D,EAAA,KAAK0Q,IAAW,OAAS,GAC3B,CACA,WAAY,CACN1Q,EAAA,KAAKsO,MAGT1U,EAAA,KAAK2jE,GAAAwB,IAAL,WACK/+D,EAAA,KAAK4+D,MAGL5+D,EAAA,KAAKs+D,KACR1kE,EAAA,KAAK2jE,GAAAK,IAAL,WAEFt9D,EAAA,KAAKs+D,GAAc,IACnB5+D,EAAA,KAAK0Q,IAAW,OAAS,IAC3B,CACA,IAAI,WAAY,CACd,OAAI1Q,EAAA,KAAKsO,IACA,GAEFtO,EAAA,KAAK0Q,IAAW,SAAW,EACpC,CACF,CAjjBEpC,GAAA,YACAkvD,GAAA,YACAC,GAAA,YACAE,GAAA,YACAE,GAAA,YACAE,GAAA,YACArtD,GAAA,YACAstD,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACA7zD,GAAA,YACA8zD,GAAA,YACAC,GAAA,YACAtkD,GAAA,YACAukD,GAAA,YACA3kD,GAAA,YACA4kD,GAAA,YACAlJ,GAAA,YACAmJ,GAAA,YACAC,GAAA,YACAC,GAAA,YA1BFvB,GAAA,YA8DEwB,GAAkB,UAAG,OACnB,GAAI/+D,EAAA,KAAKu+D,IACP,OAEFj+D,EAAA,KAAKi+D,GAAwB,IAAI,iBACjC,KAAM,CACJ,OAAAvpG,CACN,EAAQgrC,EAAA,KAAKu+D,IACT,UAAWrhE,KAAW,KAAK,QACzBA,EAAQ,iBAAiB,QAAS8C,EAAA,KAAK69D,IAAc,CACnD,OAAA7oG,CACR,CAAO,EACDkoC,EAAQ,iBAAiB,eAAgB8C,EAAA,KAAK29D,IAAY,CACxD,OAAA3oG,CACR,CAAO,EACDkoC,EAAQ,iBAAiB,eAAgB8C,EAAA,KAAKy9D,IAAY,CACxD,OAAAzoG,CACR,CAAO,EACDkoC,EAAQ,UAAU,IAAI,kBAAkB,EAE1C,UAAWA,KAAW8C,EAAA,KAAKk+D,KACzBtrG,EAAAsqC,EAAQ,YAAR,MAAAtqC,EAAmB,iBAAiB,UAAWotC,EAAA,KAAKw9D,IAAe,CACjE,OAAAxoG,CACR,EAEE,EACAgqG,GAAyB,UAAG,CAC1B,MAAM9hE,EAAU8C,EAAA,KAAKk+D,IAAU,KAAK,GAAK,EAAE,gBAAgB,EACtDhhE,GAGLoD,EAAA,KAAKm+D,GAAyBvhE,EAAQ,gBAAgBA,EAAQ,qBAAqB,EACrF,EAwEAqiE,GAA4B,UAAG,CAC7B,GAAIv/D,EAAA,KAAK6+D,IAAc,mBAAqB,CAAC7+D,EAAA,KAAK6+D,IAAc,OAC9D,OAEG7+D,EAAA,KAAKw+D,KACR,KAAK,oBAAmB,EAE1B,KAAM,CAAC3lG,EAAGf,CAAC,EAAIkoC,EAAA,KAAKy+D,IACd,CACJ,MAAAv8D,CACN,EAAQlC,EAAA,KAAKw+D,IACTt8D,EAAM,KAAO,QAAQrpC,CAAC,KACtBqpC,EAAM,IAAM,QAAQpqC,CAAC,gCACvB,EACAwnG,GAAY,UAAG,CACTt/D,EAAA,KAAK6+D,IAAc,oBAGlB7+D,EAAA,KAAKw+D,KACR,KAAK,oBAAmB,EAE1Bx+D,EAAA,KAAKw+D,IAAe,MAAM,gBAAkB,KAAK,oBAAsB,GACzE,EAqJIgB,GAAK,UAAG,CACV,MAAM/kD,EAAWza,EAAA,KAAK+Z,IAChB9D,EAAcjW,EAAA,KAAKg+D,IACzB,OAAIvjD,GAAA,MAAAA,EAAU,MAAQ,EAACxE,GAAA,MAAAA,EAAa,MAAOA,EAAY,MAAQwE,EAAS,MAC/Dza,EAAA,KAAK+Z,IAAU,MAAQ,IAGlC,EACI2lD,GAAS,UAAG,WACd,QAAO9pF,GAAAjjB,GAAAC,EAAAotC,EAAA,KAAKu9D,GAAAiC,MAAL,YAAA5sG,EAAY,aAAZ,YAAAD,EAAwB,QAAxB,YAAAijB,EAA+B,WAAY,CACpD,EACI+pF,GAAU,UAAG,WACf,QAAO/pF,GAAAjjB,GAAAC,EAAAotC,EAAA,KAAKu9D,GAAAiC,MAAL,YAAA5sG,EAAY,aAAZ,YAAAD,EAAwB,QAAxB,YAAAijB,EAA+B,QAAS,IACjD,EACA6pF,GAAiB,SAAC9oG,EAAM,CACtB,MAAMipG,EAAa,CAAA,EACbC,EAAe,CACnB,IAAKlpG,EACL,KAAM,CACJ,KAAM,MACN,WAAY,CACV,IAAK,MACf,EACQ,SAAU,CAAC,CACT,KAAM,IACN,SAAUipG,CACpB,CAAS,CACT,CACA,EACUE,EAAiB,CACrB,MAAO,CACL,MAAO9/D,EAAA,KAAKu9D,GAAAoC,IACZ,SAAU3/D,EAAA,KAAKu9D,GAAAmC,IAAY,QAAQ1/D,EAAA,KAAKu9D,GAAAmC,GAAS,kCAAoC,EAC7F,CACA,EACI,UAAW/pG,KAAQgB,EAAK,MAAM;AAAA,CAAI,EAChCipG,EAAW,KAAK,CACd,KAAM,OACN,MAAOjqG,EACP,WAAYmqG,CACpB,CAAO,EAEH,OAAOD,CACT,EACA9N,GAAQ,SAACjzE,EAAO,CACVA,EAAM,QAAUA,EAAM,UAAYA,EAAM,SAAWA,EAAM,UAGzDA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,UAAYkhB,EAAA,KAAKq+D,MAC1DzkE,EAAA,KAAK2jE,GAAAO,IAAL,UAEJ,EAyEAiC,GAAY,UAAG,CACb,GAAI//D,EAAA,KAAK0K,MAAc,KACrB,OAEF,KAAM,CACJ,KAAM,CACJ,KAAAq1C,CACR,EACM,SAAU,CACR,QAAS,CACP,UAAA/9C,EACA,WAAAC,EACA,MAAAid,EACA,MAAAC,CACV,CACA,CACA,EAAQnf,EAAA,KAAKm+D,IACT,IAAI6B,EAAgB,CAAC,CAAChgE,EAAA,KAAKo+D,IACvB5mE,EAAOwoE,EAAgBhgE,EAAA,KAAKo+D,IAAcp+D,EAAA,KAAK0+D,IACnD,UAAWxhE,KAAW8C,EAAA,KAAKk+D,IACzB,GAAI,CAAC1mE,GAAQd,GAAK,UAAUwG,EAAQ,KAAK,KAAM1F,CAAI,IAAM,KAAM,CAC7DA,EAAO0F,EAAQ,KAAK,KACpB8iE,EAAgB,GAChB,KACF,CAEF,MAAMC,EAAiBvpE,GAAK,cAAc,CAACc,EAAK,CAAC,EAAGuoD,EAAK,CAAC,EAAIvoD,EAAK,CAAC,EAAIuoD,EAAK,CAAC,EAAGvoD,EAAK,CAAC,EAAGuoD,EAAK,CAAC,EAAIvoD,EAAK,CAAC,EAAIuoD,EAAK,CAAC,CAAC,CAAC,EAEhH1oC,EAAc2oD,EAAgBxoE,EAAK,CAAC,EAAIA,EAAK,CAAC,EADV,EACkD,EACtF0oE,EAAYD,EAAe,CAAC,EAAI5oD,EAChC8oD,EAAWF,EAAe,CAAC,EACjC3/D,EAAA,KAAKoK,GAAY,CAAC,KAAOw1D,EAAYhhD,GAASld,EAAW,KAAOm+D,EAAWhhD,GAASld,CAAU,GAC9F,KAAM,CACJ,MAAAC,CACN,EAAQlC,EAAA,KAAK0Q,IACTxO,EAAM,KAAO,GAAGlC,EAAA,KAAK0K,IAAU,CAAC,CAAC,IACjCxI,EAAM,IAAM,GAAGlC,EAAA,KAAK0K,IAAU,CAAC,CAAC,GAClC,EACAozD,GAAO,UAAG,CACR,GAAI99D,EAAA,KAAKsO,IAAiB,CACxBtO,EAAA,KAAKsO,IAAgB,mBAAmB,KAAM,EAAK,EACnD,MACF,CACAhO,EAAA,KAAK+9D,GAAU,CAACr+D,EAAA,KAAKq+D,KACjBr+D,EAAA,KAAKq+D,KACPzkE,EAAA,KAAK2jE,GAAAK,IAAL,WACA59D,EAAA,KAAK0Q,IAAW,iBAAiB,QAAS1Q,EAAA,KAAK69D,GAAY,EAC3D79D,EAAA,KAAK0Q,IAAW,iBAAiB,UAAW1Q,EAAA,KAAKw9D,GAAa,IAE9D5jE,EAAA,KAAK2jE,GAAAG,IAAL,WACA19D,EAAA,KAAK0Q,IAAW,oBAAoB,QAAS1Q,EAAA,KAAK69D,GAAY,EAC9D79D,EAAA,KAAK0Q,IAAW,oBAAoB,UAAW1Q,EAAA,KAAKw9D,GAAa,EAErE,EACAI,GAAK,UAAG,CACD59D,EAAA,KAAKs+D,KACR,KAAK,OAAM,EAER,KAAK,UAICt+D,EAAA,KAAKq+D,KACdr+D,EAAA,KAAK0Q,IAAW,UAAU,IAAI,SAAS,GAJvC9W,EAAA,KAAK2jE,GAAAwC,IAAL,WACA//D,EAAA,KAAK0Q,IAAW,OAAS,GACzB1Q,EAAA,KAAK0Q,IAAW,MAAM,OAAS,SAAS1Q,EAAA,KAAK0Q,IAAW,MAAM,OAAQ,EAAE,EAAI,IAIhF,EACAgtD,GAAK,UAAG,CACN19D,EAAA,KAAK0Q,IAAW,UAAU,OAAO,SAAS,EACtC,EAAA1Q,EAAA,KAAKq+D,KAAW,CAAC,KAAK,aAG1Br+D,EAAA,KAAK0Q,IAAW,OAAS,GACzB1Q,EAAA,KAAK0Q,IAAW,MAAM,OAAS,SAAS1Q,EAAA,KAAK0Q,IAAW,MAAM,OAAQ,EAAE,EAAI,IAC9E,EA6BF,MAAM0jD,WAAkCe,EAAkB,CACxD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EACD,KAAK,YAAcA,EAAW,KAAK,YACnC,KAAK,aAAeA,EAAW,KAAK,aACpC,KAAK,qBAAuB3K,GAAqB,QACnD,CACA,QAAS,CAEP,GADA,KAAK,UAAU,UAAU,IAAI,oBAAoB,EAC7C,KAAK,YAAa,CACpB,MAAMn/B,EAAU,KAAK,eAAiB,SAAS,cAAc,KAAK,EAClEA,EAAQ,UAAU,IAAI,uBAAuB,EAC7CA,EAAQ,aAAa,OAAQ,SAAS,EACtC,UAAW4B,KAAQ,KAAK,YAAa,CACnC,MAAMyqG,EAAW,SAAS,cAAc,MAAM,EAC9CA,EAAS,YAAczqG,EACvB5B,EAAQ,OAAOqsG,CAAQ,CACzB,CACA,KAAK,UAAU,OAAOrsG,CAAO,CAC/B,CACA,MAAI,CAAC,KAAK,KAAK,UAAY,KAAK,eAC9B,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,mBAAkB,EAChB,KAAK,SACd,CACF,CACA,MAAMsgG,WAA8Bc,EAAkB,CAEpD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH1D,EAAA,KAAAkmE,GAAQ,KAMR,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,gBAAgB,EAC7C,KAAM,CACJ,KAAAzqG,EACA,MAAA4mC,EACA,OAAAC,CACN,EAAQ,KACE3R,EAAM,KAAK,WAAW,OAAO0R,EAAOC,EAAQ,EAAI,EAChD9mC,EAAO2qC,EAAA,KAAK+/D,GAAQ,KAAK,WAAW,cAAc,UAAU,GAClE,OAAA1qG,EAAK,aAAa,KAAMC,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9DD,EAAK,aAAa,KAAMC,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9DD,EAAK,aAAa,KAAMC,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9DD,EAAK,aAAa,KAAMC,EAAK,KAAK,CAAC,EAAIA,EAAK,gBAAgB,CAAC,CAAC,EAC9DD,EAAK,aAAa,eAAgBC,EAAK,YAAY,OAAS,CAAC,EAC7DD,EAAK,aAAa,SAAU,aAAa,EACzCA,EAAK,aAAa,OAAQ,aAAa,EACvCm1B,EAAI,OAAOn1B,CAAI,EACf,KAAK,UAAU,OAAOm1B,CAAG,EACrB,CAACl1B,EAAK,UAAY,KAAK,eACzB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEZ,KAAK,SACd,CACA,2BAA4B,CAC1B,OAAOoqC,EAAA,KAAKqgE,GACd,CACA,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC9C,CACF,CArCEA,GAAA,YAsCF,MAAM/L,WAAgCa,EAAkB,CAEtD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH1D,EAAA,KAAAmmE,GAAU,KAMV,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,kBAAkB,EAC/C,KAAM,CACJ,KAAA1qG,EACA,MAAA4mC,EACA,OAAAC,CACN,EAAQ,KACE3R,EAAM,KAAK,WAAW,OAAO0R,EAAOC,EAAQ,EAAI,EAChD26D,EAAcxhG,EAAK,YAAY,MAC/B2qG,EAASjgE,EAAA,KAAKggE,GAAU,KAAK,WAAW,cAAc,UAAU,GACtE,OAAAC,EAAO,aAAa,IAAKnJ,EAAc,CAAC,EACxCmJ,EAAO,aAAa,IAAKnJ,EAAc,CAAC,EACxCmJ,EAAO,aAAa,QAAS/jE,EAAQ46D,CAAW,EAChDmJ,EAAO,aAAa,SAAU9jE,EAAS26D,CAAW,EAClDmJ,EAAO,aAAa,eAAgBnJ,GAAe,CAAC,EACpDmJ,EAAO,aAAa,SAAU,aAAa,EAC3CA,EAAO,aAAa,OAAQ,aAAa,EACzCz1E,EAAI,OAAOy1E,CAAM,EACjB,KAAK,UAAU,OAAOz1E,CAAG,EACrB,CAACl1B,EAAK,UAAY,KAAK,eACzB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEZ,KAAK,SACd,CACA,2BAA4B,CAC1B,OAAOoqC,EAAA,KAAKsgE,GACd,CACA,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC9C,CACF,CAtCEA,GAAA,YAuCF,MAAM/L,WAAgCY,EAAkB,CAEtD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH1D,EAAA,KAAAqmE,GAAU,KAMV,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,kBAAkB,EAC/C,KAAM,CACJ,KAAA5qG,EACA,MAAA4mC,EACA,OAAAC,CACN,EAAQ,KACE3R,EAAM,KAAK,WAAW,OAAO0R,EAAOC,EAAQ,EAAI,EAChD26D,EAAcxhG,EAAK,YAAY,MAC/B6qG,EAASngE,EAAA,KAAKkgE,GAAU,KAAK,WAAW,cAAc,aAAa,GACzE,OAAAC,EAAO,aAAa,KAAMjkE,EAAQ,CAAC,EACnCikE,EAAO,aAAa,KAAMhkE,EAAS,CAAC,EACpCgkE,EAAO,aAAa,KAAMjkE,EAAQ,EAAI46D,EAAc,CAAC,EACrDqJ,EAAO,aAAa,KAAMhkE,EAAS,EAAI26D,EAAc,CAAC,EACtDqJ,EAAO,aAAa,eAAgBrJ,GAAe,CAAC,EACpDqJ,EAAO,aAAa,SAAU,aAAa,EAC3CA,EAAO,aAAa,OAAQ,aAAa,EACzC31E,EAAI,OAAO21E,CAAM,EACjB,KAAK,UAAU,OAAO31E,CAAG,EACrB,CAACl1B,EAAK,UAAY,KAAK,eACzB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEZ,KAAK,SACd,CACA,2BAA4B,CAC1B,OAAOoqC,EAAA,KAAKwgE,GACd,CACA,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC9C,CACF,CAtCEA,GAAA,YAuCF,MAAMhM,WAAkCW,EAAkB,CAExD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EALH1D,EAAA,KAAAumE,GAAY,MAMV,KAAK,mBAAqB,qBAC1B,KAAK,eAAiB,cACxB,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,KAAK,kBAAkB,EACpD,KAAM,CACJ,KAAM,CACJ,KAAAlpE,EACA,SAAAmpE,EACA,YAAAC,EACA,SAAA5qD,CACR,EACM,MAAAxZ,EACA,OAAAC,CACN,EAAQ,KACJ,GAAI,CAACkkE,EACH,OAAO,KAAK,UAEd,MAAM71E,EAAM,KAAK,WAAW,OAAO0R,EAAOC,EAAQ,EAAI,EACtD,IAAIokE,EAAS,CAAA,EACb,QAAS3pG,EAAI,EAAG2Q,EAAK84F,EAAS,OAAQzpG,EAAI2Q,EAAI3Q,GAAK,EAAG,CACpD,MAAM2B,EAAI8nG,EAASzpG,CAAC,EAAIsgC,EAAK,CAAC,EACxB1/B,EAAI0/B,EAAK,CAAC,EAAImpE,EAASzpG,EAAI,CAAC,EAClC2pG,EAAO,KAAK,GAAGhoG,CAAC,IAAIf,CAAC,EAAE,CACzB,CACA+oG,EAASA,EAAO,KAAK,GAAG,EACxB,MAAMC,EAAWxgE,EAAA,KAAKogE,GAAY,KAAK,WAAW,cAAc,KAAK,cAAc,GACnF,OAAAI,EAAS,aAAa,SAAUD,CAAM,EACtCC,EAAS,aAAa,eAAgBF,EAAY,OAAS,CAAC,EAC5DE,EAAS,aAAa,SAAU,aAAa,EAC7CA,EAAS,aAAa,OAAQ,aAAa,EAC3Ch2E,EAAI,OAAOg2E,CAAQ,EACnB,KAAK,UAAU,OAAOh2E,CAAG,EACrB,CAACkrB,GAAY,KAAK,eACpB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEZ,KAAK,SACd,CACA,2BAA4B,CAC1B,OAAOhW,EAAA,KAAK0gE,GACd,CACA,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC9C,CACF,CAnDEA,GAAA,YAoDF,MAAM/L,WAAiCH,EAA0B,CAC/D,YAAY32D,EAAY,CACtB,MAAMA,CAAU,EAChB,KAAK,mBAAqB,oBAC1B,KAAK,eAAiB,aACxB,CACF,CACA,MAAM42D,WAA+BU,EAAkB,CACrD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,CACH,CACA,QAAS,CACP,YAAK,UAAU,UAAU,IAAI,iBAAiB,EAC1C,CAAC,KAAK,KAAK,UAAY,KAAK,eAC9B,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEZ,KAAK,SACd,CACF,CACA,MAAM62D,WAA6BS,EAAkB,CAGnD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EAPL1D,EAAA,KAAA4mE,IACE5mE,EAAA,KAAA6mE,GAAyB,MACzB7mE,EAAA,KAAA8mE,GAAa,CAAA,GAMX,KAAK,mBAAqB,gBAC1B,KAAK,eAAiB,eACtB,KAAK,qBAAuB,KAAK,KAAK,KAAO,eAAiB/tE,GAAqB,UAAYA,GAAqB,GACtH,CA6BA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,KAAK,kBAAkB,EACpD,KAAM,CACJ,KAAM,CACJ,KAAAsE,EACA,SAAAoE,EACA,SAAAi6D,EACA,YAAA+K,EACA,SAAA5qD,CACR,CACA,EAAQ,KACE,CACJ,UAAA/e,EACA,MAAAuF,EACA,OAAAC,CACN,EAAQ7C,EAAA,KAAKmnE,GAAAG,IAAL,UAAmBtlE,EAAUpE,GAC3B1M,EAAM,KAAK,WAAW,OAAO0R,EAAOC,EAAQ,EAAI,EAChD5kC,EAAIyoC,EAAA,KAAK0gE,GAAyB,KAAK,WAAW,cAAc,OAAO,GAC7El2E,EAAI,OAAOjzB,CAAC,EACZA,EAAE,aAAa,eAAgB+oG,EAAY,OAAS,CAAC,EACrD/oG,EAAE,aAAa,iBAAkB,OAAO,EACxCA,EAAE,aAAa,kBAAmB,OAAO,EACzCA,EAAE,aAAa,oBAAqB,EAAE,EACtCA,EAAE,aAAa,SAAU,aAAa,EACtCA,EAAE,aAAa,OAAQ,aAAa,EACpCA,EAAE,aAAa,YAAao/B,CAAS,EACrC,UAAW6+D,KAAWD,EAAU,CAC9B,MAAMiL,EAAW,KAAK,WAAW,cAAc,KAAK,cAAc,EAClE9gE,EAAA,KAAKihE,IAAW,KAAKH,CAAQ,EAC7BA,EAAS,aAAa,SAAUhL,EAAQ,KAAK,GAAG,CAAC,EACjDj+F,EAAE,OAAOipG,CAAQ,CACnB,CACA,MAAI,CAAC9qD,GAAY,KAAK,eACpB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,UAAU,OAAOlrB,CAAG,EACzB,KAAK,mBAAkB,EAChB,KAAK,SACd,CACA,aAAahQ,EAAQ,CACnB,MAAM,aAAaA,CAAM,EACzB,KAAM,CACJ,UAAAqmF,EACA,OAAAN,EACA,KAAArpE,CACN,EAAQ1c,EACEjjB,EAAImoC,EAAA,KAAKghE,IAIf,GAHIG,GAAa,GACftpG,EAAE,aAAa,eAAgBspG,GAAa,CAAC,EAE3CN,EACF,QAAS3pG,EAAI,EAAG2Q,EAAKm4B,EAAA,KAAKihE,IAAW,OAAQ/pG,EAAI2Q,EAAI3Q,IACnD8oC,EAAA,KAAKihE,IAAW/pG,CAAC,EAAE,aAAa,SAAU2pG,EAAO3pG,CAAC,EAAE,KAAK,GAAG,CAAC,EAGjE,GAAIsgC,EAAM,CACR,KAAM,CACJ,UAAAP,EACA,MAAAuF,EACA,OAAAC,CACR,EAAU7C,EAAA,KAAKmnE,GAAAG,IAAL,UAAmB,KAAK,KAAK,SAAU1pE,GAC9B3/B,EAAE,cACV,aAAa,UAAW,OAAO2kC,CAAK,IAAIC,CAAM,EAAE,EACrD5kC,EAAE,aAAa,YAAao/B,CAAS,CACvC,CACF,CACA,2BAA4B,CAC1B,OAAO+I,EAAA,KAAKihE,GACd,CACA,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC9C,CACF,CAhHED,GAAA,YACAC,GAAA,YAFFF,GAAA,YAYEG,GAAa,SAACtlE,EAAUpE,EAAM,CAC5B,OAAQoE,EAAQ,CACd,IAAK,IACH,MAAO,CACL,UAAW,wBAAwB,CAACpE,EAAK,CAAC,CAAC,IAAIA,EAAK,CAAC,CAAC,gBACtD,MAAOA,EAAK,CAAC,EAAIA,EAAK,CAAC,EACvB,OAAQA,EAAK,CAAC,EAAIA,EAAK,CAAC,CAClC,EACM,IAAK,KACH,MAAO,CACL,UAAW,yBAAyB,CAACA,EAAK,CAAC,CAAC,IAAIA,EAAK,CAAC,CAAC,gBACvD,MAAOA,EAAK,CAAC,EAAIA,EAAK,CAAC,EACvB,OAAQA,EAAK,CAAC,EAAIA,EAAK,CAAC,CAClC,EACM,IAAK,KACH,MAAO,CACL,UAAW,yBAAyB,CAACA,EAAK,CAAC,CAAC,IAAIA,EAAK,CAAC,CAAC,gBACvD,MAAOA,EAAK,CAAC,EAAIA,EAAK,CAAC,EACvB,OAAQA,EAAK,CAAC,EAAIA,EAAK,CAAC,CAClC,EACM,QACE,MAAO,CACL,UAAW,aAAa,CAACA,EAAK,CAAC,CAAC,IAAIA,EAAK,CAAC,CAAC,gBAC3C,MAAOA,EAAK,CAAC,EAAIA,EAAK,CAAC,EACvB,OAAQA,EAAK,CAAC,EAAIA,EAAK,CAAC,CAClC,CACA,CACE,EA2EF,MAAMo9D,WAAmCO,EAAkB,CACzD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,EACD,KAAK,qBAAuB3K,GAAqB,SACnD,CACA,QAAS,CACP,KAAM,CACJ,KAAM,CACJ,aAAAulE,EACA,SAAAziD,CACR,CACA,EAAQ,KAOJ,GANI,CAACA,GAAY,KAAK,eACpB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAClD,KAAK,mBAAkB,EACnByiD,EAAc,CAChB,MAAM2I,EAAO,SAAS,cAAc,MAAM,EAC1CA,EAAK,UAAU,IAAI,cAAc,EACjCA,EAAK,YAAc3I,EACnB,KAAK,UAAU,OAAO2I,CAAI,CAC5B,CACA,OAAO,KAAK,SACd,CACF,CACA,MAAMvM,WAAmCM,EAAkB,CACzD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,CACH,CACA,QAAS,CACP,KAAM,CACJ,KAAM,CACJ,aAAA46D,EACA,SAAAziD,CACR,CACA,EAAQ,KAMJ,GALI,CAACA,GAAY,KAAK,eACpB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAC9CyiD,EAAc,CAChB,MAAM4I,EAAY,SAAS,cAAc,GAAG,EAC5CA,EAAU,UAAU,IAAI,cAAc,EACtCA,EAAU,YAAc5I,EACxB,KAAK,UAAU,OAAO4I,CAAS,CACjC,CACA,OAAO,KAAK,SACd,CACF,CACA,MAAMvM,WAAkCK,EAAkB,CACxD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,CACH,CACA,QAAS,CACP,KAAM,CACJ,KAAM,CACJ,aAAA46D,EACA,SAAAziD,CACR,CACA,EAAQ,KAMJ,GALI,CAACA,GAAY,KAAK,eACpB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,UAAU,UAAU,IAAI,oBAAoB,EAC7CyiD,EAAc,CAChB,MAAM4I,EAAY,SAAS,cAAc,GAAG,EAC5CA,EAAU,UAAU,IAAI,cAAc,EACtCA,EAAU,YAAc5I,EACxB,KAAK,UAAU,OAAO4I,CAAS,CACjC,CACA,OAAO,KAAK,SACd,CACF,CACA,MAAMtM,WAAmCI,EAAkB,CACzD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,GACd,qBAAsB,EAC5B,CAAK,CACH,CACA,QAAS,CACP,KAAM,CACJ,KAAM,CACJ,aAAA46D,EACA,SAAAziD,CACR,CACA,EAAQ,KAMJ,GALI,CAACA,GAAY,KAAK,eACpB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAC9CyiD,EAAc,CAChB,MAAM6I,EAAY,SAAS,cAAc,GAAG,EAC5CA,EAAU,UAAU,IAAI,cAAc,EACtCA,EAAU,YAAc7I,EACxB,KAAK,UAAU,OAAO6I,CAAS,CACjC,CACA,OAAO,KAAK,SACd,CACF,CACA,MAAMtM,WAA+BG,EAAkB,CACrD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,GACd,aAAc,EACpB,CAAK,EACD,KAAK,qBAAuB3K,GAAqB,KACnD,CACA,QAAS,CACP,YAAK,UAAU,UAAU,IAAI,iBAAiB,EAC9C,KAAK,UAAU,aAAa,OAAQ,KAAK,EACrC,CAAC,KAAK,KAAK,UAAY,KAAK,eAC9B,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEnB,KAAK,mBAAkB,EAChB,KAAK,SACd,CACF,CACA,MAAM+hE,WAAwCE,EAAkB,CAE9D,YAAYt3D,EAAY,OACtB,MAAMA,EAAY,CAChB,aAAc,EACpB,CAAK,EALL1D,EAAA,KAAAonE,IACEpnE,EAAA,KAAAqnE,GAAW,MAKT,KAAM,CACJ,OAAA5lF,EACA,KAAAwM,CACN,EAAQ,KAAK,KACT,KAAK,SAAWA,EAAK,SACrB,KAAK,QAAUA,EAAK,QACpB,KAAK,OAASxM,GACdhpB,EAAA,KAAK,YAAY,WAAjB,MAAAA,EAA2B,SAAS,2BAA4B,CAC9D,OAAQ,KACR,aAAc,KAAK,OACnB,GAAGw1B,CACT,EACE,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,0BAA0B,EACvD,KAAM,CACJ,UAAA2c,EACA,KAAAnvC,CACN,EAAQ,KACJ,IAAI6rG,EACA7rG,EAAK,eAAiBA,EAAK,YAAc,EAC3C6rG,EAAU,SAAS,cAAc,KAAK,GAEtCA,EAAU,SAAS,cAAc,KAAK,EACtCA,EAAQ,IAAM,GAAG,KAAK,kBAAkB,cAAc,aAAa,KAAK7rG,EAAK,IAAI,EAAI,YAAc,SAAS,OACxGA,EAAK,WAAaA,EAAK,UAAY,IACrC6rG,EAAQ,MAAQ,mBAAmB,KAAK,MAAM7rG,EAAK,UAAY,GAAG,CAAC,QAGvE6rG,EAAQ,iBAAiB,WAAY7nE,EAAA,KAAK2nE,GAAAG,IAAU,KAAK,IAAI,CAAC,EAC9DphE,EAAA,KAAKkhE,GAAWC,GAChB,KAAM,CACJ,MAAAr2D,CACN,EAAQ9U,GAAY,SAChB,OAAAyO,EAAU,iBAAiB,UAAWgM,GAAO,CACvCA,EAAI,MAAQ,UAAY3F,EAAQ2F,EAAI,QAAUA,EAAI,UACpDnX,EAAA,KAAK2nE,GAAAG,IAAL,UAEJ,CAAC,EACG,CAAC9rG,EAAK,UAAY,KAAK,cACzB,KAAK,oBAAsB,GAC3B,KAAK,aAAY,GAEjB6rG,EAAQ,UAAU,IAAI,kBAAkB,EAE1C18D,EAAU,OAAO08D,CAAO,EACjB18D,CACT,CACA,2BAA4B,CAC1B,OAAO/E,EAAA,KAAKwhE,GACd,CACA,kBAAmB,CACjB,KAAK,UAAU,UAAU,IAAI,eAAe,CAC9C,CAYF,CAtEEA,GAAA,YADFD,GAAA,YA4DQG,GAAS,gBAAG,OAChB,KAAM,CACJ,OAAA9lF,EACA,SAAAqM,EACA,QAAS05E,CACf,EAAQ,KACE5tG,EAAW,MAAM,KAAK,YAAY,qBAAqB6nB,CAAM,GAAM+lF,EACrE5tG,KACFnB,EAAA,KAAK,kBAAL,MAAAA,EAAsB,mBAAmBmB,EAASk0B,GAEtD,EAEF,MAAMitE,WAA+BC,EAAkB,CAIrD,YAAYt3D,EAAY,CACtB,MAAMA,EAAY,CAChB,aAAc,CAAC,CAACA,EAAW,KAAK,SACtC,CAAK,EAPL1D,EAAA,KAAAynE,IACEznE,EAAA,KAAAyT,GAAmB,IAAI,iBACvBzT,EAAA,KAAA0nE,GAAc,MACd1nE,EAAA,KAAA2nE,GAAS,KAKT,CACA,QAAS,CACP,KAAK,UAAU,UAAU,IAAI,iBAAiB,EAC9C,KAAM,CACJ,SAAA75E,CACN,EAAQ,KAAK,KAAK,UACRme,EAAS,SAAS,cAAc,QAAQ,EAC9C,OAAAA,EAAO,UAAY,kBACnBA,EAAO,KAAO,SACdA,EAAO,MAAQA,EAAO,UAAYne,EAClCme,EAAO,iBAAiB,QAAS,IAAMxM,EAAA,KAAKgoE,GAAAG,IAAL,UAAW37D,GAAS,CACzD,OAAQpG,EAAA,KAAK4N,IAAiB,MACpC,CAAK,EACD,KAAK,UAAU,OAAOxH,CAAM,EACrB,KAAK,SACd,CAgFA,SAAU,CACRpG,EAAA,KAAK4N,IAAiB,MAAK,EACvB5N,EAAA,KAAK8hE,MACP9hE,EAAA,KAAK8hE,IAAO,MAAK,EACjB9hE,EAAA,KAAK8hE,IAAO,gBAAgB,KAAK,EACjC9hE,EAAA,KAAK8hE,IAAO,KAAI,EAChBxhE,EAAA,KAAKwhE,GAAS,OAEhBloE,EAAA,KAAKgoE,GAAAI,IAAL,UACF,CACF,CAhHEp0D,GAAA,YACAi0D,GAAA,YACAC,GAAA,YAHFF,GAAA,YAwBQG,GAAK,eAAC37D,EAAQ,CAClB,KAAM,CACJ,OAAAxqB,EACA,SAAAqM,EACA,YAAAg6E,CACN,EAAQ,KAAK,KAAK,UACd77D,EAAO,SAAW,GAClB,IAAIryC,EACJ,GAAI,CACFA,EAAU,MAAM,KAAK,YAAY,qBAAqB6nB,CAAM,CAC9D,MAAQ,CACN,MACF,QAAC,CACCwqB,EAAO,SAAW,EACpB,CACA,GAAI,CAACryC,GAAW,CAACqyC,EAAO,YACtB,OAEF,KAAM,CACJ,OAAApxC,CACN,EAAQgrC,EAAA,KAAK4N,IACHh5C,EAAM,IAAI,gBAAgB,IAAI,KAAK,CAACb,CAAO,EAAG,CAClD,KAAMkuG,CACZ,CAAK,CAAC,EACF3hE,EAAA,KAAKuhE,GAAcjtG,GACnB,MAAMstG,EAAUD,EAAY,WAAW,QAAQ,EACzCE,EAAQ,SAAS,cAAcD,EAAU,QAAU,OAAO,EAShE,GARA5hE,EAAA,KAAKwhE,GAASK,GACdA,EAAM,UAAY,eAClB,KAAK,oBAAoBA,CAAK,EAC9BA,EAAM,IAAMvtG,EACZutG,EAAM,MAAQl6E,EACdk6E,EAAM,SAAW,GACjBA,EAAM,SAAW,GACjBA,EAAM,SAAW,EACbD,EAAS,CACX,IAAIE,EAAU,GACVC,EAAU,GACd,MAAMC,EAAiB,IAAM,CAC3BH,EAAM,SAAWC,GAAWC,CAC9B,EACA,KAAK,UAAU,iBAAiB,eAAgB,IAAM,CACpDD,EAAU,GACVE,EAAc,CAChB,EAAG,CACD,OAAAttG,CACR,CAAO,EACD,KAAK,UAAU,iBAAiB,eAAgB,IAAM,CACpDotG,EAAU,GACVE,EAAc,CAChB,EAAG,CACD,OAAAttG,CACR,CAAO,EACD,KAAK,UAAU,iBAAiB,UAAW,IAAM,CAC/CqtG,EAAU,GACVC,EAAc,CAChB,EAAG,CACD,OAAAttG,CACR,CAAO,EACD,KAAK,UAAU,iBAAiB,WAAY,IAAM,CAChDqtG,EAAU,GACVC,EAAc,CAChB,EAAG,CACD,OAAAttG,CACR,CAAO,CACH,CACAmtG,EAAM,iBAAiB,UAAW,IAAMvoE,EAAA,KAAKgoE,GAAAI,IAAL,UAAuBptG,GAAM,CACnE,KAAM,GACN,OAAAI,CACN,CAAK,EACDoxC,EAAO,YAAY+7D,CAAK,EACxBA,EAAM,KAAI,EAAG,MAAM,IAAM,CAAC,CAAC,CAC7B,EACAH,GAAiB,SAACptG,EAAMorC,EAAA,KAAK6hE,IAAa,CACpCjtG,GAAOA,IAAQorC,EAAA,KAAK6hE,MACtB,IAAI,gBAAgBjtG,CAAG,EACvB0rC,EAAA,KAAKuhE,GAAc,MAEvB,EAYF,MAAMU,GAAN,MAAMA,EAAgB,CAUpB,YAAY,CACV,IAAA3gE,EACA,qBAAA4gE,EACA,oBAAAh6B,EACA,0BAAAi6B,EACA,KAAA5nE,EACA,SAAAgH,EACA,gBAAA6gE,EACA,eAAA11D,EACA,YAAAzP,EACA,kBAAAgyD,CACJ,EAAK,CArBLp1D,EAAA,KAAAwoE,IACExoE,EAAA,KAAAyoE,GAAwB,MACxBzoE,EAAA,KAAA0oE,GAAuB,MACvB1oE,EAAA,KAAAgU,GAAqB,MACrBhU,EAAA,KAAA2oE,GAAuB,IAAI,KAC3B3oE,EAAA,KAAA4oE,GAAmB,MACnB5oE,EAAA,KAAA6oE,GAAe,MACf7oE,EAAA,KAAA+jE,GAAY,CAAA,GACZ/jE,EAAA,KAAA8oE,GAAmC,IACnC9oF,GAAA,cAAS,GAaP,KAAK,IAAMynB,EACXtB,EAAA,KAAKsiE,GAAwBJ,GAC7BliE,EAAA,KAAKuiE,GAAuBr6B,GAC5BloC,EAAA,KAAKyiE,GAAmBL,GAAmB,MAC3CpiE,EAAA,KAAK0iE,GAAezlE,GAAe,MACnC+C,EAAA,KAAK6N,GAAqBohD,GAAqB,IAAI3oC,IACnD,KAAK,KAAO/rB,EACZ,KAAK,SAAWgH,EAChB,KAAK,2BAA6B4gE,EAClC,KAAK,gBAAkBz1D,GAAkB,IAC3C,CACA,wBAAyB,CACvB,OAAOhN,EAAA,KAAK8iE,IAAqB,KAAO,CAC1C,CACA,MAAM,OAAOhoF,EAAQ,OACnB,KAAM,CACJ,YAAAooF,EACA,sBAAA56B,CACN,EAAQxtD,EACE22B,EAAQ,KAAK,IACnB9P,GAAmB8P,EAAO,KAAK,QAAQ,EACvC,MAAM0xD,EAAkB,IAAI,IACtBC,EAAmB,CAAA,EACnBC,EAAgB,CACpB,KAAM,KACN,MAAA5xD,EACA,YAAazR,EAAA,KAAKgjE,IAClB,gBAAiBloF,EAAO,gBACxB,mBAAoBA,EAAO,oBAAsB,GACjD,YAAaA,EAAO,cAAgB,GACpC,WAAY,IAAIu4E,GAChB,kBAAmBrzD,EAAA,KAAKmO,IACxB,cAAerzB,EAAO,gBAAkB,GACxC,gBAAiBA,EAAO,kBAAoB,GAC5C,aAAcA,EAAO,aACrB,aAAcA,EAAO,aACrB,OAAQ,KACR,SAAU,IAChB,EACI,UAAWllB,KAAQstG,EAAa,CAC9B,GAAIttG,EAAK,OACP,SAEF,MAAM0tG,EAAoB1tG,EAAK,iBAAmB29B,GAAe,MACjE,GAAK+vE,EAIE,CACL,MAAMvG,EAAWoG,EAAgB,IAAIvtG,EAAK,EAAE,EAC5C,GAAI,CAACmnG,EACH,SAEF,GAAI,CAAC,KAAK,gBAAiB,CACzBqG,EAAiB,KAAKxtG,CAAI,EAC1B,QACF,CACAytG,EAAc,SAAWtG,CAC3B,SAbMnnG,EAAK,KAAK,CAAC,IAAMA,EAAK,KAAK,CAAC,GAAKA,EAAK,KAAK,CAAC,IAAMA,EAAK,KAAK,CAAC,EAC/D,SAaJytG,EAAc,KAAOztG,EACrB,MAAMsnC,EAAUu2D,GAAyB,OAAO4P,CAAa,EAC7D,GAAI,CAACnmE,EAAQ,aACX,SAEGomE,IACHtjE,EAAA,KAAKk+D,IAAU,KAAKhhE,CAAO,EACvBtnC,EAAK,UACPutG,EAAgB,oBAAoBvtG,EAAK,SAAUqlC,EAAO,EAAE,KAAKiC,CAAO,GAG5E,MAAMqmE,EAAWrmE,EAAQ,OAAM,EAC3BtnC,EAAK,SACP2tG,EAAS,MAAM,WAAa,UAE9BrmE,EAAQ,SAASorC,CAAqB,EAClCprC,EAAQ,cACV8C,EAAA,KAAK8iE,IAAqB,IAAI5lE,EAAQ,KAAK,GAAIA,CAAO,GACtDtqC,EAAA,KAAK,6BAAL,MAAAA,EAAiC,wBAAwBsqC,GAE7D,CACA,MAAMtD,EAAA,KAAK+oE,GAAAa,IAAL,WACN,UAAW5tG,KAAQwtG,EAAkB,CACnC,MAAMrG,EAAWsG,EAAc,SAAWF,EAAgB,IAAIvtG,EAAK,EAAE,EACrEytG,EAAc,KAAOztG,EACrB,MAAMsnC,EAAUu2D,GAAyB,OAAO4P,CAAa,EAC7D,GAAI,CAACnmE,EAAQ,aACX,SAEF,MAAMqmE,EAAWrmE,EAAQ,OAAM,EAC/BA,EAAQ,eAAe,GAAK,GAAGlK,EAAgB,GAAGp9B,EAAK,EAAE,GACrDA,EAAK,SACP2tG,EAAS,MAAM,WAAa,UAE9BxG,EAAS,GAAG,EAAE,EAAE,UAAU,MAAMwG,CAAQ,CAC1C,CACA3pE,EAAA,KAAK+oE,GAAAc,IAAL,UACF,CAyEA,MAAM,mBAAmBP,EAAa,CACpC,MAAMG,EAAgB,CACpB,KAAM,KACN,MAAO,KAAK,IACZ,YAAarjE,EAAA,KAAKgjE,IAClB,WAAY,IAAI3P,GAChB,OAAQ,IACd,EACI,UAAWz9F,KAAQstG,EAAa,CAC9BttG,EAAK,cAALA,EAAK,YAAgB2sG,GAAgB,qBACrCc,EAAc,KAAOztG,EACrB,MAAMsnC,EAAUu2D,GAAyB,OAAO4P,CAAa,EACxDnmE,EAAQ,eAGbA,EAAQ,OAAM,EACdA,EAAQ,eAAe,GAAK,GAAGlK,EAAgB,GAAGp9B,EAAK,EAAE,GACzDoqC,EAAA,KAAKk+D,IAAU,KAAKhhE,CAAO,EAC7B,CACA,MAAMtD,EAAA,KAAK+oE,GAAAa,IAAL,UACR,CACA,OAAO,CACL,SAAA3hE,EACA,sBAAAymC,CACJ,EAAK,CACD,MAAM72B,EAAQ,KAAK,IACnB,KAAK,SAAW5P,EAChBF,GAAmB8P,EAAO,CACxB,SAAU5P,EAAS,QACzB,CAAK,EACD,UAAW3E,KAAW8C,EAAA,KAAKk+D,IACzBhhE,EAAQ,SAASorC,CAAqB,EAExC1uC,EAAA,KAAK+oE,GAAAc,IAAL,WACAhyD,EAAM,OAAS,EACjB,CACA,SAAU,SACR,UAAWvU,KAAW8C,EAAA,KAAKk+D,KACzBtrG,EAAAsqC,EAAQ,UAAR,MAAAtqC,EAAA,KAAAsqC,IACAvqC,EAAAqtC,EAAA,KAAK4iE,MAAL,MAAAjwG,EAA4B,yBAAyBuqC,EAAQ,gBAE/D8C,EAAA,KAAKk+D,IAAU,OAAS,EACxBl+D,EAAA,KAAK8iE,IAAqB,MAAK,EAC/B,KAAK,IAAI,gBAAe,CAC1B,CA4DA,iBAAkB,CAChBlpE,EAAA,KAAK+oE,GAAAc,IAAL,UACF,CACA,wBAAyB,CACvB,OAAOzjE,EAAA,KAAK8iE,IAAqB,OAAM,CACzC,CACA,sBAAsBrnF,EAAI,CACxB,OAAOukB,EAAA,KAAK8iE,IAAqB,IAAIrnF,CAAE,CACzC,CACA,kBAAkB0pB,EAAQ,CACxB,KAAM,CACJ,IAAAvD,CACN,EAAQ,KACE,CACJ,GAAAnmB,EACA,SAAAmgB,CACN,EAAQuJ,EACEjI,EAAU,IAAIi7D,GAAwB,CAC1C,KAAM,CACJ,GAAA18E,EACA,KAAM0pB,EAAO,WAAU,EACvB,SAAAvJ,CACR,EACM,OAAAuJ,EACA,MAAOvD,EACP,OAAQ,KACR,cAAe,CAAC,CAAC,KAAK,gBACtB,YAAa5B,EAAA,KAAKgjE,IAClB,kBAAmBhjE,EAAA,KAAKmO,GAC9B,CAAK,EACD,OAAAjR,EAAQ,OAAM,EACdA,EAAQ,eAAe,GAAK,GAAGlK,EAAgB,GAAGvX,CAAE,GACpDyhB,EAAQ,oBAAmB,EAC3B8C,EAAA,KAAKk+D,IAAU,KAAKhhE,CAAO,EACpBA,CACT,CACA,iBAAiBzhB,EAAI,OACnB,MAAMrC,EAAQ4mB,EAAA,KAAKk+D,IAAU,UAAUj6E,GAAMA,EAAG,KAAK,KAAOxI,CAAE,EAC9D,GAAIrC,EAAQ,EACV,OAEF,KAAM,CAAC8jB,CAAO,EAAI8C,EAAA,KAAKk+D,IAAU,OAAO9kF,EAAO,CAAC,GAChDxmB,EAAAotC,EAAA,KAAK4iE,MAAL,MAAAhwG,EAA4B,yBAAyBsqC,EAAQ,eAC/D,CACA,sBAAsB6W,EAAS,CAC7B,GAAIA,EAAQ,SAAW,EAGvB,WAAW5O,KAAU4O,EACnB5O,EAAO,4BAA4B,IAAI,EAEzCvL,EAAA,KAAK+oE,GAAAa,IAAL,WACF,CACA,oBAAoBvmF,EAAU,GAAO,CACnC,KAAK,IAAI,UAAU,OAAO,WAAY,CAACA,CAAO,CAChD,CACA,WAAW,qBAAsB,CAC/B,OAAOgY,GAAO,KAAM,sBAAuB,OAAO,OAAO,CACvD,MAAO,EACP,SAAU,EACV,MAAOzB,GAA0B,MACjC,UAAW,CAAC,CAAC,EACb,uBAAwB,EACxB,qBAAsB,CAC5B,CAAK,CAAC,CACJ,CACF,EAxWEovE,GAAA,YACAC,GAAA,YACA10D,GAAA,YACA20D,GAAA,YACAC,GAAA,YACAC,GAAA,YACA9E,GAAA,YACA+E,GAAA,YARFN,GAAA,YAuHQa,GAAiB,gBAAG,WACxB,GAAIxjE,EAAA,KAAKk+D,IAAU,SAAW,EAC5B,OAEF,KAAK,IAAI,gBAAe,EACxB,MAAM1pD,EAAW,CAAA,EACjB,GAAI,CAACxU,EAAA,KAAKijE,IAAkC,CAC1C3iE,EAAA,KAAK2iE,GAAmC,IACxC,SAAW,CACT,eAAAS,EACA,KAAM,CACJ,GAAAjoF,CACV,CACA,IAAWukB,EAAA,KAAKk+D,IAAW,CACnB,MAAM3qD,EAAemwD,EAAe,GAAK,GAAG1wE,EAAgB,GAAGvX,CAAE,GACjE+4B,EAAS,MAAK5hD,EAAAotC,EAAA,KAAK+iE,MAAL,YAAAnwG,EAAuB,kBAAkB2gD,GAAc,KAAKowD,GAAkB,CAC1F,GAAIA,EACF,SAAW,CAAChrF,EAAKpjB,CAAK,IAAKouG,EACzBD,EAAe,aAAa/qF,EAAKpjB,CAAK,CAG5C,EAAE,CACJ,CACF,CACAyqC,EAAA,KAAKk+D,IAAU,KAAK,CAAC,CACnB,KAAM,CACJ,KAAM,CAACpmE,EAAIE,EAAID,EAAIE,CAAE,CAC7B,CACA,EAAO,CACD,KAAM,CACJ,KAAM,CAACC,EAAIE,EAAID,EAAIE,CAAE,CAC7B,CACA,IAAU,CACJ,GAAIP,IAAOC,GAAMC,IAAOC,EACtB,MAAO,GAET,GAAIC,IAAOC,GAAMC,IAAOC,EACtB,MAAO,GAET,MAAMurE,EAAO3rE,EACP4rE,EAAO7rE,EACP8rE,GAAQ9rE,EAAKC,GAAM,EACnB8rE,EAAO1rE,EACP2rE,EAAO5rE,EACP6rE,GAAQ7rE,EAAKC,GAAM,EACzB,GAAIyrE,GAAQC,GAAQE,GAAQJ,EAC1B,MAAO,GAET,GAAII,GAAQL,GAAQE,GAAQE,EAC1B,MAAO,GAET,MAAME,GAAYpsE,EAAKC,GAAM,EACvBosE,GAAYjsE,EAAKC,GAAM,EAC7B,OAAO+rE,EAAWC,CACpB,CAAC,EACD,MAAMn/D,EAAW,SAAS,uBAAsB,EAChD,UAAW9H,KAAW8C,EAAA,KAAKk+D,IACzBl5D,EAAS,OAAO9H,EAAQ,SAAS,EAC7B,KAAK,iBACNtnB,IAAAjjB,EAAAuqC,EAAQ,oBAAR,YAAAvqC,EAA2B,QAASuqC,EAAQ,QAA5C,MAAAtnB,EAAoD,sBAC5CsnB,EAAQ,mBACjB8H,EAAS,OAAO9H,EAAQ,kBAAkB,OAAM,CAAE,EAKtD,GAFA,KAAK,IAAI,OAAO8H,CAAQ,EACxB,MAAM,QAAQ,IAAIwP,CAAQ,EACtBxU,EAAA,KAAK4iE,IACP,UAAW1lE,KAAW8C,EAAA,KAAKk+D,IACzBl+D,EAAA,KAAK4iE,IAAsB,sBAAsB1lE,EAAQ,eAAgB,EAAK,CAGpF,EA8CAumE,GAAuB,UAAG,OACxB,GAAI,CAACzjE,EAAA,KAAK6iE,IACR,OAEF,MAAMpxD,EAAQ,KAAK,IACnB,SAAW,CAACh2B,EAAImuB,CAAM,IAAK5J,EAAA,KAAK6iE,IAAsB,CACpD,MAAM3lE,EAAUuU,EAAM,cAAc,wBAAwBh2B,CAAE,IAAI,EAClE,GAAI,CAACyhB,EACH,SAEF,GAAI,MAAM,QAAQ0M,CAAM,EACtB,UAAWw6D,KAAOx6D,EAChBw6D,EAAI,UAAY,oBAChBA,EAAI,WAAa,QAGnBx6D,EAAO,UAAY,oBACnBA,EAAO,WAAa,GAEtB,MAAMy6D,EAAW,CAAA,EACjB,UAAWvnE,KAASI,EAAQ,SACtBJ,EAAM,WAAa,UACrBunE,EAAS,KAAKvnE,CAAK,EAGvB,UAAWA,KAASunE,EAClBvnE,EAAM,OAAM,EAEd,MAAMwnE,EAAc,MAAM,QAAQ16D,CAAM,EAAIA,EAAO,CAAC,EAAIA,EAClD,CACJ,WAAA26D,CACR,EAAUrnE,EAQJ,GAPKqnE,EAEOA,EAAW,UAAU,SAAS,mBAAmB,EAG3DA,EAAW,MAAMD,CAAW,EAF5BC,EAAW,OAAOD,CAAW,EAF7BpnE,EAAQ,OAAOonE,CAAW,EAMxB,MAAM,QAAQ16D,CAAM,EAAG,CACzB,IAAI46D,EAAaF,EACjB,QAASptG,EAAI,EAAG2Q,EAAK+hC,EAAO,OAAQ1yC,EAAI2Q,EAAI3Q,IAC1CstG,EAAW,MAAM56D,EAAO1yC,CAAC,CAAC,EAC1BstG,EAAa56D,EAAO1yC,CAAC,CAEzB,CACA8oC,EAAA,KAAK6iE,IAAqB,OAAOpnF,CAAE,EACnC,MAAMgpF,EAAqBzkE,EAAA,KAAK8iE,IAAqB,IAAIrnF,CAAE,EACtDgpF,IAGDA,EAAmB,eACrB7xG,EAAA,KAAK,6BAAL,MAAAA,EAAiC,iBAAiB6oB,EAAIyhB,EAAQ,GAAI0M,GAClE66D,EAAmB,aAAe,IAElCA,EAAmB,OAAS76D,EAEhC,CACF,EAtSF,IAAM86D,GAANnC,GAiXA,MAAMoC,GAAc,YACdC,GAAN,MAAMA,WAAuBl/C,EAAiB,CA6C5C,YAAY5qC,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,KAAM,gBACZ,CAAK,EAjDLqf,EAAA,KAAA0qE,IACE1qE,EAAA,KAAA2qE,GAAW,IACX3qE,EAAA,KAAA4qE,GAAe,GAAG,KAAK,EAAE,WACzB5qE,EAAA,KAAA6qE,GAAc,MACd7qE,EAAA,KAAA8qE,IACA9qF,GAAA,oBAAe,MA6Cb,KAAK,MAAQW,EAAO,OAAS8pF,GAAe,eAAiBl/C,GAAiB,kBAC9EplB,EAAA,KAAK2kE,GAAYnqF,EAAO,UAAY8pF,GAAe,kBAC9C,KAAK,qBACR,KAAK,WAAW,UAAUl/C,GAAiB,WAAW,QAAQ,EAEhE,KAAK,cAAgB,EACvB,CA9CA,WAAW,kBAAmB,CAC5B,MAAMvU,EAAQyzD,GAAe,UACvBxzD,EAAevF,GAAQA,EAAK,QAAO,EACnC0F,EAAQwG,GAA0B,gBAClCvG,EAAMuG,GAA0B,cACtC,OAAO9iB,GAAO,KAAM,mBAAoB,IAAIuX,GAAgB,CAAC,CAAC,CAAC,SAAU,aAAc,SAAU,YAAY,EAAG2E,EAAM,eAAgB,CACpI,QAAS,EACf,CAAK,EAAG,CAAC,CAAC,aAAc,gBAAgB,EAAGA,EAAM,cAAc,EAAG,CAAC,CAAC,QAAQ,EAAGA,EAAM,cAAc,EAAG,CAAC,CAAC,WAAW,EAAGA,EAAM,gBAAiB,CACvI,KAAM,CAAC,CAACI,EAAO,CAAC,EAChB,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,gBAAiB,CACrE,KAAM,CAAC,CAACK,EAAK,CAAC,EACd,QAASJ,CACf,CAAK,EAAG,CAAC,CAAC,YAAY,EAAGD,EAAM,gBAAiB,CAC1C,KAAM,CAACI,EAAO,CAAC,EACf,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,kBAAmB,sBAAsB,EAAGD,EAAM,gBAAiB,CACvE,KAAM,CAACK,EAAK,CAAC,EACb,QAASJ,CACf,CAAK,EAAG,CAAC,CAAC,SAAS,EAAGD,EAAM,gBAAiB,CACvC,KAAM,CAAC,EAAG,CAACI,CAAK,EAChB,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,eAAgB,mBAAmB,EAAGD,EAAM,gBAAiB,CACjE,KAAM,CAAC,EAAG,CAACK,CAAG,EACd,QAASJ,CACf,CAAK,EAAG,CAAC,CAAC,WAAW,EAAGD,EAAM,gBAAiB,CACzC,KAAM,CAAC,EAAGI,CAAK,EACf,QAASH,CACf,CAAK,EAAG,CAAC,CAAC,iBAAkB,qBAAqB,EAAGD,EAAM,gBAAiB,CACrE,KAAM,CAAC,EAAGK,CAAG,EACb,QAASJ,CACf,CAAK,CAAC,CAAC,CAAC,CACN,CAeA,OAAO,WAAWyH,EAAMzR,EAAW,CACjCse,GAAiB,WAAW7M,EAAMzR,CAAS,EAC3C,MAAMlF,EAAQ,iBAAiB,SAAS,eAAe,EACvD,KAAK,iBAAmB,WAAWA,EAAM,iBAAiB,oBAAoB,CAAC,CACjF,CACA,OAAO,oBAAoB3qB,EAAMhiB,EAAO,CACtC,OAAQgiB,EAAI,CACV,KAAK4b,GAA2B,cAC9ByxE,GAAe,iBAAmBrvG,EAClC,MACF,KAAK49B,GAA2B,eAC9ByxE,GAAe,cAAgBrvG,EAC/B,KACR,CACE,CACA,aAAagiB,EAAMhiB,EAAO,CACxB,OAAQgiB,EAAI,CACV,KAAK4b,GAA2B,cAC9ByG,EAAA,KAAKirE,GAAAK,IAAL,UAAqB3vG,GACrB,MACF,KAAK49B,GAA2B,eAC9ByG,EAAA,KAAKirE,GAAAvF,IAAL,UAAkB/pG,GAClB,KACR,CACE,CACA,WAAW,2BAA4B,CACrC,MAAO,CAAC,CAAC49B,GAA2B,cAAeyxE,GAAe,gBAAgB,EAAG,CAACzxE,GAA2B,eAAgByxE,GAAe,eAAiBl/C,GAAiB,iBAAiB,CAAC,CACtM,CACA,IAAI,oBAAqB,CACvB,MAAO,CAAC,CAACvyB,GAA2B,cAAe6M,EAAA,KAAKilE,GAAS,EAAG,CAAC9xE,GAA2B,eAAgB,KAAK,KAAK,CAAC,CAC7H,CACA,IAAI,gBAAiB,CACnB,YAAK,eAAL,KAAK,aAAiB,IAAI2/D,GAAiB,IAAI,GACxC,CAAC,CAAC,cAAe,KAAK,YAAY,CAAC,CAC5C,CACA,IAAI,WAAY,CACd,OAAO3/D,GAA2B,cACpC,CAmBA,gBAAiB,OACf,KAAK,UAAU,MAAM,MAAQ,KAAK,OAClCvgC,EAAA,KAAK,eAAL,MAAAA,EAAmB,OAAO,KAAK,OAC/B,MAAM,eAAc,CACtB,CAiBA,gBAAgBiG,EAAGf,EAAG,CACpB,KAAK,WAAW,yBAAyBe,EAAGf,EAAG,EAAI,CACrD,CACA,uBAAwB,CACtB,MAAM+0B,EAAQ,KAAK,YACnB,MAAO,CAAC,CAAC+3E,GAAe,iBAAmB/3E,EAAO,EAAE+3E,GAAe,iBAAmB5kE,EAAA,KAAKilE,KAAap4E,CAAK,CAC/G,CACA,SAAU,CACH,KAAK,SAGV,MAAM,QAAO,EACT,KAAK,MAAQ,OAGZ,KAAK,iBACR,KAAK,OAAO,IAAI,IAAI,GAExB,CACA,gBAAiB,CACf,GAAI,CAAC,MAAM,iBACT,MAAO,GAET,KAAK,WAAW,UAAU,OAAO,SAAS,EAC1C,KAAK,UAAU,gBAAkB,GACjC,KAAK,aAAe,GACpB,KAAK,IAAI,gBAAgB,uBAAuB,EAChDyT,EAAA,KAAK0kE,GAAc,IAAI,iBACvB,MAAMhwG,EAAS,KAAK,WAAW,eAAegrC,EAAA,KAAKglE,GAAW,EAC9D,YAAK,UAAU,iBAAiB,UAAW,KAAK,iBAAiB,KAAK,IAAI,EAAG,CAC3E,OAAAhwG,CACN,CAAK,EACD,KAAK,UAAU,iBAAiB,QAAS,KAAK,eAAe,KAAK,IAAI,EAAG,CACvE,OAAAA,CACN,CAAK,EACD,KAAK,UAAU,iBAAiB,OAAQ,KAAK,cAAc,KAAK,IAAI,EAAG,CACrE,OAAAA,CACN,CAAK,EACD,KAAK,UAAU,iBAAiB,QAAS,KAAK,eAAe,KAAK,IAAI,EAAG,CACvE,OAAAA,CACN,CAAK,EACD,KAAK,UAAU,iBAAiB,QAAS,KAAK,eAAe,KAAK,IAAI,EAAG,CACvE,OAAAA,CACN,CAAK,EACM,EACT,CACA,iBAAkB,OAChB,OAAK,MAAM,mBAGX,KAAK,WAAW,UAAU,IAAI,SAAS,EACvC,KAAK,UAAU,gBAAkB,GACjC,KAAK,IAAI,aAAa,wBAAyBgrC,EAAA,KAAK+kE,GAAY,EAChE,KAAK,aAAe,IACpBnyG,EAAAotC,EAAA,KAAKglE,MAAL,MAAApyG,EAAkB,QAClB0tC,EAAA,KAAK0kE,GAAc,MACnB,KAAK,IAAI,MAAM,CACb,cAAe,EACrB,CAAK,EACD,KAAK,UAAY,GACjB,KAAK,OAAO,IAAI,UAAU,IAAI,iBAAiB,EACxC,IAbE,EAcX,CACA,QAAQlmF,EAAO,CACR,KAAK,sBAGV,MAAM,QAAQA,CAAK,EACfA,EAAM,SAAW,KAAK,WACxB,KAAK,UAAU,MAAK,EAExB,CACA,UAAUuiC,EAAO,OACX,KAAK,QAGT,KAAK,eAAc,EACfA,GACF,KAAK,UAAU,MAAK,GAElBzuD,EAAA,KAAK,kBAAL,MAAAA,EAAsB,YACxB,KAAK,OAAM,EAEb,KAAK,gBAAkB,KACzB,CACA,SAAU,CACR,MAAO,CAAC,KAAK,WAAa,KAAK,UAAU,UAAU,KAAI,IAAO,EAChE,CACA,QAAS,CACP,KAAK,UAAY,GACb,KAAK,SACP,KAAK,OAAO,gBAAgB,EAAI,EAChC,KAAK,OAAO,IAAI,UAAU,IAAI,iBAAiB,GAEjD,MAAM,OAAM,CACd,CA2CA,QAAS,CACP,GAAI,CAAC,KAAK,eACR,OAEF,MAAM,OAAM,EACZ,KAAK,gBAAe,EACpB,MAAMuyG,EAAYnlE,EAAA,KAAK8kE,IACjBM,EAAU9kE,EAAA,KAAKwkE,GAAWlrE,EAAA,KAAKirE,GAAAQ,IAAL,WAAoB,QAAO,GAC3D,GAAIF,IAAcC,EAChB,OAEF,MAAME,EAAU3uG,GAAQ,CAEtB,GADA2pC,EAAA,KAAKwkE,GAAWnuG,GACZ,CAACA,EAAM,CACT,KAAK,OAAM,EACX,MACF,CACAijC,EAAA,KAAKirE,GAAAU,IAAL,WACA,KAAK,WAAW,QAAQ,IAAI,EAC5B3rE,EAAA,KAAKirE,GAAAW,IAAL,UACF,EACA,KAAK,YAAY,CACf,IAAK,IAAM,CACTF,EAAQF,CAAO,CACjB,EACA,KAAM,IAAM,CACVE,EAAQH,CAAS,CACnB,EACA,SAAU,EAChB,CAAK,EACDvrE,EAAA,KAAKirE,GAAAW,IAAL,UACF,CACA,yBAA0B,CACxB,OAAO,KAAK,aAAY,CAC1B,CACA,iBAAkB,CAChB,KAAK,eAAc,EACnB,KAAK,UAAU,MAAK,CACtB,CACA,QAAQ1mF,EAAO,CACTA,EAAM,SAAW,KAAK,KAAOA,EAAM,MAAQ,UAC7C,KAAK,gBAAe,EACpBA,EAAM,eAAc,EAExB,CACA,iBAAiBA,EAAO,CACtB8lF,GAAe,iBAAiB,KAAK,KAAM9lF,CAAK,CAClD,CACA,eAAeA,EAAO,CACpB,KAAK,UAAY,EACnB,CACA,cAAcA,EAAO,CACnB,KAAK,UAAY,EACnB,CACA,eAAeA,EAAO,CACpB,KAAK,OAAO,IAAI,UAAU,OAAO,kBAAmB,KAAK,SAAS,CACpE,CACA,gBAAiB,CACf,KAAK,UAAU,aAAa,OAAQ,SAAS,EAC7C,KAAK,UAAU,gBAAgB,gBAAgB,CACjD,CACA,eAAgB,CACd,KAAK,UAAU,aAAa,OAAQ,SAAS,EAC7C,KAAK,UAAU,aAAa,iBAAkB,EAAI,CACpD,CACA,IAAI,kBAAmB,CACrB,MAAO,EACT,CACA,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,IAAI6gC,EAAOC,GACP,KAAK,SAAW,KAAK,uBACvBD,EAAQ,KAAK,EACbC,EAAQ,KAAK,GAEf,MAAM,OAAM,EACZ,KAAK,UAAY,SAAS,cAAc,KAAK,EAC7C,KAAK,UAAU,UAAY,WAC3B,KAAK,UAAU,aAAa,KAAM5f,EAAA,KAAK+kE,GAAY,EACnD,KAAK,UAAU,aAAa,eAAgB,kBAAkB,EAC9D,KAAK,UAAU,aAAa,kBAAmB,iBAAiB,EAChE,KAAK,cAAa,EAClB,KAAK,UAAU,gBAAkB,GACjC,KAAM,CACJ,MAAA7iE,CACN,EAAQ,KAAK,UAOT,GANAA,EAAM,SAAW,QAAQlC,EAAA,KAAKilE,GAAS,kCACvC/iE,EAAM,MAAQ,KAAK,MACnB,KAAK,IAAI,OAAO,KAAK,SAAS,EAC9B,KAAK,WAAa,SAAS,cAAc,KAAK,EAC9C,KAAK,WAAW,UAAU,IAAI,UAAW,SAAS,EAClD,KAAK,IAAI,OAAO,KAAK,UAAU,EAC3B,KAAK,SAAW,KAAK,oBAAqB,CAC5C,KAAM,CAACmV,EAAaC,CAAY,EAAI,KAAK,iBACzC,GAAI,KAAK,oBAAqB,CAC5B,KAAM,CACJ,SAAA/+B,CACV,EAAY,KAAK,aACT,GAAI,CAAC4+B,EAAIC,CAAE,EAAI,KAAK,sBAAqB,EACzC,CAACD,EAAIC,CAAE,EAAI,KAAK,wBAAwBD,EAAIC,CAAE,EAC9C,KAAM,CAACpV,EAAWC,CAAU,EAAI,KAAK,eAC/B,CAACid,EAAOC,CAAK,EAAI,KAAK,gBAC5B,IAAInN,EAAMC,EACV,OAAQ,KAAK,SAAQ,CACnB,IAAK,GACHD,EAAO2N,GAASpnC,EAAS,CAAC,EAAI2mC,GAASld,EACvCiQ,EAAO2N,EAAQ,KAAK,QAAUrnC,EAAS,CAAC,EAAI4mC,GAASld,EACrD,MACF,IAAK,IACH+P,EAAO2N,GAASpnC,EAAS,CAAC,EAAI2mC,GAASld,EACvCiQ,EAAO2N,GAASrnC,EAAS,CAAC,EAAI4mC,GAASld,EACvC,CAACkV,EAAIC,CAAE,EAAI,CAACA,EAAI,CAACD,CAAE,EACnB,MACF,IAAK,KACHnF,EAAO2N,EAAQ,KAAK,OAASpnC,EAAS,CAAC,EAAI2mC,GAASld,EACpDiQ,EAAO2N,GAASrnC,EAAS,CAAC,EAAI4mC,GAASld,EACvC,CAACkV,EAAIC,CAAE,EAAI,CAAC,CAACD,EAAI,CAACC,CAAE,EACpB,MACF,IAAK,KACHpF,EAAO2N,GAASpnC,EAAS,CAAC,EAAI2mC,EAAQ,KAAK,OAASjd,GAAcD,EAClEiQ,EAAO2N,GAASrnC,EAAS,CAAC,EAAI4mC,EAAQ,KAAK,MAAQnd,GAAaC,EAChE,CAACkV,EAAIC,CAAE,EAAI,CAAC,CAACA,EAAID,CAAE,EACnB,KACZ,CACQ,KAAK,MAAMnF,EAAOqF,EAAapF,EAAOqF,EAAcH,EAAIC,CAAE,CAC5D,MACE,KAAK,gBAAgBuI,EAAOC,CAAK,EAEnChmB,EAAA,KAAKirE,GAAAU,IAAL,WACA,KAAK,aAAe,GACpB,KAAK,UAAU,gBAAkB,EACnC,MACE,KAAK,aAAe,GACpB,KAAK,UAAU,gBAAkB,GAEnC,OAAO,KAAK,GACd,CAIA,eAAezmF,EAAO,WACpB,MAAMk1B,EAAgBl1B,EAAM,eAAiB,OAAO,cAC9C,CACJ,MAAAk2B,CACN,EAAQhB,EACJ,GAAIgB,EAAM,SAAW,GAAKA,EAAM,CAAC,IAAM,aACrC,OAEFl2B,EAAM,eAAc,EACpB,MAAM2mF,EAAQ7rE,EAAAhnC,EAAAgyG,GAAec,GAAAC,IAAf,KAAA/yG,EAAmCohD,EAAc,QAAQ,MAAM,GAAK,IAAI,WAAW2wD,GAAa;AAAA,CAAI,EAClH,GAAI,CAACc,EACH,OAEF,MAAM3yD,EAAY,OAAO,aAAY,EACrC,GAAI,CAACA,EAAU,WACb,OAEF,KAAK,UAAU,UAAS,EACxBA,EAAU,mBAAkB,EAC5B,MAAM0E,EAAQ1E,EAAU,WAAW,CAAC,EACpC,GAAI,CAAC2yD,EAAM,SAAS;AAAA,CAAI,EAAG,CACzBjuD,EAAM,WAAW,SAAS,eAAeiuD,CAAK,CAAC,EAC/C,KAAK,UAAU,UAAS,EACxB3yD,EAAU,gBAAe,EACzB,MACF,CACA,KAAM,CACJ,eAAA8yD,EACA,YAAAC,CACN,EAAQruD,EACEsuD,EAAe,CAAA,EACfC,EAAc,CAAA,EACpB,GAAIH,EAAe,WAAa,KAAK,UAAW,CAC9C,MAAMtnE,EAASsnE,EAAe,cAE9B,GADAG,EAAY,KAAKH,EAAe,UAAU,MAAMC,CAAW,EAAE,WAAWlB,GAAa,EAAE,CAAC,EACpFrmE,IAAW,KAAK,UAAW,CAC7B,IAAIjpC,EAASywG,EACb,UAAWhpE,KAAS,KAAK,UAAU,WAAY,CAC7C,GAAIA,IAAUwB,EAAQ,CACpBjpC,EAAS0wG,EACT,QACF,CACA1wG,EAAO,KAAKukC,EAAAjnC,EAAAiyG,GAAec,GAAAM,IAAf,KAAArzG,EAA+BmqC,EAAM,CACnD,CACF,CACAgpE,EAAa,KAAKF,EAAe,UAAU,MAAM,EAAGC,CAAW,EAAE,WAAWlB,GAAa,EAAE,CAAC,CAC9F,SAAWiB,IAAmB,KAAK,UAAW,CAC5C,IAAIvwG,EAASywG,EACT5uG,EAAI,EACR,UAAW4lC,KAAS,KAAK,UAAU,WAC7B5lC,MAAQ2uG,IACVxwG,EAAS0wG,GAEX1wG,EAAO,KAAKukC,EAAAhkB,EAAAgvF,GAAec,GAAAM,IAAf,KAAApwF,EAA+BknB,EAAM,CAErD,CACAwD,EAAA,KAAKwkE,GAAW,GAAGgB,EAAa,KAAK;AAAA,CAAI,CAAC,GAAGL,CAAK,GAAGM,EAAY,KAAK;AAAA,CAAI,CAAC,IAC3EnsE,EAAA,KAAKirE,GAAAU,IAAL,WACA,MAAMU,EAAW,IAAI,MACrB,IAAIC,EAAe,KAAK,WAAWJ,EAAa,IAAInwG,GAAQA,EAAK,MAAM,CAAC,EACxE,SAAW,CACT,WAAA4uG,CACN,IAAS,KAAK,UAAU,WAClB,GAAIA,EAAW,WAAa,KAAK,UAAW,CAC1C,MAAMtuE,EAASsuE,EAAW,UAAU,OACpC,GAAI2B,GAAgBjwE,EAAQ,CAC1BgwE,EAAS,SAAS1B,EAAY2B,CAAY,EAC1CD,EAAS,OAAO1B,EAAY2B,CAAY,EACxC,KACF,CACAA,GAAgBjwE,CAClB,CAEF6c,EAAU,gBAAe,EACzBA,EAAU,SAASmzD,CAAQ,CAC7B,CAkBA,IAAI,YAAa,CACf,OAAO,KAAK,SACd,CACA,YAAa,CACX,MAAME,EAAUvB,GAAe,iBAAmB,KAAK,YACvD,OAAO,KAAK,QAAQuB,EAASA,CAAO,CACtC,CACA,aAAa,YAAYvwG,EAAM0oC,EAAQ8I,EAAW,OAChD,IAAIq1C,EAAc,KAClB,GAAI7mF,aAAgBw+F,GAA2B,CAC7C,KAAM,CACJ,KAAM,CACJ,sBAAuB,CACrB,SAAA5jB,EACA,UAAAqpB,CACZ,EACU,KAAAriE,EACA,SAAAoE,EACA,GAAAngB,EACA,SAAAu6B,EACA,SAAAyE,EACA,YAAAxE,EACA,aAAAkL,EACA,iBAAAC,CACV,EACQ,YAAAkrC,EACA,aAAA8Z,EACA,OAAQ,CACN,KAAM,CACJ,WAAA7zD,CACZ,CACA,CACA,EAAU38C,EACJ,GAAI,EAAC02F,GAAA,MAAAA,EAAa,QAChB,OAAO,KAET7P,EAAc7mF,EAAO,CACnB,eAAgBs9B,GAAqB,SACrC,MAAO,MAAM,KAAK2mE,CAAS,EAC3B,SAAArpB,EACA,MAAO8b,EAAY,KAAK;AAAA,CAAI,EAC5B,SAAU8Z,EACV,UAAW7zD,EAAa,EACxB,KAAM/a,EAAK,MAAM,CAAC,EAClB,SAAAoE,EACA,oBAAqBngB,EACrB,GAAAA,EACA,QAAS,GACT,SAAAu6B,EACA,SAASC,GAAA,YAAAA,EAAa,MAAO,KAC7B,SAAAwE,EACA,aAAA0G,EACA,iBAAAC,CACR,CACI,CACA,MAAMjc,EAAS,MAAM,MAAM,YAAYvvC,EAAM0oC,EAAQ8I,CAAS,EAC9D,OAAA9G,EAAA6E,EAAO8/D,GAAYrvG,EAAK,UACxBuvC,EAAO,MAAQzO,GAAK,aAAa,GAAG9gC,EAAK,KAAK,EAC9C0qC,EAAA6E,EAAO2/D,GAAWlrE,EAAAhnC,EAAAgyG,GAAec,GAAAC,IAAf,KAAA/yG,EAAmCgD,EAAK,QAC1DuvC,EAAO,aAAes3C,EAClB7mF,EAAK,SACPuvC,EAAO,eAAevvC,CAAI,EAErBuvC,CACT,CACA,UAAU+T,EAAe,GAAO,CAC9B,GAAI,KAAK,UACP,OAAO,KAET,GAAI,KAAK,QACP,OAAO,KAAK,iBAAgB,EAE9B,MAAMjY,EAAQykB,GAAiB,cAAc,QAAQ,KAAK,gBAAkB,iBAAiB,KAAK,SAAS,EAAE,MAAQ,KAAK,KAAK,EACzH1nC,EAAa,OAAO,OAAO,MAAM,UAAUk7B,CAAY,EAAG,CAC9D,MAAAjY,EACA,SAAUjB,EAAA,KAAKilE,IACf,MAAOrrE,EAAA,KAAKirE,GAAAwB,IAAL,UACb,CAAK,EAED,OADA,KAAK,WAAWroF,CAAU,EACtBk7B,GACFl7B,EAAW,OAAS,GACbA,GAEL,KAAK,qBAAuB,CAAC4b,EAAA,KAAKirE,GAAAyB,IAAL,UAAwBtoF,GAChD,MAETA,EAAW,GAAK,KAAK,oBACdA,EACT,CAUA,wBAAwB+3B,EAAY,CAClC,MAAMhiD,EAAU,MAAM,wBAAwBgiD,CAAU,EACxD,GAAI,CAAChiD,EACH,OAAO,KAET,KAAM,CACJ,MAAAmuC,CACN,EAAQnuC,EACJmuC,EAAM,SAAW,QAAQlC,EAAA,KAAKilE,GAAS,kCACvC/iE,EAAM,MAAQ,KAAK,MACnBnuC,EAAQ,gBAAe,EACvB,UAAW4B,KAAQqqC,EAAA,KAAK8kE,IAAS,MAAM;AAAA,CAAI,EAAG,CAC5C,MAAMljE,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,OAAOjsC,EAAO,SAAS,eAAeA,CAAI,EAAI,SAAS,cAAc,IAAI,CAAC,EAC9E5B,EAAQ,OAAO6tC,CAAG,CACpB,CACA,OAAAmU,EAAW,aAAa,CACtB,KAAM,KAAK,WAAU,EACrB,MAAO,KAAK,WAAW,kBAAiB,GAAM,KAAK,iBAAmB,KAAK,QAAU,CACnF,KAAM/V,EAAA,KAAK8kE,GACnB,CACA,CAAK,EACM/wG,CACT,CACA,uBAAuBgiD,EAAY,CACjC,MAAM,uBAAuBA,CAAU,EACvCA,EAAW,YAAW,CACxB,CACF,EAxnBE+uD,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAJFJ,GAAA,YA+FEK,GAAe,SAAC10B,EAAU,CACxB,MAAM+1B,EAAc/8D,GAAQ,CAC1B,KAAK,UAAU,MAAM,SAAW,QAAQA,CAAI,kCAC5C,KAAK,UAAU,EAAG,EAAEA,EAAOxJ,EAAA,KAAKilE,KAAa,KAAK,WAAW,EAC7D3kE,EAAA,KAAK2kE,GAAYz7D,GACjB5P,EAAA,KAAKirE,GAAAW,IAAL,UACF,EACMgB,EAAgBxmE,EAAA,KAAKilE,IAC3B,KAAK,YAAY,CACf,IAAKsB,EAAY,KAAK,KAAM/1B,CAAQ,EACpC,KAAM+1B,EAAY,KAAK,KAAMC,CAAa,EAC1C,KAAM,KAAK,WAAW,SAAS,KAAK,KAAK,WAAY,IAAI,EACzD,SAAU,GACV,KAAMrzE,GAA2B,cACjC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACH,EAMAmsE,GAAY,SAACr+D,EAAO,CAClB,MAAMq1D,EAAWmQ,GAAO,CACtB,KAAK,MAAQA,EACb,KAAK,eAAc,CACrB,EACMC,EAAa,KAAK,MACxB,KAAK,YAAY,CACf,IAAKpQ,EAAS,KAAK,KAAMr1D,CAAK,EAC9B,KAAMq1D,EAAS,KAAK,KAAMoQ,CAAU,EACpC,KAAM,KAAK,WAAW,SAAS,KAAK,KAAK,WAAY,IAAI,EACzD,SAAU,GACV,KAAMvzE,GAA2B,eACjC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACH,EAiGAkyE,GAAY,UAAG,OACb,MAAMhwG,EAAS,CAAA,EACf,KAAK,UAAU,UAAS,EACxB,IAAIsxG,EAAY,KAChB,UAAW7pE,KAAS,KAAK,UAAU,YAC7B6pE,GAAA,YAAAA,EAAW,YAAa,KAAK,WAAa7pE,EAAM,WAAa,OAGjEznC,EAAO,KAAKukC,EAAAhnC,EAAAgyG,GAAec,GAAAM,IAAf,KAAApzG,EAA+BkqC,EAAM,EACjD6pE,EAAY7pE,GAEd,OAAOznC,EAAO,KAAK;AAAA,CAAI,CACzB,EACAmwG,GAAoB,UAAG,CACrB,KAAM,CAACnuD,EAAaC,CAAY,EAAI,KAAK,iBACzC,IAAI9f,EACJ,GAAI,KAAK,gBACPA,EAAO,KAAK,IAAI,sBAAqB,MAChC,CACL,KAAM,CACJ,aAAAkgB,EACA,IAAA9V,CACR,EAAU,KACEglE,EAAehlE,EAAI,MAAM,QACzBilE,EAAkBjlE,EAAI,UAAU,SAAS,QAAQ,EACvDA,EAAI,UAAU,OAAO,QAAQ,EAC7BA,EAAI,MAAM,QAAU,SACpB8V,EAAa,IAAI,OAAO,KAAK,GAAG,EAChClgB,EAAOoK,EAAI,sBAAqB,EAChCA,EAAI,OAAM,EACVA,EAAI,MAAM,QAAUglE,EACpBhlE,EAAI,UAAU,OAAO,SAAUilE,CAAe,CAChD,CACI,KAAK,SAAW,MAAQ,KAAK,eAAiB,KAChD,KAAK,MAAQrvE,EAAK,MAAQ6f,EAC1B,KAAK,OAAS7f,EAAK,OAAS8f,IAE5B,KAAK,MAAQ9f,EAAK,OAAS6f,EAC3B,KAAK,OAAS7f,EAAK,MAAQ8f,GAE7B,KAAK,kBAAiB,CACxB,EA/QFouD,GAAA,YA2ZSM,GAAe,SAAC52E,EAAM,CAC3B,OAAQA,EAAK,WAAa,KAAK,UAAYA,EAAK,UAAYA,EAAK,WAAW,WAAWu1E,GAAa,EAAE,CACxG,EA6EAY,GAAW,UAAG,CAEZ,GADA,KAAK,UAAU,gBAAe,EAC1B,EAACvlE,EAAA,KAAK8kE,IAGV,UAAWnvG,KAAQqqC,EAAA,KAAK8kE,IAAS,MAAM;AAAA,CAAI,EAAG,CAC5C,MAAMljE,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,OAAOjsC,EAAO,SAAS,eAAeA,CAAI,EAAI,SAAS,cAAc,IAAI,CAAC,EAC9E,KAAK,UAAU,OAAOisC,CAAG,CAC3B,CACF,EACAykE,GAAiB,UAAG,CAClB,OAAOrmE,EAAA,KAAK8kE,IAAS,WAAW,IAAQ,GAAG,CAC7C,EACOa,GAAmB,SAAC5xG,EAAS,CAClC,OAAOA,EAAQ,WAAW,IAAK,GAAM,CACvC,EA0FAuyG,GAAkB,SAACtoF,EAAY,CAC7B,KAAM,CACJ,MAAAzoB,EACA,SAAAi7E,EACA,MAAAvvC,EACA,UAAAiR,CACN,EAAQ,KAAK,aACT,OAAO,KAAK,kBAAoB,KAAK,eAAiBl0B,EAAW,QAAUzoB,GAASyoB,EAAW,WAAawyD,GAAYxyD,EAAW,MAAM,KAAK,CAAC1mB,EAAGJ,IAAMI,IAAM2pC,EAAM/pC,CAAC,CAAC,GAAK8mB,EAAW,YAAck0B,CACtM,EA5lBF/X,EAAMyqE,GAANc,IAMEvrF,GANIyqF,GAMG,0BAA0B,IACjCzqF,GAPIyqF,GAOG,mBAAmB,GAC1BzqF,GARIyqF,GAQG,gBAAgB,MACvBzqF,GATIyqF,GASG,mBAAmB,IAkC1BzqF,GA3CIyqF,GA2CG,QAAQ,YACfzqF,GA5CIyqF,GA4CG,cAAc1xE,GAAqB,UA5C5C,IAAM4zE,GAANlC,GA6nBA,MAAMmC,EAAQ,CAEZ,WAAY,CACV5yE,GAAY,kDAAkD,CAChE,CACA,IAAI,KAAM,CACRA,GAAY,4CAA4C,CAC1D,CACA,UAAU6yE,EAAOliB,EAAW,CAC1B3wD,GAAY,kDAAkD,CAChE,CACA,OAAO,SAASjQ,EAAKizB,EAAIC,EAAI6vD,EAAIC,EAAItsE,EAAM,CACzCA,MAAS,IAAI,aAAa1W,EAAI,MAAM,GACpC,QAAShtB,EAAI,EAAG2Q,EAAKqc,EAAI,OAAQhtB,EAAI2Q,EAAI3Q,GAAK,EAC5C0jC,EAAK1jC,CAAC,EAAIigD,EAAKjzB,EAAIhtB,CAAC,EAAI+vG,EACxBrsE,EAAK1jC,EAAI,CAAC,EAAIkgD,EAAKlzB,EAAIhtB,EAAI,CAAC,EAAIgwG,EAElC,OAAOtsE,CACT,CACA,OAAO,gBAAgB1W,EAAKizB,EAAIC,EAAI6vD,EAAIC,EAAItsE,EAAM,CAChDA,MAAS,IAAI,aAAa1W,EAAI,MAAM,GACpC,QAAShtB,EAAI,EAAG2Q,EAAKqc,EAAI,OAAQhtB,EAAI2Q,EAAI3Q,GAAK,EAC5C0jC,EAAK1jC,CAAC,EAAIigD,EAAKjzB,EAAIhtB,EAAI,CAAC,EAAI+vG,EAC5BrsE,EAAK1jC,EAAI,CAAC,EAAIkgD,EAAKlzB,EAAIhtB,CAAC,EAAIgwG,EAE9B,OAAOtsE,CACT,CACA,OAAO,WAAW1W,EAAKizB,EAAIC,EAAIxc,EAAM,CACnCA,MAAS,IAAI,aAAa1W,EAAI,MAAM,GACpC,QAAShtB,EAAI,EAAG2Q,EAAKqc,EAAI,OAAQhtB,EAAI2Q,EAAI3Q,GAAK,EAC5C0jC,EAAK1jC,CAAC,EAAIigD,EAAKjzB,EAAIhtB,CAAC,EACpB0jC,EAAK1jC,EAAI,CAAC,EAAIkgD,EAAKlzB,EAAIhtB,EAAI,CAAC,EAE9B,OAAO0jC,CACT,CACA,OAAO,SAAS/hC,EAAG,CACjB,OAAO,KAAK,MAAMA,EAAI,GAAK,CAC7B,CACA,OAAO,gBAAgBA,EAAGf,EAAGu/C,EAAaC,EAAc1b,EAAU,CAChE,OAAQA,EAAQ,CACd,IAAK,IACH,MAAO,CAAC,EAAI9jC,EAAIu/C,EAAax+C,EAAIy+C,CAAY,EAC/C,IAAK,KACH,MAAO,CAAC,EAAIz+C,EAAIw+C,EAAa,EAAIv/C,EAAIw/C,CAAY,EACnD,IAAK,KACH,MAAO,CAACx/C,EAAIu/C,EAAa,EAAIx+C,EAAIy+C,CAAY,EAC/C,QACE,MAAO,CAACz+C,EAAIw+C,EAAav/C,EAAIw/C,CAAY,CACjD,CACE,CACA,OAAO,mBAAmBhe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI,CAChD,MAAO,EAAEL,EAAK,EAAIE,GAAM,GAAID,EAAK,EAAIE,GAAM,GAAI,EAAID,EAAKE,GAAM,GAAI,EAAID,EAAKE,GAAM,GAAIH,EAAKE,GAAM,GAAID,EAAKE,GAAM,CAAC,CAClH,CACF,CApDExf,GADI4sF,GACG,YAAY,MAyDrB,MAAMI,GAAN,MAAMA,EAAiB,CAiBrB,YAAY,CACV,EAAAtuG,EACA,EAAAf,CACJ,EAAK+vC,EAAKu/D,EAAajG,EAAW55D,EAAO8/D,EAAc,EAAG,CApB1DltE,EAAA,KAAAmtE,IACEntE,EAAA,KAAAotE,IACAptE,EAAA,KAAAqtE,GAAU,CAAA,GACVrtE,EAAA,KAAAstE,IACAttE,EAAA,KAAAutE,IACAvtE,EAAA,KAAAwtE,GAAO,CAAA,GACPxtE,EAAA,KAAAytE,GAAQ,IAAI,aAAa,EAAE,GAC3BztE,EAAA,KAAA0tE,IACA1tE,EAAA,KAAA2tE,IACA3tE,EAAA,KAAA4tE,IACA5tE,EAAA,KAAA6tE,IACA7tE,EAAA,KAAA8tE,IACA9tE,EAAA,KAAA+tE,IACA/tE,EAAA,KAAAguE,GAAU,CAAA,GAQR7nE,EAAA,KAAKinE,GAAO1/D,GACZvH,EAAA,KAAK4nE,GAAa/G,EAAYiG,GAC9B9mE,EAAA,KAAKonE,GAASngE,GACdvH,EAAA,KAAK4nE,IAAM,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK/uG,EAAGf,CAAC,EAAG,CAAC,EAC5CwoC,EAAA,KAAKmnE,GAAeJ,GACpB/mE,EAAA,KAAK0nE,GAAYhoE,EAAAmnE,GAAiBiB,IAAYhB,GAC9C9mE,EAAA,KAAKynE,GAAO/nE,EAAAmnE,GAAiBkB,IAAOjB,GACpC9mE,EAAA,KAAK2nE,GAAeb,GACpBpnE,EAAA,KAAKmoE,IAAQ,KAAKtvG,EAAGf,CAAC,CACxB,CACA,SAAU,CACR,OAAO,MAAMkoC,EAAA,KAAK4nE,IAAM,CAAC,CAAC,CAC5B,CAOA,IAAI,CACF,EAAA/uG,EACA,EAAAf,CACJ,EAAK,OACDwoC,EAAA,KAAKunE,GAAShvG,GACdynC,EAAA,KAAKwnE,GAAShwG,GACd,KAAM,CAAC46C,EAAQC,EAAQg8B,EAAYC,CAAW,EAAI5uC,EAAA,KAAKunE,IACvD,GAAI,CAACjuE,EAAIC,EAAIC,EAAIC,CAAE,EAAIuG,EAAA,KAAK4nE,IAAM,SAAS,EAAG,EAAE,EAChD,MAAMU,EAAQzvG,EAAI2gC,EACZ+uE,EAAQzwG,EAAI2hC,EACZjiC,EAAI,KAAK,MAAM8wG,EAAOC,CAAK,EACjC,GAAI/wG,EAAIwoC,EAAA,KAAK+nE,IACX,MAAO,GAET,MAAMS,EAAQhxG,EAAIwoC,EAAA,KAAKgoE,IACjBjuG,EAAIyuG,EAAQhxG,EACZypD,EAASlnD,EAAIuuG,EACbpnD,EAASnnD,EAAIwuG,EACnB,IAAInvE,EAAKE,EACLD,EAAKE,EACTD,EAAKE,EACLD,EAAKE,EACLD,GAAMynB,EACNxnB,GAAMynB,GACNtuD,EAAAotC,EAAA,KAAKmoE,MAAL,MAAAv1G,EAAc,KAAKiG,EAAGf,GACtB,MAAM2wG,EAAK,CAACvnD,EAASsnD,EACfE,EAAKznD,EAASunD,EACdG,EAAMF,EAAKzoE,EAAA,KAAKkoE,IAChBU,EAAMF,EAAK1oE,EAAA,KAAKkoE,IAKtB,OAJAloE,EAAA,KAAK4nE,IAAM,IAAI5nE,EAAA,KAAK4nE,IAAM,SAAS,EAAG,CAAC,EAAG,CAAC,EAC3C5nE,EAAA,KAAK4nE,IAAM,IAAI,CAACpuE,EAAKmvE,EAAKlvE,EAAKmvE,CAAG,EAAG,CAAC,EACtC5oE,EAAA,KAAK4nE,IAAM,IAAI5nE,EAAA,KAAK4nE,IAAM,SAAS,GAAI,EAAE,EAAG,EAAE,EAC9C5nE,EAAA,KAAK4nE,IAAM,IAAI,CAACpuE,EAAKmvE,EAAKlvE,EAAKmvE,CAAG,EAAG,EAAE,EACnC,MAAM5oE,EAAA,KAAK4nE,IAAM,CAAC,CAAC,GACjB5nE,EAAA,KAAK2nE,IAAK,SAAW,IACvB3nE,EAAA,KAAK4nE,IAAM,IAAI,CAACtuE,EAAKqvE,EAAKpvE,EAAKqvE,CAAG,EAAG,CAAC,EACtC5oE,EAAA,KAAK2nE,IAAK,KAAK,IAAK,IAAK,IAAK,KAAMruE,EAAKqvE,EAAMj2D,GAAUi8B,GAAap1C,EAAKqvE,EAAMj2D,GAAUi8B,CAAW,EACtG5uC,EAAA,KAAK4nE,IAAM,IAAI,CAACtuE,EAAKqvE,EAAKpvE,EAAKqvE,CAAG,EAAG,EAAE,EACvC5oE,EAAA,KAAKwnE,IAAQ,KAAK,IAAK,IAAK,IAAK,KAAMluE,EAAKqvE,EAAMj2D,GAAUi8B,GAAap1C,EAAKqvE,EAAMj2D,GAAUi8B,CAAW,GAE3G5uC,EAAA,KAAK4nE,IAAM,IAAI,CAACxuE,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAAG,CAAC,EACnC,CAAC,KAAK,QAAO,IAEtBuG,EAAA,KAAK4nE,IAAM,IAAI,CAACxuE,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAAG,CAAC,EAC5B,KAAK,IAAI,KAAK,MAAMJ,EAAKE,EAAIH,EAAKE,CAAE,EAAI,KAAK,MAAM4nB,EAAQD,CAAM,CAAC,EACpE,KAAK,GAAK,GACpB,CAAC3nB,EAAIC,EAAIC,EAAIC,CAAE,EAAIuG,EAAA,KAAK4nE,IAAM,SAAS,EAAG,CAAC,EAC3C5nE,EAAA,KAAK2nE,IAAK,KAAK,IAAK,IAAK,IAAK,MAAOruE,EAAKE,GAAM,EAAIkZ,GAAUi8B,IAAcp1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,CAAW,EAChH,CAACt1C,EAAIC,EAAIH,EAAIC,CAAE,EAAI2G,EAAA,KAAK4nE,IAAM,SAAS,GAAI,EAAE,EAC7C5nE,EAAA,KAAKwnE,IAAQ,KAAK,IAAK,IAAK,IAAK,MAAOpuE,EAAKE,GAAM,EAAIoZ,GAAUi8B,IAAct1C,EAAKE,GAAM,EAAIoZ,GAAUi8B,CAAW,EAC5G,KAET,CAACx1C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAAIuG,EAAA,KAAK4nE,IAAM,SAAS,EAAG,CAAC,EACnD5nE,EAAA,KAAK2nE,IAAK,OAAOvuE,EAAK,EAAIE,GAAM,EAAIoZ,GAAUi8B,IAAct1C,EAAK,EAAIE,GAAM,EAAIoZ,GAAUi8B,IAAe,EAAIt1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,IAAc,EAAIp1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,IAAet1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,IAAcp1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,CAAW,EAC1Q,CAACp1C,EAAIC,EAAIH,EAAIC,EAAIH,EAAIC,CAAE,EAAI2G,EAAA,KAAK4nE,IAAM,SAAS,GAAI,EAAE,EACrD5nE,EAAA,KAAKwnE,IAAQ,OAAOpuE,EAAK,EAAIE,GAAM,EAAIoZ,GAAUi8B,IAAct1C,EAAK,EAAIE,GAAM,EAAIoZ,GAAUi8B,IAAe,EAAIt1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,IAAc,EAAIp1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,IAAet1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,IAAcp1C,EAAKE,GAAM,EAAIkZ,GAAUi8B,CAAW,EACtQ,IACT,CACA,WAAY,CACV,GAAI,KAAK,UACP,MAAO,GAET,MAAMttB,EAAMthB,EAAA,KAAK2nE,IACXnmD,EAASxhB,EAAA,KAAKwnE,IACpB,GAAI,MAAMxnE,EAAA,KAAK4nE,IAAM,CAAC,CAAC,GAAK,CAAC,KAAK,UAChC,OAAOhuE,EAAA,KAAK0tE,GAAAuB,IAAL,WAET,MAAMxzG,EAAS,CAAA,EACfA,EAAO,KAAK,IAAIisD,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC,EAAE,EAClC,QAASpqD,EAAI,EAAGA,EAAIoqD,EAAI,OAAQpqD,GAAK,EAC/B,MAAMoqD,EAAIpqD,CAAC,CAAC,EACd7B,EAAO,KAAK,IAAIisD,EAAIpqD,EAAI,CAAC,CAAC,IAAIoqD,EAAIpqD,EAAI,CAAC,CAAC,EAAE,EAE1C7B,EAAO,KAAK,IAAIisD,EAAIpqD,CAAC,CAAC,IAAIoqD,EAAIpqD,EAAI,CAAC,CAAC,IAAIoqD,EAAIpqD,EAAI,CAAC,CAAC,IAAIoqD,EAAIpqD,EAAI,CAAC,CAAC,IAAIoqD,EAAIpqD,EAAI,CAAC,CAAC,IAAIoqD,EAAIpqD,EAAI,CAAC,CAAC,EAAE,EAGlG0iC,EAAA,KAAK0tE,GAAAwB,IAAL,UAAmBzzG,GACnB,QAAS6B,EAAIsqD,EAAO,OAAS,EAAGtqD,GAAK,EAAGA,GAAK,EACvC,MAAMsqD,EAAOtqD,CAAC,CAAC,EACjB7B,EAAO,KAAK,IAAImsD,EAAOtqD,EAAI,CAAC,CAAC,IAAIsqD,EAAOtqD,EAAI,CAAC,CAAC,EAAE,EAEhD7B,EAAO,KAAK,IAAImsD,EAAOtqD,CAAC,CAAC,IAAIsqD,EAAOtqD,EAAI,CAAC,CAAC,IAAIsqD,EAAOtqD,EAAI,CAAC,CAAC,IAAIsqD,EAAOtqD,EAAI,CAAC,CAAC,IAAIsqD,EAAOtqD,EAAI,CAAC,CAAC,IAAIsqD,EAAOtqD,EAAI,CAAC,CAAC,EAAE,EAGpH,OAAA0iC,EAAA,KAAK0tE,GAAAyB,IAAL,UAAqB1zG,GACdA,EAAO,KAAK,GAAG,CACxB,CAiBA,mBAAmB2zG,EAASnI,EAAQh5D,EAAKu/D,EAAaC,EAAa9/D,EAAO,CACxE,OAAO,IAAI0hE,GAAgBD,EAASnI,EAAQh5D,EAAKu/D,EAAaC,EAAa9/D,CAAK,CAClF,CACA,aAAc,OACZ,MAAM+Z,EAAMthB,EAAA,KAAK2nE,IACXnmD,EAASxhB,EAAA,KAAKwnE,IACd0B,EAAOlpE,EAAA,KAAK4nE,IACZ,CAACl1D,EAAQC,EAAQg8B,EAAYC,CAAW,EAAI5uC,EAAA,KAAKunE,IACjD1G,EAAS,IAAI,gBAAcjuG,EAAAotC,EAAA,KAAKmoE,MAAL,YAAAv1G,EAAc,SAAU,GAAK,CAAC,EAC/D,QAASsE,EAAI,EAAG2Q,EAAKg5F,EAAO,OAAS,EAAG3pG,EAAI2Q,EAAI3Q,GAAK,EACnD2pG,EAAO3pG,CAAC,GAAK8oC,EAAA,KAAKmoE,IAAQjxG,CAAC,EAAIw7C,GAAUi8B,EACzCkyB,EAAO3pG,EAAI,CAAC,GAAK8oC,EAAA,KAAKmoE,IAAQjxG,EAAI,CAAC,EAAIy7C,GAAUi8B,EAInD,GAFAiyB,EAAOA,EAAO,OAAS,CAAC,GAAK7gE,EAAA,KAAK6nE,IAASn1D,GAAUi8B,EACrDkyB,EAAOA,EAAO,OAAS,CAAC,GAAK7gE,EAAA,KAAK8nE,IAASn1D,GAAUi8B,EACjD,MAAMs6B,EAAK,CAAC,CAAC,GAAK,CAAC,KAAK,UAC1B,OAAOtvE,EAAA,KAAK0tE,GAAA6B,IAAL,UAA0BtI,GAEnC,MAAMmI,EAAU,IAAI,aAAahpE,EAAA,KAAK2nE,IAAK,OAAS,GAAK3nE,EAAA,KAAKwnE,IAAQ,MAAM,EAC5E,IAAIvuG,EAAIqoD,EAAI,OACZ,QAASpqD,EAAI,EAAGA,EAAI+B,EAAG/B,GAAK,EAAG,CAC7B,GAAI,MAAMoqD,EAAIpqD,CAAC,CAAC,EAAG,CACjB8xG,EAAQ9xG,CAAC,EAAI8xG,EAAQ9xG,EAAI,CAAC,EAAI,IAC9B,QACF,CACA8xG,EAAQ9xG,CAAC,EAAIoqD,EAAIpqD,CAAC,EAClB8xG,EAAQ9xG,EAAI,CAAC,EAAIoqD,EAAIpqD,EAAI,CAAC,CAC5B,CACA+B,EAAI2gC,EAAA,KAAK0tE,GAAA8B,IAAL,UAAoBJ,EAAS/vG,GACjC,QAAS/B,EAAIsqD,EAAO,OAAS,EAAGtqD,GAAK,EAAGA,GAAK,EAC3C,QAASyB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7B,GAAI,MAAM6oD,EAAOtqD,EAAIyB,CAAC,CAAC,EAAG,CACxBqwG,EAAQ/vG,CAAC,EAAI+vG,EAAQ/vG,EAAI,CAAC,EAAI,IAC9BA,GAAK,EACL,QACF,CACA+vG,EAAQ/vG,CAAC,EAAIuoD,EAAOtqD,EAAIyB,CAAC,EACzBqwG,EAAQ/vG,EAAI,CAAC,EAAIuoD,EAAOtqD,EAAIyB,EAAI,CAAC,EACjCM,GAAK,CACP,CAEF,OAAA2gC,EAAA,KAAK0tE,GAAA+B,IAAL,UAAsBL,EAAS/vG,GACxB,KAAK,mBAAmB+vG,EAASnI,EAAQ7gE,EAAA,KAAKunE,IAAMvnE,EAAA,KAAKioE,IAAcjoE,EAAA,KAAKynE,IAAcznE,EAAA,KAAK0nE,GAAM,CAC9G,CAsBF,EA/MEH,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACOC,GAAA,YACAkB,GAAA,YACAjB,GAAA,YAhBTf,GAAA,YAkCEiC,GAAc,UAAG,CACf,MAAMC,EAAUxpE,EAAA,KAAK4nE,IAAM,SAAS,EAAG,CAAC,EAClC6B,EAAazpE,EAAA,KAAK4nE,IAAM,SAAS,GAAI,EAAE,EACvC,CAAC/uG,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKunE,IACnC,MAAO,EAAEvnE,EAAA,KAAK6nE,KAAU2B,EAAQ,CAAC,EAAIC,EAAW,CAAC,GAAK,EAAI5wG,GAAK2jC,GAAQwD,EAAA,KAAK8nE,KAAU0B,EAAQ,CAAC,EAAIC,EAAW,CAAC,GAAK,EAAI3xG,GAAK2kC,GAASuD,EAAA,KAAK6nE,KAAU4B,EAAW,CAAC,EAAID,EAAQ,CAAC,GAAK,EAAI3wG,GAAK2jC,GAAQwD,EAAA,KAAK8nE,KAAU2B,EAAW,CAAC,EAAID,EAAQ,CAAC,GAAK,EAAI1xG,GAAK2kC,CAAM,CAClQ,EAwFAosE,GAAmB,UAAG,CACpB,KAAM,CAAChwG,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKunE,IAC7B,CAACmC,EAAUC,EAAUC,EAAaC,CAAW,EAAIjwE,EAAA,KAAK0tE,GAAAiC,IAAL,WACvD,MAAO,KAAKvpE,EAAA,KAAK4nE,IAAM,CAAC,EAAI/uG,GAAK2jC,CAAK,KAAKwD,EAAA,KAAK4nE,IAAM,CAAC,EAAI9vG,GAAK2kC,CAAM,MAAMuD,EAAA,KAAK4nE,IAAM,CAAC,EAAI/uG,GAAK2jC,CAAK,KAAKwD,EAAA,KAAK4nE,IAAM,CAAC,EAAI9vG,GAAK2kC,CAAM,KAAKitE,CAAQ,IAAIC,CAAQ,KAAKC,CAAW,IAAIC,CAAW,MAAM7pE,EAAA,KAAK4nE,IAAM,EAAE,EAAI/uG,GAAK2jC,CAAK,KAAKwD,EAAA,KAAK4nE,IAAM,EAAE,EAAI9vG,GAAK2kC,CAAM,MAAMuD,EAAA,KAAK4nE,IAAM,EAAE,EAAI/uG,GAAK2jC,CAAK,KAAKwD,EAAA,KAAK4nE,IAAM,EAAE,EAAI9vG,GAAK2kC,CAAM,IACpU,EACAssE,GAAe,SAAC1zG,EAAQ,CACtB,MAAMmsD,EAASxhB,EAAA,KAAKwnE,IACpBnyG,EAAO,KAAK,IAAImsD,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,CAAC,IAAI,CAC5C,EACAsnD,GAAa,SAACzzG,EAAQ,CACpB,KAAM,CAACwD,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKunE,IAC7BiC,EAAUxpE,EAAA,KAAK4nE,IAAM,SAAS,EAAG,CAAC,EAClC6B,EAAazpE,EAAA,KAAK4nE,IAAM,SAAS,GAAI,EAAE,EACvC,CAAC8B,EAAUC,EAAUC,EAAaC,CAAW,EAAIjwE,EAAA,KAAK0tE,GAAAiC,IAAL,WACvDl0G,EAAO,KAAK,KAAKm0G,EAAQ,CAAC,EAAI3wG,GAAK2jC,CAAK,KAAKgtE,EAAQ,CAAC,EAAI1xG,GAAK2kC,CAAM,KAAKitE,CAAQ,IAAIC,CAAQ,KAAKC,CAAW,IAAIC,CAAW,MAAMJ,EAAW,CAAC,EAAI5wG,GAAK2jC,CAAK,KAAKitE,EAAW,CAAC,EAAI3xG,GAAK2kC,CAAM,EAAE,CACjM,EA6CA0sE,GAAoB,SAACtI,EAAQ,CAC3B,MAAMqI,EAAOlpE,EAAA,KAAK4nE,IACZ,CAACl1D,EAAQC,EAAQg8B,EAAYC,CAAW,EAAI5uC,EAAA,KAAKunE,IACjD,CAACmC,EAAUC,EAAUC,EAAaC,CAAW,EAAIjwE,EAAA,KAAK0tE,GAAAiC,IAAL,WACjDP,EAAU,IAAI,aAAa,EAAE,EACnC,OAAAA,EAAQ,IAAI,CAAC,IAAK,IAAK,IAAK,KAAME,EAAK,CAAC,EAAIx2D,GAAUi8B,GAAau6B,EAAK,CAAC,EAAIv2D,GAAUi8B,EAAa,IAAK,IAAK,IAAK,KAAMs6B,EAAK,CAAC,EAAIx2D,GAAUi8B,GAAau6B,EAAK,CAAC,EAAIv2D,GAAUi8B,EAAa,IAAK,IAAK,IAAK,IAAK86B,EAAUC,EAAU,IAAK,IAAK,IAAK,IAAKC,EAAaC,EAAa,IAAK,IAAK,IAAK,KAAMX,EAAK,EAAE,EAAIx2D,GAAUi8B,GAAau6B,EAAK,EAAE,EAAIv2D,GAAUi8B,EAAa,IAAK,IAAK,IAAK,KAAMs6B,EAAK,EAAE,EAAIx2D,GAAUi8B,GAAau6B,EAAK,EAAE,EAAIv2D,GAAUi8B,CAAW,EAAG,CAAC,EAC9b,KAAK,mBAAmBo6B,EAASnI,EAAQ7gE,EAAA,KAAKunE,IAAMvnE,EAAA,KAAKioE,IAAcjoE,EAAA,KAAKynE,IAAcznE,EAAA,KAAK0nE,GAAM,CAC9G,EACA2B,GAAgB,SAACL,EAASlyE,EAAK,CAC7B,MAAM0qB,EAASxhB,EAAA,KAAKwnE,IACpB,OAAAwB,EAAQ,IAAI,CAAC,IAAK,IAAK,IAAK,IAAKxnD,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EAAG1qB,CAAG,EACpDA,GAAO,CAChB,EACAsyE,GAAc,SAACJ,EAASlyE,EAAK,CAC3B,MAAM0yE,EAAUxpE,EAAA,KAAK4nE,IAAM,SAAS,EAAG,CAAC,EAClC6B,EAAazpE,EAAA,KAAK4nE,IAAM,SAAS,GAAI,EAAE,EACvC,CAACl1D,EAAQC,EAAQg8B,EAAYC,CAAW,EAAI5uC,EAAA,KAAKunE,IACjD,CAACmC,EAAUC,EAAUC,EAAaC,CAAW,EAAIjwE,EAAA,KAAK0tE,GAAAiC,IAAL,WACvD,OAAAP,EAAQ,IAAI,CAAC,IAAK,IAAK,IAAK,KAAMQ,EAAQ,CAAC,EAAI92D,GAAUi8B,GAAa66B,EAAQ,CAAC,EAAI72D,GAAUi8B,EAAa,IAAK,IAAK,IAAK,IAAK86B,EAAUC,EAAU,IAAK,IAAK,IAAK,IAAKC,EAAaC,EAAa,IAAK,IAAK,IAAK,KAAMJ,EAAW,CAAC,EAAI/2D,GAAUi8B,GAAa86B,EAAW,CAAC,EAAI92D,GAAUi8B,CAAW,EAAG93C,CAAG,EAChSA,GAAO,EAChB,EAjMAqD,EAdIgtE,GAcGiB,GAAY,GACnBjuE,EAfIgtE,GAeGmC,GAAY,GACnBnvE,EAhBIgtE,GAgBGkB,GAAOroE,EAAAmnE,GAAiBiB,IAAYpoE,EAAAmnE,GAAiBmC,KAhB9D,IAAMQ,GAAN3C,GAiNA,MAAM8B,WAAwBlC,EAAQ,CAQpC,YAAYiC,EAASnI,EAAQh5D,EAAKu/D,EAAaC,EAAa9/D,EAAO,CACjE,MAAK,EATTpN,EAAA,KAAA4vE,IACE5vE,EAAA,KAAAotE,IACAptE,EAAA,KAAA6sE,GAAQ,IAAI,aAAa,CAAC,GAC1B7sE,EAAA,KAAAstE,IACAttE,EAAA,KAAAutE,IACAvtE,EAAA,KAAAguE,IACAhuE,EAAA,KAAA8tE,IACA9tE,EAAA,KAAA6vE,IAGE1pE,EAAA,KAAK0pE,GAAWhB,GAChB1oE,EAAA,KAAK6nE,GAAUtH,GACfvgE,EAAA,KAAKinE,GAAO1/D,GACZvH,EAAA,KAAK2nE,GAAeb,GACpB9mE,EAAA,KAAKmnE,GAAeJ,GACpB/mE,EAAA,KAAKonE,GAASngE,GACd,KAAK,WAAa,CAAC,IAAK,GAAG,EAC3B,KAAK,UAAY,CAAC,IAAK,GAAG,EAC1B3N,EAAA,KAAKmwE,GAAAE,IAAL,UAAoB1iE,GACpB,KAAM,CAAC1uC,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKgnE,IACnC,QAAS9vG,EAAI,EAAG2Q,EAAKmhG,EAAQ,OAAQ9xG,EAAI2Q,EAAI3Q,GAAK,EAChD8xG,EAAQ9xG,CAAC,GAAK8xG,EAAQ9xG,CAAC,EAAI2B,GAAK2jC,EAChCwsE,EAAQ9xG,EAAI,CAAC,GAAK8xG,EAAQ9xG,EAAI,CAAC,EAAIY,GAAK2kC,EAE1C,QAASvlC,EAAI,EAAG2Q,EAAKg5F,EAAO,OAAQ3pG,EAAI2Q,EAAI3Q,GAAK,EAC/C2pG,EAAO3pG,CAAC,GAAK2pG,EAAO3pG,CAAC,EAAI2B,GAAK2jC,EAC9BqkE,EAAO3pG,EAAI,CAAC,GAAK2pG,EAAO3pG,EAAI,CAAC,EAAIY,GAAK2kC,CAE1C,CACA,WAAY,CACV,MAAMpnC,EAAS,CAAC,IAAI2qC,EAAA,KAAKgqE,IAAS,CAAC,CAAC,IAAIhqE,EAAA,KAAKgqE,IAAS,CAAC,CAAC,EAAE,EAC1D,QAAS,EAAI,EAAGniG,EAAKm4B,EAAA,KAAKgqE,IAAS,OAAQ,EAAIniG,EAAI,GAAK,EAAG,CACzD,GAAI,MAAMm4B,EAAA,KAAKgqE,IAAS,CAAC,CAAC,EAAG,CAC3B30G,EAAO,KAAK,IAAI2qC,EAAA,KAAKgqE,IAAS,EAAI,CAAC,CAAC,IAAIhqE,EAAA,KAAKgqE,IAAS,EAAI,CAAC,CAAC,EAAE,EAC9D,QACF,CACA30G,EAAO,KAAK,IAAI2qC,EAAA,KAAKgqE,IAAS,CAAC,CAAC,IAAIhqE,EAAA,KAAKgqE,IAAS,EAAI,CAAC,CAAC,IAAIhqE,EAAA,KAAKgqE,IAAS,EAAI,CAAC,CAAC,IAAIhqE,EAAA,KAAKgqE,IAAS,EAAI,CAAC,CAAC,IAAIhqE,EAAA,KAAKgqE,IAAS,EAAI,CAAC,CAAC,IAAIhqE,EAAA,KAAKgqE,IAAS,EAAI,CAAC,CAAC,EAAE,CAC5J,CACA,OAAA30G,EAAO,KAAK,GAAG,EACRA,EAAO,KAAK,GAAG,CACxB,CACA,UAAU,CAACkrD,EAAKC,EAAKC,EAAKH,CAAG,EAAG1kB,EAAU,CACxC,MAAMY,EAAQikB,EAAMF,EACd9jB,EAAS6jB,EAAME,EACrB,IAAIwoD,EACAnI,EACJ,OAAQjlE,EAAQ,CACd,IAAK,GACHotE,EAAUjC,GAAQ,SAAS/mE,EAAA,KAAKgqE,IAAUzpD,EAAKD,EAAK9jB,EAAO,CAACC,CAAM,EAClEokE,EAASkG,GAAQ,SAAS/mE,EAAA,KAAKmoE,IAAS5nD,EAAKD,EAAK9jB,EAAO,CAACC,CAAM,EAChE,MACF,IAAK,IACHusE,EAAUjC,GAAQ,gBAAgB/mE,EAAA,KAAKgqE,IAAUzpD,EAAKC,EAAKhkB,EAAOC,CAAM,EACxEokE,EAASkG,GAAQ,gBAAgB/mE,EAAA,KAAKmoE,IAAS5nD,EAAKC,EAAKhkB,EAAOC,CAAM,EACtE,MACF,IAAK,KACHusE,EAAUjC,GAAQ,SAAS/mE,EAAA,KAAKgqE,IAAUvpD,EAAKD,EAAK,CAAChkB,EAAOC,CAAM,EAClEokE,EAASkG,GAAQ,SAAS/mE,EAAA,KAAKmoE,IAAS1nD,EAAKD,EAAK,CAAChkB,EAAOC,CAAM,EAChE,MACF,IAAK,KACHusE,EAAUjC,GAAQ,gBAAgB/mE,EAAA,KAAKgqE,IAAUvpD,EAAKH,EAAK,CAAC9jB,EAAO,CAACC,CAAM,EAC1EokE,EAASkG,GAAQ,gBAAgB/mE,EAAA,KAAKmoE,IAAS1nD,EAAKH,EAAK,CAAC9jB,EAAO,CAACC,CAAM,EACxE,KACR,CACI,MAAO,CACL,QAAS,MAAM,KAAKusE,CAAO,EAC3B,OAAQ,CAAC,MAAM,KAAKnI,CAAM,CAAC,CACjC,CACE,CAyDA,IAAI,KAAM,CACR,OAAO7gE,EAAA,KAAKgnE,GACd,CACA,YAAY3iD,EAAOxc,EAAKu/D,EAAajG,EAAW55D,EAAO8/D,EAAc,EAAG,CACtE,OAAO,IAAIyC,GAAiBzlD,EAAOxc,EAAKu/D,EAAajG,EAAW55D,EAAO8/D,CAAW,CACpF,CACA,cAAclG,EAAWkG,EAAa,CACpC,KAAM,CAACxuG,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKgnE,IAC7B,CAACt0D,EAAQC,EAAQg8B,EAAYC,CAAW,EAAI5uC,EAAA,KAAKunE,IACjDN,EAAKzqE,EAAQmyC,EACbu4B,EAAKzqE,EAASmyC,EACdz3B,EAAKt+C,EAAI81E,EAAaj8B,EACtB0E,EAAKt/C,EAAI82E,EAAcj8B,EACvBu3D,EAAW,KAAK,YAAY,CAChC,EAAGlqE,EAAA,KAAKmoE,IAAQ,CAAC,EAAIlB,EAAK9vD,EAC1B,EAAGnX,EAAA,KAAKmoE,IAAQ,CAAC,EAAIjB,EAAK9vD,CAChC,EAAOpX,EAAA,KAAKunE,IAAMvnE,EAAA,KAAKioE,IAAc9G,EAAWnhE,EAAA,KAAK0nE,IAAQL,GAAernE,EAAA,KAAKynE,GAAY,EACzF,QAASvwG,EAAI,EAAGA,EAAI8oC,EAAA,KAAKmoE,IAAQ,OAAQjxG,GAAK,EAC5CgzG,EAAS,IAAI,CACX,EAAGlqE,EAAA,KAAKmoE,IAAQjxG,CAAC,EAAI+vG,EAAK9vD,EAC1B,EAAGnX,EAAA,KAAKmoE,IAAQjxG,EAAI,CAAC,EAAIgwG,EAAK9vD,CACtC,CAAO,EAEH,OAAO8yD,EAAS,YAAW,CAC7B,CACF,CArJE3C,GAAA,YACAP,GAAA,YACAS,GAAA,YACAC,GAAA,YACAS,GAAA,YACAF,GAAA,YACA+B,GAAA,YAPFD,GAAA,YAqEEE,GAAc,SAAC1iE,EAAO,CACpB,MAAMyhE,EAAUhpE,EAAA,KAAKgqE,IACrB,IAAIpiE,EAAQohE,EAAQ,CAAC,EACjBrhE,EAAQqhE,EAAQ,CAAC,EACrB,MAAM7vE,EAAS,CAACyO,EAAOD,EAAOC,EAAOD,CAAK,EAC1C,IAAIwiE,EAAcviE,EACdwiE,EAAcziE,EACd0iE,EAAaziE,EACb0iE,EAAa3iE,EACjB,MAAM4iE,EAAchjE,EAAQ,KAAK,IAAM,KAAK,IACtCijE,EAAa,IAAI,aAAa,CAAC,EACrC,QAAStzG,EAAI,EAAG2Q,EAAKmhG,EAAQ,OAAQ9xG,EAAI2Q,EAAI3Q,GAAK,EAAG,CACnD,MAAM2B,EAAImwG,EAAQ9xG,EAAI,CAAC,EACrBY,EAAIkxG,EAAQ9xG,EAAI,CAAC,EACf,MAAM8xG,EAAQ9xG,CAAC,CAAC,GAClBw/B,GAAK,iBAAiB79B,EAAGf,EAAGqhC,CAAM,EAC9BixE,EAActyG,GAChBqyG,EAActxG,EACduxG,EAActyG,GACLsyG,IAAgBtyG,IACzBqyG,EAAcI,EAAYJ,EAAatxG,CAAC,GAEtCyxG,EAAaxyG,GACfuyG,EAAaxxG,EACbyxG,EAAaxyG,GACJwyG,IAAexyG,IACxBuyG,EAAaE,EAAYF,EAAYxxG,CAAC,KAGxC2xG,EAAW,IAAI93E,GAAW,CAAC,EAC3BgE,GAAK,kBAAkBkR,EAAOD,EAAO,GAAGqhE,EAAQ,MAAM9xG,EAAGA,EAAI,CAAC,EAAGszG,CAAU,EAC3E9zE,GAAK,gBAAgB,GAAG8zE,EAAYrxE,CAAM,EACtCixE,EAAcI,EAAW,CAAC,GAC5BL,EAAcK,EAAW,CAAC,EAC1BJ,EAAcI,EAAW,CAAC,GACjBJ,IAAgBI,EAAW,CAAC,IACrCL,EAAcI,EAAYJ,EAAaK,EAAW,CAAC,CAAC,GAElDF,EAAaE,EAAW,CAAC,GAC3BH,EAAaG,EAAW,CAAC,EACzBF,EAAaE,EAAW,CAAC,GAChBF,IAAeE,EAAW,CAAC,IACpCH,EAAaE,EAAYF,EAAYG,EAAW,CAAC,CAAC,IAGtD5iE,EAAQ/uC,EACR8uC,EAAQ7vC,CACV,CACA,MAAMixD,EAAO/oB,EAAA,KAAKgnE,IAClBj+C,EAAK,CAAC,EAAI5vB,EAAO,CAAC,EAAI6G,EAAA,KAAKynE,IAC3B1+C,EAAK,CAAC,EAAI5vB,EAAO,CAAC,EAAI6G,EAAA,KAAKynE,IAC3B1+C,EAAK,CAAC,EAAI5vB,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAI,EAAI6G,EAAA,KAAKynE,IAC3C1+C,EAAK,CAAC,EAAI5vB,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAI,EAAI6G,EAAA,KAAKynE,IAC3C,KAAK,WAAa,CAAC0C,EAAaC,CAAW,EAC3C,KAAK,UAAY,CAACC,EAAYC,CAAU,CAC1C,EAgCF,MAAMG,EAAkB,CAMtB,YAAYnjE,EAAO8vD,EAAc,EAAGiQ,EAAc,EAAG9/D,EAAQ,GAAM,CANrEpN,EAAA,KAAAuwE,IACEvwE,EAAA,KAAAotE,IACAptE,EAAA,KAAAwwE,IACAxwE,EAAA,KAAAywE,IACAzwE,EAAA,KAAA0wE,GAAiB,CAAA,GACjB1wE,EAAA,KAAA2wE,GAAa,CAAA,GAEX,MAAM3xE,EAASzG,GAAU,MAAK,EAExBq4E,EAAU,IAAM,GACtB,SAAW,CACT,EAAAlyG,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,CACN,IAAS6K,EAAO,CACV,MAAMhO,EAAK,KAAK,OAAOzgC,EAAIu+F,GAAe2T,CAAO,EAAIA,EAC/CvxE,EAAK,KAAK,MAAM3gC,EAAI2jC,EAAQ46D,GAAe2T,CAAO,EAAIA,EACtDxxE,EAAK,KAAK,OAAOzhC,EAAIs/F,GAAe2T,CAAO,EAAIA,EAC/CtxE,EAAK,KAAK,MAAM3hC,EAAI2kC,EAAS26D,GAAe2T,CAAO,EAAIA,EACvDxpD,EAAO,CAACjoB,EAAIC,EAAIE,EAAI,EAAI,EACxBgoB,EAAQ,CAACjoB,EAAID,EAAIE,EAAI,EAAK,EAChCuG,EAAA,KAAK6qE,IAAe,KAAKtpD,EAAME,CAAK,EACpC/qB,GAAK,gBAAgB4C,EAAIC,EAAIC,EAAIC,EAAIN,CAAM,CAC7C,CACA,MAAMoqC,EAAYpqC,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAI,EAAIkuE,EACxC7jC,EAAarqC,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAI,EAAIkuE,EACzC2D,EAAc7xE,EAAO,CAAC,EAAIkuE,EAC1B4D,EAAc9xE,EAAO,CAAC,EAAIkuE,EAChC,IAAI8C,EAAc5iE,EAAQ,KAAY,IAClC6iE,EAAc,IAClB,MAAMc,EAAWlrE,EAAA,KAAK6qE,IAAe,GAAGtjE,EAAQ,GAAK,EAAE,EACjD4jE,EAAY,CAACD,EAAS,CAAC,EAAGA,EAAS,CAAC,CAAC,EAC3C,UAAWE,KAAQprE,EAAA,KAAK6qE,IAAgB,CACtC,KAAM,CAAChyG,EAAG0gC,EAAIE,EAAI8nB,CAAI,EAAI6pD,EACtB,CAAC7pD,GAAQha,EACPhO,EAAK6wE,GACPA,EAAc7wE,EACd4wE,EAActxG,GACL0gC,IAAO6wE,IAChBD,EAAc,KAAK,IAAIA,EAAatxG,CAAC,GAE9B0oD,GAAQ,CAACha,IACdhO,EAAK6wE,GACPA,EAAc7wE,EACd4wE,EAActxG,GACL0gC,IAAO6wE,IAChBD,EAAc,KAAK,IAAIA,EAAatxG,CAAC,IAGzCuyG,EAAK,CAAC,GAAKvyG,EAAImyG,GAAeznC,EAC9B6nC,EAAK,CAAC,GAAK7xE,EAAK0xE,GAAeznC,EAC/B4nC,EAAK,CAAC,GAAK3xE,EAAKwxE,GAAeznC,CACjC,CACAljC,EAAA,KAAKinE,GAAO,IAAI,aAAa,CAACyD,EAAaC,EAAa1nC,EAAWC,CAAU,CAAC,GAC9EljC,EAAA,KAAKqqE,GAAc,CAACR,EAAaC,CAAW,GAC5C9pE,EAAA,KAAKsqE,GAAaO,EACpB,CACA,aAAc,CACZnrE,EAAA,KAAK6qE,IAAe,KAAK,CAACxzG,EAAGU,IAAMV,EAAE,CAAC,EAAIU,EAAE,CAAC,GAAKV,EAAE,CAAC,EAAIU,EAAE,CAAC,GAAKV,EAAE,CAAC,EAAIU,EAAE,CAAC,CAAC,EAC5E,MAAMszG,EAAuB,CAAA,EAC7B,UAAWD,KAAQprE,EAAA,KAAK6qE,IAClBO,EAAK,CAAC,GACRC,EAAqB,KAAK,GAAGzxE,EAAA,KAAK8wE,GAAAY,IAAL,UAAgBF,EAAK,EAClDxxE,EAAA,KAAK8wE,GAAAa,IAAL,UAAaH,KAEbxxE,EAAA,KAAK8wE,GAAAc,IAAL,UAAaJ,GACbC,EAAqB,KAAK,GAAGzxE,EAAA,KAAK8wE,GAAAY,IAAL,UAAgBF,EAAK,GAGtD,OAAOxxE,EAAA,KAAK8wE,GAAAe,IAAL,UAAkBJ,EAC3B,CA6HF,CAnME9D,GAAA,YACAoD,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YALFJ,GAAA,YAwEEe,GAAY,SAACJ,EAAsB,CACjC,MAAMK,EAAQ,CAAA,EACRC,EAAW,IAAI,IACrB,UAAWP,KAAQC,EAAsB,CACvC,KAAM,CAACxyG,EAAG0gC,EAAIE,CAAE,EAAI2xE,EACpBM,EAAM,KAAK,CAAC7yG,EAAG0gC,EAAI6xE,CAAI,EAAG,CAACvyG,EAAG4gC,EAAI2xE,CAAI,CAAC,CACzC,CACAM,EAAM,KAAK,CAACr0G,EAAGU,IAAMV,EAAE,CAAC,EAAIU,EAAE,CAAC,GAAKV,EAAE,CAAC,EAAIU,EAAE,CAAC,CAAC,EAC/C,QAASb,EAAI,EAAG2Q,EAAK6jG,EAAM,OAAQx0G,EAAI2Q,EAAI3Q,GAAK,EAAG,CACjD,MAAM00G,EAAQF,EAAMx0G,CAAC,EAAE,CAAC,EAClB20G,EAAQH,EAAMx0G,EAAI,CAAC,EAAE,CAAC,EAC5B00G,EAAM,KAAKC,CAAK,EAChBA,EAAM,KAAKD,CAAK,EAChBD,EAAS,IAAIC,CAAK,EAClBD,EAAS,IAAIE,CAAK,CACpB,CACA,MAAMC,EAAW,CAAA,EACjB,IAAI9C,EACJ,KAAO2C,EAAS,KAAO,GAAG,CACxB,MAAMP,EAAOO,EAAS,OAAM,EAAG,KAAI,EAAG,MACtC,GAAI,CAAC9yG,EAAG0gC,EAAIE,EAAImyE,EAAOC,CAAK,EAAIT,EAChCO,EAAS,OAAOP,CAAI,EACpB,IAAIf,EAAaxxG,EACbyxG,EAAa/wE,EAGjB,IAFAyvE,EAAU,CAACnwG,EAAG4gC,CAAE,EAChBqyE,EAAS,KAAK9C,CAAO,IACR,CACX,IAAIhyG,EACJ,GAAI20G,EAAS,IAAIC,CAAK,EACpB50G,EAAI40G,UACKD,EAAS,IAAIE,CAAK,EAC3B70G,EAAI60G,MAEJ,OAEFF,EAAS,OAAO30G,CAAC,EACjB,CAAC6B,EAAG0gC,EAAIE,EAAImyE,EAAOC,CAAK,EAAI70G,EACxBqzG,IAAexxG,IACjBmwG,EAAQ,KAAKqB,EAAYC,EAAYzxG,EAAGyxG,IAAe/wE,EAAKA,EAAKE,CAAE,EACnE4wE,EAAaxxG,GAEfyxG,EAAaA,IAAe/wE,EAAKE,EAAKF,CACxC,CACAyvE,EAAQ,KAAKqB,EAAYC,CAAU,CACrC,CACA,OAAO,IAAIyB,GAAiBD,EAAU9rE,EAAA,KAAKunE,IAAMvnE,EAAA,KAAK2qE,IAAa3qE,EAAA,KAAK4qE,GAAU,CACpF,EACAoB,GAAa,SAACl0G,EAAG,CACf,MAAMqsC,EAAQnE,EAAA,KAAK8qE,IACnB,IAAItmE,EAAQ,EACRC,EAAMN,EAAM,OAAS,EACzB,KAAOK,GAASC,GAAK,CACnB,MAAMwnE,EAASznE,EAAQC,GAAO,EACxBlL,EAAK4K,EAAM8nE,CAAM,EAAE,CAAC,EAC1B,GAAI1yE,IAAOzhC,EACT,OAAOm0G,EAEL1yE,EAAKzhC,EACP0sC,EAAQynE,EAAS,EAEjBxnE,EAAMwnE,EAAS,CAEnB,CACA,OAAOxnE,EAAM,CACf,EACA8mE,GAAO,SAAC,CAAA,CAAGhyE,EAAIE,CAAE,EAAG,CAClB,MAAMrgB,EAAQwgB,EAAA,KAAK8wE,GAAAsB,IAAL,UAAmBzyE,GACjCyG,EAAA,KAAK8qE,IAAW,OAAO1xF,EAAO,EAAG,CAACmgB,EAAIE,CAAE,CAAC,CAC3C,EACA+xE,GAAO,SAAC,CAAA,CAAGjyE,EAAIE,CAAE,EAAG,CAClB,MAAMrgB,EAAQwgB,EAAA,KAAK8wE,GAAAsB,IAAL,UAAmBzyE,GACjC,QAASriC,EAAIkiB,EAAOliB,EAAI8oC,EAAA,KAAK8qE,IAAW,OAAQ5zG,IAAK,CACnD,KAAM,CAACstC,EAAOC,CAAG,EAAIzE,EAAA,KAAK8qE,IAAW5zG,CAAC,EACtC,GAAIstC,IAAUjL,EACZ,MAEF,GAAIiL,IAAUjL,GAAMkL,IAAQhL,EAAI,CAC9BuG,EAAA,KAAK8qE,IAAW,OAAO5zG,EAAG,CAAC,EAC3B,MACF,CACF,CACA,QAASA,EAAIkiB,EAAQ,EAAGliB,GAAK,EAAGA,IAAK,CACnC,KAAM,CAACstC,EAAOC,CAAG,EAAIzE,EAAA,KAAK8qE,IAAW5zG,CAAC,EACtC,GAAIstC,IAAUjL,EACZ,MAEF,GAAIiL,IAAUjL,GAAMkL,IAAQhL,EAAI,CAC9BuG,EAAA,KAAK8qE,IAAW,OAAO5zG,EAAG,CAAC,EAC3B,MACF,CACF,CACF,EACAo0G,GAAU,SAACF,EAAM,CACf,KAAM,CAACvyG,EAAG0gC,EAAIE,CAAE,EAAI2xE,EACdxoF,EAAU,CAAC,CAAC/pB,EAAG0gC,EAAIE,CAAE,CAAC,EACtBrgB,EAAQwgB,EAAA,KAAK8wE,GAAAsB,IAAL,UAAmBvyE,GACjC,QAASviC,EAAI,EAAGA,EAAIkiB,EAAOliB,IAAK,CAC9B,KAAM,CAACstC,EAAOC,CAAG,EAAIzE,EAAA,KAAK8qE,IAAW5zG,CAAC,EACtC,QAASyB,EAAI,EAAGmkE,EAAKl6C,EAAQ,OAAQjqB,EAAImkE,EAAInkE,IAAK,CAChD,KAAM,CAAA,CAAGghC,EAAIuyE,CAAE,EAAItpF,EAAQjqB,CAAC,EAC5B,GAAI,EAAA8rC,GAAO9K,GAAMuyE,GAAM1nE,GAGvB,IAAI7K,GAAM6K,EAAO,CACf,GAAI0nE,EAAKznE,EACP7hB,EAAQjqB,CAAC,EAAE,CAAC,EAAI8rC,MACX,CACL,GAAIq4B,IAAO,EACT,MAAO,CAAA,EAETl6C,EAAQ,OAAOjqB,EAAG,CAAC,EACnBA,IACAmkE,GACF,CACA,QACF,CACAl6C,EAAQjqB,CAAC,EAAE,CAAC,EAAI6rC,EACZ0nE,EAAKznE,GACP7hB,EAAQ,KAAK,CAAC/pB,EAAG4rC,EAAKynE,CAAE,CAAC,EAE7B,CACF,CACA,OAAOtpF,CACT,EAEF,MAAMmpF,WAAyBhF,EAAQ,CAGrC,YAAY+E,EAAUjkE,EAAKy3B,EAAY6rC,EAAW,CAChD,MAAK,EAHPhxE,EAAA,KAAAotE,IACAptE,EAAA,KAAAgyE,IAGE7rE,EAAA,KAAK6rE,GAAYL,GACjBxrE,EAAA,KAAKinE,GAAO1/D,GACZ,KAAK,WAAay3B,EAClB,KAAK,UAAY6rC,CACnB,CACA,WAAY,CACV,MAAM91G,EAAS,CAAA,EACf,UAAW+2G,KAAWpsE,EAAA,KAAKmsE,IAAW,CACpC,GAAI,CAACE,EAAOC,CAAK,EAAIF,EACrB/2G,EAAO,KAAK,IAAIg3G,CAAK,IAAIC,CAAK,EAAE,EAChC,QAASp1G,EAAI,EAAGA,EAAIk1G,EAAQ,OAAQl1G,GAAK,EAAG,CAC1C,MAAM2B,EAAIuzG,EAAQl1G,CAAC,EACbY,EAAIs0G,EAAQl1G,EAAI,CAAC,EACnB2B,IAAMwzG,GACRh3G,EAAO,KAAK,IAAIyC,CAAC,EAAE,EACnBw0G,EAAQx0G,GACCA,IAAMw0G,IACfj3G,EAAO,KAAK,IAAIwD,CAAC,EAAE,EACnBwzG,EAAQxzG,EAEZ,CACAxD,EAAO,KAAK,GAAG,CACjB,CACA,OAAOA,EAAO,KAAK,GAAG,CACxB,CACA,UAAU,CAACkrD,EAAKC,EAAKC,EAAKH,CAAG,EAAGwkC,EAAW,CACzC,MAAMgnB,EAAW,CAAA,EACXtvE,EAAQikB,EAAMF,EACd9jB,EAAS6jB,EAAME,EACrB,UAAWwoD,KAAWhpE,EAAA,KAAKmsE,IAAW,CACpC,MAAMtL,EAAS,IAAI,MAAMmI,EAAQ,MAAM,EACvC,QAAS9xG,EAAI,EAAGA,EAAI8xG,EAAQ,OAAQ9xG,GAAK,EACvC2pG,EAAO3pG,CAAC,EAAIqpD,EAAMyoD,EAAQ9xG,CAAC,EAAIslC,EAC/BqkE,EAAO3pG,EAAI,CAAC,EAAIopD,EAAM0oD,EAAQ9xG,EAAI,CAAC,EAAIulC,EAEzCqvE,EAAS,KAAKjL,CAAM,CACtB,CACA,OAAOiL,CACT,CACA,IAAI,KAAM,CACR,OAAO9rE,EAAA,KAAKunE,GACd,CACF,CA9CEA,GAAA,YACA4E,GAAA,YA8CF,MAAMI,WAA8BzC,EAAiB,CACnD,mBAAmBd,EAASnI,EAAQh5D,EAAKu/D,EAAaC,EAAa9/D,EAAO,CACxE,OAAO,IAAIilE,GAAqBxD,EAASnI,EAAQh5D,EAAKu/D,EAAaC,EAAa9/D,CAAK,CACvF,CACF,CACA,MAAMilE,WAA6BvD,EAAgB,CACjD,YAAY5kD,EAAOxc,EAAKu/D,EAAajG,EAAW55D,EAAO8/D,EAAc,EAAG,CACtE,OAAO,IAAIkF,GAAsBloD,EAAOxc,EAAKu/D,EAAajG,EAAW55D,EAAO8/D,CAAW,CACzF,CACF,CAUA,MAAMoF,GAAN,MAAMA,WAAwB/mD,EAAiB,CAuC7C,YAAY5qC,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,KAAM,iBACZ,CAAK,EA3CLqf,EAAA,KAAAuyE,IACEvyE,EAAA,KAAAwyE,GAAc,MACdxyE,EAAA,KAAAyyE,GAAgB,GAChBzyE,EAAA,KAAA0yE,IACA1yE,EAAA,KAAA2yE,GAAc,MACd3yE,EAAA,KAAAmL,GAAe,MACfnL,EAAA,KAAA4yE,GAAiB,MACjB5yE,EAAA,KAAA6yE,GAAa,MACb7yE,EAAA,KAAA8yE,GAAe,GACf9yE,EAAA,KAAA+yE,GAAgB,MAChB/yE,EAAA,KAAAgzE,GAAqB,MACrBhzE,EAAA,KAAA4O,GAAM,MACN5O,EAAA,KAAAizE,GAAmB,IACnBjzE,EAAA,KAAAwwE,GAAc,MACdxwE,EAAA,KAAAywE,GAAa,MACbzwE,EAAA,KAAAkzE,GAAa,MACblzE,EAAA,KAAA6f,GAAQ,IACR7f,EAAA,KAAA+tE,IACA/tE,EAAA,KAAAmzE,GAAoB,IA0BlB,KAAK,MAAQxyF,EAAO,OAAS2xF,GAAgB,cAC7CnsE,EAAA,KAAK4nE,GAAaptF,EAAO,WAAa2xF,GAAgB,mBACtD,KAAK,QAAU3xF,EAAO,SAAW2xF,GAAgB,gBACjDnsE,EAAA,KAAKusE,GAAS/xF,EAAO,OAAS,MAC9BwlB,EAAA,KAAKgtE,GAAoBxyF,EAAO,kBAAoB,IACpDwlB,EAAA,KAAK0Z,GAAQl/B,EAAO,MAAQ,IAC5B,KAAK,aAAe,GACpB,KAAK,cAAgB,gCACjBA,EAAO,YAAc,IACvBwlB,EAAA,KAAK8sE,GAAmB,IACxBxzE,EAAA,KAAK8yE,GAAAa,IAAL,UAAyBzyF,GACzB8e,EAAA,KAAK8yE,GAAAc,IAAL,YACSxtE,EAAA,KAAK6sE,MACdvsE,EAAA,KAAKqsE,GAAc7xF,EAAO,YAC1BwlB,EAAA,KAAKssE,GAAgB9xF,EAAO,cAC5BwlB,EAAA,KAAK0sE,GAAalyF,EAAO,WACzBwlB,EAAA,KAAK2sE,GAAenyF,EAAO,aAC3B8e,EAAA,KAAK8yE,GAAAe,IAAL,WACA7zE,EAAA,KAAK8yE,GAAAc,IAAL,WACA,KAAK,OAAO,KAAK,QAAQ,GAEtB,KAAK,qBACR,KAAK,WAAW,UAAU9nD,GAAiB,WAAW,SAAS,CAEnE,CAzCA,WAAW,kBAAmB,CAC5B,MAAMvU,EAAQs7D,GAAgB,UAC9B,OAAOx3E,GAAO,KAAM,mBAAoB,IAAIuX,GAAgB,CAAC,CAAC,CAAC,WAAW,EAAG2E,EAAM,WAAY,CAC7F,KAAM,CAAC,CAAC,CACd,CAAK,EAAG,CAAC,CAAC,YAAY,EAAGA,EAAM,WAAY,CACrC,KAAM,CAAC,CAAC,CACd,CAAK,EAAG,CAAC,CAAC,SAAS,EAAGA,EAAM,WAAY,CAClC,KAAM,CAAC,CAAC,CACd,CAAK,EAAG,CAAC,CAAC,WAAW,EAAGA,EAAM,WAAY,CACpC,KAAM,CAAC,CAAC,CACd,CAAK,CAAC,CAAC,CAAC,CACN,CA+BA,IAAI,sBAAuB,CACzB,MAAO,CACL,OAAQ,QACR,KAAMnR,EAAA,KAAKotE,IAAmB,iBAAmB,YACjD,MAAO,KAAK,WAAW,mBAAmB,KAAK,KAAK,EACpD,UAAWptE,EAAA,KAAKkoE,IAChB,iBAAkBloE,EAAA,KAAKstE,GAC7B,CACE,CACA,IAAI,oBAAqB,CACvB,MAAO,CACL,KAAM,YACN,MAAO,KAAK,WAAW,mBAAmB,KAAK,KAAK,CAC1D,CACE,CACA,OAAO,0BAA0B13G,EAAM,CACrC,MAAO,CACL,eAAgBA,EAAK,IAAI,OAAO,EAAE,IACxC,CACE,CAoGA,OAAO,WAAWijD,EAAMzR,EAAW,OACjCse,GAAiB,WAAW7M,EAAMzR,CAAS,EAC3CqlE,GAAgB,gBAAhBA,GAAgB,gBAAkB75G,EAAAw0C,EAAU,kBAAV,YAAAx0C,EAA2B,SAAS,OAAO,QAAS,UACxF,CACA,OAAO,oBAAoB2kB,EAAMhiB,EAAO,CACtC,OAAQgiB,EAAI,CACV,KAAK4b,GAA2B,gBAC9Bs5E,GAAgB,cAAgBl3G,EAChC,MACF,KAAK49B,GAA2B,oBAC9Bs5E,GAAgB,kBAAoBl3G,EACpC,KACR,CACE,CACA,gBAAgBsD,EAAGf,EAAG,CAAC,CACvB,IAAI,iBAAkB,CACpB,OAAOkoC,EAAA,KAAK4qE,GACd,CACA,IAAI,uBAAwB,CAC1B,OAAO5qE,EAAA,KAAK2qE,GACd,CACA,aAAapzF,EAAMhiB,EAAO,CACxB,OAAQgiB,EAAI,CACV,KAAK4b,GAA2B,gBAC9ByG,EAAA,KAAK8yE,GAAApN,IAAL,UAAkB/pG,GAClB,MACF,KAAK49B,GAA2B,oBAC9ByG,EAAA,KAAK8yE,GAAAgB,IAAL,UAAsBn4G,GACtB,KACR,CACE,CACA,WAAW,2BAA4B,CACrC,MAAO,CAAC,CAAC49B,GAA2B,gBAAiBs5E,GAAgB,aAAa,EAAG,CAACt5E,GAA2B,oBAAqBs5E,GAAgB,iBAAiB,CAAC,CAC1K,CACA,IAAI,oBAAqB,CACvB,MAAO,CAAC,CAACt5E,GAA2B,gBAAiB,KAAK,OAASs5E,GAAgB,aAAa,EAAG,CAACt5E,GAA2B,oBAAqB6M,EAAA,KAAKkoE,KAAcuE,GAAgB,iBAAiB,EAAG,CAACt5E,GAA2B,eAAgB6M,EAAA,KAAKotE,GAAgB,CAAC,CAC/Q,CACA,gBAAiB,UACfx6G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiBotC,EAAA,KAAK+I,IAAK,CAChD,KAAM,CACJ,KAAM,KAAK,MACX,eAAgB,KAAK,OAC7B,CACA,IACIp2C,EAAAqtC,EAAA,KAAKsF,MAAL,MAAA3yC,EAAmB,YAAY,KAAK,OACpC,MAAM,eAAc,CACtB,CA2CA,IAAI,gBAAiB,CACnB,OAAI,KAAK,WAAW,gBAIX,CAAC,CAAC,cAHW2tC,EAAA,KAAKgF,GAAe,IAAI+sD,GAAY,CACtD,OAAQ,IAChB,CAAO,EACkC,CAAC,EAE/B,MAAM,cACf,CACA,gBAAiB,CACf,MAAM,eAAc,EACpB,KAAK,IAAI,UAAU,OAAO,WAAY,EAAI,CAC5C,CACA,eAAgB,CACd,MAAM,cAAa,EACnB,KAAK,IAAI,UAAU,OAAO,WAAY,EAAK,CAC7C,CACA,mBAAoB,CAClB,OAAO,MAAM,kBAAkBz4D,EAAA,KAAK8yE,GAAAiB,IAAL,UAAmB,CACpD,CACA,oBAAqB,CACnB,MAAO,CAAC,EAAG,CAAC,CACd,CACA,QAAQx2D,EAAIC,EAAI,CACd,OAAO,MAAM,QAAQD,EAAIC,EAAIxd,EAAA,KAAK8yE,GAAAiB,IAAL,UAAmB,CAClD,CACA,UAAUtsD,EAAO,CACV,KAAK,qBACR,KAAK,OAAO,kBAAkB,IAAI,EAEhCA,GACF,KAAK,IAAI,MAAK,CAElB,CACA,QAAS,CACPznB,EAAA,KAAK8yE,GAAAkB,IAAL,WACA,KAAK,iBAAiB,CACpB,OAAQ,SACd,CAAK,EACD,MAAM,OAAM,CACd,CACA,SAAU,CACH,KAAK,SAGV,MAAM,QAAO,EACT,KAAK,MAAQ,OAGjBh0E,EAAA,KAAK8yE,GAAAc,IAAL,WACK,KAAK,iBACR,KAAK,OAAO,IAAI,IAAI,GAExB,CACA,UAAUlvE,EAAQ,OAChB,IAAIuvE,EAAiB,GACjB,KAAK,QAAU,CAACvvE,EAClB1E,EAAA,KAAK8yE,GAAAkB,IAAL,WACStvE,IACT1E,EAAA,KAAK8yE,GAAAc,IAAL,UAAqBlvE,GACrBuvE,EAAiB,CAAC,KAAK,UAAUj7G,EAAA,KAAK,MAAL,YAAAA,EAAU,UAAU,SAAS,oBAEhE,MAAM,UAAU0rC,CAAM,EACtB,KAAK,KAAK,KAAK,UAAU,EACrBuvE,GACF,KAAK,OAAM,CAEf,CAmEA,OAAOhrD,EAAO,WACZ,KAAM,CACJ,UAAAirD,CACN,EAAQ,KAAK,OACT,IAAIjmE,EACA7H,EAAA,KAAKotE,KACPvqD,GAASA,EAAQ,KAAK,SAAW,KAAO,IACxChb,EAAMjO,EAAAhnC,EAAA65G,GAAgBsB,GAAAC,IAAhB,KAAAp7G,EAA4BotC,EAAA,KAAKmtE,IAAmB,IAAKtqD,IAE/Dhb,EAAMjO,EAAAjnC,EAAA85G,GAAgBsB,GAAAC,IAAhB,KAAAr7G,EAA4B,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,MAAM,EAAGkwD,GAE/EirD,EAAU,iBAAiB9tE,EAAA,KAAK+I,IAAK,CACnC,KAAMlB,EACN,KAAM,CACJ,qBAAsBgb,CAC9B,CACA,CAAK,EACDirD,EAAU,iBAAiB9tE,EAAA,KAAKqtE,IAAY,CAC1C,KAAMzzE,EAAAhkB,EAAA62F,GAAgBsB,GAAAC,IAAhB,KAAAp4F,EAA4BoqB,EAAA,KAAK+sE,IAAe,IAAKlqD,GAC3D,KAAM,CACJ,qBAAsBA,CAC9B,CACA,CAAK,CACH,CACA,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,MAAMjhB,EAAM,MAAM,OAAM,EACpB5B,EAAA,KAAKga,MACPpY,EAAI,aAAa,aAAc5B,EAAA,KAAKga,GAAK,EACzCpY,EAAI,aAAa,OAAQ,MAAM,GAE7B5B,EAAA,KAAKotE,IACPxrE,EAAI,UAAU,IAAI,MAAM,EAExB,KAAK,IAAI,iBAAiB,UAAWhI,EAAA,KAAK8yE,GAAAuB,IAAS,KAAK,IAAI,EAAG,CAC7D,OAAQ,KAAK,WAAW,OAChC,CAAO,EAEH,MAAMC,EAAe5tE,EAAA,KAAK4sE,GAAgB,SAAS,cAAc,KAAK,GACtE,OAAAtrE,EAAI,OAAOssE,CAAY,EACvBA,EAAa,aAAa,cAAe,MAAM,EAC/CA,EAAa,UAAY,WACzBA,EAAa,MAAM,SAAWluE,EAAA,KAAK8sE,IACnC,KAAK,QAAO,EACZ3kE,GAAW,KAAMnI,EAAA,KAAKktE,IAAe,CAAC,cAAe,cAAc,CAAC,EACpE,KAAK,cAAa,EACXtrE,CACT,CACA,aAAc,OACP,KAAK,aACRhvC,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiBotC,EAAA,KAAKqtE,IAAY,CACvD,UAAW,CACT,QAAS,EACnB,CACA,EAEE,CACA,cAAe,OACR,KAAK,aACRz6G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiBotC,EAAA,KAAKqtE,IAAY,CACvD,UAAW,CACT,QAAS,EACnB,CACA,EAEE,CAIA,WAAWc,EAAW,CAEpB,OADA,KAAK,OAAO,SAAS,IAAI,EACjBA,EAAS,CACf,IAAK,GACL,IAAK,GACHv0E,EAAA,KAAK8yE,GAAA0B,IAAL,UAAe,IACf,MACF,IAAK,GACL,IAAK,GACHx0E,EAAA,KAAK8yE,GAAA0B,IAAL,UAAe,IACf,KACR,CACE,CAYA,QAAS,OACP,MAAM,OAAM,EACPpuE,EAAA,KAAKqtE,OAGVz6G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiBotC,EAAA,KAAKqtE,IAAY,CACvD,UAAW,CACT,QAAS,GACT,SAAU,EAClB,CACA,GACE,CACA,UAAW,OACT,MAAM,SAAQ,EACTrtE,EAAA,KAAKqtE,OAGVz6G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiBotC,EAAA,KAAKqtE,IAAY,CACvD,UAAW,CACT,SAAU,EAClB,CACA,GACSrtE,EAAA,KAAKotE,KACRxzE,EAAA,KAAK8yE,GAAA0B,IAAL,UAAe,IAEnB,CACA,IAAI,kBAAmB,CACrB,MAAO,CAACpuE,EAAA,KAAKotE,GACf,CACA,KAAKl3D,EAAU,KAAK,WAAY,CAC9B,MAAM,KAAKA,CAAO,EACd,KAAK,SACP,KAAK,OAAO,UAAU,iBAAiBlW,EAAA,KAAK+I,IAAK,CAC/C,UAAW,CACT,OAAQ,CAACmN,CACnB,CACA,CAAO,EACD,KAAK,OAAO,UAAU,iBAAiBlW,EAAA,KAAKqtE,IAAY,CACtD,UAAW,CACT,OAAQ,CAACn3D,CACnB,CACA,CAAO,EAEL,CAgCA,OAAO,kBAAkB5X,EAAQiJ,EAAO,CACtC,OAAQ4L,EACR,EAAAt6C,EACA,EAAAf,CACJ,EAAK,CACD,KAAM,CACJ,EAAG46C,EACH,EAAGC,EACH,MAAO0E,EACP,OAAQC,CACd,EAAQnE,EAAU,sBAAqB,EAC7Br+B,EAAK,IAAI,gBACT9f,EAASspC,EAAO,eAAexpB,CAAE,EACjCsuC,EAAoBpsD,GAAK,CAC7B8d,EAAG,MAAK,EACR8kB,EAAA,KAAKm0E,GAAAM,IAAL,UAAmB/vE,EAAQtnC,EAC7B,EACA,OAAO,iBAAiB,OAAQosD,EAAmB,CACjD,OAAApuD,CACN,CAAK,EACD,OAAO,iBAAiB,YAAaouD,EAAmB,CACtD,OAAApuD,CACN,CAAK,EACD,OAAO,iBAAiB,cAAemrC,GAAW,CAChD,QAAS,GACT,QAAS,GACT,OAAAnrC,CACN,CAAK,EACD,OAAO,iBAAiB,cAAekrC,GAAe,CACpD,OAAAlrC,CACN,CAAK,EACDm+C,EAAU,iBAAiB,cAAevZ,EAAA,KAAKm0E,GAAAO,IAAe,KAAK,KAAMhwE,CAAM,EAAG,CAChF,OAAAtpC,CACN,CAAK,EACD,KAAK,eAAiB,IAAIu3G,GAAsB,CAC9C,EAAA1zG,EACA,EAAAf,CACN,EAAO,CAAC46C,EAAQC,EAAQ0E,EAAaC,CAAY,EAAGhZ,EAAO,MAAO,KAAK,kBAAoB,EAAGiJ,EAAO,IAAK,EACrG,CACC,GAAI,KAAK,iBACT,WAAY,KAAK,oBACvB,EAAQjJ,EAAO,UAAU,KAAK,CACxB,KAAM,CAAC,EAAG,EAAG,EAAG,CAAC,EACjB,KAAM,CACJ,QAAS,UACT,KAAM,KAAK,cACX,eAAgB,KAAK,eAC7B,EACM,UAAW,CACT,UAAW,GACX,KAAM,EACd,EACM,KAAM,CACJ,EAAG,KAAK,eAAe,UAAS,CACxC,CACA,EAAO,GAAM,EAAI,CACf,CAyBA,aAAa,YAAY1oC,EAAM0oC,EAAQ8I,EAAW,aAChD,IAAIq1C,EAAc,KAClB,GAAI7mF,aAAgBg/F,GAA4B,CAC9C,KAAM,CACJ,KAAM,CACJ,WAAAgB,EACA,KAAAp+D,EACA,SAAAoE,EACA,GAAAngB,EACA,MAAAwlB,EACA,QAAAkC,EACA,SAAA6S,EACA,SAAAyE,EACA,YAAAxE,EACA,aAAAkL,EACA,iBAAAC,CACV,EACQ,OAAQ,CACN,KAAM,CACJ,WAAA7O,CACZ,CACA,CACA,EAAU38C,EACJ6mF,EAAc7mF,EAAO,CACnB,eAAgBs9B,GAAqB,UACrC,MAAO,MAAM,KAAK+N,CAAK,EACvB,QAAAkC,EACA,WAAAyyD,EACA,MAAO,KACP,UAAWrjD,EAAa,EACxB,KAAM/a,EAAK,MAAM,CAAC,EAClB,SAAAoE,EACA,oBAAqBngB,EACrB,GAAAA,EACA,QAAS,GACT,SAAAu6B,EACA,SAAAyE,EACA,SAASxE,GAAA,YAAAA,EAAa,MAAO,KAC7B,aAAAkL,EACA,iBAAAC,CACR,CACI,SAAWxrD,aAAgB8+F,GAAsB,CAC/C,KAAM,CACJ,KAAM,CACJ,SAAAmB,EACA,KAAAr+D,EACA,SAAAoE,EACA,GAAAngB,EACA,MAAAwlB,EACA,YAAa,CACX,SAAUkgE,CACtB,EACU,SAAAnrD,EACA,SAAAyE,EACA,YAAAxE,EACA,aAAAkL,EACA,iBAAAC,CACV,EACQ,OAAQ,CACN,KAAM,CACJ,WAAA7O,CACZ,CACA,CACA,EAAU38C,EACJ6mF,EAAc7mF,EAAO,CACnB,eAAgBs9B,GAAqB,UACrC,MAAO,MAAM,KAAK+N,CAAK,EACvB,UAAAkgE,EACA,SAAAtL,EACA,MAAO,KACP,UAAWtjD,EAAa,EACxB,KAAM/a,EAAK,MAAM,CAAC,EAClB,SAAAoE,EACA,oBAAqBngB,EACrB,GAAAA,EACA,QAAS,GACT,SAAAu6B,EACA,SAAAyE,EACA,SAASxE,GAAA,YAAAA,EAAa,MAAO,KAC7B,aAAAkL,EACA,iBAAAC,CACR,CACI,CACA,KAAM,CACJ,MAAAngB,EACA,WAAA20D,EACA,SAAAC,EACA,SAAAiW,EACA,QAAA3oE,CACN,EAAQvtC,EACEuvC,EAAS,MAAM,MAAM,YAAYvvC,EAAM0oC,EAAQ8I,CAAS,EAC9DjC,EAAO,MAAQzO,GAAK,aAAa,GAAGuK,CAAK,EACzCkE,EAAO,QAAUhC,GAAW,EACxB0yD,GACFv1D,EAAA6E,EAAO+iE,GAAatyG,EAAK,WAE3BuvC,EAAO,aAAes3C,EAClB7mF,EAAK,SACPuvC,EAAO,eAAevvC,CAAI,EAE5B,KAAM,CAACosC,EAAWC,CAAU,EAAIkD,EAAO,eACjC,CAAC+Z,EAAOC,CAAK,EAAIha,EAAO,gBAC9B,GAAIywD,EAAY,CACd,MAAMtuD,EAAQhH,EAAA6E,EAAO0nE,GAAS,CAAA,GAC9B,QAAS31G,EAAI,EAAGA,EAAI0+F,EAAW,OAAQ1+F,GAAK,EAC1CowC,EAAM,KAAK,CACT,GAAIsuD,EAAW1+F,CAAC,EAAIgoD,GAASld,EAC7B,EAAG,GAAK4zD,EAAW1+F,EAAI,CAAC,EAAIioD,GAASld,EACrC,OAAQ2zD,EAAW1+F,EAAI,CAAC,EAAI0+F,EAAW1+F,CAAC,GAAK8qC,EAC7C,QAAS4zD,EAAW1+F,EAAI,CAAC,EAAI0+F,EAAW1+F,EAAI,CAAC,GAAK+qC,CAC5D,CAAS,EAEHrI,EAAAhnC,EAAAuyC,EAAOunE,GAAAe,IAAP,KAAA76G,GACAgnC,EAAAjnC,EAAAwyC,EAAOunE,GAAAc,IAAP,KAAA76G,GACAwyC,EAAO,OAAOA,EAAO,QAAQ,CAC/B,SAAW0wD,GAAYiW,EAAU,CAC/BxrE,EAAA6E,EAAOioE,GAAmB,IAC1B,MAAMvM,GAAUhL,GAAYiW,EAAS,QAAQ,CAAC,EACxCznD,EAAQ,CACZ,EAAGw8C,EAAO,CAAC,EAAI3hD,EACf,EAAGjd,GAAc4+D,EAAO,CAAC,EAAI1hD,EACrC,EACY+qD,EAAW,IAAIqC,GAAsBloD,EAAO,CAAC,EAAG,EAAGriB,EAAWC,CAAU,EAAG,EAAGjC,EAAAmF,EAAO+iE,IAAa,EAAG,GAAM,IAAK,EACtH,QAAShxG,EAAI,EAAG2Q,EAAKg5F,EAAO,OAAQ3pG,EAAI2Q,EAAI3Q,GAAK,EAC/CmtD,EAAM,EAAIw8C,EAAO3pG,CAAC,EAAIgoD,EACtBmF,EAAM,EAAIpiB,GAAc4+D,EAAO3pG,EAAI,CAAC,EAAIioD,GACxC+qD,EAAS,IAAI7lD,CAAK,EAEpB,KAAM,CACJ,GAAA5oC,EACA,WAAA8yF,CACR,EAAUjwE,EAAO,UAAU,KAAK,CACxB,KAAM,CAAC,EAAG,EAAG,EAAG,CAAC,EACjB,KAAM,CACJ,QAAS,UACT,KAAM6G,EAAO,MACb,eAAgBA,EAAO,eACjC,EACQ,UAAW,CACT,UAAW,GACX,KAAM,EAChB,EACQ,KAAM,CACJ,EAAG+kE,EAAS,UAAS,CAC/B,CACA,EAAS,GAAM,EAAI,EACbtwE,EAAAhkB,EAAAuvB,EAAOunE,GAAAa,IAAP,KAAA33F,EAA2B,CACzB,kBAAmBs0F,EAAS,YAAW,EACvC,YAAazuF,EACb,WAAA8yF,CACR,GACM30E,EAAA9Z,EAAAqlB,EAAOunE,GAAAc,IAAP,KAAA1tF,GACAqlB,EAAO,OAAOA,EAAO,cAAc,CACrC,CACA,OAAOA,CACT,CACA,UAAU+T,EAAe,GAAO,CAC9B,GAAI,KAAK,QAAO,GAAMA,EACpB,OAAO,KAET,GAAI,KAAK,QACP,OAAO,KAAK,iBAAgB,EAE9B,MAAMjY,EAAQykB,GAAiB,cAAc,QAAQ,KAAK,WAAW,eAAe,KAAK,KAAK,CAAC,EACzF1nC,EAAa,MAAM,UAAUk7B,CAAY,EAS/C,OARA,OAAO,OAAOl7B,EAAY,CACxB,MAAAijB,EACA,QAAS,KAAK,QACd,UAAWjB,EAAA,KAAKkoE,IAChB,WAAYtuE,EAAA,KAAK8yE,GAAA8B,IAAL,WACZ,SAAU50E,EAAA,KAAK8yE,GAAA+B,IAAL,UAAwBzwF,EAAW,KACnD,CAAK,EACD,KAAK,WAAWA,CAAU,EACtB,KAAK,qBAAuB,CAAC4b,EAAA,KAAK8yE,GAAApG,IAAL,UAAwBtoF,GAChD,MAETA,EAAW,GAAK,KAAK,oBACdA,EACT,CAOA,wBAAwB+3B,EAAY,CAClC,OAAI,KAAK,SACPA,EAAW,KAAI,EACR,OAETA,EAAW,aAAa,CACtB,KAAM,KAAK,WAAU,EACrB,MAAO,KAAK,OAClB,CAAK,EACM,KACT,CACA,OAAO,yBAA0B,CAC/B,MAAO,EACT,CACF,EA51BE42D,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAxnE,GAAA,YACAynE,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACApkE,GAAA,YACAqkE,GAAA,YACAzC,GAAA,YACAC,GAAA,YACAyC,GAAA,YACArzD,GAAA,YACAkuD,GAAA,YACAoF,GAAA,YAlBFZ,GAAA,YAyFEe,GAAe,UAAG,CAChB,MAAMvD,EAAW,IAAIO,GAAkBzqE,EAAA,KAAK6sE,IAAQ,IAAK,EACzDvsE,EAAA,KAAK6sE,GAAqBjD,EAAS,YAAW,GAC9C,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,MAAM,EAAIlqE,EAAA,KAAKmtE,IAAmB,IACpE,MAAMuB,EAAqB,IAAIjE,GAAkBzqE,EAAA,KAAK6sE,IAAQ,MAAQ,KAAO,KAAK,WAAW,YAAc,KAAK,EAChHvsE,EAAA,KAAKysE,GAAiB2B,EAAmB,YAAW,GACpD,KAAM,CACJ,WAAApvC,CACN,EAAQt/B,EAAA,KAAKmtE,IACT7sE,EAAA,KAAKqqE,GAAc,EAAErrC,EAAW,CAAC,EAAI,KAAK,GAAK,KAAK,OAAQA,EAAW,CAAC,EAAI,KAAK,GAAK,KAAK,MAAM,GACjG,KAAM,CACJ,UAAA6rC,CACN,EAAQnrE,EAAA,KAAK+sE,IACTzsE,EAAA,KAAKsqE,GAAa,EAAEO,EAAU,CAAC,EAAI,KAAK,GAAK,KAAK,OAAQA,EAAU,CAAC,EAAI,KAAK,GAAK,KAAK,MAAM,EAChG,EACAoC,GAAmB,SAAC,CAClB,kBAAAoB,EACA,YAAAC,EACA,WAAAL,CACJ,EAAK,SAID,GAHAjuE,EAAA,KAAK6sE,GAAqBwB,GAE1BruE,EAAA,KAAKysE,GAAiB4B,EAAkB,cAAc3uE,EAAA,KAAKkoE,IAAa,EADjD,IACqE,KAAM,GAC9F0G,GAAe,EACjBtuE,EAAA,KAAKyI,GAAM6lE,GACXtuE,EAAA,KAAKwsE,GAAcyB,GACnB,KAAK,OAAO,UAAU,aAAaK,EAAa,CAC9C,KAAMD,EAAkB,IACxB,KAAM,CACJ,EAAGA,EAAkB,UAAS,CACxC,CACA,CAAO,EACDruE,EAAA,KAAK+sE,GAAa,KAAK,OAAO,UAAU,YAAY,CAClD,UAAW,CACT,iBAAkB,GAClB,KAAM,EAChB,EACQ,KAAMrtE,EAAA,KAAK+sE,IAAe,IAC1B,KAAM,CACJ,EAAG/sE,EAAA,KAAK+sE,IAAe,UAAS,CAC1C,CACA,EAAS,EAAI,WACE,KAAK,OAAQ,CACtB,MAAMlqD,EAAQ,KAAK,OAAO,SAAS,SACnC,KAAK,OAAO,UAAU,iBAAiB7iB,EAAA,KAAK+I,IAAK,CAC/C,KAAMnP,EAAAhnC,EAAA65G,GAAgBsB,GAAAC,IAAhB,KAAAp7G,EAA4BotC,EAAA,KAAKmtE,IAAmB,KAAMtqD,EAAQ,KAAK,SAAW,KAAO,KAC/F,KAAM,CACJ,EAAG8rD,EAAkB,UAAS,CACxC,CACA,CAAO,EACD,KAAK,OAAO,UAAU,iBAAiB3uE,EAAA,KAAKqtE,IAAY,CACtD,KAAMzzE,EAAAjnC,EAAA85G,GAAgBsB,GAAAC,IAAhB,KAAAr7G,EAA4BqtC,EAAA,KAAK+sE,IAAe,IAAKlqD,GAC3D,KAAM,CACJ,EAAG7iB,EAAA,KAAK+sE,IAAe,UAAS,CAC1C,CACA,CAAO,CACH,CACA,KAAM,CAACl0G,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIkyE,EAAkB,IAChD,OAAQ,KAAK,SAAQ,CACnB,IAAK,GACH,KAAK,EAAI91G,EACT,KAAK,EAAIf,EACT,KAAK,MAAQ0kC,EACb,KAAK,OAASC,EACd,MACF,IAAK,IACH,CACE,KAAM,CAACuF,EAAWC,CAAU,EAAI,KAAK,iBACrC,KAAK,EAAInqC,EACT,KAAK,EAAI,EAAIe,EACb,KAAK,MAAQ2jC,EAAQyF,EAAaD,EAClC,KAAK,OAASvF,EAASuF,EAAYC,EACnC,KACF,CACF,IAAK,KACH,KAAK,EAAI,EAAIppC,EACb,KAAK,EAAI,EAAIf,EACb,KAAK,MAAQ0kC,EACb,KAAK,OAASC,EACd,MACF,IAAK,KACH,CACE,KAAM,CAACuF,EAAWC,CAAU,EAAI,KAAK,iBACrC,KAAK,EAAI,EAAInqC,EACb,KAAK,EAAIe,EACT,KAAK,MAAQ2jC,EAAQyF,EAAaD,EAClC,KAAK,OAASvF,EAASuF,EAAYC,EACnC,KACF,CACR,CACI,KAAM,CACJ,WAAAq9B,CACN,EAAQqvC,EACJruE,EAAA,KAAKqqE,GAAc,EAAErrC,EAAW,CAAC,EAAIzmE,GAAK2jC,GAAQ8iC,EAAW,CAAC,EAAIxnE,GAAK2kC,CAAM,GAC7E,KAAM,CACJ,UAAA0uE,CACN,EAAQnrE,EAAA,KAAK+sE,IACTzsE,EAAA,KAAKsqE,GAAa,EAAEO,EAAU,CAAC,EAAItyG,GAAK2jC,GAAQ2uE,EAAU,CAAC,EAAIrzG,GAAK2kC,CAAM,EAC5E,EAgDA6iE,GAAY,SAACr+D,EAAO,CAClB,MAAM4tE,EAAqB,CAACpI,EAAKqI,IAAQ,CACvC,KAAK,MAAQrI,EACb,KAAK,QAAUqI,EACf,KAAK,eAAc,CACrB,EACMpI,EAAa,KAAK,MAClBqI,EAAe,KAAK,QAC1B,KAAK,YAAY,CACf,IAAKF,EAAmB,KAAK,KAAM5tE,EAAOwrE,GAAgB,eAAe,EACzE,KAAMoC,EAAmB,KAAK,KAAMnI,EAAYqI,CAAY,EAC5D,KAAM,KAAK,WAAW,SAAS,KAAK,KAAK,WAAY,IAAI,EACzD,SAAU,GACV,KAAM57E,GAA2B,gBACjC,oBAAqB,GACrB,SAAU,EAChB,CAAK,EACD,KAAK,iBAAiB,CACpB,OAAQ,gBACR,MAAO,KAAK,WAAW,mBAAmB8N,CAAK,CACrD,EAAO,EAAI,CACT,EACAysE,GAAgB,SAACvM,EAAW,CAC1B,MAAM6N,EAAiBhvE,EAAA,KAAKkoE,IACtB+G,EAAeC,GAAM,CACzB5uE,EAAA,KAAK4nE,GAAagH,GAClBt1E,EAAA,KAAK8yE,GAAAyC,IAAL,UAAsBD,EACxB,EACA,KAAK,YAAY,CACf,IAAKD,EAAa,KAAK,KAAM9N,CAAS,EACtC,KAAM8N,EAAa,KAAK,KAAMD,CAAc,EAC5C,KAAM,KAAK,WAAW,SAAS,KAAK,KAAK,WAAY,IAAI,EACzD,SAAU,GACV,KAAM77E,GAA2B,cACjC,oBAAqB,GACrB,SAAU,EAChB,CAAK,EACD,KAAK,iBAAiB,CACpB,OAAQ,oBACR,UAAAguE,CACN,EAAO,EAAI,CACT,EAqEAgO,GAAgB,SAAChO,EAAW,CACrBnhE,EAAA,KAAKotE,MAGVxzE,EAAA,KAAK8yE,GAAAa,IAAL,UAAyB,CACvB,kBAAmBvtE,EAAA,KAAKmtE,IAAmB,cAAchM,EAAY,CAAC,CAC5E,GACI,KAAK,kBAAiB,EACtB,KAAK,QAAO,EACd,EACAyM,GAAe,UAAG,CACZ5tE,EAAA,KAAK+I,MAAQ,MAAQ,CAAC,KAAK,SAG/B,KAAK,OAAO,UAAU,OAAO/I,EAAA,KAAK+I,GAAG,EACrCzI,EAAA,KAAKyI,GAAM,MACX,KAAK,OAAO,UAAU,OAAO/I,EAAA,KAAKqtE,GAAU,EAC5C/sE,EAAA,KAAK+sE,GAAa,MACpB,EACAG,GAAe,SAAClvE,EAAS,KAAK,OAAQ,CAChC0B,EAAA,KAAK+I,MAAQ,OAGhB,CACC,GAAIC,GAAA,KAAAD,IAAA,EACJ,WAAYC,GAAA,KAAA8jE,IAAA,CAClB,EAAQxuE,EAAO,UAAU,KAAK,CACxB,KAAM0B,EAAA,KAAKmtE,IAAmB,IAC9B,KAAM,CACJ,QAAS,UACT,KAAM,KAAK,MACX,eAAgB,KAAK,OAC7B,EACM,UAAW,CACT,UAAW,GACX,KAAMntE,EAAA,KAAKotE,GACnB,EACM,KAAM,CACJ,EAAGptE,EAAA,KAAKmtE,IAAmB,UAAS,CAC5C,CACA,EAAO,GAAO,EAAI,EACd7sE,EAAA,KAAK+sE,GAAa/uE,EAAO,UAAU,YAAY,CAC7C,UAAW,CACT,iBAAkB,GAClB,KAAM0B,EAAA,KAAKotE,GACnB,EACM,KAAMptE,EAAA,KAAK+sE,IAAe,IAC1B,KAAM,CACJ,EAAG/sE,EAAA,KAAK+sE,IAAe,UAAS,CACxC,CACA,EAAO/sE,EAAA,KAAKotE,GAAgB,GACpBptE,EAAA,KAAKktE,MACPltE,EAAA,KAAKktE,IAAc,MAAM,SAAWltE,EAAA,KAAK8sE,KAE7C,EA/YFiB,GAAA,YAgZSC,GAAW,SAAC,CAACn1G,EAAGf,EAAG0kC,EAAOC,CAAM,EAAGomB,EAAO,CAC/C,OAAQA,EAAK,CACX,IAAK,IACH,MAAO,CAAC,EAAI/qD,EAAI2kC,EAAQ5jC,EAAG4jC,EAAQD,CAAK,EAC1C,IAAK,KACH,MAAO,CAAC,EAAI3jC,EAAI2jC,EAAO,EAAI1kC,EAAI2kC,EAAQD,EAAOC,CAAM,EACtD,IAAK,KACH,MAAO,CAAC3kC,EAAG,EAAIe,EAAI2jC,EAAOC,EAAQD,CAAK,CAC/C,CACI,MAAO,CAAC3jC,EAAGf,EAAG0kC,EAAOC,CAAM,CAC7B,EAqEAwxE,GAAQ,SAACnvF,EAAO,CACd2tF,GAAgB,iBAAiB,KAAK,KAAM3tF,CAAK,CACnD,EAcAsvF,GAAS,SAAC5pE,EAAO,CACf,GAAI,CAACxE,EAAA,KAAK2sE,IACR,OAEF,MAAM75D,EAAY,OAAO,aAAY,EACjCtO,EACFsO,EAAU,YAAY9S,EAAA,KAAK2sE,IAAa3sE,EAAA,KAAK4sE,GAAa,EAE1D95D,EAAU,YAAY9S,EAAA,KAAKgtE,IAAYhtE,EAAA,KAAKitE,GAAY,CAE5D,EA6CAU,GAAY,UAAG,CACb,OAAO3tE,EAAA,KAAKotE,IAAmB,KAAK,SAAW,CACjD,EACAoB,GAAe,UAAG,CAChB,GAAIxuE,EAAA,KAAKotE,IACP,OAAO,KAET,KAAM,CAACprE,EAAWC,CAAU,EAAI,KAAK,eAC/B,CAACid,EAAOC,CAAK,EAAI,KAAK,gBACtB7X,EAAQtH,EAAA,KAAK6sE,IACbjX,EAAa,IAAI,aAAatuD,EAAM,OAAS,CAAC,EACpD,IAAIpwC,EAAI,EACR,SAAW,CACT,EAAA2B,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,CACN,IAAS6K,EAAO,CACV,MAAM2/D,EAAKpuG,EAAImpC,EAAYkd,EACrBgoD,GAAM,EAAIpvG,GAAKmqC,EAAakd,EAClCy2C,EAAW1+F,CAAC,EAAI0+F,EAAW1+F,EAAI,CAAC,EAAI+vG,EACpCrR,EAAW1+F,EAAI,CAAC,EAAI0+F,EAAW1+F,EAAI,CAAC,EAAIgwG,EACxCtR,EAAW1+F,EAAI,CAAC,EAAI0+F,EAAW1+F,EAAI,CAAC,EAAI+vG,EAAKzqE,EAAQwF,EACrD4zD,EAAW1+F,EAAI,CAAC,EAAI0+F,EAAW1+F,EAAI,CAAC,EAAIgwG,EAAKzqE,EAASwF,EACtD/qC,GAAK,CACP,CACA,OAAO0+F,CACT,EACA6Y,GAAkB,SAACj3E,EAAM,CACvB,OAAOwI,EAAA,KAAKmtE,IAAmB,UAAU31E,EAAMoC,EAAA,KAAK8yE,GAAAiB,IAAL,UAAmB,CACpE,EA0DOW,GAAc,SAAChwE,EAAQxf,EAAO,CAC/B,KAAK,eAAe,IAAIA,CAAK,GAC/Bwf,EAAO,UAAU,iBAAiB,KAAK,iBAAkB,CACvD,KAAM,CACJ,EAAG,KAAK,eAAe,UAAS,CAC1C,CACA,CAAO,CAEL,EACO+vE,GAAa,SAAC/vE,EAAQxf,EAAO,CAC7B,KAAK,eAAe,UAQvBwf,EAAO,UAAU,OAAO,KAAK,gBAAgB,EAP7CA,EAAO,sBAAsBxf,EAAO,GAAO,CACzC,YAAa,KAAK,iBAClB,kBAAmB,KAAK,eAAe,YAAW,EAClD,WAAY,KAAK,qBACjB,iBAAkB,cAC1B,CAAO,EAIH,KAAK,iBAAmB,GACxB,KAAK,eAAiB,KACtB,KAAK,qBAAuB,EAC9B,EAoLAwnF,GAAkB,SAACtoF,EAAY,CAC7B,KAAM,CACJ,MAAAijB,CACN,EAAQ,KAAK,aACT,OAAO,KAAK,kBAAoBjjB,EAAW,MAAM,KAAK,CAAC1mB,EAAGJ,IAAMI,IAAM2pC,EAAM/pC,CAAC,CAAC,CAChF,EA90BFijC,EAAMsyE,GAANsB,IAmBE5zF,GAnBIsyF,GAmBG,gBAAgB,MACvBtyF,GApBIsyF,GAoBG,kBAAkB,GACzBtyF,GArBIsyF,GAqBG,oBAAoB,IAC3BtyF,GAtBIsyF,GAsBG,QAAQ,aACftyF,GAvBIsyF,GAuBG,cAAcv5E,GAAqB,WAC1C/Y,GAxBIsyF,GAwBG,mBAAmB,IAC1BtyF,GAzBIsyF,GAyBG,iBAAiB,MACxBtyF,GA1BIsyF,GA0BG,uBAAuB,IA1BhC,IAAM2C,GAAN3C,GAo2BA,MAAM4C,EAAe,CAArB,cACEl1E,EAAA,KAAAm1E,GAAiB,OAAO,OAAO,IAAI,GACnC,eAAeh2F,EAAM/jB,EAAO,CAC1B,KAAK+jB,CAAI,EAAI/jB,EACb,KAAK,kBAAkB+jB,EAAM/jB,CAAK,CACpC,CACA,iBAAiBkyE,EAAY,CAC3B,GAAKA,EAGL,SAAW,CAACnuD,EAAM/jB,CAAK,IAAK,OAAO,QAAQkyE,CAAU,EAC9CnuD,EAAK,WAAW,GAAG,GACtB,KAAK,eAAeA,EAAM/jB,CAAK,CAGrC,CACA,kBAAkB+jB,EAAM/jB,EAAO,CAC7ByqC,EAAA,KAAKsvE,IAAeh2F,CAAI,EAAI/jB,CAC9B,CACA,iBAAkB,CAChB,MAAMuoC,EAAOkC,EAAA,KAAKsvE,IAClB,OAAAhvE,EAAA,KAAKgvE,GAAiB,OAAO,OAAO,IAAI,GACjC,CACL,KAAAxxE,CACN,CACE,CACA,OAAQ,CACNwC,EAAA,KAAKgvE,GAAiB,OAAO,OAAO,IAAI,EAC1C,CACA,UAAUr5G,EAAU,KAAM,CACxB,KAAK,iBAAiBA,CAAO,CAC/B,CACA,OAAQ,CACNk+B,GAAY,iBAAiB,CAC/B,CACF,CAlCEm7E,GAAA,YAmCF,MAAMC,GAAN,MAAMA,WAAsB7pD,EAAiB,CAW3C,YAAY5qC,EAAQ,CAClB,MAAMA,CAAM,EAZhBqf,EAAA,KAAAq1E,IACEr1E,EAAA,KAAAs1E,GAAgB,MAChBt1E,EAAA,KAAAu1E,IACAv1F,GAAA,oBAAe,MACfA,GAAA,eAAU,MASRmmB,EAAA,KAAKovE,GAAmB50F,EAAO,iBAAmB,IAClD,KAAK,aAAaA,CAAM,CAC1B,CACA,gBAAiB,QACfloB,EAAA,KAAK,eAAL,MAAAA,EAAmB,OAAO,KAAK,OAC/B,MAAM,eAAc,CACtB,CACA,kBAAmB,UACjBD,GAAAC,EAAA,KAAK,eAAL,YAAAA,EAAmB,gBAAnB,MAAAD,EAAA,KAAAC,EAAmC,KAAK,QAC1C,CACA,aAAakoB,EAAQ,CACfA,EAAO,eACT8e,EAAA,KAAK41E,GAAAG,IAAL,UAAyB70F,GACzB8e,EAAA,KAAK41E,GAAAhC,IAAL,WAEJ,CAyBA,OAAO,oBAAoBx2E,EAAIuD,EAAI,CACjC,MAAMq1E,EAAS,IAAI,IAAI,OAAO,KAAK54E,CAAE,CAAC,EACtC,SAAW,CAACre,EAAKpjB,CAAK,IAAK,OAAO,QAAQglC,CAAE,EACtCq1E,EAAO,IAAIj3F,CAAG,EAChB,OAAO,OAAOqe,EAAGre,CAAG,EAAGpjB,CAAK,EAE5ByhC,EAAGre,CAAG,EAAIpjB,EAGd,OAAOyhC,CACT,CACA,OAAO,yBAAyB64E,EAAU,CACxC17E,GAAY,iBAAiB,CAC/B,CACA,WAAW,UAAW,CACpBA,GAAY,iBAAiB,CAC/B,CACA,WAAW,UAAW,CACpB,MAAO,EACT,CACA,WAAW,yBAA0B,CACnC,MAAO,EACT,CACA,OAAO,oBAAoB5c,EAAMhiB,EAAO,CACtC,MAAMu6G,EAAe,KAAK,SAAS,IAAIv4F,CAAI,EACvCu4F,GACF,KAAK,uBAAuB,eAAeA,EAAcv6G,CAAK,EAE5D,KAAK,iBACPyqC,EAAAuvE,GAAcQ,IAAa,eAAeD,EAAcv6G,CAAK,EAC7D,KAAK,eAAe,UAAU,iBAAiB,KAAK,eAAgB,KAAK,uBAAuB,iBAAiB,EAErH,CACA,aAAagiB,EAAMhiB,EAAO,CACxB,MAAMu6G,EAAe,KAAK,YAAY,SAAS,IAAIv4F,CAAI,EACnDu4F,GACF,KAAK,gBAAgBv4F,EAAMu4F,EAAcv6G,CAAK,CAElD,CACA,WAAW,2BAA4B,CACrC,MAAMkyE,EAAa,CAAA,EACbxxE,EAAU,KAAK,uBACrB,SAAW,CAACshB,EAAM+B,CAAI,IAAK,KAAK,SAC9BmuD,EAAW,KAAK,CAAClwD,EAAMthB,EAAQqjB,CAAI,CAAC,CAAC,EAEvC,OAAOmuD,CACT,CACA,IAAI,oBAAqB,CACvB,MAAMA,EAAa,CAAA,EACb,CACJ,gBAAAuoC,CACN,EAAQ,KACJ,SAAW,CAACz4F,EAAM+B,CAAI,IAAK,KAAK,YAAY,SAC1CmuD,EAAW,KAAK,CAAClwD,EAAMy4F,EAAgB12F,CAAI,CAAC,CAAC,EAE/C,OAAOmuD,CACT,CACA,gBAAgBlwD,EAAM+B,EAAM/jB,EAAO,CACjC,MAAMU,EAAU,KAAK,gBACfg6G,EAAah6G,EAAQqjB,CAAI,EACzB42F,EAAS7oD,GAAO,OACpBpxD,EAAQ,eAAeqjB,EAAM+tC,CAAG,EAChC,MAAM0B,EAAO/oB,EAAA,KAAKyvE,IAAc,eAAen2F,EAAM+tC,CAAG,EACpD0B,GACFnvB,EAAA,KAAK41E,GAAAW,IAAL,UAAiBpnD,IAEnBn2D,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAASqD,EAAQ,mBAC1DshB,IAAS,KAAK,UAChB,KAAK,eAAc,EACVA,IAAS,KAAK,aACvB,KAAK,iBAAgB,CAEzB,EACA,KAAK,YAAY,CACf,IAAK24F,EAAO,KAAK,KAAM36G,CAAK,EAC5B,KAAM26G,EAAO,KAAK,KAAMD,CAAU,EAClC,KAAM,KAAK,WAAW,SAAS,KAAK,KAAK,WAAY,IAAI,EACzD,SAAU,GACV,KAAA14F,EACA,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACH,CACA,uBAAuB0pB,EAAOkC,EAAS,CACrC,MAAM2O,EAAY,KAAK,YAAY,SAAS,IAAI,KAAK,SAAS,EACxDs+D,EAAc,KAAK,YAAY,SAAS,IAAI,KAAK,WAAW,EAC5Dn6G,EAAU,KAAK,gBACfywG,EAAazwG,EAAQ67C,CAAS,EAC9Bi9D,EAAe94G,EAAQm6G,CAAW,EAClCF,EAAS,CAAC54G,EAAGs4E,IAAO,OACxB35E,EAAQ,eAAe67C,EAAWx6C,CAAC,EACnCrB,EAAQ,eAAem6G,EAAaxgC,CAAE,EACtC5vC,EAAA,KAAKyvE,IAAc,eAAe39D,EAAWx6C,CAAC,EAC9C0oC,EAAA,KAAKyvE,IAAc,eAAeW,EAAaxgC,CAAE,GACjDh9E,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAASqD,EAAQ,mBAC9D,KAAK,eAAc,EACnB,KAAK,iBAAgB,CACvB,EACA,KAAK,YAAY,CACf,IAAKi6G,EAAO,KAAK,KAAMjvE,EAAOkC,CAAO,EACrC,KAAM+sE,EAAO,KAAK,KAAMxJ,EAAYqI,CAAY,EAChD,KAAM,KAAK,WAAW,SAAS,KAAK,KAAK,WAAY,IAAI,EACzD,SAAU,GACV,KAAM57E,GAA2B,sBACjC,oBAAqB,GACrB,SAAU,EAChB,CAAK,CACH,CACA,aAAc,QACZvgC,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAAS28G,GAAc,oBAAoBvvE,EAAA,KAAKyvE,IAAc,6BAA6B71E,EAAA,KAAK41E,GAAAa,IAAL,UAA0B,EAAG,CACnK,KAAMz2E,EAAA,KAAK41E,GAAAc,IAAL,UACZ,CAAK,EACH,CACA,YAAa,QACX19G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAAS28G,GAAc,oBAAoBvvE,EAAA,KAAKyvE,IAAc,4BAA4B71E,EAAA,KAAK41E,GAAAa,IAAL,UAA0B,EAAG,CAClK,KAAMz2E,EAAA,KAAK41E,GAAAc,IAAL,UACZ,CAAK,EACH,CACA,eAAeC,EAAIC,EAAI,QACrB59G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAAS,CACpD,KAAMgnC,EAAA,KAAK41E,GAAAc,IAAL,UACZ,EACE,CACA,eAAgB,QACd19G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAAS28G,GAAc,oBAAoBvvE,EAAA,KAAKyvE,IAAc,+BAA+B71E,EAAA,KAAK41E,GAAAa,IAAL,WAA4B,KAAK,gBAAgB,EAAG,CAC5L,KAAMz2E,EAAA,KAAK41E,GAAAc,IAAL,UACZ,CAAK,EACH,CACA,kBAAmB,QACjB19G,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAAS,CACpD,UAAW,CACT,OAAQ,EAChB,CACA,EACE,CACA,iBAAkB,QAChBA,EAAA,KAAK,SAAL,MAAAA,EAAa,UAAU,iBAAiB,KAAK,QAAS,CACpD,UAAW,CACT,OAAQ,EAChB,CACA,EACE,CACA,QAAS,CACP,MAAM,OAAM,EACZ,KAAK,gBAAe,EACpB,KAAK,eAAc,CACrB,CACA,gBAAiB,CACf,MAAM,eAAc,EACpB,KAAK,IAAI,UAAU,OAAO,WAAY,EAAI,CAC5C,CACA,eAAgB,CACd,MAAM,cAAa,EACnB,KAAK,IAAI,UAAU,OAAO,WAAY,EAAK,CAC7C,CACA,oBAAqB,CACnB,MAAO,CAAC,EAAG,CAAC,CACd,CACA,IAAI,aAAc,CAChB,MAAO,EACT,CACA,UAAUyuD,EAAO,CACV,KAAK,qBACR,KAAK,OAAO,kBAAkB,IAAI,EAEpC,KAAK,aAAe,GAChBrhB,EAAA,KAAK0vE,MACPpvE,EAAA,KAAKovE,GAAmB,IACxB,KAAK,OAAM,EACX,KAAK,OAAO,YAAY,IAAI,EACxBruD,GAAS,KAAK,YAChB,KAAK,IAAI,MAAK,EAGpB,CACA,QAAS,CACPznB,EAAA,KAAK41E,GAAA5B,IAAL,WACA,MAAM,OAAM,CACd,CACA,SAAU,CACH,KAAK,SAGV,MAAM,QAAO,EACT,KAAK,MAAQ,OAGjBh0E,EAAA,KAAK41E,GAAAhC,IAAL,WACA5zE,EAAA,KAAK41E,GAAAW,IAAL,UAAiBnwE,EAAA,KAAKyvE,IAAc,KAC/B,KAAK,iBACR,KAAK,OAAO,IAAI,IAAI,GAExB,CACA,UAAUnxE,EAAQ,OAChB,IAAIuvE,EAAiB,GACjB,KAAK,QAAU,CAACvvE,GAClB,KAAK,WAAW,oBAAoB,IAAI,EACxC1E,EAAA,KAAK41E,GAAA5B,IAAL,YACStvE,IACT,KAAK,WAAW,iBAAiB,IAAI,EACrC1E,EAAA,KAAK41E,GAAAhC,IAAL,UAAqBlvE,GACrBuvE,EAAiB,CAAC,KAAK,UAAUj7G,EAAA,KAAK,MAAL,YAAAA,EAAU,UAAU,SAAS,oBAEhE,MAAM,UAAU0rC,CAAM,EAClBuvE,GACF,KAAK,OAAM,CAEf,CA6GA,QAAS,CACF,KAAK,QAGV,KAAK,OAAO,UAAU,iBAAiB,KAAK,QAAS0B,GAAc,oBAAoB,CACrF,KAAM31E,EAAA,KAAK41E,GAAAc,IAAL,UACZ,EAAOtwE,EAAA,KAAKyvE,IAAc,gBAAgB,KAAK,eAAiB,KAAK,SAAW,KAAO,GAAG,CAAC,CAAC,CAC1F,CACA,iBAAkB,CACX,KAAK,QAGV71E,EAAA,KAAK41E,GAAAW,IAAL,UAAiBnwE,EAAA,KAAKyvE,IAAc,uBAAuB,KAAK,iBAAkB,KAAK,OAAO,KAAK,EACrG,CACA,OAAO,4BAA6B,CAAC,CACrC,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,IAAI9vD,EAAOC,EACP,KAAK,UACPD,EAAQ,KAAK,EACbC,EAAQ,KAAK,GAEf,MAAMhe,EAAM,MAAM,OAAM,EACxBA,EAAI,UAAU,IAAI,MAAM,EACxB,MAAM6uE,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAA7uE,EAAI,OAAO6uE,CAAO,EAClBA,EAAQ,aAAa,cAAe,MAAM,EAC1CA,EAAQ,UAAY,WACpB,KAAK,QAAO,EACZ,KAAK,WAAW,iBAAiB,IAAI,EACrC,KAAK,eAAc,EACf,KAAK,SACP,KAAK,gBAAgB9wD,EAAOC,CAAK,EAE5Bhe,CACT,CACA,OAAO,qBAAqB2uE,EAAIC,EAAIE,EAAcC,EAAe7rB,EAAW,CAC1E3wD,GAAY,iBAAiB,CAC/B,CACA,OAAO,aAAamK,EAAQ8I,EAAWsgE,EAAQ5oF,EAAO,OACpD,KAAM,CACJ,OAAAvI,EACA,QAAS1d,EACT,QAASf,EACT,UAAAwwC,EACA,YAAAE,CACN,EAAQ1pB,EACJ,GAAI+pB,GAAgB,qCAAqCL,CAAW,EAClE,OAEF,KAAM,CACJ,SAAU,CACR,SAAA5M,CACR,CACA,EAAQ0C,EACE,CACJ,MAAO+Y,EACP,OAAQC,CACd,EAAQ/gC,EAAO,sBAAqB,EAC1BzB,EAAKwrB,EAAAivE,GAAcqB,GAAoB,IAAI,iBAC3C57G,EAASspC,EAAO,eAAexpB,CAAE,EAiDvC,GAhDA+zB,GAAgB,WAAWL,EAAaF,CAAS,EACjD,OAAO,iBAAiB,YAAatxC,GAAK,CACpC6xC,GAAgB,wBAAwB7xC,EAAE,SAAS,GACrD,KAAK,SAASA,CAAC,CAEnB,EAAG,CACD,OAAAhC,CACN,CAAK,EACD,OAAO,iBAAiB,gBAAiBgC,GAAK,CACxC6xC,GAAgB,wBAAwB7xC,EAAE,SAAS,GACrD,KAAK,eAAe,kBAAiB,CAEzC,EAAG,CACD,OAAAhC,CACN,CAAK,EACD,OAAO,iBAAiB,cAAegC,GAAK,CACrC6xC,GAAgB,kBAAkB7xC,EAAE,WAAW,IAGpD6xC,GAAgB,0BAA0B7xC,EAAE,SAAS,EACjDgpC,EAAAuvE,GAAcQ,IAAa,kBAC7B/vE,EAAAuvE,GAAcQ,IAAa,kBAAiB,EACxC/vE,EAAAuvE,GAAcQ,IAAa,UAC7B,KAAK,eAAe,kBAAkB,EAAI,EAE1C,KAAK,SAAS,IAAI,GAGxB,EAAG,CACD,QAAS,GACT,QAAS,GACT,OAAA/6G,CACN,CAAK,EACD,OAAO,iBAAiB,cAAekrC,GAAe,CACpD,OAAAlrC,CACN,CAAK,EACDuhB,EAAO,iBAAiB,cAAe,KAAK,UAAU,KAAK,IAAI,EAAG,CAChE,OAAAvhB,CACN,CAAK,EACDuhB,EAAO,iBAAiB,YAAavf,GAAK,CACpC6xC,GAAgB,gBAAgB7xC,EAAE,SAAS,GAC7CmpC,GAAUnpC,CAAC,CAEf,EAAG,CACD,OAAAhC,CACN,CAAK,EACDspC,EAAO,cAAa,GACpB1rC,EAAAw0C,EAAU,iBAAV,MAAAx0C,EAA0B,OACtBotC,EAAAuvE,GAAcQ,IAAc,CAC9BzxE,EAAO,UAAU,iBAAiB,KAAK,eAAgB0B,EAAAuvE,GAAcQ,IAAa,SAASl3G,EAAGf,EAAGu/C,EAAaC,EAAc1b,CAAQ,CAAC,EACrI,MACF,CACAwL,EAAU,6BAA6B,IAAI,EAC3C9G,EAAAivE,GAAcQ,GAAe,KAAK,qBAAqBl3G,EAAGf,EAAGu/C,EAAaC,EAAc1b,CAAQ,GAChG0E,EAAAivE,GAAcsB,GAAyB,KAAK,yBAAwB,GACpE,KAAK,eAAiBvyE,EACrB,CACC,GAAI,KAAK,cACf,EAAQA,EAAO,UAAU,KAAK,KAAK,oBAAoB0B,EAAAuvE,GAAcsB,IAAuB,gBAAe,EAAI7wE,EAAAuvE,GAAcQ,IAAa,oBAAoB,EAAG,GAAM,EAAK,CAC1K,CACA,OAAO,UAAUjxF,EAAO,CAEtB,GADA+pB,GAAgB,gBAAgB/pB,EAAM,SAAS,EAC3C,CAACkhB,EAAAuvE,GAAcQ,IACjB,OAEF,KAAM,CACJ,QAAAl0E,EACA,QAAAC,EACA,UAAAwM,CACN,EAAQxpB,EACJ,GAAK+pB,GAAgB,gBAAgBP,CAAS,EAG9C,IAAIO,GAAgB,0BAA2B,CAC7C,KAAK,SAAS/pB,CAAK,EACnB,MACF,CACA,KAAK,eAAe,UAAU,iBAAiB,KAAK,eAAgBkhB,EAAAuvE,GAAcQ,IAAa,IAAIl0E,EAASC,CAAO,CAAC,EACpH+M,GAAgB,aAAa/pB,EAAM,SAAS,EAC5CqhB,GAAUrhB,CAAK,EACjB,CACA,OAAO,SAASgyF,EAAK,CACfA,IACF,KAAK,eAAiB,GACtB,KAAK,eAAiB,KACtBxwE,EAAAivE,GAAcQ,GAAe,MAC7BzvE,EAAAivE,GAAcsB,GAAyB,MACvChoE,GAAgB,eAAc,GAE5B7I,EAAAuvE,GAAcqB,MAChB5wE,EAAAuvE,GAAcqB,IAAkB,MAAK,EACrCtwE,EAAAivE,GAAcqB,GAAoB,MAClC/nE,GAAgB,gBAAe,EAEnC,CACA,OAAO,SAAS/pB,EAAO,CACrB,MAAMwf,EAAS,KAAK,eACpB,GAAKA,EAQL,IALAA,EAAO,cAAc,EAAI,EACzB,KAAK,SAAS,EAAK,GACfxf,GAAA,YAAAA,EAAO,UAAWwf,EAAO,KAC3BA,EAAO,UAAU,iBAAiB,KAAK,eAAgB0B,EAAAuvE,GAAcQ,IAAa,IAAIjxF,EAAM,QAASA,EAAM,OAAO,CAAC,EAEjH,KAAK,wBAAyB,CAChC,MAAMiyF,EAAO/wE,EAAAuvE,GAAcQ,IACrBiB,EAAS,KAAK,eACdC,EAAcF,EAAK,eAAc,EACvCzyE,EAAO,YAAY,CACjB,IAAK,IAAM,CACTA,EAAO,UAAU,iBAAiB0yE,EAAQD,EAAK,eAAeE,CAAW,CAAC,CAC5E,EACA,KAAM,IAAM,CACV3yE,EAAO,UAAU,iBAAiB0yE,EAAQD,EAAK,kBAAiB,CAAE,CACpE,EACA,SAAU,GACV,KAAM59E,GAA2B,SACzC,CAAO,EACD,MACF,CACA,KAAK,WAAW,EAAK,EACvB,CACA,OAAO,WAAW+9E,EAAW,CAC3B,MAAM5yE,EAAS,KAAK,eACpB,GAAI,CAACA,EACH,OAAO,KAIT,GAFAA,EAAO,cAAc,EAAI,EACzBA,EAAO,eAAenL,GAA2B,SAAS,EACtD,CAAC6M,EAAAuvE,GAAcQ,IAAa,UAAW,CACzC,KAAM,CACJ,eAAgB,CAAC/tE,EAAWC,CAAU,EACtC,MAAApV,CACR,EAAUyR,EACE6G,EAAS7G,EAAO,sBAAsB,CAC1C,QAAS,EACT,QAAS,CACjB,EAAS,GAAO,CACR,OAAQ,KAAK,eACb,aAAc0B,EAAAuvE,GAAcQ,IAAa,YAAY/tE,EAAYnV,EAAOoV,EAAapV,EAAOA,EAAO,KAAK,aAAa,EACrH,eAAgBmT,EAAAuvE,GAAcsB,IAC9B,gBAAiB,CAACK,CAC1B,CAAO,EACD,YAAK,SAAS,EAAI,EACX/rE,CACT,CACA,OAAA7G,EAAO,UAAU,OAAO,KAAK,cAAc,EAC3C,KAAK,SAAS,EAAI,EACX,IACT,CACA,qBAAqB8gD,EAAO,CAAC,CAC7B,OAAO,gBAAgB+xB,EAAQC,EAAQzsB,EAAYD,EAAa2sB,EAAajyB,EAAO,CAClFjrD,GAAY,iBAAiB,CAC/B,CACA,aAAa,YAAYv+B,EAAM0oC,EAAQ8I,EAAW,SAChD,KAAM,CACJ,QAAS,CACP,UAAApF,EACA,WAAAC,EACA,MAAAid,EACA,MAAAC,CACR,CACA,EAAQ7gB,EAAO,SACLgzE,EAAe,KAAK,gBAAgBpyD,EAAOC,EAAOnd,EAAWC,EAAY,KAAK,cAAersC,CAAI,EACjGuvC,EAAS,MAAM,MAAM,YAAYvvC,EAAM0oC,EAAQ8I,CAAS,EAC9D,OAAAjC,EAAO,qBAAqBvvC,CAAI,EAChCgkC,EAAAhnC,EAAAuyC,EAAOqqE,GAAAG,IAAP,KAAA/8G,EAA2B,CACzB,aAAA0+G,CACN,GACI13E,EAAAjnC,EAAAwyC,EAAOqqE,GAAAhC,IAAP,KAAA76G,GACAwyC,EAAO,gBAAe,EACtBA,EAAO,OAAM,EACNA,CACT,CACA,cAAc+T,EAAc,CAC1B,KAAM,CAACgG,EAAOC,CAAK,EAAI,KAAK,gBACtB,CAACnd,EAAWC,CAAU,EAAI,KAAK,eACrC,OAAOjC,EAAA,KAAKyvE,IAAc,UAAU,CAACvwD,EAAOC,EAAOnd,EAAWC,CAAU,EAAGiX,CAAY,CACzF,CACA,wBAAwBnD,EAAY,CAClC,OAAAA,EAAW,aAAa,CACtB,KAAM,KAAK,WAAU,CAC3B,CAAK,EACM,IACT,CACA,OAAO,yBAA0B,CAC/B,MAAO,EACT,CACF,EA5mBE05D,GAAA,YACAC,GAAA,YAKOK,GAAA,YACAa,GAAA,YACAC,GAAA,YATTrB,GAAA,YA6BEG,GAAmB,SAAC,CAClB,aAAA2B,EACA,OAAAN,EACA,eAAAO,CACJ,EAAK,CACDjxE,EAAA,KAAKmvE,GAAgB6B,GACrB,KAAK,kBAAL,KAAK,gBAAoBC,GACpB,KAAK,qBACR,KAAK,WAAW,UAAU7rD,GAAiB,WAAW,KAAK,UAAU,CAAC,EAEpEsrD,GAAU,GACZ,KAAK,QAAUA,EACf,KAAK,OAAO,UAAU,aAAaA,EAAQM,EAAa,iBAAiB,GAEzE,KAAK,QAAU13E,EAAA,KAAK41E,GAAAgC,IAAL,UAAoBF,EAAc,KAAK,QAExD13E,EAAA,KAAK41E,GAAAW,IAAL,UAAiBmB,EAAa,IAChC,EACAE,GAAc,SAACF,EAAchzE,EAAQ,CACnC,KAAM,CACJ,GAAA7iB,CACN,EAAQ6iB,EAAO,UAAU,KAAKixE,GAAc,oBAAoB,KAAK,gBAAgB,gBAAe,EAAI+B,EAAa,oBAAoB,EAAG,GAAO,EAAK,EACpJ,OAAO71F,CACT,EAiNAmyF,GAAe,UAAG,CACZ,KAAK,UAAY,MAAQ,CAAC,KAAK,SAGnC,KAAK,OAAO,UAAU,OAAO,KAAK,OAAO,EACzC,KAAK,QAAU,KACf,KAAK,gBAAgB,MAAK,EAC5B,EACAJ,GAAe,SAAClvE,EAAS,KAAK,OAAQ,CACpC,GAAI,OAAK,UAAY,MAAQ,KAAK,SAAWA,GAG7C,IAAI,KAAK,UAAY,KAAM,CACzB,KAAK,OAAO,UAAU,aAAa,KAAK,QAASA,EAAO,SAAS,EACjE,MACF,CACA,KAAK,gBAAgB,UAAS,EAC9B,KAAK,QAAU1E,EAAA,KAAK41E,GAAAgC,IAAL,UAAoBxxE,EAAA,KAAKyvE,IAAenxE,GACzD,EACAmzE,GAAqB,SAAC,CAAC54G,EAAGf,EAAG0kC,EAAOC,CAAM,EAAG,CAC3C,KAAM,CACJ,iBAAkB,CAACi1E,EAAIC,CAAE,EACzB,SAAA/1E,CACN,EAAQ,KACJ,OAAQA,EAAQ,CACd,IAAK,IACH,MAAO,CAAC9jC,EAAG,EAAIe,EAAG2jC,GAASm1E,EAAKD,GAAKj1E,GAAUi1E,EAAKC,EAAG,EACzD,IAAK,KACH,MAAO,CAAC,EAAI94G,EAAG,EAAIf,EAAG0kC,EAAOC,CAAM,EACrC,IAAK,KACH,MAAO,CAAC,EAAI3kC,EAAGe,EAAG2jC,GAASm1E,EAAKD,GAAKj1E,GAAUi1E,EAAKC,EAAG,EACzD,QACE,MAAO,CAAC94G,EAAGf,EAAG0kC,EAAOC,CAAM,CACnC,CACE,EACA4zE,GAAmB,UAAG,CACpB,KAAM,CACJ,EAAAx3G,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,EACA,iBAAkB,CAACi1E,EAAIC,CAAE,EACzB,SAAA/1E,CACN,EAAQ,KACJ,OAAQA,EAAQ,CACd,IAAK,IACH,MAAO,CAAC,EAAI9jC,EAAGe,EAAG2jC,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,EAAG,EACzD,IAAK,KACH,MAAO,CAAC,EAAI74G,EAAG,EAAIf,EAAG0kC,EAAOC,CAAM,EACrC,IAAK,KACH,MAAO,CAAC3kC,EAAG,EAAIe,EAAG2jC,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,EAAG,EACzD,QACE,MAAO,CAAC74G,EAAGf,EAAG0kC,EAAOC,CAAM,CACnC,CACE,EACA0zE,GAAW,SAACpnD,EAAM,CAChB,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,MAAM,EAAInvB,EAAA,KAAK41E,GAAAiC,IAAL,UAA2B1oD,GACnE,KAAK,MACP,KAAK,kBAAiB,EACtB,KAAK,QAAO,GAEd,KAAK,WAAU,CACjB,EACAunD,GAAU,UAAG,CACX,KAAM,CACJ,EAAAz3G,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,EACA,SAAAb,EACA,eAAAg2E,EACA,iBAAkB,CAACF,EAAIC,CAAE,CAC/B,EAAQ,KACJ,QAAS/1E,EAAW,EAAIg2E,GAAkB,GAAE,CAC1C,IAAK,GACH,MAAO,CAAC,EAAI95G,EAAI2kC,EAAQ5jC,EAAG4jC,EAAQD,CAAK,EAC1C,IAAK,GACH,MAAO,CAAC,EAAI3jC,EAAI2jC,EAAO,EAAI1kC,EAAI2kC,EAAQD,EAAOC,CAAM,EACtD,IAAK,GACH,MAAO,CAAC3kC,EAAG,EAAIe,EAAI2jC,EAAOC,EAAQD,CAAK,EACzC,IAAK,GACH,MAAO,CAAC3jC,EAAGf,EAAI0kC,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,GAAKl1E,GAASk1E,EAAKC,EAAG,EACzE,IAAK,GACH,MAAO,CAAC,EAAI75G,EAAGe,EAAG2jC,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,EAAG,EACzD,IAAK,GACH,MAAO,CAAC,EAAI74G,EAAI4jC,GAAUk1E,EAAKD,GAAK,EAAI55G,EAAG2kC,GAAUk1E,EAAKD,GAAKl1E,GAASk1E,EAAKC,EAAG,EAClF,IAAK,GACH,MAAO,CAAC75G,EAAI0kC,GAASk1E,EAAKC,GAAK,EAAI94G,EAAI4jC,GAAUk1E,EAAKD,GAAKl1E,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,EAAG,EAClG,IAAK,GACH,MAAO,CAAC74G,EAAI2jC,EAAO1kC,EAAI2kC,EAAQD,EAAOC,CAAM,EAC9C,IAAK,GACH,MAAO,CAAC,EAAI3kC,EAAGe,EAAI2jC,EAAOC,EAAQD,CAAK,EACzC,IAAK,IACH,MAAO,CAAC,EAAI3jC,EAAG,EAAIf,EAAG0kC,EAAOC,CAAM,EACrC,IAAK,IACH,MAAO,CAAC3kC,EAAI2kC,EAAQ,EAAI5jC,EAAG4jC,EAAQD,CAAK,EAC1C,IAAK,IACH,MAAO,CAAC3jC,EAAI4jC,GAAUk1E,EAAKD,GAAK55G,EAAG2kC,GAAUk1E,EAAKD,GAAKl1E,GAASk1E,EAAKC,EAAG,EAC1E,IAAK,IACH,MAAO,CAAC,EAAI75G,EAAI0kC,GAASk1E,EAAKC,GAAK94G,EAAI4jC,GAAUk1E,EAAKD,GAAKl1E,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,EAAG,EAClG,IAAK,IACH,MAAO,CAAC,EAAI74G,EAAG,EAAIf,EAAI0kC,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,GAAKl1E,GAASk1E,EAAKC,EAAG,EACjF,IAAK,IACH,MAAO,CAAC75G,EAAG,EAAIe,EAAG2jC,GAASk1E,EAAKC,GAAKl1E,GAAUk1E,EAAKD,EAAG,EACzD,QACE,MAAO,CAAC74G,EAAGf,EAAG0kC,EAAOC,CAAM,CACnC,CACE,EA3WAtiB,GALIo1F,GAKG,iBAAiB,IACxBp1F,GANIo1F,GAMG,iBAAiB,MACxBp1E,EAPIo1E,GAOGQ,GAAe,MACtB51E,EARIo1E,GAQGqB,GAAoB,MAC3Bz2E,EATIo1E,GASGsB,GAAyB,MAChC12F,GAVIo1F,GAUG,gBAAgB,GAVzB,IAAMsC,GAANtC,GAmnBA,MAAMuC,EAAgB,CAYpB,YAAYj5G,EAAGf,EAAGu/C,EAAaC,EAAc1b,EAAUulE,EAAW,CAZpEhnE,EAAA,KAAA43E,IACE53E,EAAA,KAAAytE,GAAQ,IAAI,aAAa,CAAC,GAC1BztE,EAAA,KAAAkmE,IACAlmE,EAAA,KAAA63E,IACA73E,EAAA,KAAA2qD,IACA3qD,EAAA,KAAA+tE,IACA/tE,EAAA,KAAAguE,IACAhuE,EAAA,KAAA83E,GAAe,IACf93E,EAAA,KAAA+3E,GAAa,GACb/3E,EAAA,KAAAgyE,GAAY,IAAIgG,IAChBh4E,EAAA,KAAAu2E,IACAv2E,EAAA,KAAAw2E,IAEErwE,EAAA,KAAKowE,GAAer5D,GACpB/W,EAAA,KAAKqwE,GAAgBr5D,GACrBhX,EAAA,KAAKwkD,GAAYlpD,GACjB0E,EAAA,KAAK4nE,GAAa/G,GAClB,CAACtoG,EAAGf,CAAC,EAAI8hC,EAAA,KAAKm4E,GAAAK,IAAL,UAAqBv5G,EAAGf,GACjC,MAAMnC,EAAO2qC,EAAA,KAAK+/D,GAAQ,CAAC,IAAK,IAAK,IAAK,IAAKxnG,EAAGf,CAAC,GACnDwoC,EAAA,KAAK6nE,GAAU,CAACtvG,EAAGf,CAAC,GACpBwoC,EAAA,KAAK0xE,GAAS,CAAC,CACb,KAAAr8G,EACA,OAAQqqC,EAAA,KAAKmoE,GACnB,CAAK,GACDnoE,EAAA,KAAK4nE,IAAM,IAAIjyG,EAAM,CAAC,CACxB,CACA,eAAe2jB,EAAM/jB,EAAO,CACtB+jB,IAAS,gBACXgnB,EAAA,KAAK4nE,GAAa3yG,EAEtB,CAIA,SAAU,OACR,MAAO,GAAC3C,EAAAotC,EAAA,KAAKgyE,MAAL,MAAAp/G,EAAa,OACvB,CACA,eAAgB,CACd,OAAOotC,EAAA,KAAKmoE,IAAQ,QAAU,EAChC,CACA,IAAItvG,EAAGf,EAAG,CACR,CAACe,EAAGf,CAAC,EAAI8hC,EAAA,KAAKm4E,GAAAK,IAAL,UAAqBv5G,EAAGf,GACjC,KAAM,CAACwhC,EAAIC,EAAIC,EAAIC,CAAE,EAAIuG,EAAA,KAAK4nE,IAAM,SAAS,EAAG,CAAC,EAC3CU,EAAQzvG,EAAI2gC,EACZ+uE,EAAQzwG,EAAI2hC,EAElB,OADU,KAAK,MAAMuG,EAAA,KAAK0wE,IAAepI,EAAOtoE,EAAA,KAAK2wE,IAAgBpI,CAAK,GACjE,EACA,MAETvoE,EAAA,KAAKmoE,IAAQ,KAAKtvG,EAAGf,CAAC,EAClB,MAAMwhC,CAAE,GACV0G,EAAA,KAAK4nE,IAAM,IAAI,CAACpuE,EAAIC,EAAI5gC,EAAGf,CAAC,EAAG,CAAC,EAChCkoC,EAAA,KAAKqgE,IAAM,KAAK,IAAK,IAAK,IAAK,IAAKxnG,EAAGf,CAAC,EACjC,CACL,KAAM,CACJ,EAAG,KAAK,UAAS,CAC3B,CACA,IAEQ,MAAMkoC,EAAA,KAAK4nE,IAAM,CAAC,CAAC,GACrB5nE,EAAA,KAAKqgE,IAAM,OAAO,EAAG,CAAC,EAExBrgE,EAAA,KAAK4nE,IAAM,IAAI,CAACtuE,EAAIC,EAAIC,EAAIC,EAAI5gC,EAAGf,CAAC,EAAG,CAAC,EACxCkoC,EAAA,KAAKqgE,IAAM,KAAK,GAAG0G,GAAQ,mBAAmBztE,EAAIC,EAAIC,EAAIC,EAAI5gC,EAAGf,CAAC,CAAC,EAC5D,CACL,KAAM,CACJ,EAAG,KAAK,UAAS,CACzB,CACA,GACE,CACA,IAAIe,EAAGf,EAAG,CACR,MAAMglG,EAAS,KAAK,IAAIjkG,EAAGf,CAAC,EAC5B,OAAIglG,IAGA98D,EAAA,KAAKmoE,IAAQ,SAAW,EACnB,CACL,KAAM,CACJ,EAAG,KAAK,UAAS,CAC3B,CACA,EAEW,KACT,CACA,SAAStvG,EAAGf,EAAGu/C,EAAaC,EAAc1b,EAAU,CAClD0E,EAAA,KAAKowE,GAAer5D,GACpB/W,EAAA,KAAKqwE,GAAgBr5D,GACrBhX,EAAA,KAAKwkD,GAAYlpD,GACjB,CAAC/iC,EAAGf,CAAC,EAAI8hC,EAAA,KAAKm4E,GAAAK,IAAL,UAAqBv5G,EAAGf,GACjC,MAAMnC,EAAO2qC,EAAA,KAAK+/D,GAAQ,CAAC,IAAK,IAAK,IAAK,IAAKxnG,EAAGf,CAAC,GACnDwoC,EAAA,KAAK6nE,GAAU,CAACtvG,EAAGf,CAAC,GACpB,MAAMoxG,EAAOlpE,EAAA,KAAKgyE,IAAO,GAAG,EAAE,EAC9B,OAAI9I,IACFA,EAAK,KAAO,IAAI,aAAaA,EAAK,IAAI,EACtCA,EAAK,OAAS,IAAI,aAAaA,EAAK,MAAM,GAE5ClpE,EAAA,KAAKgyE,IAAO,KAAK,CACf,KAAAr8G,EACA,OAAQqqC,EAAA,KAAKmoE,GACnB,CAAK,EACDnoE,EAAA,KAAK4nE,IAAM,IAAIjyG,EAAM,CAAC,EACtB2qC,EAAA,KAAK4xE,GAAa,GAClB,KAAK,UAAS,EACP,IACT,CACA,gBAAiB,CACf,OAAOlyE,EAAA,KAAKgyE,IAAO,GAAG,EAAE,CAC1B,CACA,eAAe90E,EAAS,CACtB,OAAK8C,EAAA,KAAKgyE,KAGVhyE,EAAA,KAAKgyE,IAAO,KAAK90E,CAAO,EACxBoD,EAAA,KAAK+/D,GAAQnjE,EAAQ,MACrBoD,EAAA,KAAK6nE,GAAUjrE,EAAQ,QACvBoD,EAAA,KAAK4xE,GAAa,GACX,CACL,KAAM,CACJ,EAAG,KAAK,UAAS,CACzB,CACA,GAValyE,EAAA,KAAKmsE,IAAU,eAAejvE,CAAO,CAWhD,CACA,mBAAoB,CAClB,GAAI,CAAC8C,EAAA,KAAKgyE,IACR,OAAOhyE,EAAA,KAAKmsE,IAAU,kBAAiB,EAEzCnsE,EAAA,KAAKgyE,IAAO,IAAG,EACf1xE,EAAA,KAAK2xE,GAAe,IACpB,QAAS/6G,EAAI,EAAG2Q,EAAKm4B,EAAA,KAAKgyE,IAAO,OAAQ96G,EAAI2Q,EAAI3Q,IAAK,CACpD,KAAM,CACJ,KAAAvB,EACA,OAAAkrG,CACR,EAAU7gE,EAAA,KAAKgyE,IAAO96G,CAAC,EACjBopC,EAAA,KAAK+/D,GAAQ1qG,GACb2qC,EAAA,KAAK6nE,GAAUtH,GACfvgE,EAAA,KAAK4xE,GAAa,GAClB,KAAK,UAAS,CAChB,CACA,MAAO,CACL,KAAM,CACJ,EAAGlyE,EAAA,KAAKiyE,GAChB,CACA,CACE,CACA,WAAY,CACV,MAAMI,EAAStL,GAAQ,SAAS/mE,EAAA,KAAKqgE,IAAM,CAAC,CAAC,EACvCiS,EAASvL,GAAQ,SAAS/mE,EAAA,KAAKqgE,IAAM,CAAC,CAAC,EAC7C,GAAIrgE,EAAA,KAAKmoE,IAAQ,SAAW,EAC1B,OAAA7nE,EAAA,KAAK2xE,GAAe,GAAGjyE,EAAA,KAAKiyE,GAAY,MAAMI,CAAM,IAAIC,CAAM,MACvDtyE,EAAA,KAAKiyE,IAEd,GAAIjyE,EAAA,KAAKmoE,IAAQ,QAAU,EAAG,CAC5B,MAAMjxG,EAAI8oC,EAAA,KAAKiyE,IAAa,YAAY,GAAG,EAC3C3xE,EAAA,KAAK2xE,GAAe,GAAGjyE,EAAA,KAAKiyE,IAAa,MAAM,EAAG/6G,CAAC,CAAC,MAAMm7G,CAAM,IAAIC,CAAM,IAC1EhyE,EAAA,KAAK4xE,GAAa,EACpB,CACA,GAAIlyE,EAAA,KAAKmoE,IAAQ,SAAW,EAAG,CAC7B,MAAMoK,EAAUxL,GAAQ,SAAS/mE,EAAA,KAAKqgE,IAAM,EAAE,CAAC,EACzCmS,EAAUzL,GAAQ,SAAS/mE,EAAA,KAAKqgE,IAAM,EAAE,CAAC,EAC/C,OAAA//D,EAAA,KAAK2xE,GAAe,GAAGjyE,EAAA,KAAKiyE,GAAY,MAAMM,CAAO,IAAIC,CAAO,IAChElyE,EAAA,KAAK4xE,GAAa,IACXlyE,EAAA,KAAKiyE,GACd,CACA,MAAM58G,EAAS,CAAA,EACX2qC,EAAA,KAAKkyE,MAAe,IACtB78G,EAAO,KAAK,KAAKg9G,CAAM,IAAIC,CAAM,EAAE,EACnChyE,EAAA,KAAK4xE,GAAa,IAEpB,QAASh7G,EAAI8oC,EAAA,KAAKkyE,IAAYrqG,EAAKm4B,EAAA,KAAKqgE,IAAM,OAAQnpG,EAAI2Q,EAAI3Q,GAAK,EAAG,CACpE,KAAM,CAACu7G,EAAKC,EAAKC,EAAKC,EAAK/5G,EAAGf,CAAC,EAAIkoC,EAAA,KAAKqgE,IAAM,MAAMnpG,EAAGA,EAAI,CAAC,EAAE,IAAI6vG,GAAQ,QAAQ,EAClF1xG,EAAO,KAAK,IAAIo9G,CAAG,IAAIC,CAAG,IAAIC,CAAG,IAAIC,CAAG,IAAI/5G,CAAC,IAAIf,CAAC,EAAE,CACtD,CACA,OAAAwoC,EAAA,KAAK2xE,GAALjyE,EAAA,KAAKiyE,IAAgB58G,EAAO,KAAK,GAAG,GACpCirC,EAAA,KAAK4xE,GAAalyE,EAAA,KAAKqgE,IAAM,QACtBrgE,EAAA,KAAKiyE,GACd,CACA,YAAY56D,EAAaC,EAAczqB,EAAOw6E,EAAa,CACzD,MAAM6B,EAAOlpE,EAAA,KAAKgyE,IAAO,GAAG,EAAE,EAC9B,OAAA9I,EAAK,KAAO,IAAI,aAAaA,EAAK,IAAI,EACtCA,EAAK,OAAS,IAAI,aAAaA,EAAK,MAAM,EAC1ClpE,EAAA,KAAKmsE,IAAU,MAAMnsE,EAAA,KAAKgyE,IAAQ36D,EAAaC,EAAczqB,EAAOmT,EAAA,KAAK8kD,IAAW9kD,EAAA,KAAKkoE,IAAYb,CAAW,EAChH/mE,EAAA,KAAKsnE,GAAQ,MACbtnE,EAAA,KAAK+/D,GAAQ,MACb//D,EAAA,KAAK0xE,GAAS,MACd1xE,EAAA,KAAK2xE,GAAe,MACbjyE,EAAA,KAAKmsE,GACd,CACA,IAAI,sBAAuB,CACzB,MAAO,CACL,KAAM,CACJ,QAAS,iBACjB,EACM,UAAW,CACT,KAAM,EACd,EACM,KAAM,CAAC,EAAG,EAAG,EAAG,CAAC,CACvB,CACE,CACF,CArMEvE,GAAA,YACAvH,GAAA,YACA2R,GAAA,YACAltB,GAAA,YACAojB,GAAA,YACAC,GAAA,YACA8J,GAAA,YACAC,GAAA,YACA/F,GAAA,YACAuE,GAAA,YACAC,GAAA,YAXFoB,GAAA,YA+BEK,GAAe,SAACv5G,EAAGf,EAAG,CACpB,OAAOivG,GAAQ,gBAAgBluG,EAAGf,EAAGkoC,EAAA,KAAK0wE,IAAc1wE,EAAA,KAAK2wE,IAAe3wE,EAAA,KAAK8kD,GAAS,CAC5F,EAsKF,MAAMqtB,WAAuBpL,EAAQ,CAArC,kCAAA5sE,EAAA,KAAA04E,IACE14E,EAAA,KAAA6sE,IACA7sE,EAAA,KAAA24E,GAAmB,GACnB34E,EAAA,KAAAstE,IACAttE,EAAA,KAAA63E,IACA73E,EAAA,KAAAu2E,IACAv2E,EAAA,KAAAw2E,IACAx2E,EAAA,KAAA44E,IACA54E,EAAA,KAAA2qD,IACA3qD,EAAA,KAAA+tE,IACA,MAAMxhF,EAAO2wB,EAAaC,EAAc6I,EAAavkB,EAAUulE,EAAWkG,EAAa,CACrF/mE,EAAA,KAAKowE,GAAer5D,GACpB/W,EAAA,KAAKqwE,GAAgBr5D,GACrBhX,EAAA,KAAKyyE,GAAe5yD,GACpB7f,EAAA,KAAKwkD,GAAYlpD,GACjB0E,EAAA,KAAK4nE,GAAa/G,GAClB7gE,EAAA,KAAKmnE,GAAeJ,GAAe,GACnC/mE,EAAA,KAAK0xE,GAAStrF,GACdkT,EAAA,KAAKi5E,GAAAG,IAAL,UACF,CACA,IAAI,WAAY,CACd,OAAOhzE,EAAA,KAAKkoE,GACd,CACA,eAAehrE,EAAS,CACtB,OAAA8C,EAAA,KAAKgyE,IAAO,KAAK90E,CAAO,EACjB,CACL,KAAM,CACJ,EAAG,KAAK,UAAS,CACzB,CACA,CACE,CACA,mBAAoB,CAClB,OAAA8C,EAAA,KAAKgyE,IAAO,IAAG,EACR,CACL,KAAM,CACJ,EAAG,KAAK,UAAS,CACzB,CACA,CACE,CACA,WAAY,CACV,MAAM38G,EAAS,CAAA,EACf,SAAW,CACT,KAAAM,CACN,IAASqqC,EAAA,KAAKgyE,IAAQ,CAEhB,GADA38G,EAAO,KAAK,IAAI0xG,GAAQ,SAASpxG,EAAK,CAAC,CAAC,CAAC,IAAIoxG,GAAQ,SAASpxG,EAAK,CAAC,CAAC,CAAC,EAAE,EACpEA,EAAK,SAAW,EAAG,CACrBN,EAAO,KAAK,GAAG,EACf,QACF,CACA,GAAIM,EAAK,SAAW,IAAM,MAAMA,EAAK,CAAC,CAAC,EAAG,CACxCN,EAAO,KAAK,IAAI0xG,GAAQ,SAASpxG,EAAK,EAAE,CAAC,CAAC,IAAIoxG,GAAQ,SAASpxG,EAAK,EAAE,CAAC,CAAC,EAAE,EAC1E,QACF,CACA,QAASuB,EAAI,EAAG2Q,EAAKlS,EAAK,OAAQuB,EAAI2Q,EAAI3Q,GAAK,EAAG,CAChD,KAAM,CAACu7G,EAAKC,EAAKC,EAAKC,EAAK/5G,EAAGf,CAAC,EAAInC,EAAK,SAASuB,EAAGA,EAAI,CAAC,EAAE,IAAI6vG,GAAQ,QAAQ,EAC/E1xG,EAAO,KAAK,IAAIo9G,CAAG,IAAIC,CAAG,IAAIC,CAAG,IAAIC,CAAG,IAAI/5G,CAAC,IAAIf,CAAC,EAAE,CACtD,CACF,CACA,OAAOzC,EAAO,KAAK,EAAE,CACvB,CACA,UAAU,CAAC6pD,EAAOC,EAAOnd,EAAWC,CAAU,EAAGiX,EAAc,CAC7D,MAAM+5D,EAAkB,CAAA,EAClBC,EAAmB,CAAA,EACnB,CAACr6G,EAAGf,EAAG0kC,EAAOC,CAAM,EAAI7C,EAAA,KAAKi5E,GAAAM,IAAL,WAC9B,IAAIh8D,EAAIC,EAAI6vD,EAAIC,EAAI5tE,EAAIC,EAAIC,EAAIC,EAAI25E,EACpC,OAAQpzE,EAAA,KAAK8kD,IAAS,CACpB,IAAK,GACHsuB,EAAYrM,GAAQ,SACpB5vD,EAAK+H,EACL9H,EAAK+H,EAAQld,EACbglE,EAAKjlE,EACLklE,EAAK,CAACjlE,EACN3I,EAAK4lB,EAAQrmD,EAAImpC,EACjBzI,EAAK4lB,GAAS,EAAIrnD,EAAI2kC,GAAUwF,EAChCzI,EAAK0lB,GAASrmD,EAAI2jC,GAASwF,EAC3BvI,EAAK0lB,GAAS,EAAIrnD,GAAKmqC,EACvB,MACF,IAAK,IACHmxE,EAAYrM,GAAQ,gBACpB5vD,EAAK+H,EACL9H,EAAK+H,EACL8nD,EAAKjlE,EACLklE,EAAKjlE,EACL3I,EAAK4lB,EAAQpnD,EAAIkqC,EACjBzI,EAAK4lB,EAAQtmD,EAAIopC,EACjBzI,EAAK0lB,GAASpnD,EAAI2kC,GAAUuF,EAC5BvI,EAAK0lB,GAAStmD,EAAI2jC,GAASyF,EAC3B,MACF,IAAK,KACHmxE,EAAYrM,GAAQ,SACpB5vD,EAAK+H,EAAQld,EACboV,EAAK+H,EACL8nD,EAAK,CAACjlE,EACNklE,EAAKjlE,EACL3I,EAAK4lB,GAAS,EAAIrmD,EAAI2jC,GAASwF,EAC/BzI,EAAK4lB,EAAQrnD,EAAImqC,EACjBzI,EAAK0lB,GAAS,EAAIrmD,GAAKmpC,EACvBvI,EAAK0lB,GAASrnD,EAAI2kC,GAAUwF,EAC5B,MACF,IAAK,KACHmxE,EAAYrM,GAAQ,gBACpB5vD,EAAK+H,EAAQld,EACboV,EAAK+H,EAAQld,EACbglE,EAAK,CAACjlE,EACNklE,EAAK,CAACjlE,EACN3I,EAAK4lB,GAAS,EAAIpnD,EAAI2kC,GAAUuF,EAChCzI,EAAK4lB,GAAS,EAAItmD,EAAI2jC,GAASyF,EAC/BzI,EAAK0lB,GAAS,EAAIpnD,GAAKkqC,EACvBvI,EAAK0lB,GAAS,EAAItmD,GAAKopC,EACvB,KACR,CACI,SAAW,CACT,KAAAtsC,EACA,OAAAkrG,CACN,IAAS7gE,EAAA,KAAKgyE,IACRiB,EAAgB,KAAKG,EAAUz9G,EAAMwhD,EAAIC,EAAI6vD,EAAIC,EAAIhuD,EAAe,IAAI,MAAMvjD,EAAK,MAAM,EAAI,IAAI,CAAC,EAClGu9G,EAAiB,KAAKE,EAAUvS,EAAQ1pD,EAAIC,EAAI6vD,EAAIC,EAAIhuD,EAAe,IAAI,MAAM2nD,EAAO,MAAM,EAAI,IAAI,CAAC,EAEzG,MAAO,CACL,MAAOoS,EACP,OAAQC,EACR,KAAM,CAAC55E,EAAIC,EAAIC,EAAIC,CAAE,CAC3B,CACE,CACA,OAAO,YAAYylB,EAAOC,EAAOnd,EAAWC,EAAYolE,EAAa,CACnE,MAAO,CACL,MAAA3gF,EACA,OAAAm6E,CACN,EACI,SAAAjlE,EACA,UAAAulE,CACJ,EAAK,CACD,MAAMkS,EAAW,CAAA,EACjB,IAAIl8D,EAAIC,EAAI6vD,EAAIC,EAAIkM,EACpB,OAAQx3E,EAAQ,CACd,IAAK,GACHw3E,EAAYrM,GAAQ,SACpB5vD,EAAK,CAAC+H,EAAQld,EACdoV,EAAK+H,EAAQld,EAAa,EAC1BglE,EAAK,EAAIjlE,EACTklE,EAAK,GAAKjlE,EACV,MACF,IAAK,IACHmxE,EAAYrM,GAAQ,gBACpB5vD,EAAK,CAACgI,EAAQld,EACdmV,EAAK,CAAC8H,EAAQld,EACdilE,EAAK,EAAIhlE,EACTilE,EAAK,EAAIllE,EACT,MACF,IAAK,KACHoxE,EAAYrM,GAAQ,SACpB5vD,EAAK+H,EAAQld,EAAY,EACzBoV,EAAK,CAAC+H,EAAQld,EACdglE,EAAK,GAAKjlE,EACVklE,EAAK,EAAIjlE,EACT,MACF,IAAK,KACHmxE,EAAYrM,GAAQ,gBACpB5vD,EAAKgI,EAAQld,EAAa,EAC1BmV,EAAK8H,EAAQld,EAAY,EACzBilE,EAAK,GAAKhlE,EACVilE,EAAK,GAAKllE,EACV,KACR,CACI,GAAI,CAACtb,EAAO,CACVA,EAAQ,CAAA,EACR,UAAW29B,KAASw8C,EAAQ,CAC1B,MAAMjpF,EAAMysC,EAAM,OAClB,GAAIzsC,IAAQ,EAAG,CACb8O,EAAM,KAAK,IAAI,aAAa,CAAC,IAAK,IAAK,IAAK,IAAK29B,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,CAAC,EACrE,QACF,CACA,GAAIzsC,IAAQ,EAAG,CACb8O,EAAM,KAAK,IAAI,aAAa,CAAC,IAAK,IAAK,IAAK,IAAK29B,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAG,IAAK,IAAK,IAAK,IAAKA,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAAC,CAAC,EAC7G,QACF,CACA,MAAM1uD,EAAO,IAAI,aAAa,GAAKiiB,EAAM,EAAE,EAC3C8O,EAAM,KAAK/wB,CAAI,EACf,GAAI,CAAC2jC,EAAIC,EAAIC,EAAIC,CAAE,EAAI4qB,EAAM,SAAS,EAAG,CAAC,EAC1C1uD,EAAK,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK2jC,EAAIC,CAAE,EAAG,CAAC,EACxC,QAASriC,EAAI,EAAGA,EAAI0gB,EAAK1gB,GAAK,EAAG,CAC/B,MAAM2B,EAAIwrD,EAAMntD,CAAC,EACXY,EAAIusD,EAAMntD,EAAI,CAAC,EACrBvB,EAAK,IAAIoxG,GAAQ,mBAAmBztE,EAAIC,EAAIC,EAAIC,EAAI5gC,EAAGf,CAAC,GAAIZ,EAAI,GAAK,CAAC,EACtE,CAACoiC,EAAIC,EAAIC,EAAIC,CAAE,EAAI,CAACD,EAAIC,EAAI5gC,EAAGf,CAAC,CAClC,CACF,CACF,CACA,QAASZ,EAAI,EAAG2Q,EAAK6e,EAAM,OAAQxvB,EAAI2Q,EAAI3Q,IACzCm8G,EAAS,KAAK,CACZ,KAAMD,EAAU1sF,EAAMxvB,CAAC,EAAE,IAAI2B,GAAKA,GAAK,GAAG,EAAGs+C,EAAIC,EAAI6vD,EAAIC,CAAE,EAC3D,OAAQkM,EAAUvS,EAAO3pG,CAAC,EAAE,IAAI2B,GAAKA,GAAK,GAAG,EAAGs+C,EAAIC,EAAI6vD,EAAIC,CAAE,CACtE,CAAO,EAEH,MAAM4E,EAAW,IAAI,KAAK,UAAU,YACpC,OAAAA,EAAS,MAAMuH,EAAUrxE,EAAWC,EAAY,EAAGrG,EAAUulE,EAAWkG,CAAW,EAC5EyE,CACT,CAsCA,IAAI,KAAM,CACR,OAAO9rE,EAAA,KAAKgnE,GACd,CACA,eAAe1tF,EAAM/jB,EAAO,CAC1B,OAAI+jB,IAAS,eACJsgB,EAAA,KAAKi5E,GAAAnF,IAAL,UAAsBn4G,GAExB,IACT,CAaA,uBAAuB,CAACinC,EAAOC,CAAM,EAAG5P,EAAO,CAC7C,KAAM,CAACymF,EAAYC,CAAU,EAAI35E,EAAA,KAAKi5E,GAAAW,IAAL,WACjClzE,EAAA,KAAKowE,GAAel0E,GACpB8D,EAAA,KAAKqwE,GAAgBl0E,GACrB6D,EAAA,KAAKyyE,GAAelmF,GACpB,KAAM,CAAC4mF,EAAYC,CAAU,EAAI95E,EAAA,KAAKi5E,GAAAW,IAAL,WAC3BG,EAAcF,EAAaH,EAC3BM,EAAcF,EAAaH,EAC3BxqD,EAAO/oB,EAAA,KAAKgnE,IAClB,OAAAj+C,EAAK,CAAC,GAAK4qD,EACX5qD,EAAK,CAAC,GAAK6qD,EACX7qD,EAAK,CAAC,GAAK,EAAI4qD,EACf5qD,EAAK,CAAC,GAAK,EAAI6qD,EACR7qD,CACT,CACA,eAAentB,EAAU,CACvB,OAAA0E,EAAA,KAAKwyE,GAAmBl3E,GACjB,CACL,KAAM,CACJ,UAAW,KAAK,iBACxB,CACA,CACE,CACA,IAAI,SAAU,CACZ,OAAOoE,EAAA,KAAKgnE,IAAM,IAAID,GAAQ,QAAQ,EAAE,KAAK,GAAG,CAClD,CACA,IAAI,mBAAoB,CACtB,KAAM,CAACluG,EAAGf,CAAC,EAAIkoC,EAAA,KAAKgnE,IACpB,MAAO,CACL,KAAM,CACJ,QAAS,KAAK,OACtB,EACM,KAAM,CACJ,mBAAoB,GAAGD,GAAQ,SAASluG,CAAC,CAAC,IAAIkuG,GAAQ,SAASjvG,CAAC,CAAC,EACzE,CACA,CACE,CACA,IAAI,mBAAoB,CACtB,KAAM,GAAI0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKgnE,IAChC,IAAI3vG,EAAI,EACNU,EAAI,EACJT,EAAI,EACJE,EAAI,EACJR,EAAI,EACJW,EAAI,EACN,OAAQqoC,EAAA,KAAK8yE,IAAgB,CAC3B,IAAK,IACH/6G,EAAI0kC,EAASD,EACbllC,EAAI,CAACklC,EAAQC,EACbzlC,EAAIwlC,EACJ,MACF,IAAK,KACHnlC,EAAI,GACJG,EAAI,GACJR,EAAIwlC,EACJ7kC,EAAI8kC,EACJ,MACF,IAAK,KACH1kC,EAAI,CAAC0kC,EAASD,EACdllC,EAAIklC,EAAQC,EACZ9kC,EAAI8kC,EACJ,MACF,QACE,MAAO,EACf,CACI,MAAO,UAAUplC,CAAC,IAAIU,CAAC,IAAIT,CAAC,IAAIE,CAAC,IAAIuvG,GAAQ,SAAS/vG,CAAC,CAAC,IAAI+vG,GAAQ,SAASpvG,CAAC,CAAC,GACjF,CACA,6BAA6B,CAACm/C,EAAMC,EAAM0M,EAAUC,CAAS,EAAG,CAC9D,KAAM,CAACmwD,EAASC,CAAO,EAAIl6E,EAAA,KAAKi5E,GAAAW,IAAL,WACrB,CAAC36G,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKgnE,IACnC,GAAI,KAAK,IAAIxqE,EAAQq3E,CAAO,GAAK9M,GAAQ,WAAa,KAAK,IAAItqE,EAASq3E,CAAO,GAAK/M,GAAQ,UAAW,CACrG,MAAM5vD,EAAKL,EAAO2M,EAAW,GAAK5qD,EAAI2jC,EAAQ,GACxC4a,EAAKL,EAAO2M,EAAY,GAAK5rD,EAAI2kC,EAAS,GAChD,MAAO,CACL,KAAM,CACJ,mBAAoB,GAAGsqE,GAAQ,SAASjwD,CAAI,CAAC,IAAIiwD,GAAQ,SAAShwD,CAAI,CAAC,GACvE,UAAW,GAAG,KAAK,iBAAiB,cAAcI,CAAE,IAAIC,CAAE,GACpE,CACA,CACI,CACA,MAAM28D,GAAOtwD,EAAW,EAAIowD,IAAYr3E,EAAQ,EAAIq3E,GAC9CG,GAAOtwD,EAAY,EAAIowD,IAAYr3E,EAAS,EAAIq3E,GAChDG,EAAMz3E,EAAQinB,EACdywD,EAAMz3E,EAASinB,EACrB,MAAO,CACL,KAAM,CACJ,mBAAoB,GAAGqjD,GAAQ,SAASluG,CAAC,CAAC,IAAIkuG,GAAQ,SAASjvG,CAAC,CAAC,GACjE,UAAW,GAAG,KAAK,iBAAiB,UAAUm8G,CAAG,IAAIC,CAAG,eAAoBnN,GAAQ,SAAS8M,CAAO,CAAC,IAAI9M,GAAQ,SAAS+M,CAAO,CAAC,WAAWC,CAAG,IAAIC,CAAG,eAAoBjN,GAAQ,SAAS,CAAC8M,CAAO,CAAC,IAAI9M,GAAQ,SAAS,CAAC+M,CAAO,CAAC,GAC3O,CACA,CACE,CACA,4BAA4B,CAACh9D,EAAMC,EAAM0M,EAAUC,CAAS,EAAG,CAC7D,KAAM,CAACmwD,EAASC,CAAO,EAAIl6E,EAAA,KAAKi5E,GAAAW,IAAL,WACrBzqD,EAAO/oB,EAAA,KAAKgnE,IACZ,CAACnuG,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIssB,EAK9B,GAJAA,EAAK,CAAC,EAAIjS,EACViS,EAAK,CAAC,EAAIhS,EACVgS,EAAK,CAAC,EAAItF,EACVsF,EAAK,CAAC,EAAIrF,EACN,KAAK,IAAIlnB,EAAQq3E,CAAO,GAAK9M,GAAQ,WAAa,KAAK,IAAItqE,EAASq3E,CAAO,GAAK/M,GAAQ,UAAW,CACrG,MAAM5vD,EAAKL,EAAO2M,EAAW,GAAK5qD,EAAI2jC,EAAQ,GACxC4a,EAAKL,EAAO2M,EAAY,GAAK5rD,EAAI2kC,EAAS,GAChD,SAAW,CACT,KAAA9mC,EACA,OAAAkrG,CACR,IAAW7gE,EAAA,KAAKgyE,IACRjL,GAAQ,WAAWpxG,EAAMwhD,EAAIC,EAAIzhD,CAAI,EACrCoxG,GAAQ,WAAWlG,EAAQ1pD,EAAIC,EAAIypD,CAAM,EAE3C,MAAO,CACL,KAAM,CACJ,QAAS,KAAK,OACxB,EACQ,KAAM,CACJ,mBAAoB,GAAGkG,GAAQ,SAASjwD,CAAI,CAAC,IAAIiwD,GAAQ,SAAShwD,CAAI,CAAC,GACvE,UAAW,KAAK,mBAAqB,KACrC,EAAG,KAAK,UAAS,CAC3B,CACA,CACI,CACA,MAAMg9D,GAAOtwD,EAAW,EAAIowD,IAAYr3E,EAAQ,EAAIq3E,GAC9CG,GAAOtwD,EAAY,EAAIowD,IAAYr3E,EAAS,EAAIq3E,GAChD38D,EAAK,CAAC48D,GAAOl7G,EAAIg7G,GAAW/8D,EAAO+8D,EACnCz8D,EAAK,CAAC48D,GAAOl8G,EAAIg8G,GAAW/8D,EAAO+8D,EACzC,GAAIC,IAAQ,GAAKC,IAAQ,GAAK78D,IAAO,GAAKC,IAAO,EAC/C,SAAW,CACT,KAAAzhD,EACA,OAAAkrG,CACR,IAAW7gE,EAAA,KAAKgyE,IACRjL,GAAQ,SAASpxG,EAAMwhD,EAAIC,EAAI28D,EAAKC,EAAKr+G,CAAI,EAC7CoxG,GAAQ,SAASlG,EAAQ1pD,EAAIC,EAAI28D,EAAKC,EAAKnT,CAAM,EAGrD,MAAO,CACL,KAAM,CACJ,QAAS,KAAK,OACtB,EACM,KAAM,CACJ,mBAAoB,GAAGkG,GAAQ,SAASjwD,CAAI,CAAC,IAAIiwD,GAAQ,SAAShwD,CAAI,CAAC,GACvE,UAAW,KAAK,mBAAqB,KACrC,EAAG,KAAK,UAAS,CACzB,CACA,CACE,CACA,+BAA+B,CAACD,EAAMC,CAAI,EAAGyD,EAAkB,CAC7D,KAAM,CAAC25D,EAAgBC,CAAe,EAAI55D,EACpCuO,EAAO/oB,EAAA,KAAKgnE,IACZ7vD,EAAKL,EAAOiS,EAAK,CAAC,EAClB3R,EAAKL,EAAOgS,EAAK,CAAC,EACxB,GAAI/oB,EAAA,KAAK0wE,MAAiByD,GAAkBn0E,EAAA,KAAK2wE,MAAkByD,EACjE,SAAW,CACT,KAAAz+G,EACA,OAAAkrG,CACR,IAAW7gE,EAAA,KAAKgyE,IACRjL,GAAQ,WAAWpxG,EAAMwhD,EAAIC,EAAIzhD,CAAI,EACrCoxG,GAAQ,WAAWlG,EAAQ1pD,EAAIC,EAAIypD,CAAM,MAEtC,CACL,MAAMoG,EAAKjnE,EAAA,KAAK0wE,IAAeyD,EACzBjN,EAAKlnE,EAAA,KAAK2wE,IAAgByD,EAChC9zE,EAAA,KAAKowE,GAAeyD,GACpB7zE,EAAA,KAAKqwE,GAAgByD,GACrB,SAAW,CACT,KAAAz+G,EACA,OAAAkrG,CACR,IAAW7gE,EAAA,KAAKgyE,IACRjL,GAAQ,SAASpxG,EAAMwhD,EAAIC,EAAI6vD,EAAIC,EAAIvxG,CAAI,EAC3CoxG,GAAQ,SAASlG,EAAQ1pD,EAAIC,EAAI6vD,EAAIC,EAAIrG,CAAM,EAEjD93C,EAAK,CAAC,GAAKk+C,EACXl+C,EAAK,CAAC,GAAKm+C,CACb,CACA,OAAAn+C,EAAK,CAAC,EAAIjS,EACViS,EAAK,CAAC,EAAIhS,EACH,CACL,KAAM,CACJ,QAAS,KAAK,OACtB,EACM,KAAM,CACJ,EAAG,KAAK,UAAS,EACjB,mBAAoB,GAAGgwD,GAAQ,SAASjwD,CAAI,CAAC,IAAIiwD,GAAQ,SAAShwD,CAAI,CAAC,EAC/E,CACA,CACE,CACA,IAAI,sBAAuB,CACzB,MAAMgS,EAAO/oB,EAAA,KAAKgnE,IAClB,MAAO,CACL,KAAM,CACJ,QAAS,KAAK,OACtB,EACM,UAAW,CACT,KAAM,EACd,EACM,KAAM,CACJ,EAAG,KAAK,UAAS,EACjB,mBAAoB,GAAGD,GAAQ,SAASh+C,EAAK,CAAC,CAAC,CAAC,IAAIg+C,GAAQ,SAASh+C,EAAK,CAAC,CAAC,CAAC,GAC7E,UAAW,KAAK,mBAAqB,IAC7C,EACM,KAAAA,CACN,CACE,CACF,CAxcEi+C,GAAA,YACA8L,GAAA,YACArL,GAAA,YACAuK,GAAA,YACAtB,GAAA,YACAC,GAAA,YACAoC,GAAA,YACAjuB,GAAA,YACAojB,GAAA,YATF2K,GAAA,YAsMEW,GAAoB,SAACrS,EAAYnhE,EAAA,KAAKkoE,IAAY,CAChD,MAAMmM,EAASr0E,EAAA,KAAKynE,IAAetG,EAAY,EAAInhE,EAAA,KAAK+yE,IACxD,OAAO/yE,EAAA,KAAK8kD,IAAY,MAAQ,EAAI,CAACuvB,EAASr0E,EAAA,KAAK0wE,IAAc2D,EAASr0E,EAAA,KAAK2wE,GAAa,EAAI,CAAC0D,EAASr0E,EAAA,KAAK2wE,IAAe0D,EAASr0E,EAAA,KAAK0wE,GAAY,CAC1J,EACAyC,GAAoB,UAAG,CACrB,KAAM,CAACt6G,EAAGf,EAAG0kC,EAAOC,CAAM,EAAIuD,EAAA,KAAKgnE,IAC7B,CAAC6M,EAASC,CAAO,EAAIl6E,EAAA,KAAKi5E,GAAAW,IAAL,UAA0B,GACrD,MAAO,CAAC36G,EAAIg7G,EAAS/7G,EAAIg8G,EAASt3E,EAAQ,EAAIq3E,EAASp3E,EAAS,EAAIq3E,CAAO,CAC7E,EACAd,GAAY,UAAG,CACb,MAAMjqD,EAAOzoB,EAAA,KAAK0mE,GAAQr0E,GAAc,MAAK,GAC7C,SAAW,CACT,KAAAh9B,CACN,IAASqqC,EAAA,KAAKgyE,IAAQ,CAChB,GAAIr8G,EAAK,QAAU,GAAI,CACrB,QAASuB,EAAI,EAAG2Q,EAAKlS,EAAK,OAAQuB,EAAI2Q,EAAI3Q,GAAK,EAC7Cw/B,GAAK,iBAAiB/gC,EAAKuB,CAAC,EAAGvB,EAAKuB,EAAI,CAAC,EAAG6xD,CAAI,EAElD,QACF,CACA,IAAInhB,EAAQjyC,EAAK,CAAC,EAChBgyC,EAAQhyC,EAAK,CAAC,EAChB,QAASuB,EAAI,EAAG2Q,EAAKlS,EAAK,OAAQuB,EAAI2Q,EAAI3Q,GAAK,EAAG,CAChD,KAAM,CAACu7G,EAAKC,EAAKC,EAAKC,EAAK/5G,EAAGf,CAAC,EAAInC,EAAK,SAASuB,EAAGA,EAAI,CAAC,EACzDw/B,GAAK,kBAAkBkR,EAAOD,EAAO8qE,EAAKC,EAAKC,EAAKC,EAAK/5G,EAAGf,EAAGixD,CAAI,EACnEnhB,EAAQ/uC,EACR8uC,EAAQ7vC,CACV,CACF,CACA,KAAM,CAAC+7G,EAASC,CAAO,EAAIl6E,EAAA,KAAKi5E,GAAAW,IAAL,WAC3BzqD,EAAK,CAAC,EAAIztB,GAAUytB,EAAK,CAAC,EAAI8qD,EAAS,EAAG,CAAC,EAC3C9qD,EAAK,CAAC,EAAIztB,GAAUytB,EAAK,CAAC,EAAI+qD,EAAS,EAAG,CAAC,EAC3C/qD,EAAK,CAAC,EAAIztB,GAAUytB,EAAK,CAAC,EAAI8qD,EAAS,EAAG,CAAC,EAC3C9qD,EAAK,CAAC,EAAIztB,GAAUytB,EAAK,CAAC,EAAI+qD,EAAS,EAAG,CAAC,EAC3C/qD,EAAK,CAAC,GAAKA,EAAK,CAAC,EACjBA,EAAK,CAAC,GAAKA,EAAK,CAAC,CACnB,EAUA2kD,GAAgB,SAACvM,EAAW,CAC1B,KAAM,CAACmS,EAAYC,CAAU,EAAI35E,EAAA,KAAKi5E,GAAAW,IAAL,WACjClzE,EAAA,KAAK4nE,GAAa/G,GAClB,KAAM,CAACsS,EAAYC,CAAU,EAAI95E,EAAA,KAAKi5E,GAAAW,IAAL,WAC3B,CAACG,EAAaC,CAAW,EAAI,CAACH,EAAaH,EAAYI,EAAaH,CAAU,EAC9ExqD,EAAO/oB,EAAA,KAAKgnE,IAClB,OAAAj+C,EAAK,CAAC,GAAK4qD,EACX5qD,EAAK,CAAC,GAAK6qD,EACX7qD,EAAK,CAAC,GAAK,EAAI4qD,EACf5qD,EAAK,CAAC,GAAK,EAAI6qD,EACR7qD,CACT,EAmNF,MAAMurD,WAA0BjF,EAAe,CAC7C,YAAYkF,EAAkB,CAC5B,MAAK,EACL,KAAK,gBAAkBA,EACvB,MAAM,iBAAiB,CACrB,KAAM,OACN,OAAQ7uD,GAAiB,kBACzB,iBAAkB,EAClB,eAAgB,EAChB,iBAAkB,QAClB,kBAAmB,QACnB,oBAAqB,EAC3B,CAAK,CACH,CACA,kBAAkBpsC,EAAM/jB,EAAO,CACzB+jB,IAAS,iBACX/jB,MAAU,KAAK,cAAc,GAC7BA,GAAS,KAAK,gBAAgB,WAEhC,MAAM,kBAAkB+jB,EAAM/jB,CAAK,CACrC,CACA,OAAQ,CACN,MAAM4yD,EAAQ,IAAImsD,GAAkB,KAAK,eAAe,EACxD,OAAAnsD,EAAM,UAAU,IAAI,EACbA,CACT,CACF,CACA,MAAMqsD,GAAN,MAAMA,WAAkB3C,EAAc,CAIpC,YAAY/2F,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,KAAM,WACZ,CAAK,EARLqf,EAAA,KAAAs6E,IASI,KAAK,qBAAuB,GAC5B,KAAK,cAAgB,yBACvB,CACA,OAAO,WAAW57D,EAAMzR,EAAW,CACjCse,GAAiB,WAAW7M,EAAMzR,CAAS,EAC3C,KAAK,uBAAyB,IAAIktE,GAAkBltE,EAAU,cAAc,CAC9E,CACA,OAAO,yBAAyBnxC,EAAS,CACvC,MAAMkyD,EAAQ,KAAK,uBAAuB,MAAK,EAC/C,OAAAA,EAAM,iBAAiBlyD,CAAO,EACvBkyD,CACT,CACA,WAAW,yBAA0B,CACnC,MAAO,EACT,CACA,WAAW,UAAW,CACpB,OAAOlzB,GAAO,KAAM,WAAY,IAAI,IAAI,CAAC,CAAC9B,GAA2B,cAAe,cAAc,EAAG,CAACA,GAA2B,UAAW,QAAQ,EAAG,CAACA,GAA2B,YAAa,gBAAgB,CAAC,CAAC,CAAC,CACrN,CACA,OAAO,qBAAqBt6B,EAAGf,EAAGu/C,EAAaC,EAAc1b,EAAU,CACrE,OAAO,IAAIk2E,GAAgBj5G,EAAGf,EAAGu/C,EAAaC,EAAc1b,EAAU,KAAK,uBAAuB,cAAc,CAAC,CACnH,CACA,OAAO,gBAAgBsjB,EAAOC,EAAOnd,EAAWC,EAAYolE,EAAazxG,EAAM,CAC7E,OAAOu8G,GAAe,YAAYjzD,EAAOC,EAAOnd,EAAWC,EAAYolE,EAAazxG,CAAI,CAC1F,CACA,aAAa,YAAYA,EAAM0oC,EAAQ8I,EAAW,CAChD,IAAIq1C,EAAc,KAClB,GAAI7mF,aAAgB8+F,GAAsB,CACxC,KAAM,CACJ,KAAM,CACJ,SAAAmB,EACA,KAAAr+D,EACA,SAAAoE,EACA,GAAAngB,EACA,MAAAwlB,EACA,QAAAkC,EACA,YAAa,CACX,SAAUg+D,CACtB,EACU,SAAAnrD,EACA,SAAAyE,EACA,YAAAxE,EACA,aAAAkL,EACA,iBAAAC,CACV,EACQ,OAAQ,CACN,KAAM,CACJ,WAAA7O,CACZ,CACA,CACA,EAAU38C,EACJ6mF,EAAc7mF,EAAO,CACnB,eAAgBs9B,GAAqB,IACrC,MAAO,MAAM,KAAK+N,CAAK,EACvB,UAAAkgE,EACA,QAAAh+D,EACA,MAAO,CACL,OAAQ0yD,CAClB,EACQ,MAAO,KACP,UAAWtjD,EAAa,EACxB,KAAM/a,EAAK,MAAM,CAAC,EAClB,SAAAoE,EACA,oBAAqBngB,EACrB,GAAAA,EACA,QAAS,GACT,SAAAu6B,EACA,SAAAyE,EACA,SAASxE,GAAA,YAAAA,EAAa,MAAO,KAC7B,aAAAkL,EACA,iBAAAC,CACR,CACI,CACA,MAAMjc,EAAS,MAAM,MAAM,YAAYvvC,EAAM0oC,EAAQ8I,CAAS,EAC9D,OAAAjC,EAAO,aAAes3C,EAClB7mF,EAAK,SACPuvC,EAAO,eAAevvC,CAAI,EAErBuvC,CACT,CACA,IAAI,gBAAiB,CACnB,YAAK,eAAL,KAAK,aAAiB,IAAI2tD,GAAiB,IAAI,GACxC,CAAC,CAAC,cAAe,KAAK,YAAY,CAAC,CAC5C,CACA,IAAI,WAAY,CACd,OAAO3/D,GAA2B,SACpC,CACA,IAAI,qBAAsB,CACxB,OAAOA,GAA2B,qBACpC,CACA,IAAI,aAAc,CAChB,OAAOA,GAA2B,WACpC,CACA,aAAa5b,EAAMhiB,EAAO,CACxB,GAAIgiB,IAAS4b,GAA2B,sBAAuB,CAC7D,KAAK,uBAAuB59B,EAAM,MAAOA,EAAM,OAAO,EACtD,MACF,CACA,MAAM,aAAagiB,EAAMhiB,CAAK,CAChC,CACA,OAAO,oBAAoBgiB,EAAMhiB,EAAO,CACtC,GAAIgiB,IAAS4b,GAA2B,sBAAuB,CAC7D,MAAM,oBAAoBA,GAA2B,UAAW59B,EAAM,KAAK,EAC3E,MAAM,oBAAoB49B,GAA2B,YAAa59B,EAAM,OAAO,EAC/E,MACF,CACA,MAAM,oBAAoBgiB,EAAMhiB,CAAK,CACvC,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,gBAAgB,MAC9B,CACA,IAAI,SAAU,CACZ,OAAO,KAAK,gBAAgB,gBAAgB,CAC9C,CACA,iBAAkB,CAChB,GAAI,CAAC,KAAK,OACR,OAEF,MAAM,gBAAe,EACrB,KAAM,CACJ,QAAAm/G,EACA,gBAAA1E,EACA,OAAA1xE,CACN,EAAQ,KACJ0xE,EAAgB,kBAAkB,cAAc,EAChD1xE,EAAO,UAAU,iBAAiBo2E,EAAS1E,EAAgB,gBAAe,CAAE,CAC9E,CACA,OAAO,4BAA6B,CAClC,MAAM1xE,EAAS,KAAK,eACfA,IAGL,MAAM,2BAA0B,EAChC,KAAK,uBAAuB,kBAAkB,cAAc,EAC5DA,EAAO,UAAU,iBAAiB,KAAK,eAAgB,KAAK,uBAAuB,iBAAiB,EACtG,CACA,qBAAqB,CACnB,MAAA2C,EACA,UAAAkgE,EACA,QAAAh+D,CACJ,EAAK,CACD,KAAK,gBAAkBqxE,GAAU,yBAAyB,CACxD,OAAQ99E,GAAK,aAAa,GAAGuK,CAAK,EAClC,eAAgBkgE,EAChB,iBAAkBh+D,CACxB,CAAK,CACH,CACA,UAAU+V,EAAe,GAAO,CAC9B,GAAI,KAAK,UACP,OAAO,KAET,GAAI,KAAK,QACP,OAAO,KAAK,iBAAgB,EAE9B,KAAM,CACJ,MAAAxyB,EACA,OAAAm6E,CACN,EAAQ,KAAK,cAAc3nD,CAAY,EAC7B,CACJ,gBAAiB,CACf,OAAAy7D,EACA,iBAAkBxxE,EAClB,eAAgBg+D,CACxB,CACA,EAAQ,KACEnjF,EAAa,OAAO,OAAO,MAAM,UAAUk7B,CAAY,EAAG,CAC9D,MAAOwM,GAAiB,cAAc,QAAQivD,CAAM,EACpD,QAAAxxE,EACA,UAAAg+D,EACA,MAAO,CACL,MAAAz6E,EACA,OAAAm6E,CACR,CACA,CAAK,EAED,OADA,KAAK,WAAW7iF,CAAU,EACtBk7B,GACFl7B,EAAW,OAAS,GACbA,GAEL,KAAK,qBAAuB,CAAC4b,EAAA,KAAK66E,GAAAnO,IAAL,UAAwBtoF,GAChD,MAETA,EAAW,GAAK,KAAK,oBACdA,EACT,CAUA,wBAAwB+3B,EAAY,CAClC,GAAI,KAAK,QACP,OAAAA,EAAW,KAAI,EACR,KAET,KAAM,CACJ,OAAA8qD,EACA,KAAArpE,CACN,EAAQ,KAAK,cAAc,EAAK,EAC5B,OAAAue,EAAW,aAAa,CACtB,KAAAve,EACA,UAAW,KAAK,gBAAgB,cAAc,EAC9C,OAAAqpE,EACA,MAAO,KAAK,OAClB,CAAK,EACM,IACT,CACF,EA3NA4T,GAAA,YAiMEnO,GAAkB,SAACtoF,EAAY,CAC7B,KAAM,CACJ,MAAAijB,EACA,UAAAkgE,EACA,QAAAh+D,EACA,UAAA+O,CACN,EAAQ,KAAK,aACT,OAAO,KAAK,kBAAoB,KAAK,eAAiB,KAAK,iBAAmBl0B,EAAW,MAAM,KAAK,CAAC1mB,EAAGJ,IAAMI,IAAM2pC,EAAM/pC,CAAC,CAAC,GAAK8mB,EAAW,YAAcmjF,GAAanjF,EAAW,UAAYmlB,GAAWnlB,EAAW,YAAck0B,CACpO,EAxMA/3B,GADIq6F,GACG,QAAQ,OACfr6F,GAFIq6F,GAEG,cAActhF,GAAqB,KAC1C/Y,GAHIq6F,GAGG,yBAAyB,MAHlC,IAAMI,GAANJ,GA+NA,MAAMK,WAA2B1C,EAAe,CAC9C,WAAY,CACV,IAAIz3F,EAAO,MAAM,UAAS,EAC1B,OAAKA,EAAK,SAAS,GAAG,IACpBA,GAAQ,KAEHA,CACT,CACF,CAOA,MAAMo6F,GAAqB,EACrBC,GAA2B,EACjC,MAAMC,EAAmB,CAiVvB,OAAO,wBAAwBr+G,EAAM,CACnC,WAAA+vF,EACA,UAAAuuB,EACA,WAAAC,CACJ,EAAKlzE,EAAWC,EAAYrG,EAAUyrE,EAAa,CAC/C,IAAIz9D,EAAS,IAAI,gBAAgB,EAAG,CAAC,EACjClmB,EAAMkmB,EAAO,WAAW,KAAM,CAChC,MAAO,EACb,CAAK,EACD,MAAM4mC,EAAW,IACX1lB,EAAOpnC,EAAI,KAAO,GAAGuxF,CAAS,IAAIC,CAAU,IAAI1kC,CAAQ,MAAMkW,CAAU,GACxE,CACJ,sBAAAyuB,EACA,uBAAAC,EACA,wBAAAC,EACA,yBAAAC,EACA,sBAAAC,EACA,uBAAAC,EACA,MAAAh5E,CACN,EAAQ9Y,EAAI,YAAY/sB,CAAI,EAClB8+G,EAAQ,IACR5xC,EAAc,KAAK,KAAK,KAAK,IAAI,KAAK,IAAIsxC,CAAqB,EAAI,KAAK,IAAIC,CAAsB,GAAK,EAAG54E,CAAK,EAAIi5E,CAAK,EACxH3xC,EAAe,KAAK,KAAK,KAAK,IAAI,KAAK,IAAIuxC,CAAuB,EAAI,KAAK,IAAIC,CAAwB,GAAK9kC,EAAU,KAAK,IAAI+kC,CAAqB,EAAI,KAAK,IAAIC,CAAsB,GAAKhlC,CAAQ,EAAIilC,CAAK,EACnN7rE,EAAS,IAAI,gBAAgBi6B,EAAaC,CAAY,EACtDpgD,EAAMkmB,EAAO,WAAW,KAAM,CAC5B,MAAO,GACP,mBAAoB,EAC1B,CAAK,EACDlmB,EAAI,KAAOonC,EACXpnC,EAAI,OAAS,eACbA,EAAI,UAAY,QAChBA,EAAI,SAAS,EAAG,EAAGmgD,EAAaC,CAAY,EAC5CpgD,EAAI,UAAY,QAChBA,EAAI,SAAS/sB,EAAMktE,GAAe4xC,EAAQ,GAAK,EAAG3xC,GAAgB,EAAI2xC,GAAS,CAAC,EAChF,MAAMC,EAAW97E,EAAA,KAAK+7E,GAAAC,IAAL,UAAclyF,EAAI,aAAa,EAAG,EAAGmgD,EAAaC,CAAY,EAAE,MAC3E+xC,EAAYj8E,EAAA,KAAK+7E,GAAAG,IAAL,UAAmBJ,GAC/BK,EAAYn8E,EAAA,KAAK+7E,GAAAK,IAAL,UAAqBH,GACjCI,EAAcr8E,EAAA,KAAK+7E,GAAAO,IAAL,UAAmBR,EAAU7xC,EAAaC,EAAciyC,GAC5E,OAAO,KAAK,kBAAkB,CAC5B,MAAO,CACL,OAAQE,EACR,MAAOpyC,EACP,OAAQC,CAChB,EACM,UAAA9hC,EACA,WAAAC,EACA,SAAArG,EACA,YAAAyrE,EACA,WAAY,GACZ,YAAa,EACnB,CAAK,CACH,CACA,OAAO,QAAQv9D,EAAQ9H,EAAWC,EAAYrG,EAAUyrE,EAAa,CACnE,KAAM,CAACqO,EAAUl5E,EAAOC,CAAM,EAAI7C,EAAA,KAAK+7E,GAAAQ,IAAL,UAAoBrsE,GAChD,CAACz0C,EAAQwgH,CAAS,EAAIj8E,EAAA,KAAK+7E,GAAAS,IAAL,UAAsBV,EAAUl5E,EAAOC,EAAQ,KAAK,MAAMD,EAAOC,CAAM,EAAIuD,EAAA,KAAKq2E,IAAY,aAAcr2E,EAAA,KAAKq2E,IAAY,OAAQr2E,EAAA,KAAKq2E,IAAY,YAC1KN,EAAYn8E,EAAA,KAAK+7E,GAAAK,IAAL,UAAqBH,GACjCI,EAAcr8E,EAAA,KAAK+7E,GAAAO,IAAL,UAAmB7gH,EAAQmnC,EAAOC,EAAQs5E,GAC9D,OAAO,KAAK,kBAAkB,CAC5B,MAAO,CACL,OAAQE,EACR,MAAAz5E,EACA,OAAAC,CACR,EACM,UAAAuF,EACA,WAAAC,EACA,SAAArG,EACA,YAAAyrE,EACA,WAAY,GACZ,YAAa,EACnB,CAAK,CACH,CACA,OAAO,kBAAkB,CACvB,MAAA3gF,EACA,UAAAsb,EACA,WAAAC,EACA,SAAArG,EACA,YAAAyrE,EACA,WAAAiP,EACA,YAAAC,CACJ,EAAK,CACG36E,EAAW,MAAQ,IACrB,CAACoG,EAAWC,CAAU,EAAI,CAACA,EAAYD,CAAS,GAElD,KAAM,CACJ,OAAAw0E,EACA,MAAAh6E,EACA,OAAAC,CACN,EAAQ/V,EACEy6E,EAAYz6E,EAAM,WAAa,EAC/B+vF,EAAiB,CAAA,EACjBhvB,EAAQ,KAAK,IAAIzlD,EAAYxF,EAAOyF,EAAaxF,CAAM,EACvDi6E,EAASjvB,EAAQzlD,EACjB20E,EAASlvB,EAAQxlD,EACjB20E,EAAY,CAAA,EAClB,SAAW,CACT,OAAA/V,CACN,IAAS2V,EAAQ,CACX,MAAMK,EAAgBP,EAAa18E,EAAA,KAAK+7E,GAAAmB,IAAL,UAAqBjW,GAAUA,EAClE,GAAI,CAACgW,EACH,SAEFD,EAAU,KAAKC,CAAa,EAC5B,MAAMj/F,EAAMi/F,EAAc,OACpBE,EAAY,IAAI,aAAan/F,CAAG,EAChCjiB,EAAO,IAAI,aAAa,GAAKiiB,IAAQ,EAAI,EAAIA,EAAM,EAAE,EAK3D,GAJA6+F,EAAe,KAAK,CAClB,KAAA9gH,EACA,OAAQohH,CAChB,CAAO,EACGn/F,IAAQ,EAAG,CACbm/F,EAAU,CAAC,EAAIF,EAAc,CAAC,EAAIH,EAClCK,EAAU,CAAC,EAAIF,EAAc,CAAC,EAAIF,EAClChhH,EAAK,IAAI,CAAC,IAAK,IAAK,IAAK,IAAKohH,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,EAAG,CAAC,EAC5D,QACF,CACA,GAAI,CAACz9E,EAAIC,EAAIC,EAAIC,CAAE,EAAIo9E,EACvBv9E,GAAMo9E,EACNn9E,GAAMo9E,EACNn9E,GAAMk9E,EACNj9E,GAAMk9E,EACNI,EAAU,IAAI,CAACz9E,EAAIC,EAAIC,EAAIC,CAAE,EAAG,CAAC,EACjC9jC,EAAK,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK2jC,EAAIC,CAAE,EAAG,CAAC,EACxC,QAASriC,EAAI,EAAGA,EAAI0gB,EAAK1gB,GAAK,EAAG,CAC/B,MAAM2B,EAAIk+G,EAAU7/G,CAAC,EAAI2/G,EAAc3/G,CAAC,EAAIw/G,EACtC5+G,EAAIi/G,EAAU7/G,EAAI,CAAC,EAAI2/G,EAAc3/G,EAAI,CAAC,EAAIy/G,EACpDhhH,EAAK,IAAIoxG,GAAQ,mBAAmBztE,EAAIC,EAAIC,EAAIC,EAAI5gC,EAAGf,CAAC,GAAIZ,EAAI,GAAK,CAAC,EACtE,CAACoiC,EAAIC,EAAIC,EAAIC,CAAE,EAAI,CAACD,EAAIC,EAAI5gC,EAAGf,CAAC,CAClC,CACF,CACA,GAAI2+G,EAAe,SAAW,EAC5B,OAAO,KAET,MAAMzN,EAAUuN,EAAc,IAAI1B,GAAuB,IAAI1C,GAC7D,OAAAnJ,EAAQ,MAAMyN,EAAgBz0E,EAAWC,EAAY,EAAGrG,EAAU26E,EAAc,EAAIpV,EAAWkG,CAAW,EACnG,CACL,QAAA2B,EACA,UAAA4N,EACA,YAAAL,EACA,UAAApV,EACA,MAAA3kE,EACA,OAAAC,CACN,CACE,CACA,aAAa,kBAAkB,CAC7B,SAAAqvE,EACA,YAAAyK,EACA,UAAApV,EACA,MAAA3kE,EACA,OAAAC,CACJ,EAAK,CACD,IAAIu6E,EAAU,IACVC,EAAU,KACVC,EAAiB,EACrB,UAAWrW,KAAUiL,EAAU,CAC7BoL,GAAkBrW,EAAO,OACzB,QAAS3pG,EAAI,EAAG2Q,EAAKg5F,EAAO,OAAQ3pG,EAAI2Q,EAAI3Q,IAAK,CAC/C,MAAMigH,EAAKtW,EAAO3pG,CAAC,EAAI2pG,EAAO3pG,EAAI,CAAC,EACnC8/G,EAAU,KAAK,IAAIA,EAASG,CAAE,EAC9BF,EAAU,KAAK,IAAIA,EAASE,CAAE,CAChC,CACF,CACA,IAAIC,EACAJ,GAAW,MAAQC,GAAW,IAChCG,EAAa,UACJJ,GAAW,QAAUC,GAAW,MACzCG,EAAa,WAEbA,EAAa,WAEf,MAAMx/F,EAAMk0F,EAAS,OACfuL,EAAevC,GAAqBC,GAA2Bn9F,EAC/D0R,EAAS,IAAI,YAAY+tF,CAAY,EAC3C,IAAI7nD,EAAS,EACblmC,EAAOkmC,GAAQ,EAAI6nD,EAAe,YAAY,mBAAqBH,EAAiB,EAAIt/F,GAAOw/F,EAAW,kBAC1G9tF,EAAOkmC,GAAQ,EAAI,EACnBlmC,EAAOkmC,GAAQ,EAAIhzB,EACnBlT,EAAOkmC,GAAQ,EAAI/yB,EACnBnT,EAAOkmC,GAAQ,EAAI+mD,EAAc,EAAI,EACrCjtF,EAAOkmC,GAAQ,EAAI,KAAK,IAAI,EAAG,KAAK,MAAM2xC,GAAa,CAAC,CAAC,EACzD73E,EAAOkmC,GAAQ,EAAI53C,EACnB0R,EAAOkmC,GAAQ,EAAI4nD,EAAW,kBAC9B,UAAWvW,KAAUiL,EACnBxiF,EAAOkmC,GAAQ,EAAIqxC,EAAO,OAAS,EACnCv3E,EAAOkmC,GAAQ,EAAIqxC,EAAO,CAAC,EAC3Bv3E,EAAOkmC,GAAQ,EAAIqxC,EAAO,CAAC,EAE7B,MAAM/xF,EAAK,IAAI,kBAAkB,aAAa,EACxCwoG,EAASxoG,EAAG,SAAS,UAAS,EACpC,MAAMwoG,EAAO,MACbA,EAAO,MAAMhuF,CAAM,EACnB,MAAMiuF,EAAaH,EAAW,UAAU,YACxC,UAAWvW,KAAUiL,EAAU,CAC7B,MAAM0L,EAAQ,IAAID,EAAW1W,EAAO,OAAS,CAAC,EAC9C,QAAS3pG,EAAI,EAAG2Q,EAAKg5F,EAAO,OAAQ3pG,EAAI2Q,EAAI3Q,IAC1CsgH,EAAMtgH,EAAI,CAAC,EAAI2pG,EAAO3pG,CAAC,EAAI2pG,EAAO3pG,EAAI,CAAC,EAEzCogH,EAAO,MAAME,CAAK,CACpB,CACA,OAAAF,EAAO,MAAK,GACE,MAAM,IAAI,SAASxoG,EAAG,QAAQ,EAAE,MAAK,GACtC,SAAQ,CACvB,CACA,aAAa,oBAAoB2oG,EAAe,CAC9C,GAAI,CACF,MAAMzhF,EAAQ,WAAW,WAAWyhF,CAAa,EAC3C,CACJ,SAAAC,EACA,SAAAC,CACR,EAAU,IAAI,oBAAoB,aAAa,EACnCL,EAASK,EAAS,UAAS,EACjC,MAAML,EAAO,MACbA,EAAO,MAAMthF,CAAK,EAAE,KAAK,SAAY,CACnC,MAAMshF,EAAO,MACb,MAAMA,EAAO,MAAK,CACpB,CAAC,EAAE,MAAM,IAAM,CAAC,CAAC,EACjB,IAAI1hH,EAAO,KACP45D,EAAS,EACb,gBAAiB96D,KAASgjH,EACxB9hH,MAAS,IAAI,WAAW,IAAI,YAAYlB,EAAM,OAAQ,EAAG,CAAC,EAAE,CAAC,CAAC,GAC9DkB,EAAK,IAAIlB,EAAO86D,CAAM,EACtBA,GAAU96D,EAAM,OAElB,MAAM40B,EAAS,IAAI,YAAY1zB,EAAK,OAAQ,EAAGA,EAAK,QAAU,CAAC,EACzD8lB,EAAU4N,EAAO,CAAC,EACxB,GAAI5N,IAAY,EACd,MAAM,IAAI,MAAM,oBAAoBA,CAAO,EAAE,EAE/C,MAAM8gB,EAAQlT,EAAO,CAAC,EAChBmT,EAASnT,EAAO,CAAC,EACjBitF,EAAcjtF,EAAO,CAAC,IAAM,EAC5B63E,EAAY73E,EAAO,CAAC,EACpBsuF,EAAmBtuF,EAAO,CAAC,EAC3B8tF,EAAa9tF,EAAO,CAAC,EACrBwiF,EAAW,CAAA,EACX+L,GAAe/C,GAAqBC,GAA2B6C,GAAoB,YAAY,kBACrG,IAAIJ,EACJ,OAAQJ,EAAU,CAChB,KAAK,UAAU,kBACbI,EAAQ,IAAI,UAAU5hH,EAAK,OAAQiiH,CAAW,EAC9C,MACF,KAAK,WAAW,kBACdL,EAAQ,IAAI,WAAW5hH,EAAK,OAAQiiH,CAAW,EAC/C,MACF,KAAK,WAAW,kBACdL,EAAQ,IAAI,WAAW5hH,EAAK,OAAQiiH,CAAW,EAC/C,KACV,CACMroD,EAAS,EACT,QAASt4D,EAAI,EAAGA,EAAI0gH,EAAkB1gH,IAAK,CACzC,MAAM0gB,EAAM0R,EAAOyrF,GAA2B79G,EAAI49G,EAAkB,EAC9DjU,EAAS,IAAI,aAAajpF,EAAM,CAAC,EACvCk0F,EAAS,KAAKjL,CAAM,EACpB,QAASloG,EAAI,EAAGA,EAAIo8G,GAA2B,EAAGp8G,IAChDkoG,EAAOloG,CAAC,EAAI2wB,EAAOyrF,GAA2B79G,EAAI49G,GAAqBn8G,EAAI,CAAC,EAE9E,QAASA,EAAI,EAAGA,EAAIif,EAAKjf,IACvBkoG,EAAOloG,EAAI,CAAC,EAAIkoG,EAAOloG,CAAC,EAAI6+G,EAAMhoD,GAAQ,CAE9C,CACA,MAAO,CACL,YAAA+mD,EACA,UAAApV,EACA,SAAA2K,EACA,MAAAtvE,EACA,OAAAC,CACR,CACI,OAAS,EAAG,CACV,OAAAvI,GAAK,wBAAwB,CAAC,EAAE,EACzB,IACT,CACF,CACF,CA/lBSmiF,GAAA,YADTV,GAAA,YAOSmC,GAAkB,SAACC,EAAIC,EAAI,EAAGr/G,EAAG,CAGtC,OAFA,GAAKo/G,EACLp/G,GAAKq/G,EACD,IAAM,EACDr/G,EAAI,EAAI,EAAI,EAEjB,IAAM,EACDA,EAAI,EAEN,EAAIA,CACb,EACOs/G,GAAA,YACAC,GAAiB,SAACp0F,EAAK0Y,EAAOu7E,EAAIC,EAAI9gH,EAAGyB,EAAG62D,EAAQ,CACzD,MAAM/zC,EAAKme,EAAA,KAAK+7E,GAAAmC,IAAL,UAAwBC,EAAIC,EAAI9gH,EAAGyB,GAC9C,QAASR,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMggH,GAAM,CAAChgH,EAAIsjB,EAAK+zC,EAAS,IAAM,EAC/B4oD,EAASp4E,EAAA,KAAKi4E,IAAmB,EAAIE,CAAE,EACvCE,EAASr4E,EAAA,KAAKi4E,IAAmB,EAAIE,EAAK,CAAC,EACjD,GAAIr0F,GAAKi0F,EAAKK,GAAU57E,GAASw7E,EAAKK,EAAO,IAAM,EACjD,OAAOF,CAEX,CACA,MAAO,EACT,EACOG,GAAwB,SAACx0F,EAAK0Y,EAAOu7E,EAAIC,EAAI9gH,EAAGyB,EAAG62D,EAAQ,CAChE,MAAM/zC,EAAKme,EAAA,KAAK+7E,GAAAmC,IAAL,UAAwBC,EAAIC,EAAI9gH,EAAGyB,GAC9C,QAASR,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMggH,GAAMhgH,EAAIsjB,EAAK+zC,EAAS,IAAM,EAC9B4oD,EAASp4E,EAAA,KAAKi4E,IAAmB,EAAIE,CAAE,EACvCE,EAASr4E,EAAA,KAAKi4E,IAAmB,EAAIE,EAAK,CAAC,EACjD,GAAIr0F,GAAKi0F,EAAKK,GAAU57E,GAASw7E,EAAKK,EAAO,IAAM,EACjD,OAAOF,CAEX,CACA,MAAO,EACT,EACOjC,GAAa,SAACpyF,EAAK0Y,EAAOC,EAAQs5E,EAAW,CAClD,MAAM98G,EAAI6qB,EAAI,OACRkxB,EAAQ,IAAI,WAAW/7C,CAAC,EAC9B,QAAS/B,EAAI,EAAGA,EAAI+B,EAAG/B,IACrB89C,EAAM99C,CAAC,EAAI4sB,EAAI5sB,CAAC,GAAK6+G,EAAY,EAAI,EAEvC,QAAS7+G,EAAI,EAAGA,EAAIulC,EAAS,EAAGvlC,IAC9B89C,EAAM99C,EAAIslC,CAAK,EAAIwY,EAAM99C,EAAIslC,EAAQA,EAAQ,CAAC,EAAI,EAEpD,QAAStlC,EAAI,EAAGA,EAAIslC,EAAOtlC,IACzB89C,EAAM99C,CAAC,EAAI89C,EAAMxY,EAAQC,EAAS,EAAIvlC,CAAC,EAAI,EAE7C,IAAIqhH,EAAM,EACNC,EACJ,MAAMC,EAAW,CAAA,EACjB,QAASvhH,EAAI,EAAGA,EAAIulC,EAAS,EAAGvlC,IAAK,CACnCshH,EAAO,EACP,QAAS7/G,EAAI,EAAGA,EAAI6jC,EAAQ,EAAG7jC,IAAK,CAClC,MAAM+/G,EAAKxhH,EAAIslC,EAAQ7jC,EACjBggH,EAAM3jE,EAAM0jE,CAAE,EACpB,GAAIC,IAAQ,EACV,SAEF,IAAIC,EAAK1hH,EACL2hH,EAAKlgH,EACT,GAAIggH,IAAQ,GAAK3jE,EAAM0jE,EAAK,CAAC,IAAM,EACjCH,GAAO,EACPM,GAAM,UACGF,GAAO,GAAK3jE,EAAM0jE,EAAK,CAAC,IAAM,EACvCH,GAAO,EACPM,GAAM,EACFF,EAAM,IACRH,EAAOG,OAEJ,CACDA,IAAQ,IACVH,EAAO,KAAK,IAAIG,CAAG,GAErB,QACF,CACA,MAAM9X,EAAS,CAACloG,EAAGzB,CAAC,EACd4hH,EAASD,IAAOlgH,EAAI,EACpBogH,EAAU,CACd,OAAAD,EACA,OAAAjY,EACA,GAAI0X,EACJ,OAAQ,CAClB,EACQE,EAAS,KAAKM,CAAO,EACrB,IAAIC,EACJ,UAAW1hH,KAAKmhH,EACd,GAAInhH,EAAE,KAAOkhH,EAAM,CACjBQ,EAAW1hH,EACX,KACF,CAEG0hH,EAEMA,EAAS,OAClBD,EAAQ,OAASD,EAASE,EAAS,OAASR,EAE5CO,EAAQ,OAASD,EAASN,EAAOQ,EAAS,OAJ1CD,EAAQ,OAASD,EAASN,EAAO,EAMnC,MAAMrgH,EAAIyhC,EAAA,KAAK+7E,GAAAuC,IAAL,UAAuBljE,EAAOxY,EAAOtlC,EAAGyB,EAAGigH,EAAIC,EAAI,GAC7D,GAAI1gH,IAAM,GAAI,CACZ68C,EAAM0jE,CAAE,EAAI,CAACH,EACTvjE,EAAM0jE,CAAE,IAAM,IAChBF,EAAO,KAAK,IAAIxjE,EAAM0jE,CAAE,CAAC,GAE3B,QACF,CACA,IAAIN,EAASp4E,EAAA,KAAKi4E,IAAmB,EAAI9/G,CAAC,EACtCkgH,EAASr4E,EAAA,KAAKi4E,IAAmB,EAAI9/G,EAAI,CAAC,EAC9C,MAAM8gH,EAAK/hH,EAAIkhH,EACTc,EAAKvgH,EAAI0/G,EACfO,EAAKK,EACLJ,EAAKK,EACL,IAAIC,EAAKjiH,EACLkiH,EAAKzgH,EACT,OAAa,CACX,MAAMw/G,EAAKv+E,EAAA,KAAK+7E,GAAA2C,IAAL,UAA8BtjE,EAAOxY,EAAO28E,EAAIC,EAAIR,EAAIC,EAAI,GACvET,EAASp4E,EAAA,KAAKi4E,IAAmB,EAAIE,CAAE,EACvCE,EAASr4E,EAAA,KAAKi4E,IAAmB,EAAIE,EAAK,CAAC,EAC3C,MAAMkB,EAAKF,EAAKf,EACVkB,EAAKF,EAAKf,EAChBxX,EAAO,KAAKyY,EAAID,CAAE,EAClB,MAAME,EAAMJ,EAAK38E,EAAQ48E,EAMzB,GALIpkE,EAAMukE,EAAM,CAAC,IAAM,EACrBvkE,EAAMukE,CAAG,EAAI,CAAChB,EACLvjE,EAAMukE,CAAG,IAAM,IACxBvkE,EAAMukE,CAAG,EAAIhB,GAEXc,IAAOniH,GAAKoiH,IAAO3gH,GAAKwgH,IAAOF,GAAMG,IAAOF,EAAI,CAC9ClkE,EAAM0jE,CAAE,IAAM,IAChBF,EAAO,KAAK,IAAIxjE,EAAM0jE,CAAE,CAAC,GAE3B,KACF,MACEE,EAAKO,EACLN,EAAKO,EACLD,EAAKE,EACLD,EAAKE,CAET,CACF,CACF,CACA,OAAOb,CACT,EACOe,GAAqB,SAAC3Y,EAAQr8D,EAAOC,EAAKhN,EAAQ,CACvD,GAAIgN,EAAMD,GAAS,EAAG,CACpB,QAASttC,EAAIstC,EAAOttC,EAAIutC,EAAM,EAAGvtC,GAAK,EACpCugC,EAAO,KAAKopE,EAAO3pG,CAAC,EAAG2pG,EAAO3pG,EAAI,CAAC,CAAC,EAEtC,MACF,CACA,MAAMuiH,EAAK5Y,EAAOr8D,CAAK,EACjBk1E,EAAK7Y,EAAOr8D,EAAQ,CAAC,EACrBm1E,EAAM9Y,EAAOp8D,EAAM,CAAC,EAAIg1E,EACxBG,EAAM/Y,EAAOp8D,EAAM,CAAC,EAAIi1E,EACxBt6C,EAAO,KAAK,MAAMu6C,EAAKC,CAAG,EAC1BC,EAAOF,EAAMv6C,EACb06C,EAAOF,EAAMx6C,EACbntD,EAAK4nG,EAAOH,EAAKI,EAAOL,EACxBnlH,EAAIslH,EAAMD,EACVI,EAAO,EAAI36C,EACX46C,EAAM,KAAK,KAAK1lH,CAAC,EACjB2lH,EAAS,KAAK,IAAID,CAAG,EACrBE,EAAS,KAAK,IAAIF,CAAG,EACrBG,EAAOJ,GAAQ,KAAK,IAAIE,CAAM,EAAI,KAAK,IAAIC,CAAM,GACjDE,EAAOL,GAAQ,EAAII,EAAOA,GAAQ,GAClCE,EAAa,KAAK,IAAI,KAAK,KAAK,KAAK,IAAIH,EAASD,CAAM,EAAIG,CAAI,EAAG,KAAK,KAAK,KAAK,IAAIF,EAASD,CAAM,EAAIG,CAAI,CAAC,EACpH,IAAIE,EAAO,EACPlhG,EAAQorB,EACZ,QAASttC,EAAIstC,EAAQ,EAAGttC,EAAIutC,EAAM,EAAGvtC,GAAK,EAAG,CAC3C,MAAMM,EAAI,KAAK,IAAIya,EAAK4nG,EAAOhZ,EAAO3pG,EAAI,CAAC,EAAI4iH,EAAOjZ,EAAO3pG,CAAC,CAAC,EAC3DM,EAAI8iH,IACNlhG,EAAQliB,EACRojH,EAAO9iH,EAEX,CACI8iH,GAAQl7C,EAAOi7C,IAAe,GAChCzgF,EAAA,KAAK+7E,GAAA6D,IAAL,UAA2B3Y,EAAQr8D,EAAOprB,EAAQ,EAAGqe,GACrDmC,EAAA,KAAK+7E,GAAA6D,IAAL,UAA2B3Y,EAAQznF,EAAOqrB,EAAKhN,IAE/CA,EAAO,KAAKgiF,EAAIC,CAAE,CAEtB,EACO5C,GAAe,SAACjW,EAAQ,CAC7B,MAAMppE,EAAS,CAAA,EACT7f,EAAMipF,EAAO,OACnB,OAAAjnE,EAAA,KAAK+7E,GAAA6D,IAAL,UAA2B3Y,EAAQ,EAAGjpF,EAAK6f,GAC3CA,EAAO,KAAKopE,EAAOjpF,EAAM,CAAC,EAAGipF,EAAOjpF,EAAM,CAAC,CAAC,EACrC6f,EAAO,QAAU,EAAI,KAAOA,CACrC,EACO2+E,GAAgB,SAACtyF,EAAK0Y,EAAOC,EAAQ89E,EAAQC,EAAQC,EAAY,CACtE,MAAMC,EAAS,IAAI,aAAaD,GAAc,CAAC,EACzCE,EAAU,GAAKJ,GAAU,EACzBK,EAAWH,GAAc,EAC/B,QAASvjH,EAAI,EAAGA,EAAIujH,EAAYvjH,IAAK,CACnC,MAAM2B,GAAK3B,EAAI0jH,IAAa,EAC5B,QAASjiH,EAAI,EAAGA,EAAI8hH,EAAY9hH,IAC9B+hH,EAAOxjH,EAAIujH,EAAa9hH,CAAC,EAAI,KAAK,KAAKE,GAAKF,EAAIiiH,IAAa,GAAKD,CAAO,CAE7E,CACA,MAAME,EAAc,IAAI,aAAa,GAAG,EAClCC,EAAU,GAAKN,GAAU,EAC/B,QAAStjH,EAAI,EAAGA,EAAI,IAAKA,IACvB2jH,EAAY3jH,CAAC,EAAI,KAAK,IAAIA,GAAK,EAAI4jH,CAAO,EAE5C,MAAM7hH,EAAI6qB,EAAI,OACRi3F,EAAM,IAAI,WAAW9hH,CAAC,EACtB48G,EAAY,IAAI,YAAY,GAAG,EACrC,QAAS3+G,EAAI,EAAGA,EAAIulC,EAAQvlC,IAC1B,QAASyB,EAAI,EAAGA,EAAI6jC,EAAO7jC,IAAK,CAC9B,MAAM+/G,EAAKxhH,EAAIslC,EAAQ7jC,EACjBqiH,EAASl3F,EAAI40F,CAAE,EACrB,IAAI70F,EAAM,EACNo3F,EAAO,EACX,QAAS9iH,EAAI,EAAGA,EAAIsiH,EAAYtiH,IAAK,CACnC,MAAML,EAAIZ,EAAIiB,EAAIyiH,EAClB,GAAI,EAAA9iH,EAAI,GAAKA,GAAK2kC,GAGlB,QAASroC,EAAI,EAAGA,EAAIqmH,EAAYrmH,IAAK,CACnC,MAAMyE,EAAIF,EAAIvE,EAAIwmH,EAClB,GAAI/hH,EAAI,GAAKA,GAAK2jC,EAChB,SAEF,MAAM0+E,EAAYp3F,EAAIhsB,EAAI0kC,EAAQ3jC,CAAC,EAC7BZ,EAAIyiH,EAAOviH,EAAIsiH,EAAarmH,CAAC,EAAIymH,EAAY,KAAK,IAAIK,EAAYF,CAAM,CAAC,EAC/En3F,GAAOq3F,EAAYjjH,EACnBgjH,GAAQhjH,CACV,CACF,CACA,MAAM0gH,EAAMoC,EAAIrC,CAAE,EAAI,KAAK,MAAM70F,EAAMo3F,CAAI,EAC3CpF,EAAU8C,CAAG,GACf,CAEF,MAAO,CAACoC,EAAKlF,CAAS,CACxB,EACOC,GAAa,SAAChyF,EAAK,CACxB,MAAM+xF,EAAY,IAAI,YAAY,GAAG,EACrC,UAAWh+G,KAAKisB,EACd+xF,EAAUh+G,CAAC,IAEb,OAAOg+G,CACT,EACOD,GAAQ,SAAC9xF,EAAK,CACnB,MAAM7qB,EAAI6qB,EAAI,OACRi3F,EAAM,IAAI,kBAAkB9hH,GAAK,CAAC,EACxC,IAAIuiC,EAAM,KACND,EAAM,IACV,QAASrkC,EAAI,EAAG2Q,EAAKkzG,EAAI,OAAQ7jH,EAAI2Q,EAAI3Q,IAAK,CAC5C,MAAMyhH,EAAMoC,EAAI7jH,CAAC,EAAI4sB,EAAI5sB,GAAK,CAAC,EAC/BskC,EAAM,KAAK,IAAIA,EAAKm9E,CAAG,EACvBp9E,EAAM,KAAK,IAAIA,EAAKo9E,CAAG,CACzB,CACA,MAAMlxB,EAAQ,KAAOjsD,EAAMD,GAC3B,QAASrkC,EAAI,EAAG2Q,EAAKkzG,EAAI,OAAQ7jH,EAAI2Q,EAAI3Q,IACvC6jH,EAAI7jH,CAAC,GAAK6jH,EAAI7jH,CAAC,EAAIqkC,GAAOksD,EAE5B,OAAOszB,CACT,EACO/E,GAAe,SAACH,EAAW,CAChC,IAAI3+G,EACAkB,EAAI,KACJY,EAAI,KACR,MAAMuiC,EAAMs6E,EAAU,UAAUj+G,GAAKA,IAAM,CAAC,EAC5C,IAAIk/B,EAAMyE,EACN4/E,EAAO5/E,EACX,IAAKrkC,EAAIqkC,EAAKrkC,EAAI,IAAKA,IAAK,CAC1B,MAAMU,EAAIi+G,EAAU3+G,CAAC,EACjBU,EAAIQ,IACFlB,EAAI4/B,EAAM99B,IACZA,EAAI9B,EAAI4/B,EACRqkF,EAAOjkH,EAAI,GAEbkB,EAAIR,EACJk/B,EAAM5/B,EAEV,CACA,IAAKA,EAAIikH,EAAO,EAAGjkH,GAAK,GAClB,EAAA2+G,EAAU3+G,CAAC,EAAI2+G,EAAU3+G,EAAI,CAAC,GADTA,IACzB,CAIF,OAAOA,CACT,EACOi/G,GAAc,SAACrsE,EAAQ,CAC5B,MAAMsxE,EAAiBtxE,EACjB,CACJ,MAAAtN,EACA,OAAAC,CACN,EAAQqN,EACE,CACJ,OAAAtH,CACN,EAAQxC,EAAA,KAAKq2E,IACT,IAAI5yD,EAAWjnB,EACXknB,EAAYjnB,EAChB,GAAID,EAAQgG,GAAU/F,EAAS+F,EAAQ,CACrC,IAAI64E,EAAY7+E,EACZ8+E,EAAa7+E,EACbytC,EAAQ,KAAK,KAAK,KAAK,IAAI1tC,EAAOC,CAAM,EAAI+F,CAAM,EACtD,MAAM+4E,EAAS,KAAK,MAAMrxC,CAAK,EAC/BA,EAAQA,IAAUqxC,EAASA,EAAS,EAAIA,EACxC,QAASrkH,EAAI,EAAGA,EAAIgzE,EAAOhzE,IAAK,CAC9BusD,EAAW,KAAK,KAAK43D,EAAY,CAAC,EAClC33D,EAAY,KAAK,KAAK43D,EAAa,CAAC,EACpC,MAAMzxE,EAAY,IAAI,gBAAgB4Z,EAAUC,CAAS,EAC7C7Z,EAAU,WAAW,IAAI,EACjC,UAAUC,EAAQ,EAAG,EAAGuxE,EAAWC,EAAY,EAAG,EAAG73D,EAAUC,CAAS,EAC5E23D,EAAY53D,EACZ63D,EAAa53D,EACT5Z,IAAWsxE,GACbtxE,EAAO,MAAK,EAEdA,EAASD,EAAU,sBAAqB,CAC1C,CACA,MAAM49C,EAAQ,KAAK,IAAIjlD,EAASihB,EAAUjhB,EAASkhB,CAAS,EAC5DD,EAAW,KAAK,MAAMA,EAAWgkC,CAAK,EACtC/jC,EAAY,KAAK,MAAMA,EAAY+jC,CAAK,CAC1C,CAEA,MAAM/jE,EADY,IAAI,gBAAgB+/B,EAAUC,CAAS,EACnC,WAAW,KAAM,CACrC,mBAAoB,EAC1B,CAAK,EACDhgC,EAAI,UAAY,QAChBA,EAAI,SAAS,EAAG,EAAG+/B,EAAUC,CAAS,EACtChgC,EAAI,OAAS,eACbA,EAAI,UAAUomB,EAAQ,EAAG,EAAGA,EAAO,MAAOA,EAAO,OAAQ,EAAG,EAAG2Z,EAAUC,CAAS,EAClF,MAAM83D,EAAY93F,EAAI,aAAa,EAAG,EAAG+/B,EAAUC,CAAS,EAAE,KAE9D,MAAO,CADU9pB,EAAA,KAAK+7E,GAAAC,IAAL,UAAc4F,GACb/3D,EAAUC,CAAS,CACvC,EAhVFvpB,EAAM66E,GAANW,IACEx7E,EADI66E,GACGqB,GAAc,CACnB,OAAQ,IACR,aAAc,IACd,OAAQ,GACR,WAAY,EAChB,GAYEl8E,EAlBI66E,GAkBGiD,GAAqB,IAAI,WAAW,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,CAAC,CAAC,GAwlBnG,MAAMwD,WAAyBpM,EAAe,CAC5C,aAAc,CACZ,MAAK,EACL,MAAM,iBAAiB,CACrB,KAAM3pD,GAAiB,kBACvB,eAAgB,CACtB,CAAK,CACH,CACA,OAAQ,CACN,MAAMyC,EAAQ,IAAIszD,GAClB,OAAAtzD,EAAM,UAAU,IAAI,EACbA,CACT,CACF,CACA,MAAMuzD,WAA8BpH,EAAkB,CACpD,YAAYC,EAAkB,CAC5B,MAAMA,CAAgB,EACtB,MAAM,iBAAiB,CACrB,OAAQ7uD,GAAiB,kBACzB,eAAgB,CACtB,CAAK,CACH,CACA,OAAQ,CACN,MAAMyC,EAAQ,IAAIuzD,GAAsB,KAAK,eAAe,EAC5D,OAAAvzD,EAAM,UAAU,IAAI,EACbA,CACT,CACF,CACA,MAAMwzD,GAAN,MAAMA,WAAwB9J,EAAc,CAQ1C,YAAY/2F,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,gBAAiB,GACjB,KAAM,iBACZ,CAAK,EAZHqf,EAAA,KAAAyhF,GAAe,IACfzhF,EAAA,KAAA0hF,GAAe,MACf1hF,EAAA,KAAA2hF,GAAiB,MACjB3hF,EAAA,KAAA4hF,GAAiB,MAUf,KAAK,qBAAuB,GAC5Bz7E,EAAA,KAAKw7E,GAAiBhhG,EAAO,eAAiB,MAC9CwlB,EAAA,KAAKu7E,GAAe,MACpB,KAAK,cAAgB,gCACvB,CACA,OAAO,WAAWhjE,EAAMzR,EAAW,CACjCse,GAAiB,WAAW7M,EAAMzR,CAAS,EAC3C,KAAK,uBAAyB,IAAIq0E,GAClC,KAAK,8BAAgC,IAAIC,GAAsBt0E,EAAU,cAAc,CACzF,CACA,OAAO,yBAAyBnxC,EAAS,CACvC,MAAMkyD,EAAQ,KAAK,uBAAuB,MAAK,EAC/C,OAAAA,EAAM,iBAAiBlyD,CAAO,EACvBkyD,CACT,CACA,WAAW,yBAA0B,CACnC,MAAO,EACT,CACA,WAAW,UAAW,CACpB,OAAOlzB,GAAO,KAAM,WAAY,IAAI,GAAK,CAC3C,CACA,WAAW,UAAW,CACpB,MAAO,EACT,CACA,IAAI,oBAAqB,CACvB,MAAO,CACL,KAAM,YACN,eAAgB,CAAC,CAAC+K,EAAA,KAAK67E,GAC7B,CACE,CACA,OAAO,0BAA0BjmH,EAAM,CACrC,MAAMomH,EAAsBpmH,EAAK,IAAI,gBAAgB,EACrD,MAAO,CACL,WAAYomH,EAAoB,IAAI,EAAI,GAAK,EAC7C,aAAcA,EAAoB,IAAI,EAAK,GAAK,CACtD,CACE,CACA,IAAI,aAAc,CAChB,MAAO,EACT,CACA,iBAAkB,CACZ,KAAK,UAAY,MAGrB,MAAM,gBAAe,CACvB,CACA,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,IAAIr8D,EAAOC,EACX,KAAM,CACJ,QAAAq8D,CACN,EAAQ,KAOJ,GANIA,IACF,KAAK,QAAU,GACft8D,EAAQ,KAAK,EACbC,EAAQ,KAAK,GAEf,MAAM,OAAM,EACR,KAAK,UAAY,KACnB,GAAI5f,EAAA,KAAK87E,IAAgB,CACvB,KAAM,CACJ,MAAAp1F,EACA,WAAA4vF,EACA,YAAAC,EACA,YAAAxvE,EACA,KAAAm1E,EACA,aAAAC,CACV,EAAYn8E,EAAA,KAAK87E,IACH,CACJ,QAAS,CACP,UAAA95E,EACA,WAAAC,CACZ,EACU,SAAArG,CACV,EAAY,KAAK,OAAO,SACVotE,EAAUgM,GAAmB,kBAAkB,CACnD,MAAAtuF,EACA,UAAAsb,EACA,WAAAC,EACA,SAAArG,EACA,YAAa+/E,GAAgB,cAC7B,WAAArF,EACA,YAAAC,CACV,CAAS,EACD,KAAK,aAAavN,EAASmT,EAAcp1E,EAAam1E,CAAI,CAC5D,MACE,KAAK,IAAI,aAAa,iBAAkB,KAAK,UAAU,CACrD,YAAa,EACvB,CAAS,CAAC,EACF,KAAK,IAAI,OAAS,GAClB,KAAK,WAAW,aAAa,IAAI,OAGnC,KAAK,IAAI,aAAa,iBAAkB,KAAK,UAAU,CACrD,YAAal8E,EAAA,KAAK67E,KAAgB,EAC1C,CAAO,CAAC,EAEJ,OAAII,IACF,KAAK,QAAU,GACf,KAAK,gBAAgBt8D,EAAOC,CAAK,GAE5B,KAAK,GACd,CACA,QAAQs8D,EAAM,CACZ57E,EAAA,KAAKy7E,GAAiBG,GACtB,KAAK,eAAc,CACrB,CACA,SAAU,CACR,OAAOl8E,EAAA,KAAK+7E,GACd,CACA,IAAI,aAAc,CAChB,OAAO/7E,EAAA,KAAK67E,GACd,CACA,IAAI,YAAY90E,EAAa,CAC3BzG,EAAA,KAAKu7E,GAAe90E,GACf,KAAK,MAGV,KAAK,IAAI,aAAa,iBAAkB,KAAK,UAAU,CACrD,YAAAA,CACN,CAAK,CAAC,EACF,MAAM,eAAc,EAAG,KAAKq1E,GAAW,CACrCA,GAAA,MAAAA,EAAS,0BAA0Br1E,EACrC,CAAC,EACH,CACA,qBAAsB,CACpB,KAAM,CACJ,UAAA6vE,EACA,YAAAL,EACA,UAAApV,EACA,MAAA3kE,EACA,OAAAC,CACN,EAAQuD,EAAA,KAAK87E,IACHt5E,EAAS,KAAK,IAAIhG,EAAOC,CAAM,EAC/B4/E,EAAcrH,GAAmB,kBAAkB,CACvD,MAAO,CACL,OAAQ4B,EAAU,IAAI/V,IAAW,CAC/B,OAAAA,CACV,EAAU,EACF,UAAAM,EACA,MAAA3kE,EACA,OAAAC,CACR,EACM,UAAW+F,EACX,WAAYA,EACZ,SAAU,EACV,YAAa,EACb,WAAY,GACZ,YAAA+zE,CACN,CAAK,EACD,MAAO,CACL,YAAAA,EACA,QAAS8F,EAAY,OAC3B,CACE,CACA,IAAI,gBAAiB,CACnB,OAAI,KAAK,WAAW,iBACX,CAAC,CAAC,gBAAiB,KAAK,WAAW,gBAAgB,CAAC,EAEtD,MAAM,cACf,CACA,aAAazmH,EAAMumH,EAAcp1E,EAAam1E,EAAM,CAClD,KAAM,CACJ,EAAGllE,EACH,EAAGC,CACT,EAAQ,KACE,CACJ,QAAA+xD,CACN,EAAQ1oE,EAAA,KAAKw7E,GAAiBlmH,GAC1B0qC,EAAA,KAAKs7E,GAAe5S,aAAmB6L,IACvC,KAAK,YAAc9tE,EACnB,IAAIwqE,EACAvxE,EAAA,KAAK47E,IACPrK,EAAiBoK,GAAgB,yBAAwB,GAEzDpK,EAAiBoK,GAAgB,8BAA8B,MAAK,EACpEpK,EAAe,iBAAiB,CAC9B,eAAgBvI,EAAQ,SAChC,CAAO,GAEH,KAAK,aAAa,CAChB,aAAcA,EACd,eAAAuI,CACN,CAAK,EACD,KAAM,CAAA,CAAGtvE,CAAU,EAAI,KAAK,eAC5B,IAAIyhB,EAAYy4D,EAAel6E,EAC/ByhB,EAAYA,GAAa,EAAI,GAAMA,EACnC,KAAK,OAASA,EAAY,KAAK,OAC3B,KAAK,OAAS,IAChBA,GAAa,GAAM,KAAK,MACxB,KAAK,MAAQ,IAEf,KAAK,OAASA,EACd,KAAK,QAAO,EACZ,KAAK,EAAI1M,EACT,KAAK,EAAIC,EACT,KAAK,OAAM,EACX,KAAK,WAAU,EACf,KAAK,gBAAe,EACpB,KAAK,OAAM,EACX,KAAK,WAAW,uBAAuB,IAAI,EAC3C,KAAK,QAAQilE,CAAI,EACjB,KAAK,iBAAiB,CACpB,OAAQ,2BACR,KAAM,CACJ,aAAc,CAAC,CAACA,EAChB,eAAgB,CAAC,CAACn1E,CAC1B,CACA,CAAK,EACD,KAAK,IAAI,OAAS,EACpB,CACA,aAAa+C,EAAQ,CACnB,KAAM,CACJ,QAAS,CACP,UAAA9H,EACA,WAAAC,CACR,EACM,SAAArG,CACN,EAAQ,KAAK,OAAO,SAChB,OAAOo5E,GAAmB,QAAQlrE,EAAQ9H,EAAWC,EAAYrG,EAAU+/E,GAAgB,aAAa,CAC1G,CACA,YAAYhlH,EAAM2lH,EAAU,CAC1B,KAAM,CACJ,QAAS,CACP,UAAAt6E,EACA,WAAAC,CACR,EACM,SAAArG,CACN,EAAQ,KAAK,OAAO,SAChB,OAAOo5E,GAAmB,wBAAwBr+G,EAAM2lH,EAAUt6E,EAAWC,EAAYrG,EAAU+/E,GAAgB,aAAa,CAClI,CACA,kBAAkBnF,EAAQ,CACxB,KAAM,CACJ,QAAS,CACP,UAAAx0E,EACA,WAAAC,CACR,EACM,SAAArG,CACN,EAAQ,KAAK,OAAO,SAChB,OAAOo5E,GAAmB,kBAAkB,CAC1C,MAAOwB,EACP,UAAAx0E,EACA,WAAAC,EACA,SAAArG,EACA,YAAa+/E,GAAgB,cAC7B,WAAY,GACZ,YAAa,EACnB,CAAK,CACH,CACA,qBAAqB,CACnB,YAAApF,EACA,UAAApV,CACJ,EAAK,CACGoV,EACF,KAAK,gBAAkBoF,GAAgB,yBAAwB,GAE/D,KAAK,gBAAkBA,GAAgB,8BAA8B,MAAK,EAC1E,KAAK,gBAAgB,iBAAiB,CACpC,eAAgBxa,CACxB,CAAO,EAEL,CACA,UAAUjoD,EAAe,GAAO,CAC9B,GAAI,KAAK,UACP,OAAO,KAET,KAAM,CACJ,MAAAxyB,EACA,OAAAm6E,CACN,EAAQ,KAAK,cAAc3nD,CAAY,EAC7B,CACJ,gBAAiB,CACf,eAAgBioD,CACxB,CACA,EAAQ,KACEnjF,EAAa,OAAO,OAAO,MAAM,UAAUk7B,CAAY,EAAG,CAC9D,YAAa,GACb,YAAalZ,EAAA,KAAK47E,IAClB,MAAO,CAAC,EAAG,EAAG,CAAC,EACf,UAAW57E,EAAA,KAAK47E,IAAe,EAAIza,CACzC,CAAK,EACD,YAAK,WAAWnjF,CAAU,EACtBk7B,GACFl7B,EAAW,MAAQ,CACjB,MAAA0I,EACA,OAAAm6E,CACR,EACM7iF,EAAW,KAAOgiB,EAAA,KAAK+7E,IACvB/9F,EAAW,OAAS,IAEpBA,EAAW,MAAQ0I,EAEjBsZ,EAAA,KAAK67E,MACP79F,EAAW,kBAAoB,CAC7B,KAAM,SACN,IAAKgiB,EAAA,KAAK67E,GAClB,GAEW79F,CACT,CACA,OAAO,gBAAgBkhC,EAAOC,EAAOnd,EAAWC,EAAYolE,EAAazxG,EAAM,CAC7E,OAAIA,EAAK,YACAi/G,GAAmB,YAAY31D,EAAOC,EAAOnd,EAAWC,EAAYolE,EAAazxG,CAAI,EAEvFu8G,GAAe,YAAYjzD,EAAOC,EAAOnd,EAAWC,EAAYolE,EAAazxG,CAAI,CAC1F,CACA,aAAa,YAAYA,EAAM0oC,EAAQ8I,EAAW,OAChD,MAAMjC,EAAS,MAAM,MAAM,YAAYvvC,EAAM0oC,EAAQ8I,CAAS,EAC9D,OAAA9G,EAAA6E,EAAOy2E,GAAehmH,EAAK,aAC3BuvC,EAAO,cAAcvyC,EAAAgD,EAAK,oBAAL,YAAAhD,EAAwB,MAAO,GACpD0tC,EAAA6E,EAAO42E,GAAiBnmH,EAAK,MACtBuvC,CACT,CACF,EAxUEy2E,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACA5hG,GALIwhG,GAKG,QAAQ,aACfxhG,GANIwhG,GAMG,cAAczoF,GAAqB,WAC1C/Y,GAPIwhG,GAOG,yBAAyB,MAPlC,IAAMY,GAANZ,GAgVA,MAAMa,WAAoB92D,EAAiB,CAczC,YAAY5qC,EAAQ,CAClB,MAAM,CACJ,GAAGA,EACH,KAAM,aACZ,CAAK,EAlBLqf,EAAA,KAAAsiF,IACEtiF,EAAA,KAAAuiF,GAAU,MACVviF,EAAA,KAAAwiF,GAAY,MACZxiF,EAAA,KAAAyiF,GAAiB,MACjBziF,EAAA,KAAA0iF,GAAa,MACb1iF,EAAA,KAAA2iF,GAAc,MACd3iF,EAAA,KAAA4iF,GAAkB,IAClB5iF,EAAA,KAAA6iF,GAAU,MACV7iF,EAAA,KAAA8iF,GAAiB,IACjB9iF,EAAA,KAAA+iF,GAAmB,MACnB/iF,EAAA,KAAAgjF,GAAS,IACThjF,EAAA,KAAAijF,GAA2B,IAQzB98E,EAAA,KAAKu8E,GAAa/hG,EAAO,WACzBwlB,EAAA,KAAKw8E,GAAchiG,EAAO,YAC1B,KAAK,cAAgB,2BACvB,CACA,OAAO,WAAW+9B,EAAMzR,EAAW,CACjCse,GAAiB,WAAW7M,EAAMzR,CAAS,CAC7C,CACA,OAAO,yBAAyBqY,EAAM,CACpC,OAAO1c,GAAwB,SAAS0c,CAAI,CAC9C,CACA,OAAO,MAAMv1B,EAAMoU,EAAQ,CACzBA,EAAO,YAAY,CACjB,KAAMpL,GAAqB,KACjC,EAAO,CACD,WAAYhJ,EAAK,UAAS,CAChC,CAAK,CACH,CACA,eAAgB,CACV,KAAK,WAAW,oBAClB,KAAK,IAAI,OAAS,IAEpB,MAAM,cAAa,CACrB,CACA,IAAI,oBAAqB,OACvB,MAAO,CACL,KAAM,QACN,WAAY,CAAC,GAACt3B,EAAA,KAAK,cAAL,MAAAA,EAAkB,QACtC,CACE,CACA,OAAO,0BAA0BgD,EAAM,CACrC,MAAMynH,EAAkBznH,EAAK,IAAI,YAAY,EAC7C,MAAO,CACL,WAAYynH,EAAgB,IAAI,EAAI,GAAK,EACzC,aAAcA,EAAgB,IAAI,EAAK,GAAK,CAClD,CACE,CA2CA,MAAM,eAAe1kC,EAAY,KAAM2kC,EAAoB,GAAM,CAC/D,GAAI,KAAK,iBACP,OAAO,KAET,KAAM,CACJ,UAAA9vE,CACN,EAAQ,KAAK,WACT,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,QAAQ,EAE1B,GAAI,CAAE,MAAMA,EAAU,aAAa,SAAS,EAC1C,MAAM,IAAI,MAAM,gCAAgC,EAElD,KAAM,CACJ,KAAA53C,EACA,MAAA4mC,EACA,OAAAC,CACN,EAAQk8C,GAAa,KAAK,WAAW,KAAM,KAAM,EAAI,EAAE,UAC7CzjF,EAAW,MAAMs4C,EAAU,MAAM,CACrC,KAAM,UACN,QAAS,CACP,KAAA53C,EACA,MAAA4mC,EACA,OAAAC,EACA,SAAU7mC,EAAK,QAAU4mC,EAAQC,EACzC,CACA,CAAK,EACD,GAAI,CAACvnC,EACH,MAAM,IAAI,MAAM,kCAAkC,EAEpD,GAAIA,EAAS,MACX,MAAM,IAAI,MAAM,4BAA4B,EAE9C,GAAIA,EAAS,OACX,OAAO,KAET,GAAI,CAACA,EAAS,OACZ,MAAM,IAAI,MAAM,wCAAwC,EAE1D,MAAMoxC,EAAUpxC,EAAS,OACzB,aAAM,KAAK,kBAAkBoxC,CAAO,EAChCg3E,GAAqB,CAAC,KAAK,mBAC7B,KAAK,YAAc,CACjB,IAAKh3E,EACL,WAAY,EACpB,GAEWA,CACT,CAqDA,QAAS,OACHtG,EAAA,KAAK28E,MACPr8E,EAAA,KAAKo8E,GAAU,MACf,KAAK,WAAW,aAAa,SAAS18E,EAAA,KAAK28E,GAAS,GACpD/pH,EAAAotC,EAAA,KAAKg9E,MAAL,MAAApqH,EAAc,SACd0tC,EAAA,KAAK08E,GAAU,MACXh9E,EAAA,KAAKk9E,MACP,aAAal9E,EAAA,KAAKk9E,GAAgB,EAClC58E,EAAA,KAAK48E,GAAmB,QAG5B,MAAM,OAAM,CACd,CACA,SAAU,CACR,GAAI,CAAC,KAAK,OAAQ,CACZl9E,EAAA,KAAK28E,KACP/iF,EAAA,KAAK6iF,GAAAc,IAAL,WAEF,MACF,CACA,MAAM,QAAO,EACT,KAAK,MAAQ,OAGbv9E,EAAA,KAAK28E,KAAa38E,EAAA,KAAKg9E,MAAY,MACrCpjF,EAAA,KAAK6iF,GAAAc,IAAL,WAEG,KAAK,iBACR,KAAK,OAAO,IAAI,IAAI,EAExB,CACA,UAAUl8D,EAAO,CACf,KAAK,aAAe,GAChBA,GACF,KAAK,IAAI,MAAK,CAElB,CACA,SAAU,CACR,MAAO,EAAErhB,EAAA,KAAK48E,KAAkB58E,EAAA,KAAK08E,KAAW18E,EAAA,KAAK68E,KAAc78E,EAAA,KAAK88E,KAAe98E,EAAA,KAAK28E,KAAa38E,EAAA,KAAKi9E,IAChH,CACA,IAAI,gBAAiB,CACnB,MAAO,CAAC,CAAC,UAAW,KAAK,cAAa,CAAE,CAAC,CAC3C,CACA,IAAI,aAAc,CAChB,MAAO,EACT,CACA,QAAS,CACP,GAAI,KAAK,IACP,OAAO,KAAK,IAEd,IAAIt9D,EAAOC,EACX,OAAI,KAAK,UACPD,EAAQ,KAAK,EACbC,EAAQ,KAAK,GAEf,MAAM,OAAM,EACZ,KAAK,IAAI,OAAS,GAClB,KAAK,cAAa,EACb5f,EAAA,KAAKi9E,MACJj9E,EAAA,KAAK08E,IACP9iF,EAAA,KAAK6iF,GAAAe,IAAL,WAEA5jF,EAAA,KAAK6iF,GAAAc,IAAL,YAGA,KAAK,SACP,KAAK,gBAAgB59D,EAAOC,CAAK,EAEnC,KAAK,WAAW,iBAAiB,IAAI,EAC9B,KAAK,GACd,CACA,UAAUhK,EAAqBhM,EAAQ,CACrC,KAAM,CACJ,GAAI6zE,EACJ,OAAA3zE,CACN,EAAQ,KAAK,WAAW,aAAa,cAAc8L,EAAqBhM,CAAM,EAC1EA,EAAO,OAAM,EACT6zE,GAAY,KAAK,WAAW,aAAa,UAAUA,CAAQ,IAC7Dn9E,EAAA,KAAKq8E,GAAYc,GACb3zE,GACFxJ,EAAA,KAAKo8E,GAAU5yE,GAEjBxJ,EAAA,KAAK28E,GAAiB,IACtBrjF,EAAA,KAAK6iF,GAAAe,IAAL,WAEJ,CACA,YAAa,CACX,KAAK,gBAAe,CACtB,CACA,iBAAkB,CAChB,GAAI,CAAC,KAAK,OACR,OAEEx9E,EAAA,KAAKk9E,MAAqB,MAC5B,aAAal9E,EAAA,KAAKk9E,GAAgB,EAGpC58E,EAAA,KAAK48E,GAAmB,WAAW,IAAM,CACvC58E,EAAA,KAAK48E,GAAmB,MACxBtjF,EAAA,KAAK6iF,GAAAiB,IAAL,UACF,EAJqB,GAIN,EACjB,CAkDA,WAAWC,EAAkBC,EAAqBC,EAAkB,GAAO,CACzEF,MAAqB,KACrB,KAAM,CACJ,MAAOG,EACP,OAAQC,CACd,EAAQ/9E,EAAA,KAAK08E,IACHsB,EAAc,IAAI37E,GACxB,IAAIyH,EAAS9J,EAAA,KAAK08E,IACdlgF,EAAQshF,EACVrhF,EAASshF,EACPn0E,EAAS,KACb,GAAIg0E,EAAqB,CACvB,GAAIE,EAAcF,GAAuBG,EAAeH,EAAqB,CAC3E,MAAMn2B,EAAQ,KAAK,IAAIm2B,EAAsBE,EAAaF,EAAsBG,CAAY,EAC5FvhF,EAAQ,KAAK,MAAMshF,EAAcr2B,CAAK,EACtChrD,EAAS,KAAK,MAAMshF,EAAet2B,CAAK,CAC1C,CACA79C,EAAS,SAAS,cAAc,QAAQ,EACxC,MAAMq0E,EAAcr0E,EAAO,MAAQ,KAAK,KAAKpN,EAAQwhF,EAAY,EAAE,EAC7DE,EAAet0E,EAAO,OAAS,KAAK,KAAKnN,EAASuhF,EAAY,EAAE,EACjEh+E,EAAA,KAAKm9E,MACRrzE,EAASlQ,EAAA,KAAK6iF,GAAA0B,IAAL,UAAkBF,EAAaC,IAE1C,MAAMx6F,EAAMkmB,EAAO,WAAW,IAAI,EAClClmB,EAAI,OAAS,KAAK,WAAW,UAC7B,IAAI0f,EAAQ,QACV04B,EAAQ,UACN,KAAK,WAAW,YAAc,OAChCA,EAAQ,QACC94B,GAAY,aACrBI,EAAQ,UACR04B,EAAQ,WAEV,MAAMsiD,EAAS,GACTC,EAAcD,EAASJ,EAAY,GACnCM,EAAeF,EAASJ,EAAY,GACpC73F,EAAU,IAAI,gBAAgBk4F,EAAc,EAAGC,EAAe,CAAC,EAC/DC,EAAap4F,EAAQ,WAAW,IAAI,EAC1Co4F,EAAW,UAAYn7E,EACvBm7E,EAAW,SAAS,EAAG,EAAGF,EAAc,EAAGC,EAAe,CAAC,EAC3DC,EAAW,UAAYziD,EACvByiD,EAAW,SAAS,EAAG,EAAGF,EAAaC,CAAY,EACnDC,EAAW,SAASF,EAAaC,EAAcD,EAAaC,CAAY,EACxE56F,EAAI,UAAYA,EAAI,cAAcyC,EAAS,QAAQ,EACnDzC,EAAI,SAAS,EAAG,EAAGu6F,EAAaC,CAAY,EAC5Cx6F,EAAI,UAAUomB,EAAQ,EAAG,EAAGA,EAAO,MAAOA,EAAO,OAAQ,EAAG,EAAGm0E,EAAaC,CAAY,CAC1F,CACA,IAAIvlC,EAAY,KAChB,GAAIklC,EAAiB,CACnB,IAAIW,EAAWC,EACf,GAAIT,EAAY,WAAal0E,EAAO,MAAQ6zE,GAAoB7zE,EAAO,OAAS6zE,EAC9Ea,EAAY10E,EAAO,MACnB20E,EAAa30E,EAAO,eAEpBA,EAAS9J,EAAA,KAAK08E,IACVoB,EAAcH,GAAoBI,EAAeJ,EAAkB,CACrE,MAAMl2B,EAAQ,KAAK,IAAIk2B,EAAmBG,EAAaH,EAAmBI,CAAY,EACtFS,EAAY,KAAK,MAAMV,EAAcr2B,CAAK,EAC1Cg3B,EAAa,KAAK,MAAMV,EAAet2B,CAAK,EACvCznD,EAAA,KAAKm9E,MACRrzE,EAASlQ,EAAA,KAAK6iF,GAAA0B,IAAL,UAAkBK,EAAWC,GAE1C,CAGF,MAAMC,EADY,IAAI,gBAAgBF,EAAWC,CAAU,EAC5B,WAAW,KAAM,CAC9C,mBAAoB,EAC5B,CAAO,EACDC,EAAa,UAAU50E,EAAQ,EAAG,EAAGA,EAAO,MAAOA,EAAO,OAAQ,EAAG,EAAG00E,EAAWC,CAAU,EAC7F9lC,EAAY,CACV,MAAO6lC,EACP,OAAQC,EACR,KAAMC,EAAa,aAAa,EAAG,EAAGF,EAAWC,CAAU,EAAE,IACrE,CACI,CACA,MAAO,CACL,OAAA70E,EACA,MAAApN,EACA,OAAAC,EACA,UAAAk8C,CACN,CACE,CAyEA,aAAa,YAAY/iF,EAAM0oC,EAAQ8I,EAAW,OAChD,IAAIq1C,EAAc,KACdkiC,EAAgB,GACpB,GAAI/oH,aAAgBo/F,GAAwB,CAC1C,KAAM,CACJ,KAAM,CACJ,KAAAx9D,EACA,SAAAoE,EACA,GAAAngB,EACA,aAAAmjG,EACA,SAAA5oE,EACA,SAAAyE,EACA,YAAAxE,EACA,aAAAkL,EACA,iBAAAC,CACV,EACQ,UAAArc,EACA,OAAQ,CACN,KAAM,CACJ,WAAAwN,CACZ,CACA,EACQ,OAAA3I,CACR,EAAUh0C,EACJ,IAAI6nH,EAAU3zE,EACVF,GACF,OAAOh0C,EAAK,OACX,CACC,GAAI6nH,EACJ,OAAA3zE,CACV,EAAY1C,EAAU,aAAa,cAAcrC,EAAU,GAAI6E,CAAM,EAC7DA,EAAO,OAAM,IAEb+0E,EAAgB,GAChB/oH,EAAK,aAAe,IAEtB,MAAM0wC,IAAW1zC,EAAA,MAAM0rC,EAAO,YAAY,kBAAkB,GAAGtL,EAAgB,GAAGvX,CAAE,EAAE,IAArE,YAAA7oB,EAAyE,IAAI,gBAAiB,GAC/G6pF,EAAc7mF,EAAO,CACnB,eAAgBs9B,GAAqB,MACrC,SAAAuqF,EACA,OAAA3zE,EACA,UAAWyI,EAAa,EACxB,KAAM/a,EAAK,MAAM,CAAC,EAClB,SAAAoE,EACA,oBAAqBngB,EACrB,GAAAA,EACA,QAAS,GACT,kBAAmB,CACjB,WAAY,GACZ,QAAA6qB,CACV,EACQ,MAAO,GACP,aAAAs4E,EACA,SAAA5oE,EACA,SAAAyE,EACA,SAASxE,GAAA,YAAAA,EAAa,MAAO,KAC7B,aAAAkL,EACA,iBAAAC,CACR,CACI,CACA,MAAMjc,EAAS,MAAM,MAAM,YAAYvvC,EAAM0oC,EAAQ8I,CAAS,EACxD,CACJ,KAAA5P,EACA,OAAAsS,EACA,UAAA+0E,EACA,SAAApB,EACA,MAAAqB,EACA,kBAAAC,CACN,EAAQnpH,EACA+oH,GACFv3E,EAAU,iBAAiBxxC,EAAK,GAAIuvC,CAAM,EAC1C7E,EAAA6E,EAAO83E,GAAiB,KACfQ,GAAYr2E,EAAU,aAAa,UAAUq2E,CAAQ,GAC9Dn9E,EAAA6E,EAAOw3E,GAAYc,GACf3zE,GACFxJ,EAAA6E,EAAOu3E,GAAU5yE,IAGnBxJ,EAAA6E,EAAO03E,GAAagC,GAEtBv+E,EAAA6E,EAAOg4E,GAAS2B,GAChB,KAAM,CAACznE,EAAaC,CAAY,EAAInS,EAAO,eAC3C,OAAAA,EAAO,OAAS3N,EAAK,CAAC,EAAIA,EAAK,CAAC,GAAK6f,EACrClS,EAAO,QAAU3N,EAAK,CAAC,EAAIA,EAAK,CAAC,GAAK8f,EAClCynE,IACF55E,EAAO,YAAc45E,GAEvB55E,EAAO,aAAes3C,EAClB7mF,EAAK,SACPuvC,EAAO,eAAevvC,CAAI,EAE5B0qC,EAAA6E,EAAOi4E,GAA2B,CAAC,CAAC3gC,GAC7Bt3C,CACT,CACA,UAAU+T,EAAe,GAAO2I,EAAU,KAAM,CAC9C,GAAI,KAAK,UACP,OAAO,KAET,GAAI,KAAK,QACP,OAAO,KAAK,iBAAgB,EAE9B,MAAM7jC,EAAa,OAAO,OAAO,MAAM,UAAUk7B,CAAY,EAAG,CAC9D,SAAUlZ,EAAA,KAAK28E,IACf,MAAO38E,EAAA,KAAKm9E,GAClB,CAAK,EAED,GADA,KAAK,WAAWn/F,CAAU,EACtBk7B,EACF,OAAAl7B,EAAW,UAAY4b,EAAA,KAAK6iF,GAAAuC,IAAL,UAAsB,IAC7ChhG,EAAW,kBAAoB,KAAK,iBAAiB,EAAI,EACzDA,EAAW,OAAS,GACbA,EAET,KAAM,CACJ,WAAAm7B,EACA,QAAA7S,CACN,EAAQ,KAAK,iBAAiB,EAAK,EAO/B,GANI,CAAC6S,GAAc7S,IACjBtoB,EAAW,kBAAoB,CAC7B,KAAM,SACN,IAAKsoB,CACb,GAEQ,KAAK,oBAAqB,CAC5B,MAAM24E,EAAUrlF,EAAA,KAAK6iF,GAAAnW,IAAL,UAAwBtoF,GACxC,OAAIihG,EAAQ,OACH,MAELA,EAAQ,cACV,OAAOjhG,EAAW,kBAElBA,EAAW,kBAAkB,aAAe,KAAK,aAAa,cAAgB,GAEhFA,EAAW,GAAK,KAAK,oBACrB,OAAOA,EAAW,SACXA,EACT,CACA,GAAI6jC,IAAY,KACd,OAAO7jC,EAET6jC,EAAQ,SAARA,EAAQ,OAAW,IAAI,KACvB,MAAMq9D,EAAOl/E,EAAA,KAAKm9E,KAAUn/F,EAAW,KAAK,CAAC,EAAIA,EAAW,KAAK,CAAC,IAAMA,EAAW,KAAK,CAAC,EAAIA,EAAW,KAAK,CAAC,GAAK,KACnH,GAAI,CAAC6jC,EAAQ,OAAO,IAAI7hB,EAAA,KAAK28E,GAAS,EACpC96D,EAAQ,OAAO,IAAI7hB,EAAA,KAAK28E,IAAW,CACjC,KAAAuC,EACA,WAAAlhG,CACR,CAAO,EACDA,EAAW,OAAS4b,EAAA,KAAK6iF,GAAAuC,IAAL,UAAsB,YACjCh/E,EAAA,KAAKm9E,IAAQ,CACtB,MAAMgC,EAAWt9D,EAAQ,OAAO,IAAI7hB,EAAA,KAAK28E,GAAS,EAC9CuC,EAAOC,EAAS,OAClBA,EAAS,KAAOD,EAChBC,EAAS,WAAW,OAAO,MAAK,EAChCA,EAAS,WAAW,OAASvlF,EAAA,KAAK6iF,GAAAuC,IAAL,UAAsB,IAEvD,CACA,OAAOhhG,CACT,CAeA,wBAAwB+3B,EAAY,CAClC,OAAI,KAAK,SACPA,EAAW,KAAI,EACR,OAETA,EAAW,aAAa,CACtB,KAAM,KAAK,WAAU,EACrB,MAAO,KAAK,OAClB,CAAK,EACM,KACT,CACF,CA5qBE2mE,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YAXFX,GAAA,YAuDE2C,GAAiB,SAACxpH,EAAMypH,EAAS,GAAO,CACtC,GAAI,CAACzpH,EAAM,CACT,KAAK,OAAM,EACX,MACF,CACA0qC,EAAA,KAAKo8E,GAAU9mH,EAAK,QACfypH,IACH/+E,EAAA,KAAKq8E,GAAY/mH,EAAK,IACtB0qC,EAAA,KAAK68E,GAASvnH,EAAK,QAEjBA,EAAK,MACP0qC,EAAA,KAAKy8E,GAAkBnnH,EAAK,KAAK,MAEnCgkC,EAAA,KAAK6iF,GAAAe,IAAL,UACF,EACA8B,GAAc,UAAG,CAGf,GAFAh/E,EAAA,KAAKs8E,GAAiB,MACtB,KAAK,WAAW,cAAc,EAAK,EAC/B,EAAC58E,EAAA,KAAKg9E,IAGV,IAAI,KAAK,WAAW,8BAAgC,KAAK,WAAW,mBAAqBh9E,EAAA,KAAK08E,IAAS,CACrG,KAAK,iBAAiB,KAAK,IAAM,CAC/B,KAAK,aAAa,KAAI,EACtB,KAAK,WAAW,YAAY,KAAM,EAAI,CACxC,CAAC,EACD,MACF,CACA,GAAI,CAAC,KAAK,WAAW,8BAAgC,KAAK,WAAW,mBAAqB18E,EAAA,KAAK08E,IAAS,CACtG,KAAK,iBAAiB,CACpB,OAAQ,0BACR,KAAM,CACJ,eAAgB,GAChB,cAAe,OACzB,CACA,CAAO,EACD,GAAI,CACF,KAAK,eAAc,CACrB,MAAQ,CAAC,CACX,CACA,KAAK,IAAI,MAAK,EAChB,EAkDAa,GAAU,UAAG,CACX,GAAIv9E,EAAA,KAAK28E,IAAW,CAClB,KAAK,WAAW,cAAc,EAAI,EAClC,KAAK,WAAW,aAAa,UAAU38E,EAAA,KAAK28E,GAAS,EAAE,KAAK/mH,GAAQgkC,EAAA,KAAK6iF,GAAA2C,IAAL,UAAuBxpH,EAAM,GAAK,EAAE,QAAQ,IAAMgkC,EAAA,KAAK6iF,GAAA6C,IAAL,UAAqB,EAC3I,MACF,CACA,GAAIt/E,EAAA,KAAK68E,IAAY,CACnB,MAAMjoH,EAAMorC,EAAA,KAAK68E,IACjBv8E,EAAA,KAAKu8E,GAAa,MAClB,KAAK,WAAW,cAAc,EAAI,EAClCv8E,EAAA,KAAKs8E,GAAiB,KAAK,WAAW,aAAa,WAAWhoH,CAAG,EAAE,KAAKgB,GAAQgkC,EAAA,KAAK6iF,GAAA2C,IAAL,UAAuBxpH,EAAK,EAAE,QAAQ,IAAMgkC,EAAA,KAAK6iF,GAAA6C,IAAL,UAAqB,GACjJ,MACF,CACA,GAAIt/E,EAAA,KAAK88E,IAAa,CACpB,MAAM10F,EAAO4X,EAAA,KAAK88E,IAClBx8E,EAAA,KAAKw8E,GAAc,MACnB,KAAK,WAAW,cAAc,EAAI,EAClCx8E,EAAA,KAAKs8E,GAAiB,KAAK,WAAW,aAAa,YAAYx0F,CAAI,EAAE,KAAKxyB,GAAQgkC,EAAA,KAAK6iF,GAAA2C,IAAL,UAAuBxpH,EAAK,EAAE,QAAQ,IAAMgkC,EAAA,KAAK6iF,GAAA6C,IAAL,UAAqB,GACnJ,MACF,CACA,MAAMppH,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,KAAO,OACbA,EAAM,OAAS6sC,GAAwB,KAAK,GAAG,EAC/C,MAAM/tC,EAAS,KAAK,WAAW,QAC/BsrC,EAAA,KAAKs8E,GAAiB,IAAI,QAAQrjG,GAAW,CAC3CrjB,EAAM,iBAAiB,SAAU,SAAY,CAC3C,GAAI,CAACA,EAAM,OAASA,EAAM,MAAM,SAAW,EACzC,KAAK,OAAM,MACN,CACL,KAAK,WAAW,cAAc,EAAI,EAClC,MAAMN,EAAO,MAAM,KAAK,WAAW,aAAa,YAAYM,EAAM,MAAM,CAAC,CAAC,EAC1E,KAAK,iBAAiB,CACpB,OAAQ,6BACR,KAAM,CACJ,eAAgB,KAAK,WAAW,iBAC9C,CACA,CAAW,EACD0jC,EAAA,KAAK6iF,GAAA2C,IAAL,UAAuBxpH,EACzB,CACA2jB,EAAO,CACT,EAAG,CACD,OAAAvkB,CACR,CAAO,EACDkB,EAAM,iBAAiB,SAAU,IAAM,CACrC,KAAK,OAAM,EACXqjB,EAAO,CACT,EAAG,CACD,OAAAvkB,CACR,CAAO,CACH,CAAC,EAAE,QAAQ,IAAM4kC,EAAA,KAAK6iF,GAAA6C,IAAL,UAAqB,GACtCppH,EAAM,MAAK,CACb,EAuGAsnH,GAAa,UAAG,OACd,KAAM,CACJ,IAAA57E,CACN,EAAQ,KACJ,GAAI,CACF,MAAApF,EACA,OAAAC,CACN,EAAQuD,EAAA,KAAK08E,IACT,KAAM,CAAC16E,EAAWC,CAAU,EAAI,KAAK,eAC/Bs9E,EAAY,IAClB,GAAI,KAAK,MACP/iF,EAAQ,KAAK,MAAQwF,EACrBvF,EAAS,KAAK,OAASwF,UACdzF,EAAQ+iF,EAAYv9E,GAAavF,EAAS8iF,EAAYt9E,EAAY,CAC3E,MAAMojB,EAAS,KAAK,IAAIk6D,EAAYv9E,EAAYxF,EAAO+iF,EAAYt9E,EAAaxF,CAAM,EACtFD,GAAS6oB,EACT5oB,GAAU4oB,CACZ,CACA,KAAK,WAAW,cAAc,EAAK,EACnC,MAAMzb,EAAStJ,EAAA,KAAK08E,GAAU,SAAS,cAAc,QAAQ,GAC7DpzE,EAAO,aAAa,OAAQ,KAAK,EACjC,KAAK,aAAaA,CAAM,EACxB,KAAK,MAAQpN,EAAQwF,EACrB,KAAK,OAASvF,EAASwF,EACvB,KAAK,QAAO,GACRrvC,EAAA,KAAK,kBAAL,MAAAA,EAAsB,WACxB,KAAK,OAAM,EAEX,KAAK,kBAAiB,EAExB,KAAK,gBAAkB,MACnB,CAAC,KAAK,WAAW,8BAAgC,CAAC,KAAK,WAAW,mBAAqB,KAAK,uBAC9FgvC,EAAI,OAAS,IAEfhI,EAAA,KAAK6iF,GAAAiB,IAAL,WACK19E,EAAA,KAAKo9E,MACR,KAAK,OAAO,kBAAkB,IAAI,EAClC98E,EAAA,KAAK88E,GAA2B,KAElC,KAAK,iBAAiB,CACpB,OAAQ,gBACd,CAAK,EACGp9E,EAAA,KAAK+8E,KACP,KAAK,IAAI,aAAa,mBAAoB/8E,EAAA,KAAK+8E,GAAe,EAE3D,KAAK,qBACR,KAAK,WAAW,UAAUr3D,GAAiB,WAAW,KAAK,CAE/D,EAmFAy4D,GAAY,SAAC3hF,EAAOC,EAAQ,CAC1B,KAAM,CACJ,MAAOqhF,EACP,OAAQC,CACd,EAAQ/9E,EAAA,KAAK08E,IACT,IAAIj5D,EAAWq6D,EACXp6D,EAAYq6D,EACZj0E,EAAS9J,EAAA,KAAK08E,IAClB,KAAOj5D,EAAW,EAAIjnB,GAASknB,EAAY,EAAIjnB,GAAQ,CACrD,MAAM4+E,EAAY53D,EACZ63D,EAAa53D,EACfD,EAAW,EAAIjnB,IACjBinB,EAAW,KAAK,KAAKA,EAAW,CAAC,GAE/BC,EAAY,EAAIjnB,IAClBinB,EAAY,KAAK,KAAKA,EAAY,CAAC,GAErC,MAAM7Z,EAAY,IAAI,gBAAgB4Z,EAAUC,CAAS,EAC7C7Z,EAAU,WAAW,IAAI,EACjC,UAAUC,EAAQ,EAAG,EAAGuxE,EAAWC,EAAY,EAAG,EAAG73D,EAAUC,CAAS,EAC5E5Z,EAASD,EAAU,sBAAqB,CAC1C,CACA,OAAOC,CACT,EACA4zE,GAAW,UAAG,CACZ,KAAM,CAACrmE,EAAaC,CAAY,EAAI,KAAK,iBACnC,CACJ,MAAA9a,EACA,OAAAC,CACN,EAAQ,KACEuhF,EAAc,IAAI37E,GAClB47E,EAAc,KAAK,KAAKzhF,EAAQ6a,EAAc2mE,EAAY,EAAE,EAC5DE,EAAe,KAAK,KAAKzhF,EAAS6a,EAAe0mE,EAAY,EAAE,EAC/Dp0E,EAAS5J,EAAA,KAAKg9E,IACpB,GAAI,CAACpzE,GAAUA,EAAO,QAAUq0E,GAAer0E,EAAO,SAAWs0E,EAC/D,OAEFt0E,EAAO,MAAQq0E,EACfr0E,EAAO,OAASs0E,EAChB,MAAMp0E,EAAS9J,EAAA,KAAKm9E,IAASn9E,EAAA,KAAK08E,IAAU9iF,EAAA,KAAK6iF,GAAA0B,IAAL,UAAkBF,EAAaC,GACrEx6F,EAAMkmB,EAAO,WAAW,IAAI,EAClClmB,EAAI,OAAS,KAAK,WAAW,UAC7BA,EAAI,UAAUomB,EAAQ,EAAG,EAAGA,EAAO,MAAOA,EAAO,OAAQ,EAAG,EAAGm0E,EAAaC,CAAY,CAC1F,EACAc,GAAgB,SAACQ,EAAO,CACtB,GAAIA,EAAO,CACT,GAAIx/E,EAAA,KAAKm9E,IAAQ,CACf,MAAMvoH,EAAM,KAAK,WAAW,aAAa,UAAUorC,EAAA,KAAK28E,GAAS,EACjE,GAAI/nH,EACF,OAAOA,CAEX,CACA,MAAMg1C,EAAS,SAAS,cAAc,QAAQ,EAC9C,MAAC,CACC,MAAOA,EAAO,MACd,OAAQA,EAAO,MACvB,EAAU5J,EAAA,KAAK08E,IACG9yE,EAAO,WAAW,IAAI,EAC9B,UAAU5J,EAAA,KAAK08E,IAAS,EAAG,CAAC,EACzB9yE,EAAO,UAAS,CACzB,CACA,GAAI5J,EAAA,KAAKm9E,IAAQ,CACf,KAAM,CAACn7E,EAAWC,CAAU,EAAI,KAAK,eAC/BzF,EAAQ,KAAK,MAAM,KAAK,MAAQwF,EAAYrD,GAAc,gBAAgB,EAC1ElC,EAAS,KAAK,MAAM,KAAK,OAASwF,EAAatD,GAAc,gBAAgB,EAC7EkL,EAAY,IAAI,gBAAgBrN,EAAOC,CAAM,EAEnD,OADYoN,EAAU,WAAW,IAAI,EACjC,UAAU7J,EAAA,KAAK08E,IAAS,EAAG,EAAG18E,EAAA,KAAK08E,IAAQ,MAAO18E,EAAA,KAAK08E,IAAQ,OAAQ,EAAG,EAAGlgF,EAAOC,CAAM,EACvFoN,EAAU,sBAAqB,CACxC,CACA,OAAO,gBAAgB7J,EAAA,KAAK08E,GAAO,CACrC,EA8JApW,GAAkB,SAACtoF,EAAY,OAC7B,KAAM,CACJ,UAAAk0B,EACA,kBAAmB,CACjB,QAAA5L,CACR,CACA,EAAQ,KAAK,aACHm5E,EAAkBzhG,EAAW,YAAck0B,EAC3CwtE,KAAiB9sH,EAAAorB,EAAW,oBAAX,YAAAprB,EAA8B,MAAO,MAAQ0zC,EACpE,MAAO,CACL,OAAQ,CAAC,KAAK,kBAAoB,CAAC,KAAK,eAAiB,CAAC,KAAK,iBAAmBm5E,GAAmBC,EACrG,cAAAA,CACN,CACE,EArpBAvlG,GAZIqiG,GAYG,QAAQ,SACfriG,GAbIqiG,GAaG,cAActpF,GAAqB,OA2qB5C,MAAMysF,GAAN,MAAMA,EAAsB,CAmB1B,YAAY,CACV,UAAAv4E,EACA,UAAA8K,EACA,IAAAtQ,EACA,gBAAA8gE,EACA,qBAAAF,EACA,gBAAA7/C,EACA,UAAAmrD,EACA,UAAA36D,EACA,SAAAtR,EACA,KAAAgX,CACJ,EAAK,CA9BL1e,EAAA,KAAAylF,IACEzlF,EAAA,KAAAyoE,IACAzoE,EAAA,KAAA0lF,GAAc,IACd1lF,EAAA,KAAA2lF,GAAmB,MACnB3lF,EAAA,KAAA4lF,GAAW,MACX5lF,EAAA,KAAA6lF,GAAwB,MACxB7lF,EAAA,KAAA8lF,GAAW,IAAI,KACf9lF,EAAA,KAAA+lF,GAAkB,IAClB/lF,EAAA,KAAAgmF,GAAe,IACfhmF,EAAA,KAAAimF,GAAc,IACdjmF,EAAA,KAAAkmF,GAAa,MACblmF,EAAA,KAAAmmF,GAAkB,MAClBnmF,EAAA,KAAAomF,GAAa,MACbpmF,EAAA,KAAAqmF,GAAmB,MACnBrmF,EAAA,KAAAsmF,GAAuB,MACvBtmF,EAAA,KAAAumF,GAA4B,IAC5BvmF,EAAA,KAAAgM,IAeE,MAAMw6E,EAAc,CAAC,GAAG3gF,EAAA2/E,GAAsB/wE,IAAa,OAAM,CAAE,EACnE,GAAI,CAAC+wE,GAAsB,aAAc,CACvCA,GAAsB,aAAe,GACrC,UAAWz5E,KAAcy6E,EACvBz6E,EAAW,WAAW2S,EAAMzR,CAAS,CAEzC,CACAA,EAAU,oBAAoBu5E,CAAW,EACzCrgF,EAAA,KAAK6F,GAAaiB,GAClB,KAAK,UAAY8K,EACjB,KAAK,IAAMtQ,EACXtB,EAAA,KAAKsiE,GAAwBJ,GAC7BliE,EAAA,KAAKw/E,GAAmBn9D,GACxB,KAAK,SAAW9gB,EAChBvB,EAAA,KAAKigF,GAAaptE,GAClB,KAAK,UAAY26D,EACjB,KAAK,YAAcpL,EACnB1iE,EAAA,KAAKmG,IAAW,SAAS,IAAI,CAC/B,CACA,IAAI,SAAU,CACZ,OAAOnG,EAAA,KAAKigF,IAAS,OAAS,CAChC,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,SAAWjgF,EAAA,KAAKmG,IAAW,QAAO,IAAOjT,GAAqB,IAC5E,CACA,cAAcj9B,EAAS,CACrB+pC,EAAA,KAAKmG,IAAW,cAAclwC,CAAO,CACvC,CACA,WAAWw8C,EAAOzS,EAAA,KAAKmG,IAAW,QAAO,EAAI,CAE3C,OADAvM,EAAA,KAAKgmF,GAAAgB,IAAL,WACQnuE,EAAI,CACV,KAAKvf,GAAqB,KACxB,KAAK,IAAI,UAAU,OAAO,aAAc,EAAI,EAC5C,KAAK,qBAAoB,EACzB,KAAK,oBAAoB,EAAK,EAC9B,KAAK,mCAAmC,EAAI,EAC5C,KAAK,aAAY,EACjB,OACF,KAAKA,GAAqB,IACxB,KAAK,qBAAoB,EACzB,KAAK,oBAAoB,EAAI,EAC7B,KAAK,YAAW,EAChB,MACF,KAAKA,GAAqB,UACxB,KAAK,oBAAmB,EACxB,KAAK,oBAAoB,EAAK,EAC9B,KAAK,aAAY,EACjB,MACF,QACE,KAAK,qBAAoB,EACzB,KAAK,oBAAoB,EAAI,EAC7B,KAAK,YAAW,CACxB,CACI,KAAK,mCAAmC,EAAK,EAC7C,KAAM,CACJ,UAAA2tF,CACN,EAAQ,KAAK,IAET,GADAA,EAAU,OAAO,aAAc,EAAK,EAChCpuE,IAASvf,GAAqB,MAChC2tF,EAAU,OAAO,iBAAkB,EAAI,MAClC,CACLA,EAAU,OAAO,iBAAkB,EAAK,EACxC,UAAW36E,KAAclG,EAAA2/E,GAAsB/wE,IAAa,OAAM,EAChEiyE,EAAU,OAAO,GAAG36E,EAAW,KAAK,UAAWuM,IAASvM,EAAW,WAAW,CAElF,CACA,KAAK,IAAI,OAAS,EACpB,CACA,aAAaiN,EAAW,OACtB,OAAOA,MAAcvgD,EAAAotC,EAAA,KAAKugF,MAAL,YAAA3tH,EAAiB,IACxC,CACA,gBAAgB6hD,EAAW,CACzBzU,EAAA,KAAKmG,IAAW,gBAAgBsO,CAAS,CAC3C,CACA,YAAY35B,EAAQ,CAClBklB,EAAA,KAAKmG,IAAW,YAAYrrB,CAAM,CACpC,CACA,eAAevD,EAAM,CACnByoB,EAAA,KAAKmG,IAAW,eAAe5uB,CAAI,CACrC,CACA,cAAc0F,EAAU,GAAO,CAC7B,KAAK,IAAI,UAAU,OAAO,UAAW,CAACA,CAAO,CAC/C,CACA,oBAAoBA,EAAU,GAAO,CACnC,KAAK,IAAI,UAAU,OAAO,WAAY,CAACA,CAAO,CAChD,CACA,mCAAmCA,EAAU,GAAO,QAClDrqB,EAAAotC,EAAA,KAAK8/E,MAAL,MAAAltH,EAAuB,oBAAoBqqB,EAC7C,CAIA,MAAM,QAAS,OACbqjB,EAAA,KAAK8/E,GAAc,IACnB,KAAK,IAAI,SAAW,EACpB,KAAK,oBAAoB,EAAI,EAC7B,KAAK,IAAI,UAAU,OAAO,aAAc,EAAK,GAC7CxtH,EAAAotC,EAAA,KAAKygF,MAAL,MAAA7tH,EAA2B,QAC3B0tC,EAAA,KAAKmgF,GAAuB,MAC5B,MAAMK,EAAuB,IAAI,IACjC,UAAW37E,KAAUnF,EAAA,KAAK4/E,GAAAmB,IACxB57E,EAAO,cAAa,EACpBA,EAAO,KAAK,EAAI,EACZA,EAAO,sBACTnF,EAAA,KAAKmG,IAAW,gCAAgChB,CAAM,EACtD27E,EAAqB,IAAI37E,EAAO,mBAAmB,GAGvD,MAAMwd,EAAkB3iB,EAAA,KAAK8/E,IAC7B,GAAIn9D,EACF,UAAWq+D,KAAYr+D,EAAgB,yBAA0B,CAK/D,GAJAq+D,EAAS,KAAI,EACThhF,EAAA,KAAKmG,IAAW,2BAA2B66E,EAAS,KAAK,EAAE,GAG3DF,EAAqB,IAAIE,EAAS,KAAK,EAAE,EAC3C,SAEF,MAAM77E,EAAS,MAAM,KAAK,YAAY67E,CAAQ,EACzC77E,IAGL,KAAK,aAAaA,CAAM,EACxBA,EAAO,cAAa,EACtB,CAEF7E,EAAA,KAAK8/E,GAAc,IACnBpgF,EAAA,KAAKmG,IAAW,UAAU,SAAS,kBAAmB,CACpD,OAAQ,KACR,WAAY,KAAK,UAAY,CACnC,CAAK,CACH,CACA,SAAU,OAKR,GAJA7F,EAAA,KAAK6/E,GAAe,IACpB,KAAK,IAAI,SAAW,GACpB,KAAK,oBAAoB,EAAK,EAC9B,KAAK,IAAI,UAAU,OAAO,aAAc,EAAI,EACxCngF,EAAA,KAAKugF,KAAc,CAACvgF,EAAA,KAAKygF,IAAsB,CACjDngF,EAAA,KAAKmgF,GAAuB,IAAI,iBAChC,MAAMzrH,EAASgrC,EAAA,KAAKmG,IAAW,eAAenG,EAAA,KAAKygF,GAAoB,EACvEzgF,EAAA,KAAKugF,IAAW,IAAI,iBAAiB,cAAevpH,GAAK,CAEvD,KAAM,CACJ,QAAAiqH,EACA,QAAAC,EACA,UAAAv4E,CACV,EAAY3xC,EACEmqH,EAA2BnhF,EAAA,KAAK0gF,IACtC,GAAI/3E,EAAYw4E,EAA2B,IAAqB,CAC9D7gF,EAAA,KAAKogF,GAA4B/3E,GACjC,MACF,CACArI,EAAA,KAAKogF,GAA4B,IACjC,KAAM,CACJ,UAAAG,CACV,EAAY,KAAK,IACTA,EAAU,OAAO,cAAe,EAAI,EACpC,MAAM9jB,EAAW,SAAS,kBAAkBkkB,EAASC,CAAO,EAE5D,GADAL,EAAU,OAAO,cAAe,EAAK,EACjC,CAAC,KAAK,IAAI,SAAS9jB,EAAS,CAAC,CAAC,EAChC,OAEF,IAAIthF,EACJ,MAAM2lG,EAAQ,IAAI,OAAO,IAAInuF,EAAsB,SAAS,EAC5D,UAAWiK,KAAW6/D,EACpB,GAAIqkB,EAAM,KAAKlkF,EAAQ,EAAE,EAAG,CAC1BzhB,EAAKyhB,EAAQ,GACb,KACF,CAEF,GAAI,CAACzhB,EACH,OAEF,MAAM0pB,EAASnF,EAAA,KAAKigF,IAAS,IAAIxkG,CAAE,GAC/B0pB,GAAA,YAAAA,EAAQ,uBAAwB,OAClChF,GAAUnpC,CAAC,EACXmuC,EAAO,SAASnuC,CAAC,EAErB,EAAG,CACD,OAAAhC,EACA,QAAS,EACjB,CAAO,CACH,CACA,MAAM2tD,EAAkB3iB,EAAA,KAAK8/E,IACvBuB,EAAqB,CAAA,EAC3B,GAAI1+D,EAAiB,CACnB,MAAM2+D,EAAqB,IAAI,IACzBC,EAAmB,IAAI,IAC7B,UAAWp8E,KAAUnF,EAAA,KAAK4/E,GAAAmB,IAAqB,CAE7C,GADA57E,EAAO,eAAc,EACjB,CAACA,EAAO,oBAAqB,CAC/Bk8E,EAAmB,KAAKl8E,CAAM,EAC9B,QACF,CACA,GAAIA,EAAO,UAAS,IAAO,KAAM,CAC/Bm8E,EAAmB,IAAIn8E,EAAO,oBAAqBA,CAAM,EACzD,QACF,MACEo8E,EAAiB,IAAIp8E,EAAO,oBAAqBA,CAAM,GAEzDvyC,EAAA,KAAK,sBAAsBuyC,EAAO,mBAAmB,IAArD,MAAAvyC,EAAwD,OACxDuyC,EAAO,OAAM,CACf,CACA,UAAW67E,KAAYr+D,EAAgB,yBAA0B,CAC/D,KAAM,CACJ,GAAAlnC,CACV,EAAYulG,EAAS,KACb,GAAIhhF,EAAA,KAAKmG,IAAW,2BAA2B1qB,CAAE,EAAG,CAClDulG,EAAS,aAAa,CACpB,QAAS,EACrB,CAAW,EACD,QACF,CACA,IAAI77E,EAASo8E,EAAiB,IAAI9lG,CAAE,EACpC,GAAI0pB,EAAQ,CACVA,EAAO,uBAAuB67E,CAAQ,EACtC77E,EAAO,KAAK,EAAK,EACjB67E,EAAS,KAAI,EACb,QACF,CACA77E,EAASm8E,EAAmB,IAAI7lG,CAAE,EAC9B0pB,IACFnF,EAAA,KAAKmG,IAAW,6BAA6BhB,CAAM,EAC/CA,EAAO,wBAAwB67E,CAAQ,GACzC77E,EAAO,KAAK,EAAK,GAGrB67E,EAAS,KAAI,CACf,CACF,CACApnF,EAAA,KAAKgmF,GAAAgB,IAAL,WACI,KAAK,UACP,KAAK,IAAI,OAAS,IAEpB,KAAM,CACJ,UAAAC,CACN,EAAQ,KAAK,IACT,UAAW36E,KAAclG,EAAA2/E,GAAsB/wE,IAAa,OAAM,EAChEiyE,EAAU,OAAO,GAAG36E,EAAW,KAAK,SAAS,EAE/C,KAAK,qBAAoB,EACzB,KAAK,mCAAmC,EAAI,EAC5Cyc,GAAA,MAAAA,EAAiB,sBAAsB0+D,GACvC/gF,EAAA,KAAK6/E,GAAe,GACtB,CACA,sBAAsB1kG,EAAI,OACxB,QAAO7oB,EAAAotC,EAAA,KAAK8/E,MAAL,YAAAltH,EAAuB,sBAAsB6oB,KAAO,IAC7D,CACA,gBAAgB0pB,EAAQ,CACAnF,EAAA,KAAKmG,IAAW,UAAS,IACzBhB,GAGtBnF,EAAA,KAAKmG,IAAW,gBAAgBhB,CAAM,CACxC,CACA,qBAAsB,OAEpB,GADA,KAAK,IAAI,SAAW,IAChBvyC,EAAAotC,EAAA,KAAKugF,MAAL,MAAA3tH,EAAiB,KAAO,CAACotC,EAAA,KAAKwgF,IAAkB,CAClDlgF,EAAA,KAAKkgF,GAAmB,IAAI,iBAC5B,MAAMxrH,EAASgrC,EAAA,KAAKmG,IAAW,eAAenG,EAAA,KAAKwgF,GAAgB,EACnExgF,EAAA,KAAKugF,IAAW,IAAI,iBAAiB,cAAe3mF,EAAA,KAAKgmF,GAAA4B,IAAsB,KAAK,IAAI,EAAG,CACzF,OAAAxsH,CACR,CAAO,EACDgrC,EAAA,KAAKugF,IAAW,IAAI,UAAU,IAAI,cAAc,CAClD,CACF,CACA,sBAAuB,OACrB,KAAK,IAAI,SAAW,GAChB3tH,EAAAotC,EAAA,KAAKugF,MAAL,MAAA3tH,EAAiB,KAAOotC,EAAA,KAAKwgF,MAC/BxgF,EAAA,KAAKwgF,IAAiB,MAAK,EAC3BlgF,EAAA,KAAKkgF,GAAmB,MACxBxgF,EAAA,KAAKugF,IAAW,IAAI,UAAU,OAAO,cAAc,EAEvD,CA+BA,aAAc,CACZ,GAAIvgF,EAAA,KAAK+/E,IACP,OAEFz/E,EAAA,KAAKy/E,GAAW,IAAI,iBACpB,MAAM/qH,EAASgrC,EAAA,KAAKmG,IAAW,eAAenG,EAAA,KAAK+/E,GAAQ,EAC3D,KAAK,IAAI,iBAAiB,cAAe,KAAK,YAAY,KAAK,IAAI,EAAG,CACpE,OAAA/qH,CACN,CAAK,EACD,MAAM8iD,EAAY,KAAK,UAAU,KAAK,IAAI,EAC1C,KAAK,IAAI,iBAAiB,YAAaA,EAAW,CAChD,OAAA9iD,CACN,CAAK,EACD,KAAK,IAAI,iBAAiB,gBAAiB8iD,EAAW,CACpD,OAAA9iD,CACN,CAAK,CACH,CACA,cAAe,QACbpC,EAAAotC,EAAA,KAAK+/E,MAAL,MAAAntH,EAAe,QACf0tC,EAAA,KAAKy/E,GAAW,KAClB,CACA,OAAO56E,EAAQ,CACbnF,EAAA,KAAKigF,IAAS,IAAI96E,EAAO,GAAIA,CAAM,EACnC,KAAM,CACJ,oBAAAyQ,CACN,EAAQzQ,EACAyQ,GAAuB5V,EAAA,KAAKmG,IAAW,2BAA2ByP,CAAmB,GACvF5V,EAAA,KAAKmG,IAAW,+BAA+BhB,CAAM,CAEzD,CACA,OAAOA,EAAQ,OACbnF,EAAA,KAAKigF,IAAS,OAAO96E,EAAO,EAAE,GAC9BvyC,EAAAotC,EAAA,KAAK4iE,MAAL,MAAAhwG,EAA4B,yBAAyBuyC,EAAO,YACxD,CAACnF,EAAA,KAAKmgF,KAAgBh7E,EAAO,qBAC/BnF,EAAA,KAAKmG,IAAW,4BAA4BhB,CAAM,CAEtD,CACA,OAAOA,EAAQ,CACb,KAAK,OAAOA,CAAM,EAClBnF,EAAA,KAAKmG,IAAW,aAAahB,CAAM,EACnCA,EAAO,IAAI,OAAM,EACjBA,EAAO,gBAAkB,EAC3B,CACA,aAAaA,EAAQ,OACfA,EAAO,SAAW,OAGlBA,EAAO,QAAUA,EAAO,sBAC1BnF,EAAA,KAAKmG,IAAW,4BAA4BhB,CAAM,EAClDugB,GAAiB,wBAAwBvgB,CAAM,EAC/CA,EAAO,oBAAsB,MAE/B,KAAK,OAAOA,CAAM,GAClBvyC,EAAAuyC,EAAO,SAAP,MAAAvyC,EAAe,OAAOuyC,GACtBA,EAAO,UAAU,IAAI,EACjBA,EAAO,KAAOA,EAAO,kBACvBA,EAAO,IAAI,OAAM,EACjB,KAAK,IAAI,OAAOA,EAAO,GAAG,GAE9B,CACA,IAAIA,EAAQ,CACV,GAAI,EAAAA,EAAO,SAAW,MAAQA,EAAO,iBAMrC,IAHA,KAAK,aAAaA,CAAM,EACxBnF,EAAA,KAAKmG,IAAW,UAAUhB,CAAM,EAChC,KAAK,OAAOA,CAAM,EACd,CAACA,EAAO,gBAAiB,CAC3B,MAAMvD,EAAMuD,EAAO,OAAM,EACzB,KAAK,IAAI,OAAOvD,CAAG,EACnBuD,EAAO,gBAAkB,EAC3B,CACAA,EAAO,kBAAiB,EACxBA,EAAO,UAAU,CAACnF,EAAA,KAAKogF,GAAW,EAClCpgF,EAAA,KAAKmG,IAAW,uBAAuBhB,CAAM,EAC7CA,EAAO,iBAAiBA,EAAO,oBAAoB,EACrD,CACA,gBAAgBA,EAAQ,OACtB,GAAI,CAACA,EAAO,gBACV,OAEF,KAAM,CACJ,cAAAwO,CACN,EAAQ,SACAxO,EAAO,IAAI,SAASwO,CAAa,GAAK,CAAC3T,EAAA,KAAKggF,MAC9C76E,EAAO,oBAAsB,GAC7B7E,EAAA,KAAK0/E,GAAwB,WAAW,IAAM,CAC5C1/E,EAAA,KAAK0/E,GAAwB,MACxB76E,EAAO,IAAI,SAAS,SAAS,aAAa,EAS7CA,EAAO,oBAAsB,IAR7BA,EAAO,IAAI,iBAAiB,UAAW,IAAM,CAC3CA,EAAO,oBAAsB,EAC/B,EAAG,CACD,KAAM,GACN,OAAQnF,EAAA,KAAKmG,IAAW,OACpC,CAAW,EACDwN,EAAc,MAAK,EAIvB,EAAG,CAAC,IAENxO,EAAO,qBAAsBvyC,EAAAotC,EAAA,KAAK4iE,MAAL,YAAAhwG,EAA4B,iBAAiB,KAAK,IAAKuyC,EAAO,IAAKA,EAAO,WAAY,GACrH,CACA,aAAaA,EAAQ,CACfA,EAAO,oBACTA,EAAO,SAAPA,EAAO,OAAW,MAClBA,EAAO,QAAO,EACdA,EAAO,KAAI,GAEX,KAAK,IAAIA,CAAM,CAEnB,CACA,kBAAkBA,EAAQ,CACxB,MAAMwF,EAAM,IAAMxF,EAAO,WAAW,QAAQA,CAAM,EAC5CyF,EAAO,IAAM,CACjBzF,EAAO,OAAM,CACf,EACA,KAAK,YAAY,CACf,IAAAwF,EACA,KAAAC,EACA,SAAU,EAChB,CAAK,CACH,CACA,eAAeuH,EAAK,CAClB,UAAWhN,KAAUnF,EAAA,KAAKigF,IAAS,OAAM,EACvC,GAAI96E,EAAO,MAAQgN,EACjB,OAAOhN,EAGX,OAAO,IACT,CAIA,eAAerwB,EAAI,CACjB,OAAOkrB,EAAA,KAAKmG,IAAW,eAAerxB,CAAE,CAC1C,CAKA,yBAA0B,OACxB,OAAOliB,EAAAotC,EAAA,KAAK4/E,GAAA6B,MAAL,YAAA7uH,EAAyB,yBAClC,CACA,MAAM,YAAYqD,EAAS6kB,EAAQ,CACjC,KAAK,cAAc7kB,CAAO,EAC1B,MAAM+pC,EAAA,KAAKmG,IAAW,WAAWlwC,EAAQ,IAAI,EAC7C,KAAM,CACJ,QAAA4lC,EACA,QAAAC,CACN,EAAQlC,EAAA,KAAKgmF,GAAA8B,IAAL,WACEjmG,EAAKukB,EAAA,KAAKmG,IAAW,MAAK,EAC1BhB,EAASvL,EAAA,KAAKgmF,GAAA+B,IAAL,UAAsB,CACnC,OAAQ,KACR,GAAAlmG,EACA,EAAGogB,EACH,EAAGC,EACH,UAAWkE,EAAA,KAAKmG,IAChB,WAAY,GACZ,GAAGrrB,CACT,GACQqqB,GACF,KAAK,IAAIA,CAAM,CAEnB,CACA,MAAM,YAAYvvC,EAAM,OACtB,OAAQ,OAAMhD,EAAAotC,EAAA2/E,GAAsB/wE,IAAa,IAAIh5C,EAAK,gBAAkBA,EAAK,oBAAoB,IAAvF,YAAAhD,EAA0F,YAAYgD,EAAM,KAAMoqC,EAAA,KAAKmG,OAAgB,IACvJ,CACA,sBAAsBrnB,EAAO8iG,EAAYhsH,EAAO,CAAA,EAAI,CAClD,MAAM6lB,EAAKukB,EAAA,KAAKmG,IAAW,MAAK,EAC1BhB,EAASvL,EAAA,KAAKgmF,GAAA+B,IAAL,UAAsB,CACnC,OAAQ,KACR,GAAAlmG,EACA,EAAGqD,EAAM,QACT,EAAGA,EAAM,QACT,UAAWkhB,EAAA,KAAKmG,IAChB,WAAAy7E,EACA,GAAGhsH,CACT,GACI,OAAIuvC,GACF,KAAK,IAAIA,CAAM,EAEVA,CACT,CACA,IAAI,oBAAqB,CACvB,OAAO,KAAK,IAAI,sBAAqB,CACvC,CAoBA,aAAavvC,EAAO,GAAI,CACtB,KAAK,sBAAsBgkC,EAAA,KAAKgmF,GAAA8B,IAAL,WAAwB,GAAM9rH,CAAI,CAC/D,CACA,YAAYuvC,EAAQ,CAClBnF,EAAA,KAAKmG,IAAW,YAAYhB,CAAM,CACpC,CACA,eAAeA,EAAQ,CACrBnF,EAAA,KAAKmG,IAAW,eAAehB,CAAM,CACvC,CACA,SAASA,EAAQ,CACfnF,EAAA,KAAKmG,IAAW,SAAShB,CAAM,CACjC,CACA,UAAUrmB,EAAO,OACf,KAAM,CACJ,MAAAssB,CACN,EAAQ9U,GAAY,SAWhB,GAVIxX,EAAM,SAAW,GAAKA,EAAM,SAAWssB,GAGvCtsB,EAAM,SAAW,KAAK,KAGtB,CAACkhB,EAAA,KAAKkgF,MAGV5/E,EAAA,KAAK4/E,GAAkB,KACnBttH,EAAAotC,EAAA,KAAK4/E,GAAA6B,MAAL,MAAA7uH,EAAyB,UAAYotC,EAAA,KAAK4/E,GAAA6B,IAAmB,yBAC/D,OAEF,GAAI,CAACzhF,EAAA,KAAK6/E,IAAa,CACrBv/E,EAAA,KAAKu/E,GAAc,IACnB,MACF,CACA,MAAMgC,EAAc7hF,EAAA,KAAKmG,IAAW,QAAO,EAC3C,GAAI07E,IAAgB3uF,GAAqB,OAAS2uF,IAAgB3uF,GAAqB,OAAS2uF,IAAgB3uF,GAAqB,UAAW,CAC9I8M,EAAA,KAAKmG,IAAW,YAAW,EAC3B,MACF,CACA,KAAK,sBAAsBrnB,EAAO,EAAK,CACzC,CACA,YAAYA,EAAO,OAIjB,GAHIkhB,EAAA,KAAKmG,IAAW,QAAO,IAAOjT,GAAqB,WACrD,KAAK,oBAAmB,EAEtB8M,EAAA,KAAKkgF,IAAiB,CACxB5/E,EAAA,KAAK4/E,GAAkB,IACvB,MACF,CACA,KAAM,CACJ,MAAA90E,CACN,EAAQ9U,GAAY,SAIhB,GAHIxX,EAAM,SAAW,GAAKA,EAAM,SAAWssB,GAGvCtsB,EAAM,SAAW,KAAK,IACxB,OAGF,GADAwhB,EAAA,KAAK4/E,GAAkB,KACnBttH,EAAAotC,EAAA,KAAK4/E,GAAA6B,MAAL,MAAA7uH,EAAyB,SAAU,CACrC,KAAK,oBAAoBksB,CAAK,EAC9B,MACF,CACA,MAAMqmB,EAASnF,EAAA,KAAKmG,IAAW,UAAS,EACxC7F,EAAA,KAAKu/E,GAAc,CAAC16E,GAAUA,EAAO,QAAO,EAC9C,CACA,oBAAoBrmB,EAAO,CAIzB,GAHA,KAAK,IAAI,MAAM,CACb,cAAe,EACrB,CAAK,EACGkhB,EAAA,KAAKqgF,IAAY,CACnBrgF,EAAA,KAAK4/E,GAAA6B,IAAmB,aAAa,KAAMzhF,EAAA,KAAKmG,IAAY,GAAOrnB,CAAK,EACxE,MACF,CACAkhB,EAAA,KAAKmG,IAAW,yBAAyB,IAAI,EAC7C7F,EAAA,KAAK+/E,GAAa,IAAI,iBACtB,MAAMrrH,EAASgrC,EAAA,KAAKmG,IAAW,eAAenG,EAAA,KAAKqgF,GAAU,EAC7D,KAAK,IAAI,iBAAiB,OAAQ,CAAC,CACjC,cAAAyB,CACN,IAAU,CACAA,GAAiB,CAAC,KAAK,IAAI,SAASA,CAAa,IACnDxhF,EAAA,KAAKggF,GAAkB,MACvB,KAAK,eAAc,EAEvB,EAAG,CACD,OAAAtrH,CACN,CAAK,EACDgrC,EAAA,KAAK4/E,GAAA6B,IAAmB,aAAa,KAAMzhF,EAAA,KAAKmG,IAAY,GAAOrnB,CAAK,CAC1E,CACA,MAAM3d,EAAI,CACR,GAAIA,EAAI,CACN,KAAM,CACJ,cAAAwyC,CACR,EAAU,SACA,KAAK,IAAI,SAASA,CAAa,GACjCrT,EAAA,KAAKggF,GAAkB3sE,GAEzB,MACF,CACI3T,EAAA,KAAKsgF,KACP,WAAW,IAAM,QACf1tH,EAAAotC,EAAA,KAAKsgF,MAAL,MAAA1tH,EAAsB,QACtB0tC,EAAA,KAAKggF,GAAkB,KACzB,EAAG,CAAC,CAER,CACA,kBAAkBpP,EAAY,GAAO,CACnC,OAAKlxE,EAAA,KAAKqgF,KAGVrgF,EAAA,KAAKmG,IAAW,yBAAyB,IAAI,EAC7CnG,EAAA,KAAKqgF,IAAW,MAAK,EACrB//E,EAAA,KAAK+/E,GAAa,MAClB//E,EAAA,KAAKggF,GAAkB,MAChBtgF,EAAA,KAAK4/E,GAAA6B,IAAmB,WAAWvQ,CAAS,GAN1C,IAOX,CACA,cAAc/rE,EAAQtsC,EAAGf,EAAG,CAC1B,MAAM25C,EAAQzR,EAAA,KAAKmG,IAAW,WAAWttC,EAAGf,CAAC,EAC7C,OAAI25C,IAAU,MAAQA,IAAU,KACvB,IAETA,EAAM,aAAatM,CAAM,EAClB,GACT,CACA,gBAAiB,CACf,OAAInF,EAAA,KAAKqgF,KACP,KAAK,kBAAiB,EACf,IAEF,EACT,CACA,iBAAkB,CACXrgF,EAAA,KAAKqgF,KAGVrgF,EAAA,KAAK4/E,GAAA6B,IAAmB,2BAA2B,IAAI,CACzD,CACA,SAAU,SACR,KAAK,eAAc,IACf7uH,EAAAotC,EAAA,KAAKmG,IAAW,UAAS,IAAzB,YAAAvzC,EAA6B,UAAW,OAC1CotC,EAAA,KAAKmG,IAAW,eAAc,EAC9BnG,EAAA,KAAKmG,IAAW,gBAAgB,IAAI,GAElCnG,EAAA,KAAKggF,MACP,aAAahgF,EAAA,KAAKggF,GAAqB,EACvC1/E,EAAA,KAAK0/E,GAAwB,OAE/B,UAAW76E,KAAUnF,EAAA,KAAKigF,IAAS,OAAM,GACvCttH,EAAAqtC,EAAA,KAAK4iE,MAAL,MAAAjwG,EAA4B,yBAAyBwyC,EAAO,YAC5DA,EAAO,UAAU,IAAI,EACrBA,EAAO,gBAAkB,GACzBA,EAAO,IAAI,OAAM,EAEnB,KAAK,IAAM,KACXnF,EAAA,KAAKigF,IAAS,MAAK,EACnBjgF,EAAA,KAAKmG,IAAW,YAAY,IAAI,CAClC,CAQA,MAAM,OAAO,CACX,SAAAtE,CACJ,EAAK,CACD,KAAK,SAAWA,EAChBF,GAAmB,KAAK,IAAKE,CAAQ,EACrC,UAAWsD,KAAUnF,EAAA,KAAKmG,IAAW,WAAW,KAAK,SAAS,EAC5D,KAAK,IAAIhB,CAAM,EACfA,EAAO,QAAO,EAEhB,MAAMnF,EAAA,KAAKmG,IAAW,kBAAkB,IAAI,EAC5C,KAAK,IAAI,OAAS,KAAK,QACvB,KAAK,WAAU,CACjB,CACA,OAAO,CACL,SAAAtE,CACJ,EAAK,CACD7B,EAAA,KAAKmG,IAAW,eAAc,EAC9BvM,EAAA,KAAKgmF,GAAAgB,IAAL,WACA,MAAMmB,EAAc,KAAK,SAAS,SAC5BnmF,EAAWiG,EAAS,SAK1B,GAJA,KAAK,SAAWA,EAChBF,GAAmB,KAAK,IAAK,CAC3B,SAAA/F,CACN,CAAK,EACGmmF,IAAgBnmF,EAClB,UAAWuJ,KAAUnF,EAAA,KAAKigF,IAAS,OAAM,EACvC96E,EAAO,OAAOvJ,CAAQ,CAG5B,CACA,IAAI,gBAAiB,CACnB,KAAM,CACJ,UAAAoG,EACA,WAAAC,CACN,EAAQ,KAAK,SAAS,QAClB,MAAO,CAACD,EAAWC,CAAU,CAC/B,CACA,IAAI,OAAQ,CACV,OAAOjC,EAAA,KAAKmG,IAAW,eAAe,SACxC,CACF,EAvuBEy8D,GAAA,YACAid,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACAv6E,GAAA,YAEOyI,GAAA,YAlBTgxE,GAAA,YAwHMmB,GAAmB,UAAG,CACxB,OAAO/gF,EAAA,KAAKigF,IAAS,OAAS,EAAIjgF,EAAA,KAAKigF,IAAS,OAAM,EAAKjgF,EAAA,KAAKmG,IAAW,WAAW,KAAK,SAAS,CACtG,EAuLAq7E,GAAqB,SAAC1iG,EAAO,CAC3BkhB,EAAA,KAAKmG,IAAW,YAAW,EAC3B,KAAM,CACJ,OAAA5vB,CACN,EAAQuI,EACJ,GAAIvI,IAAWypB,EAAA,KAAKugF,IAAW,MAAQhqG,EAAO,aAAa,MAAM,IAAM,OAASA,EAAO,UAAU,SAAS,cAAc,GAAKA,EAAO,UAAU,SAAS,iBAAiB,GAAKA,EAAO,UAAU,SAAS,2BAA2B,IAAMypB,EAAA,KAAKugF,IAAW,IAAI,SAAShqG,CAAM,EAAG,CAC5Q,KAAM,CACJ,MAAA60B,CACR,EAAU9U,GAAY,SAChB,GAAIxX,EAAM,SAAW,GAAKA,EAAM,SAAWssB,EACzC,OAEFpL,EAAA,KAAKmG,IAAW,eAAe,YAAa,GAAM,EAAI,EACtDnG,EAAA,KAAKugF,IAAW,IAAI,UAAU,IAAI,MAAM,EACxC,KAAK,cAAa,EAClBnR,GAAgB,kBAAkB,KAAMpvE,EAAA,KAAKmG,IAAW,YAAc,MAAO,CAC3E,OAAQnG,EAAA,KAAKugF,IAAW,IACxB,EAAGzhG,EAAM,EACT,EAAGA,EAAM,CACjB,CAAO,EACDkhB,EAAA,KAAKugF,IAAW,IAAI,iBAAiB,YAAa,IAAM,CACtDvgF,EAAA,KAAKugF,IAAW,IAAI,UAAU,OAAO,MAAM,EAC3C,KAAK,cAAc,EAAI,CACzB,EAAG,CACD,KAAM,GACN,OAAQvgF,EAAA,KAAKmG,IAAW,OAChC,CAAO,EACDrnB,EAAM,eAAc,CACtB,CACF,EAoII2iG,GAAkB,UAAG,CACvB,OAAOzhF,EAAA2/E,GAAsB/wE,IAAa,IAAI5O,EAAA,KAAKmG,IAAW,SAAS,CACzE,EAIAw7E,GAAgB,SAAC7mG,EAAQ,CACvB,MAAMorB,EAAalG,EAAA,KAAK4/E,GAAA6B,IACxB,OAAOv7E,EAAa,IAAIA,EAAW,UAAU,YAAYprB,CAAM,EAAI,IACrE,EA+CA4mG,GAAe,UAAG,CAChB,KAAM,CACJ,EAAA7oH,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,CACN,EAAQ,KAAK,mBACH0pC,EAAM,KAAK,IAAI,EAAGttE,CAAC,EACnBwtE,EAAM,KAAK,IAAI,EAAGvuE,CAAC,EACnByuE,EAAM,KAAK,IAAI,OAAO,WAAY1tE,EAAI2jC,CAAK,EAC3CiqC,EAAM,KAAK,IAAI,OAAO,YAAa3uE,EAAI2kC,CAAM,EAC7CT,GAAWmqC,EAAMI,GAAO,EAAI1tE,EAC5BojC,GAAWoqC,EAAMI,GAAO,EAAI3uE,EAC5B,CAAC+jC,EAASC,CAAO,EAAI,KAAK,SAAS,SAAW,MAAQ,EAAI,CAACE,EAASC,CAAO,EAAI,CAACA,EAASD,CAAO,EACtG,MAAO,CACL,QAAAH,EACA,QAAAC,CACN,CACE,EA6JA8kF,GAAQ,UAAG,CACT,UAAWz7E,KAAUnF,EAAA,KAAKigF,IAAS,OAAM,EACnC96E,EAAO,WACTA,EAAO,OAAM,CAGnB,EA9qBAhrB,GAjBIwlG,GAiBG,eAAe,IACtBxlF,EAlBIwlF,GAkBG/wE,GAAe,IAAI,IAAI,CAACk4D,GAAgB8N,GAAW4H,GAAapN,GAAiBmN,EAAe,EAAE,IAAIhlG,GAAQ,CAACA,EAAK,YAAaA,CAAI,CAAC,CAAC,GAlBhJ,IAAMyqG,GAANrC,GA6uBA,SAASsC,GAAkB5qH,EAAGU,EAAG,CAC/B,OAAIV,IAAMU,EACD,EAEFV,EAAE,wBAAwBU,CAAC,EAAI,KAAK,4BAA8B,GAAK,CAChF,CACA,SAASmqH,GAAa9yF,EAAM,OAC1B,OAAKA,EAGDA,EAAK,WAAa,KAAK,aAClBA,EAAK,QAAQ,YAAY,IAE3Bx8B,EAAAw8B,EAAK,gBAAL,YAAAx8B,EAAoB,QAAQ,gBAAiB,KAL3C,IAMX,CACA,SAASuvH,GAAcC,EAAOC,EAASC,EAAOC,EAAS,CACrD,GAAIH,IAAUE,EACZ,OAAOD,GAAWE,EAEpB,MAAMC,EAAWJ,EAAM,wBAAwBE,CAAK,EACpD,OAAIE,EAAW,KAAK,4BACX,GAELA,EAAW,KAAK,4BACX,GAEF,IACT,CACA,SAASC,GAAsB19E,EAAWyqB,EAAQrc,EAAW,CAC3D,GAAIpO,EAAU,WAAa,KAAK,cAAgB,CAACA,EAAU,UAAU,SAAS,WAAW,GAAKyqB,IAAWzqB,EAAU,WAAW,OAC5H,MAAO,CACL,UAAAA,EACA,OAAAyqB,CACN,EAEE,IAAIkzD,EAAW39E,EAAU,UAIzB,OAHI29E,GAAA,YAAAA,EAAU,YAAa,KAAK,cAAgBA,EAAS,UAAU,SAAS,cAAc,IACxFA,EAAWA,EAAS,iBAElB,CAACA,GAAY,CAACvvE,EAAU,SAASuvE,CAAQ,EACpC,KAELA,EAAS,WAAa,KAAK,UACtB,CACL,UAAWA,EACX,OAAQA,EAAS,YAAY,MACnC,EAES,CACL,UAAWA,EACX,OAAQA,EAAS,WAAW,MAChC,CACA,CACA,MAAMC,GAAN,MAAMA,EAAU,CAed,YAAY,CACV,cAAAt6C,EAAgB,KAChB,WAAAl7B,EAAa,KACb,UAAA+E,EACA,UAAAiB,EAAY,IAChB,EAAK,CApBLhZ,EAAA,KAAAyoF,IACEzoF,EAAA,KAAAgkE,GAAU,MACVhkE,EAAA,KAAA0oF,GAAW,IAAI,KACf1oF,EAAA,KAAAomF,GAAa,MACbpmF,EAAA,KAAA8U,GAAiB,MACjB9U,EAAA,KAAAiW,GAAc,MACdjW,EAAA,KAAA2oF,GAAqB,MACrB3oF,EAAA,KAAA4oF,GAAY,IAAI,KAiBd,GAHA,KAAK,UAAY7wE,EACjB5R,EAAA,KAAK2O,GAAiBo5B,GACtB/nC,EAAA,KAAK8P,GAAcjD,GACfgG,EAAW,CACb,MAAM6vE,EAAehjF,EAAA2iF,GAAUM,IAAY,IAAI9vE,CAAS,EA4BxD,GA3BI6vE,GAAA,MAAAA,EAAc,eAChBA,EAAa,aAAa,OAAM,EAChChjF,EAAA2iF,GAAUO,IAAY,OAAOF,EAAa,YAAY,GAExDhjF,EAAA2iF,GAAUM,IAAY,IAAI9vE,EAAW,CACnC,UAAW,IACnB,CAAO,EACDnT,EAAA2iF,GAAUQ,IAAc,IAAIhwE,CAAS,EACrC7S,EAAA,KAAKigF,GAAaptE,GAClB7S,EAAA,KAAKwiF,GAAqB,IAAI,iBAAiBM,GAAW,WACxD,GAAI,GAACpjF,EAAA,KAAKm+D,KAAW,GAACvrG,EAAAotC,EAAA,KAAKugF,MAAL,MAAA3tH,EAAiB,cAAe,CAACgnC,EAAAjnC,EAAAgwH,GAAUU,GAAAC,IAAV,KAAA3wH,KAGvD,SAAW,CACT,WAAA4wH,CACV,IAAaH,EACH,UAAWh0F,KAAQm0F,EACjB,GAAIn0F,EAAK,WAAa,KAAK,cAAgBA,EAAK,UAAU,SAAS,cAAc,EAAG,CAClFwK,EAAAhkB,EAAA+sG,GAAUU,GAAAzrE,IAAV,KAAAhiC,GACA,MACF,EAGN,CAAC,GACDoqB,EAAA,KAAK8iF,IAAmB,QAAQ3vE,EAAW,CACzC,UAAW,EACnB,CAAO,EACGnT,EAAA2iF,GAAUa,MAAuB,KAAM,CACzCljF,EAAAqiF,GAAUa,GAAqB,IAAI,iBACnC,KAAM,CACJ,OAAAxuH,CACV,EAAYgrC,EAAA2iF,GAAUa,IACd,SAAS,iBAAiB,kBAAmB5pF,EAAA+oF,GAAUU,GAAAzrE,IAAiB,KAAK+qE,EAAS,EAAG,CACvF,OAAA3tH,CACV,CAAS,EACD,SAAS,iBAAiB,cAAe,IAAM,CAC7CsrC,EAAAqiF,GAAUc,GAAe,GAC3B,EAAG,CACD,OAAAzuH,CACV,CAAS,EACD,SAAS,iBAAiB,YAAa,IAAM,CAC3CsrC,EAAAqiF,GAAUc,GAAe,GAC3B,EAAG,CACD,OAAAzuH,CACV,CAAS,EACD,OAAO,iBAAiB,OAAQ,IAAM,CACpCsrC,EAAAqiF,GAAUc,GAAe,GAC3B,EAAG,CACD,OAAAzuH,CACV,CAAS,CACH,CACF,CACF,CACA,UAAUspC,EAAQ,WAChB,GAAI,CAAC0B,EAAA,KAAKm+D,IAAS,CACjB79D,EAAA,KAAK69D,GAAU7/D,IACX1rC,EAAAotC,EAAA,KAAKugF,MAAL,MAAA3tH,EAAiB,aAAegnC,EAAAjnC,EAAAgwH,GAAUU,GAAAC,IAAV,KAAA3wH,IAClCinC,EAAAhkB,EAAA+sG,GAAUU,GAAAzrE,IAAV,KAAAhiC,GAEF,MACF,CACA,GAAIoqB,EAAA,KAAKm+D,MAAY7/D,EAAQ,CAC3B,GAAI0B,EAAA,KAAK6iF,IAAS,KAAO,EACvB,UAAW/kF,KAAQkC,EAAA,KAAK6iF,IAAS,OAAM,EACrC/kF,EAAK,OAAM,EACXQ,EAAO,OAAOR,CAAI,EAGtBwC,EAAA,KAAK69D,GAAU7/D,EACjB,CACF,CA4OA,WAAW,aAAc,CACvB,OAAOrJ,GAAO,KAAM,cAAe,IAAIo+D,EAAe,CACxD,CAqCA,KAAK5rB,EAAYi8C,EAAkB,GAAOC,EAAU,GAAO,CACzD,MAAMloG,EAAKutB,GAAA25E,GAAU55E,IAAV,IACLjL,EAAOlE,EAAA,KAAKgpF,GAAAgB,IAAL,WACPtsB,EAAOqrB,GAAU,YAAY,cAAc,MAAM,EACvD7kF,EAAK,OAAOw5D,CAAI,EAChB,MAAM58E,EAAOioG,GAAU,YAAY,cAAc,MAAM,EACvDrrB,EAAK,OAAO58E,CAAI,EAChB,MAAMmpG,EAAS,QAAQpoG,CAAE,GACzBf,EAAK,aAAa,KAAMmpG,CAAM,EAC9BnpG,EAAK,aAAa,gBAAiB,oBAAoB,EACnDgpG,GACF1jF,EAAA,KAAK+iF,IAAU,IAAItnG,EAAIf,CAAI,EAE7B,MAAM6zF,EAAaoV,EAAU/pF,EAAA,KAAKgpF,GAAAkB,IAAL,UAAqBxsB,EAAMusB,GAAU,KAC5DE,EAAMpB,GAAU,YAAY,cAAc,KAAK,EACrD,OAAA7kF,EAAK,OAAOimF,CAAG,EACfA,EAAI,aAAa,OAAQ,IAAIF,CAAM,EAAE,EACrC,KAAK,iBAAiB/lF,EAAM2pC,CAAU,EACtCznC,EAAA,KAAK6iF,IAAS,IAAIpnG,EAAIqiB,CAAI,EACnB,CACL,GAAAriB,EACA,WAAY,QAAQ8yF,CAAU,GACpC,CACE,CACA,YAAY9mC,EAAYu8C,EAA6B,CACnD,MAAMvoG,EAAKutB,GAAA25E,GAAU55E,IAAV,IACLjL,EAAOlE,EAAA,KAAKgpF,GAAAgB,IAAL,WACPtsB,EAAOqrB,GAAU,YAAY,cAAc,MAAM,EACvD7kF,EAAK,OAAOw5D,CAAI,EAChB,MAAM58E,EAAOioG,GAAU,YAAY,cAAc,MAAM,EACvDrrB,EAAK,OAAO58E,CAAI,EAChB,MAAMmpG,EAAS,QAAQpoG,CAAE,GACzBf,EAAK,aAAa,KAAMmpG,CAAM,EAC9BnpG,EAAK,aAAa,gBAAiB,oBAAoB,EACvD,IAAIupG,EACJ,GAAID,EAA6B,CAC/B,MAAMjuC,EAAO4sC,GAAU,YAAY,cAAc,MAAM,EACvDrrB,EAAK,OAAOvhB,CAAI,EAChBkuC,EAAS,QAAQxoG,CAAE,GACnBs6D,EAAK,aAAa,KAAMkuC,CAAM,EAC9BluC,EAAK,aAAa,YAAa,mBAAmB,EAClD,MAAMv+C,EAAOmrF,GAAU,YAAY,cAAc,MAAM,EACvD5sC,EAAK,OAAOv+C,CAAI,EAChBA,EAAK,aAAa,QAAS,GAAG,EAC9BA,EAAK,aAAa,SAAU,GAAG,EAC/BA,EAAK,aAAa,OAAQ,OAAO,EACjC,MAAMusF,EAAMpB,GAAU,YAAY,cAAc,KAAK,EACrD5sC,EAAK,OAAOguC,CAAG,EACfA,EAAI,aAAa,OAAQ,IAAIF,CAAM,EAAE,EACrCE,EAAI,aAAa,SAAU,MAAM,EACjCA,EAAI,aAAa,OAAQ,OAAO,EAChCA,EAAI,aAAa,YAAa,SAAS,EACvCA,EAAI,UAAU,IAAI,MAAM,CAC1B,CACA,MAAMG,EAAOvB,GAAU,YAAY,cAAc,KAAK,EACtD7kF,EAAK,OAAOomF,CAAI,EAChBA,EAAK,aAAa,OAAQ,IAAIL,CAAM,EAAE,EAClCI,GACFC,EAAK,aAAa,OAAQ,QAAQD,CAAM,GAAG,EAE7C,MAAME,EAAOD,EAAK,UAAS,EAC3B,OAAApmF,EAAK,OAAOqmF,CAAI,EAChBD,EAAK,UAAU,IAAI,aAAa,EAChCC,EAAK,UAAU,IAAI,kBAAkB,EACrC,KAAK,iBAAiBrmF,EAAM2pC,CAAU,EACtCznC,EAAA,KAAK6iF,IAAS,IAAIpnG,EAAIqiB,CAAI,EACnBriB,CACT,CACA,aAAaA,EAAIgsD,EAAY,CAC3BznC,EAAA,KAAK+iF,IAAU,OAAOtnG,CAAE,EACxB,KAAK,iBAAiBA,EAAIgsD,CAAU,CACtC,CACA,iBAAiB28C,EAAa38C,EAAY,OACxC,GAAI,CAACA,EACH,OAEF,KAAM,CACJ,KAAA3pC,EACA,KAAAirB,EACA,UAAAs7D,EACA,KAAA3pG,CACN,EAAQ+sD,EACEvqC,EAAU,OAAOknF,GAAgB,SAAWpkF,EAAA,KAAK6iF,IAAS,IAAIuB,CAAW,EAAIA,EACnF,GAAKlnF,EASL,IANIY,GACFlE,EAAA,KAAKgpF,GAAA0B,IAAL,UAAuBpnF,EAASY,GAE9BirB,GACFnvB,EAAAhnC,EAAA+vH,GAAUU,GAAAkB,IAAV,KAAA3xH,EAAkBsqC,EAAS6rB,GAEzBs7D,EAAW,CACb,KAAM,CACJ,UAAAxD,CACR,EAAU3jF,EACJ,SAAW,CAAC4H,EAAWvvC,CAAK,IAAK,OAAO,QAAQ8uH,CAAS,EACvDxD,EAAU,OAAO/7E,EAAWvvC,CAAK,CAErC,CACA,GAAImlB,EAAM,CAER,MAAM8pG,EADOtnF,EAAQ,kBACI,kBACzBtD,EAAA,KAAKgpF,GAAA0B,IAAL,UAAuBE,EAAa9pG,EACtC,EACF,CACA,aAAae,EAAIg2B,EAAO,CACtB,GAAIA,IAAU,KACZ,OAEF,MAAM3T,EAAOkC,EAAA,KAAK6iF,IAAS,IAAIpnG,CAAE,EAC5BqiB,IAGLkC,EAAAyR,EAAM0sD,IAAQ,OAAOrgE,CAAI,EACzBkC,EAAA,KAAK6iF,IAAS,OAAOpnG,CAAE,EACvBukB,EAAAyR,EAAMoxE,IAAS,IAAIpnG,EAAIqiB,CAAI,EAC7B,CACA,OAAOriB,EAAI,CACTukB,EAAA,KAAK+iF,IAAU,OAAOtnG,CAAE,EACpBukB,EAAA,KAAKm+D,MAAY,OAGrBn+D,EAAA,KAAK6iF,IAAS,IAAIpnG,CAAE,EAAE,OAAM,EAC5BukB,EAAA,KAAK6iF,IAAS,OAAOpnG,CAAE,EACzB,CACA,SAAU,WACR6kB,EAAA,KAAK69D,GAAU,MACf,UAAWrgE,KAAQkC,EAAA,KAAK6iF,IAAS,OAAM,EACrC/kF,EAAK,OAAM,EAMb,GAJAkC,EAAA,KAAK6iF,IAAS,MAAK,EACnB7iF,EAAA,KAAK+iF,IAAU,MAAK,GACpBnwH,EAAAotC,EAAA,KAAK8iF,MAAL,MAAAlwH,EAAyB,aACzB0tC,EAAA,KAAKwiF,GAAqB,MACtB9iF,EAAA,KAAKugF,IAAY,CACnB,MAAM3qH,EAAOoqC,EAAA2iF,GAAUM,IAAY,IAAIjjF,EAAA,KAAKugF,GAAU,GAClD3qH,GAAA,YAAAA,EAAM,aAAc,OACtBgkC,EAAAjnC,EAAAgwH,GAAUU,GAAAoB,IAAV,KAAA9xH,EAAqCqtC,EAAA,KAAKugF,KAC1CvgF,EAAA2iF,GAAUM,IAAY,OAAOjjF,EAAA,KAAKugF,GAAU,EAC5CvgF,EAAA2iF,GAAUQ,IAAc,OAAOnjF,EAAA,KAAKugF,GAAU,EAC1CvgF,EAAA2iF,GAAUQ,IAAc,OAAS,KACnCvtG,EAAAoqB,EAAA2iF,GAAUa,MAAV,MAAA5tG,EAA8B,QAC9B0qB,EAAAqiF,GAAUa,GAAqB,MAC/BljF,EAAAqiF,GAAUc,GAAe,MAG7BnjF,EAAA,KAAKigF,GAAa,KACpB,CACF,CACF,EAxgBEpiB,GAAA,YACA0kB,GAAA,YACAtC,GAAA,YACAtxE,GAAA,YACAmB,GAAA,YACA0yE,GAAA,YACAC,GAAA,YACOh6E,GAAA,YACA27E,GAAA,YACAlB,GAAA,YACAN,GAAA,YACAO,GAAA,YACAN,GAAA,YACAF,GAAA,YAdTI,GAAA,YAiGSoB,GAA0B,SAACtxE,EAAW,CAC3C,MAAMwxE,EAAgB3kF,EAAA,KAAKijF,IAAY,IAAI9vE,CAAS,EAC/CwxE,GAAA,MAAAA,EAAe,eAGpBA,EAAc,aAAa,OAAM,EACjC3kF,EAAA,KAAKkjF,IAAY,OAAOyB,EAAc,YAAY,EAClDA,EAAc,aAAe,KAC7BA,EAAc,KAAO,KACvB,EACOrB,GAAa,UAAG,CACrB,MAAMxwE,EAAY,SAAS,aAAY,EACvC,MAAO,CAAC,CAACA,GAAa,CAACA,EAAU,WACnC,EACO8xE,GAAqB,UAAG,CAC7B,OAAO5kF,EAAA,KAAKmjF,IAAc,KAAI,EAAG,OAAOhwE,GAAaA,EAAU,WAAW,EAAE,UAAU,KAAK8uE,EAAiB,CAC9G,EACOrqE,GAAgB,UAAG,OACxB,MAAM9E,EAAY,SAAS,aAAY,EACvC,GAAI,CAACA,GAAaA,EAAU,YAAa,CACvC,UAAWhV,KAAQkC,EAAA,KAAKkjF,IACtBplF,EAAK,OAAM,EAEbkC,EAAA,KAAKkjF,IAAY,MAAK,EACtB,MACF,CACA,MAAM2B,EAAW,IAAI,QACfC,EAAoBlrF,EAAA,KAAKypF,GAAAuB,IAAL,WACpBG,EAAS,CAAA,EACf,QAAS7tH,EAAI,EAAG2Q,EAAKirC,EAAU,WAAY57C,EAAI2Q,EAAI3Q,IAAK,CACtD,MAAMsgD,EAAQ1E,EAAU,WAAW57C,CAAC,EACpC,GAAIsgD,EAAM,UACR,SAEF,GAAI,CACF,eAAAouD,EACA,YAAAC,EACA,aAAAmf,EACA,UAAAC,CACR,EAAUztE,EACA0tE,EAAiBhD,GAAatc,CAAc,EAC5Cuf,EAAejD,GAAa8C,CAAY,EAC5C,MAAMI,EAAeF,IAAmB,KAClCG,EAAaF,IAAiB,KACpC,GAAInlF,EAAA,KAAKyjF,KAAgB2B,IAAiBC,EACxC,OAEF,GAAIvyE,EAAU,aAAe,EAAG,CAC9B,KAAM,CACJ,WAAAC,EACA,aAAAC,EACA,UAAAC,EACA,YAAAC,CACV,EAAYJ,EACEwyE,EAAcpD,GAAanvE,CAAU,EACrCwyE,EAAarD,GAAajvE,CAAS,EACnCuyE,EAAoBrD,GAAcpvE,EAAYC,EAAcC,EAAWC,CAAW,EACpFoyE,GAAeC,GAAcC,IAAsB,OACjDA,GACF5f,EAAiB7yD,EACjB8yD,EAAc7yD,EACdkyE,EAAiBI,EACjBN,EAAe/xE,EACfgyE,EAAY/xE,EACZiyE,EAAeI,IAEf3f,EAAiB3yD,EACjB4yD,EAAc3yD,EACdgyE,EAAiBK,EACjBP,EAAejyE,EACfkyE,EAAYjyE,EACZmyE,EAAeG,GAGrB,CACA,MAAMG,EAAmBX,EAAkB,OAAO3xE,GAAaqE,EAAM,eAAerE,CAAS,CAAC,EAC9F,GAAIsyE,EAAiB,SAAW,EAC9B,SAEF,IAAIC,EAAsB,GAa1B,GAZKR,IACHA,EAAiBO,EAAiB,CAAC,EACnC7f,EAAiBsf,EACjBrf,EAAc,EACd6f,EAAsB,IAEnBP,IACHA,EAAeM,EAAiB,GAAG,EAAE,EACrCT,EAAeG,EACfF,EAAYE,EAAa,WAAW,OACpCO,EAAsB,IAEpBV,EAAa,WAAa,KAAK,cACjC,GAAIA,EAAa,UAAU,SAAS,cAAc,EAAG,CACnD,MAAMW,EAAeX,EAAa,gBAClC,GAAI,CAACW,EACH,SAEFX,EAAeW,EACfV,EAAYU,EAAa,WAAa,KAAK,UAAYA,EAAa,YAAY,OAASA,EAAa,WAAW,MACnH,SAAWX,EAAa,UAAU,SAAS,WAAW,GAAKA,EAAa,WAAW,SAAWC,EAAW,CACvG,MAAMW,EAAgBnD,GAAsBuC,EAAcC,EAAWE,CAAY,EACjF,GAAI,CAACS,EACH,SAEFZ,EAAeY,EAAc,UAC7BX,EAAYW,EAAc,MAC5B,EAEF,GAAIhgB,EAAe,WAAa,KAAK,aAAc,CACjD,MAAMigB,EAAkBpD,GAAsB7c,EAAgBC,EAAaqf,CAAc,EACzF,GAAI,CAACW,EACH,SAEFjgB,EAAiBigB,EAAgB,UACjChgB,EAAcggB,EAAgB,MAChC,CACA,GAAIX,IAAmBC,GAAgB,CAACO,GAAuBD,EAAiB,SAASP,CAAc,EAAG,CACxGH,EAAO,KAAK,CAACvtE,EAAO0tE,CAAc,CAAC,EACnC,QACF,CACA,UAAW/xE,KAAasyE,EAAkB,CACxC,MAAMK,EAAY3yE,EAAU,WAC5B,GAAI,CAAC2yE,EACH,SAEF,MAAMC,EAAW,SAAS,YAAW,EAMrC,GALI5yE,IAAc+xE,EAChBa,EAAS,SAASngB,EAAgBC,CAAW,EAE7CkgB,EAAS,eAAeD,CAAS,EAE/B3yE,IAAcgyE,EAChBY,EAAS,OAAOf,EAAcC,CAAS,MAClC,CACL,MAAMvC,EAAWvvE,EAAU,UAC3B,GAAI,CAACuvE,EACH,SAEF,GAAIA,EAAS,WAAa,KAAK,cAAgBA,EAAS,UAAU,SAAS,cAAc,EAAG,CAC1F,MAAMsD,EAAetD,EAAS,gBAC9B,GAAI,CAACsD,EACH,SAEFD,EAAS,YAAYC,CAAY,CACnC,MACED,EAAS,YAAYrD,CAAQ,CAEjC,CACKqD,EAAS,WACZhB,EAAO,KAAK,CAACgB,EAAU5yE,CAAS,CAAC,CAErC,CACF,CACA,MAAM8yE,EAAqB,IAAI,IAAIlB,EAAO,IAAIvtE,GAASA,EAAM,CAAC,CAAC,CAAC,EAChE,UAAWrE,KAAanT,EAAA,KAAKmjF,IACtB8C,EAAmB,IAAI9yE,CAAS,GACnCvZ,EAAA,KAAKypF,GAAAoB,IAAL,UAAgCtxE,GAGpC,SAAW,CAACqE,EAAOrE,CAAS,IAAK4xE,EAAQ,CACvC,MAAMJ,EAAgB3kF,EAAA2iF,GAAUM,IAAY,IAAI9vE,CAAS,EACzD,GAAI,CAACwxE,EACH,SAEF,IAAIptE,EAAUstE,EAAS,IAAI1xE,CAAS,EACpC,GAAI,CAACoE,EAAS,CACZ,MAAM2uE,EAAa/yE,EAAU,sBAAqB,EAClDoE,EAAU,CAAC1+C,EAAGf,EAAGG,EAAGP,KAAO,CACzB,GAAImB,EAAIqtH,EAAW,GAAKA,EAAW,MACnC,GAAIpuH,EAAIouH,EAAW,GAAKA,EAAW,OACnC,MAAOjuH,EAAIiuH,EAAW,MACtB,OAAQxuH,EAAIwuH,EAAW,MACjC,GACQrB,EAAS,IAAI1xE,EAAWoE,CAAO,CACjC,CACA,MAAMjQ,EAAQ,CAAA,EACd,OAAS,CACP,EAAAzuC,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,CACR,IAAW+a,EAAM,iBACLhb,IAAU,GAAKC,IAAW,IAG7B,CACC,EAAA5jC,EACA,EAAAf,EACA,MAAA0kC,EACA,OAAAC,CACV,EAAY8a,EAAQ1+C,EAAGf,EAAG0kC,EAAOC,CAAM,EAC3B,EAAAD,IAAU,GAAKC,IAAW,IAG9B6K,EAAM,KAAK,IAAIzuC,CAAC,IAAIf,CAAC,KAAK0kC,CAAK,KAAKC,CAAM,MAAMD,CAAK,IAAI,GAE3D,GAAI8K,EAAM,SAAW,EACnB,SAEF,MAAMwmE,EAAY6W,EAAc,UAChC,IAAI/iF,EAAM+iF,EAAc,aACpBjqG,EAAOiqG,EAAc,KACzB,GAAI,CAAC/iF,EAAK,CACR,MAAM2sE,EAAa,kBAAkBvlE,GAAA25E,GAAU+B,IAAV,GAAwB,GAC7D9iF,EAAM,SAAS,cAAc,KAAK,EAClCA,EAAI,UAAY,YAChBA,EAAI,MAAM,SAAW,QAAQ2sE,CAAU,IACvC,MAAM4X,GAAiBvzH,EAAAotC,EAAA8tE,EAAU7+D,MAAV,YAAAr8C,EAA0B,qBAAqBotC,EAAA8tE,EAAU19D,KAChF,GAAI+1E,EACF,SAAW,CAAC7sG,EAAM/jB,CAAK,IAAK,OAAO,QAAQ4wH,CAAc,EACvDvkF,EAAI,MAAM,YAAYtoB,EAAM/jB,CAAK,EAGrC,MAAMu1B,EAAM63F,GAAU,YAAY,OAAO,EAAG,EAAG,EAAI,EACnD73F,EAAI,aAAa,cAAe,MAAM,EACtCA,EAAI,aAAa,QAAS,MAAM,EAChCA,EAAI,aAAa,SAAU,MAAM,EACjC,MAAMysE,EAAWorB,GAAU,YAAY,cAAc,UAAU,EAC/DprB,EAAS,aAAa,KAAMgX,CAAU,EACtChX,EAAS,aAAa,gBAAiB,mBAAmB,EAC1D78E,EAAOioG,GAAU,YAAY,cAAc,MAAM,EACjDprB,EAAS,OAAO78E,CAAI,EACpBoQ,EAAI,OAAOysE,CAAQ,EACnB31D,EAAI,OAAO9W,CAAG,EACd65F,EAAc,KAAOjqG,EACrBiqG,EAAc,aAAe/iF,CAC/B,CACI,CAACA,EAAI,YAAc5B,EAAA8tE,EAAU3P,MAC/Bn+D,EAAA8tE,EAAU3P,IAAQ,OAAOv8D,CAAG,EAC5B5B,EAAA,KAAKkjF,IAAY,IAAIthF,CAAG,GAE1BlnB,EAAK,aAAa,IAAK4sB,EAAM,KAAK,GAAG,CAAC,CACxC,CACF,EAIOi9E,GAAO,SAACrnF,EAAS,CAACrkC,EAAGf,EAAG0kC,EAAOC,CAAM,EAAG,CAC7C,KAAM,CACJ,MAAAyF,CACN,EAAQhF,EACJgF,EAAM,IAAM,GAAG,IAAMpqC,CAAC,IACtBoqC,EAAM,KAAO,GAAG,IAAMrpC,CAAC,IACvBqpC,EAAM,MAAQ,GAAG,IAAM1F,CAAK,IAC5B0F,EAAM,OAAS,GAAG,IAAMzF,CAAM,GAChC,EAvVFmmF,GAAA,YAwVEgB,GAAU,UAAG,CACX,MAAM94F,EAAM63F,GAAU,YAAY,OAAO,EAAG,EAAG,EAAI,EACnD,OAAA3iF,EAAA,KAAKm+D,IAAQ,OAAOrzE,CAAG,EACvBA,EAAI,aAAa,cAAe,MAAM,EAC/BA,CACT,EACAg5F,GAAe,SAACxsB,EAAMusB,EAAQ,CAC5B,MAAMtsB,EAAWorB,GAAU,YAAY,cAAc,UAAU,EAC/DrrB,EAAK,OAAOC,CAAQ,EACpB,MAAMgX,EAAa,QAAQsV,CAAM,GACjCtsB,EAAS,aAAa,KAAMgX,CAAU,EACtChX,EAAS,aAAa,gBAAiB,mBAAmB,EAC1D,MAAM6uB,EAAczD,GAAU,YAAY,cAAc,KAAK,EAC7D,OAAAprB,EAAS,OAAO6uB,CAAW,EAC3BA,EAAY,aAAa,OAAQ,IAAIvC,CAAM,EAAE,EAC7CuC,EAAY,UAAU,IAAI,MAAM,EACzB7X,CACT,EACA+V,GAAiB,SAACpnF,EAASuqC,EAAY,CACrC,SAAW,CAAC9uD,EAAKpjB,CAAK,IAAK,OAAO,QAAQkyE,CAAU,EAC9ClyE,IAAU,KACZ2nC,EAAQ,gBAAgBvkB,CAAG,EAE3BukB,EAAQ,aAAavkB,EAAKpjB,CAAK,CAGrC,EAlXF4kC,EAAMwoF,GAANU,IAQElpF,EARIwoF,GAQG55E,GAAM,GACb5O,EATIwoF,GASG+B,GAAe,GACtBvqF,EAVIwoF,GAUGa,GAAqB,MAC5BrpF,EAXIwoF,GAWGO,GAAc,IAAI,KACzB/oF,EAZIwoF,GAYGc,GAAe,IACtBtpF,EAbIwoF,GAaGQ,GAAgB,IAAI,KAC3BhpF,EAdIwoF,GAcGM,GAAc,IAAI,SAd3B,IAAMoD,GAAN1D,GA6gBA,SAAS2D,GAAW/wH,EAAO,CACzB,MAAO,IAAIA,EAAQ,KAAK,QAAQ,CAAC,CAAC,GACpC,CACA,MAAMgxH,GAAN,MAAMA,EAAgB,CAQpB,YAAYC,EAASC,EAAa5kF,EAAU6kF,EAAe,CAR7DvsF,EAAA,KAAAwsF,IACExsF,EAAA,KAAAysF,GAAe,CAAA,GACfzsF,EAAA,KAAA0sF,GAAwB,IAAI,KAC5B1sF,EAAA,KAAA2sF,GAAiB,MACjB3sF,EAAA,KAAA4sF,GAAW,GACX5sF,EAAA,KAAAwqD,GAAa,GACbxqD,EAAA,KAAAuqD,GAAc,GAGZpkD,EAAA,KAAKymF,GAAWP,GAChBlmF,EAAA,KAAKsmF,GAAeH,GACpBnmF,EAAA,KAAKqkD,GAAa9iD,EAAS,QAAQ,WACnCvB,EAAA,KAAKokD,GAAc7iD,EAAS,QAAQ,YACpCvB,EAAA,KAAKwmF,GAAiBJ,EACxB,CACA,QAAS,CACP,MAAM3hF,EAAY,SAAS,cAAc,KAAK,EAC9CA,EAAU,UAAY,kBACtB,QAAS7tC,EAAI,EAAGA,EAAI8oC,EAAA,KAAK4mF,IAAa,OAAQ1vH,GAAK,EAAG,CACpD,MAAM+sB,EAAK2V,EAAA,KAAK+sF,GAAAK,IAAL,UAA6BhnF,EAAA,KAAK4mF,IAAa,SAAS1vH,EAAGA,EAAI,CAAC,GACvE+sB,GACF8gB,EAAU,OAAO9gB,CAAE,CAEvB,CACA,OAAA8gB,EAAU,iBAAiB,cAAejmB,GAAS,OACjD,GAAI,EAAEA,EAAM,kBAAkB,mBAC5B,OAEF,MAAMmoG,EAAanoG,EAAM,OACnBsqC,EAASppB,EAAA,KAAK6mF,IAAsB,IAAII,CAAU,EACxD,GAAI,CAAC79D,EACH,OAEF,MAAM89D,GAAct0H,EAAAotC,EAAAumF,GAAgBY,MAAhB,YAAAv0H,EAA8B,QAClD,GAAIs0H,IAAgBD,EAClB,OAEEC,IACFA,EAAY,MAAQ,EACpBA,EAAY,OAAS,GAEvB5mF,EAAAimF,GAAgBY,GAAe,IAAI,QAAQF,CAAU,GACrD,KAAM,CACJ,iBAAAp8C,EACA,GAAAvxC,EACA,GAAAC,EACA,MAAAiD,EACA,OAAAC,CACR,EAAU2sB,EACEg+D,EAAapnF,EAAA,KAAK8mF,IAAL,WACbO,EAAU,KAAK,KAAK/tF,EAAK8tF,EAAW,KAAK,EACzCE,EAAU,KAAK,KAAK/tF,EAAK6tF,EAAW,MAAM,EAC1CG,EAAU,KAAK,OAAOjuF,EAAKkD,EAAQwD,EAAA,KAAK2kD,KAAcyiC,EAAW,KAAK,EACtEI,EAAU,KAAK,OAAOjuF,EAAKkD,EAASuD,EAAA,KAAK0kD,KAAe0iC,EAAW,MAAM,EAC/EH,EAAW,MAAQM,EAAUF,EAC7BJ,EAAW,OAASO,EAAUF,EAC9B,MAAM5jG,EAAMujG,EAAW,WAAW,IAAI,EACtCvjG,EAAI,aAAa,GAAGmnD,CAAgB,EACpCnnD,EAAI,UAAU,CAAC2jG,EAAS,CAACC,CAAO,EAChC5jG,EAAI,UAAU0jG,EAAY,EAAG,CAAC,CAChC,CAAC,EACMriF,CACT,CAgCF,EA7FE6hF,GAAA,YACAC,GAAA,YACAC,GAAA,YACAC,GAAA,YACApiC,GAAA,YACAD,GAAA,YACOyiC,GAAA,YAPTR,GAAA,YA+DEK,GAAuB,SAAC,CAAC1tF,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAAG,CAChD,MAAM6C,EAAQ,KAAK,OAAO9C,EAAKJ,GAAM0G,EAAA,KAAK2kD,KAAahrD,EAAKJ,GAAMyG,EAAA,KAAK0kD,GAAW,EAC5EjoD,EAAS,KAAK,OAAOjD,EAAKF,GAAM0G,EAAA,KAAK2kD,KAAalrD,EAAKF,GAAMyG,EAAA,KAAK0kD,GAAW,EACnF,GAAIloD,EAAQwD,EAAA,KAAK+mF,KAAYtqF,EAASuD,EAAA,KAAK+mF,IACzC,OAAO,KAET,MAAM9vF,EAAY,EAAEyC,EAAKJ,GAAM0G,EAAA,KAAK2kD,IAAanoD,GAAQ7C,EAAKJ,GAAMyG,EAAA,KAAK0kD,IAAcloD,GAAQhD,EAAKF,GAAM0G,EAAA,KAAK2kD,IAAaloD,GAAShD,EAAKF,GAAMyG,EAAA,KAAK0kD,IAAcjoD,EAAQ,EAAG,CAAC,EACzKouC,EAAmBn0C,GAAK,iBAAiBO,CAAS,EAClDgwF,EAAa,SAAS,cAAc,QAAQ,EAClD,OAAAA,EAAW,UAAY,4BACvBA,EAAW,MAAQ,EACnBA,EAAW,OAAS,EACpB,OAAO,OAAOA,EAAW,MAAO,CAC9B,QAAS,EACT,SAAU,WACV,KAAMX,GAAWhtF,CAAE,EACnB,IAAKgtF,GAAW/sF,CAAE,EAClB,MAAO+sF,GAAW9pF,EAAQwD,EAAA,KAAK2kD,GAAU,EACzC,OAAQ2hC,GAAW7pF,EAASuD,EAAA,KAAK0kD,GAAW,EAC5C,gBAAiB,QACjB,UAAW,UAAUztD,EAAU,KAAK,GAAG,CAAC,GAC9C,CAAK,EACD+I,EAAA,KAAK6mF,IAAsB,IAAII,EAAY,CACzC,iBAAAp8C,EACA,MAAAruC,EACA,OAAAC,EACA,GAAAnD,EACA,GAAAC,CACN,CAAK,EACM0tF,CACT,EAtFA9sF,EAPIosF,GAOGY,GAAe,MAPxB,IAAMM,GAANlB,GAoHE,WAAW,mBAAqB,CAC9B,kBAAmB9b,EACvB,EAEA,WAAW,SAAW,CACpB,eAAgB30E,GAChB,sBAAuBksF,GACvB,2BAA4B7uF,GAC5B,qBAAsBD,GACtB,0BAA2B6kB,GAC3B,gBAAiB2sD,GACjB,eAAgB3xE,GAChB,eAAgBQ,GAChB,aAAc2P,GACd,MAAO1hB,GACP,YAAa6wE,GACb,uBAAwB99D,GACxB,aAAc0O,GACd,cAAeowD,GACf,UAAWgzB,GACX,YAAa/vF,GACb,UAAWsI,GACX,kBAAmBmF,GACnB,YAAa6jD,GACb,mBAAoBzoD,GACpB,sBAAuBC,GACvB,OAAQ+B,GACR,QAASH,GACT,QAASxG,GACT,oBAAqBskD,GACrB,UAAWxrD,GACX,oBAAqBoC,GACrB,aAAcuJ,GACd,UAAWC,GACX,oBAAqBg1B,GACrB,QAASj5B,GACT,QAASC,GACT,QAASC,GACT,QAASC,GACT,UAAWE,GACX,cAAe4E,GACf,iBAAkB5F,GAClB,IAAK5G,GACL,YAAa2O,GACb,kBAAmB/M,GACnB,kBAAmB1B,GACnB,sBAAuBq0D,GACvB,cAAe7nD,GACf,UAAW+nD,GACX,eAAgB/0D,GAChB,cAAeuL,GACf,4BAA6BI,GAC7B,eAAgB6F,GAChB,kBAAmBjP,GACnB,mBAAoBgM,GACpB,OAAQ1M,GACR,mBAAoB+/E,GACpB,UAAW70E,GACX,wBAAyB4C,GACzB,UAAW2kD,GACX,gBAAiB+/B,GACjB,aAAcjqE,GACd,cAAe7oB,GACf,KAAM+B,GACN,eAAgBjD,GAChB,QAAS/X,GACT,SAAUuhB,EACZ,iqCC902BWyqF,GAAU,SAKV5pF,GAAQ,OAAO,MAAQ,UAAY,KAAK,OAAS,MAAQ,MACzD,OAAO,QAAU,UAAY,OAAO,SAAW,QAAU,QAC1D,SAAS,aAAa,EAAC,GACvB,CAAA,EAGC6pF,GAAa,MAAM,UAAWC,GAAW,OAAO,UAChDC,GAAc,OAAO,OAAW,IAAc,OAAO,UAAY,KAGjEC,GAAOH,GAAW,KACzBI,GAAQJ,GAAW,MACnBK,GAAWJ,GAAS,SACpBK,GAAiBL,GAAS,eAGnBM,GAAsB,OAAO,YAAgB,IACpDC,GAAmB,OAAO,SAAa,IAIhCC,GAAgB,MAAM,QAC7BC,GAAa,OAAO,KACpBC,GAAe,OAAO,OACtBC,GAAeL,IAAuB,YAAY,OAG3CM,GAAS,MAChBC,GAAY,SAGLC,GAAa,CAAC,CAAC,SAAU,IAAI,EAAE,qBAAqB,UAAU,EAC9DC,GAAqB,CAAC,UAAW,gBAAiB,WAC3D,uBAAwB,iBAAkB,gBAAgB,EAGjDC,GAAkB,KAAK,IAAI,EAAG,EAAE,EAAI,ECrChC,SAASC,GAAcluD,EAAMmuD,EAAY,CACtD,OAAAA,EAAaA,GAAc,KAAOnuD,EAAK,OAAS,EAAI,CAACmuD,EAC9C,UAAW,CAIhB,QAHI7yF,EAAS,KAAK,IAAI,UAAU,OAAS6yF,EAAY,CAAC,EAClD/rG,EAAO,MAAMkZ,CAAM,EACnB7c,EAAQ,EACLA,EAAQ6c,EAAQ7c,IACrB2D,EAAK3D,CAAK,EAAI,UAAUA,EAAQ0vG,CAAU,EAE5C,OAAQA,EAAU,CAChB,IAAK,GAAG,OAAOnuD,EAAK,KAAK,KAAM59C,CAAI,EACnC,IAAK,GAAG,OAAO49C,EAAK,KAAK,KAAM,UAAU,CAAC,EAAG59C,CAAI,EACjD,IAAK,GAAG,OAAO49C,EAAK,KAAK,KAAM,UAAU,CAAC,EAAG,UAAU,CAAC,EAAG59C,CAAI,CACrE,CACI,IAAItG,EAAO,MAAMqyG,EAAa,CAAC,EAC/B,IAAK1vG,EAAQ,EAAGA,EAAQ0vG,EAAY1vG,IAClC3C,EAAK2C,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAA3C,EAAKqyG,CAAU,EAAI/rG,EACZ49C,EAAK,MAAM,KAAMlkD,CAAI,CAC9B,CACF,CCzBe,SAASsyG,GAAS7zF,EAAK,CACpC,IAAI3d,EAAO,OAAO2d,EAClB,OAAO3d,IAAS,YAAeA,IAAS,UAAY,CAAC,CAAC2d,CACxD,CCHe,SAAS8zF,GAAO9zF,EAAK,CAClC,OAAOA,IAAQ,IACjB,CCFe,SAAS+zF,GAAY/zF,EAAK,CACvC,OAAOA,IAAQ,MACjB,CCAe,SAASg0F,GAAUh0F,EAAK,CACrC,OAAOA,IAAQ,IAAQA,IAAQ,IAAS8yF,GAAS,KAAK9yF,CAAG,IAAM,kBACjE,CCJe,SAASi0F,GAAUj0F,EAAK,CACrC,MAAO,CAAC,EAAEA,GAAOA,EAAI,WAAa,EACpC,CCAe,SAASk0F,GAAU9vG,EAAM,CACtC,IAAIi9D,EAAM,WAAaj9D,EAAO,IAC9B,OAAO,SAAS4b,EAAK,CACnB,OAAO8yF,GAAS,KAAK9yF,CAAG,IAAMqhD,CAChC,CACF,CCNA,MAAA8yC,GAAeD,GAAU,QAAQ,ECAjCE,GAAeF,GAAU,QAAQ,ECAjCG,GAAeH,GAAU,MAAM,ECA/BI,GAAeJ,GAAU,QAAQ,ECAjCK,GAAeL,GAAU,OAAO,ECAhCM,GAAeN,GAAU,QAAQ,ECAjCO,GAAeP,GAAU,aAAa,ECCtC,IAAIQ,GAAaR,GAAU,UAAU,EAIjCS,GAAW/rF,GAAK,UAAYA,GAAK,SAAS,WAC1C,MAAO,KAAO,YAAc,OAAO,WAAa,UAAY,OAAO+rF,IAAY,aACjFD,GAAa,SAAS10F,EAAK,CACzB,OAAO,OAAOA,GAAO,YAAc,EACrC,GAGF,MAAA00F,GAAeA,GCZfE,GAAeV,GAAU,QAAQ,ECO1B,IAAIW,GACL5B,KAAqB,CAAC,kBAAkB,KAAK,OAAO,QAAQ,CAAC,GAAK2B,GAAa,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,GAEjHE,GAAU,OAAO,IAAQ,KAAeF,GAAa,IAAI,GAAG,ECP5DG,GAAab,GAAU,UAAU,EAMrC,SAASc,GAAoBh1F,EAAK,CAChC,OAAOA,GAAO,MAAQ00F,GAAW10F,EAAI,OAAO,GAAKy0F,GAAcz0F,EAAI,MAAM,CAC3E,CAEA,MAAA+0F,GAAgBF,GAAiBG,GAAsBD,GCVvDE,GAAe/B,IAAiBgB,GAAU,OAAO,ECFlC,SAASgB,GAAIl1F,EAAKvc,EAAK,CACpC,OAAOuc,GAAO,MAAQ+yF,GAAe,KAAK/yF,EAAKvc,CAAG,CACpD,CCFA,IAAI0xG,GAAcjB,GAAU,WAAW,GAItC,UAAW,CACLiB,GAAY,SAAS,IACxBA,GAAc,SAASn1F,EAAK,CAC1B,OAAOk1F,GAAIl1F,EAAK,QAAQ,CAC1B,EAEJ,GAAC,EAED,MAAAm1F,GAAeA,GCXA,SAASC,GAASp1F,EAAK,CACpC,MAAO,CAACw0F,GAASx0F,CAAG,GAAKuzF,GAAUvzF,CAAG,GAAK,CAAC,MAAM,WAAWA,CAAG,CAAC,CACnE,CCFe,SAASq1F,GAAMr1F,EAAK,CACjC,OAAOo0F,GAASp0F,CAAG,GAAKszF,GAAOtzF,CAAG,CACpC,CCLe,SAASs1F,GAASj1H,EAAO,CACtC,OAAO,UAAW,CAChB,OAAOA,CACT,CACF,CCFe,SAASk1H,GAAwBC,EAAiB,CAC/D,OAAO,SAASC,EAAY,CAC1B,IAAIC,EAAeF,EAAgBC,CAAU,EAC7C,OAAO,OAAOC,GAAgB,UAAYA,GAAgB,GAAKA,GAAgBhC,EACjF,CACF,CCPe,SAASiC,GAAgBlyG,EAAK,CAC3C,OAAO,SAASuc,EAAK,CACnB,OAAOA,GAAO,KAAO,OAASA,EAAIvc,CAAG,CACvC,CACF,CCFA,MAAAmyG,GAAeD,GAAgB,YAAY,ECE3CE,GAAeN,GAAwBK,EAAa,ECCpD,IAAIE,GAAoB,8EACxB,SAASC,GAAa/1F,EAAK,CAGzB,OAAOqzF,GAAgBA,GAAarzF,CAAG,GAAK,CAAC+0F,GAAW/0F,CAAG,EAC7C61F,GAAa71F,CAAG,GAAK81F,GAAkB,KAAKhD,GAAS,KAAK9yF,CAAG,CAAC,CAC9E,CAEA,MAAA+1F,GAAe/C,GAAsB+C,GAAeT,GAAS,EAAK,ECXlEU,GAAeL,GAAgB,QAAQ,ECKvC,SAASM,GAAYzyG,EAAM,CAEzB,QADIkc,EAAO,CAAA,EACFxgC,EAAIskB,EAAK,OAAQ,EAAI,EAAG,EAAItkB,EAAG,EAAE,EAAGwgC,EAAKlc,EAAK,CAAC,CAAC,EAAI,GAC7D,MAAO,CACL,SAAU,SAASC,EAAK,CAAE,OAAOic,EAAKjc,CAAG,IAAM,EAAM,EACrD,KAAM,SAASA,EAAK,CAClB,OAAAic,EAAKjc,CAAG,EAAI,GACLD,EAAK,KAAKC,CAAG,CACtB,CACJ,CACA,CAKe,SAASyyG,GAAoBl2F,EAAKxc,EAAM,CACrDA,EAAOyyG,GAAYzyG,CAAI,EACvB,IAAI2yG,EAAa1C,GAAmB,OAChC2C,EAAcp2F,EAAI,YAClBic,EAASy4E,GAAW0B,CAAW,GAAKA,EAAY,WAAc1D,GAG9DzyF,EAAO,cAGX,IAFIi1F,GAAIl1F,EAAKC,CAAI,GAAK,CAACzc,EAAK,SAASyc,CAAI,GAAGzc,EAAK,KAAKyc,CAAI,EAEnDk2F,KACLl2F,EAAOwzF,GAAmB0C,CAAU,EAChCl2F,KAAQD,GAAOA,EAAIC,CAAI,IAAMgc,EAAMhc,CAAI,GAAK,CAACzc,EAAK,SAASyc,CAAI,GACjEzc,EAAK,KAAKyc,CAAI,CAGpB,CChCe,SAASzc,GAAKwc,EAAK,CAChC,GAAI,CAAC6zF,GAAS7zF,CAAG,EAAG,MAAO,CAAA,EAC3B,GAAImzF,GAAY,OAAOA,GAAWnzF,CAAG,EACrC,IAAIxc,EAAO,CAAA,EACX,QAASC,KAAOuc,EAASk1F,GAAIl1F,EAAKvc,CAAG,GAAGD,EAAK,KAAKC,CAAG,EAErD,OAAI+vG,IAAY0C,GAAoBl2F,EAAKxc,CAAI,EACtCA,CACT,CCPe,SAAS89D,GAAQthD,EAAK,CACnC,GAAIA,GAAO,KAAM,MAAO,GAGxB,IAAIe,EAASi1F,GAAUh2F,CAAG,EAC1B,OAAI,OAAOe,GAAU,WACnBk0F,GAAQj1F,CAAG,GAAKm0F,GAASn0F,CAAG,GAAKm1F,GAAYn1F,CAAG,GACxCe,IAAW,EACdi1F,GAAUxyG,GAAKwc,CAAG,CAAC,IAAM,CAClC,CCde,SAASq2F,GAAQC,EAAQC,EAAO,CAC7C,IAAIC,EAAQhzG,GAAK+yG,CAAK,EAAGx1F,EAASy1F,EAAM,OACxC,GAAIF,GAAU,KAAM,MAAO,CAACv1F,EAE5B,QADIf,EAAM,OAAOs2F,CAAM,EACdt0H,EAAI,EAAGA,EAAI++B,EAAQ/+B,IAAK,CAC/B,IAAIyhB,EAAM+yG,EAAMx0H,CAAC,EACjB,GAAIu0H,EAAM9yG,CAAG,IAAMuc,EAAIvc,CAAG,GAAK,EAAEA,KAAOuc,GAAM,MAAO,EACvD,CACA,MAAO,EACT,CCPe,SAASl9B,GAAEk9B,EAAK,CAC7B,GAAIA,aAAel9B,GAAG,OAAOk9B,EAC7B,GAAI,EAAE,gBAAgBl9B,IAAI,OAAO,IAAIA,GAAEk9B,CAAG,EAC1C,KAAK,SAAWA,CAClB,CAEAl9B,GAAE,QAAU0vH,GAGZ1vH,GAAE,UAAU,MAAQ,UAAW,CAC7B,OAAO,KAAK,QACd,EAIAA,GAAE,UAAU,QAAUA,GAAE,UAAU,OAASA,GAAE,UAAU,MAEvDA,GAAE,UAAU,SAAW,UAAW,CAChC,OAAO,OAAO,KAAK,QAAQ,CAC7B,ECpBe,SAAS2zH,GAAaC,EAAc,CACjD,OAAO,IAAI,WACTA,EAAa,QAAUA,EACvBA,EAAa,YAAc,EAC3Bd,GAAcc,CAAY,CAC9B,CACA,CCEA,IAAIC,GAAc,oBAGH,SAASC,GAAQz0H,EAAGU,EAAG,CAKpC,QAJIg0H,EAAO,CAAC,CAAC,EAAG10H,EAAG,EAAGU,CAAC,CAAC,EAEpBi0H,EAAS,GAAIC,EAAS,CAAA,EAEnBF,EAAK,QAAQ,CAClB,IAAIG,EAAQH,EAAK,IAAG,EACpB,GAAIG,IAAU,GAAM,CAElBF,EAAO,IAAG,EACVC,EAAO,IAAG,EACV,QACF,CAMA,GALA50H,EAAI60H,EAAM,EACVn0H,EAAIm0H,EAAM,EAIN70H,IAAMU,EAAG,CACX,GAAIV,IAAM,GAAK,EAAIA,IAAM,EAAIU,EAAG,SAChC,MAAO,EACT,CAEA,GAAIV,GAAK,MAAQU,GAAK,KAAM,MAAO,GAEnC,GAAIV,IAAMA,EAAG,CACX,GAAIU,IAAMA,EAAG,SACb,MAAO,EACT,CAEA,IAAIwf,EAAO,OAAOlgB,EAClB,GAAIkgB,IAAS,YAAcA,IAAS,UAAY,OAAOxf,GAAK,SAAU,MAAO,GAIzEV,aAAaW,KAAGX,EAAIA,EAAE,UACtBU,aAAaC,KAAGD,EAAIA,EAAE,UAE1B,IAAI+sC,EAAYkjF,GAAS,KAAK3wH,CAAC,EAC/B,GAAIytC,IAAckjF,GAAS,KAAKjwH,CAAC,EAAG,MAAO,GAE3C,GAAIgyH,IAAkBjlF,GAAa,mBAAqBmlF,GAAW5yH,CAAC,EAAG,CACrE,GAAI,CAAC4yH,GAAWlyH,CAAC,EAAG,MAAO,GAC3B+sC,EAAY+mF,EACd,CACA,OAAQ/mF,EAAS,CAEjB,IAAK,kBAEL,IAAK,kBAGH,GAAI,GAAKztC,GAAM,GAAKU,EAAG,SACvB,MAAO,GACT,IAAK,kBACHg0H,EAAK,KAAK,CAAC,EAAG,CAAC10H,EAAG,EAAG,CAACU,CAAC,CAAC,EACxB,SACF,IAAK,gBACL,IAAK,mBAIH,GAAI,CAACV,GAAM,CAACU,EAAG,SACf,MAAO,GACT,IAAK,kBACH,GAAI8vH,GAAY,QAAQ,KAAKxwH,CAAC,IAAMwwH,GAAY,QAAQ,KAAK9vH,CAAC,EAAG,SACjE,MAAO,GACT,IAAK,uBACL,KAAK8zH,GAEHE,EAAK,KAAK,CAAC,EAAGJ,GAAat0H,CAAC,EAAG,EAAGs0H,GAAa5zH,CAAC,CAAC,CAAC,EAClD,QACN,CAEI,IAAIo0H,EAAYrnF,IAAc,iBAC9B,GAAI,CAACqnF,GAAalB,GAAa5zH,CAAC,EAAG,CACjC,IAAI+0H,EAAatB,GAAczzH,CAAC,EAChC,GAAI+0H,IAAetB,GAAc/yH,CAAC,EAAG,MAAO,GAC5C,GAAIV,EAAE,SAAWU,EAAE,QAAUV,EAAE,aAAeU,EAAE,WAAY,SAC5Do0H,EAAY,EACd,CACA,GAAI,CAACA,EAAW,CACd,GAAI,OAAO90H,GAAK,UAAY,OAAOU,GAAK,SAAU,MAAO,GAIzD,IAAIs0H,EAAQh1H,EAAE,YAAai1H,EAAQv0H,EAAE,YACrC,GAAIs0H,IAAUC,GAAS,EAAE1C,GAAWyC,CAAK,GAAKA,aAAiBA,GACtCzC,GAAW0C,CAAK,GAAKA,aAAiBA,IACvD,gBAAiBj1H,GAAK,gBAAiBU,EAC7C,MAAO,EAEX,CAMA,QADIk+B,EAAS+1F,EAAO,OACb/1F,KAGL,GAAI+1F,EAAO/1F,CAAM,IAAM5+B,EAAG,CACxB,GAAI40H,EAAOh2F,CAAM,IAAMl+B,EAAG,MAC1B,MAAO,EACT,CAEF,GAAI,EAAAk+B,GAAU,GAQd,GALA+1F,EAAO,KAAK30H,CAAC,EACb40H,EAAO,KAAKl0H,CAAC,EACbg0H,EAAK,KAAK,EAAI,EAGVI,EAAW,CAGb,GADAl2F,EAAS5+B,EAAE,OACP4+B,IAAWl+B,EAAE,OAAQ,MAAO,GAEhC,KAAOk+B,KACL81F,EAAK,KAAK,CAAC,EAAG10H,EAAE4+B,CAAM,EAAG,EAAGl+B,EAAEk+B,CAAM,CAAC,CAAC,CAE1C,KAAO,CAEL,IAAIy1F,EAAQhzG,GAAKrhB,CAAC,EAAGshB,EAGrB,GAFAsd,EAASy1F,EAAM,OAEXhzG,GAAK3gB,CAAC,EAAE,SAAWk+B,EAAQ,MAAO,GACtC,KAAOA,KAAU,CAGf,GADAtd,EAAM+yG,EAAMz1F,CAAM,EACd,CAACm0F,GAAIryH,EAAG4gB,CAAG,EAAG,MAAO,GACzBozG,EAAK,KAAK,CAAC,EAAG10H,EAAEshB,CAAG,EAAG,EAAG5gB,EAAE4gB,CAAG,CAAC,CAAC,CAClC,CACF,CACF,CACA,MAAO,EACT,CCnJe,SAAS4zG,GAAQr3F,EAAK,CACnC,GAAI,CAAC6zF,GAAS7zF,CAAG,EAAG,MAAO,CAAA,EAC3B,IAAIxc,EAAO,CAAA,EACX,QAASC,KAAOuc,EAAKxc,EAAK,KAAKC,CAAG,EAElC,OAAI+vG,IAAY0C,GAAoBl2F,EAAKxc,CAAI,EACtCA,CACT,CCJO,SAAS8zG,GAAgBC,EAAS,CACvC,IAAIx2F,EAASi1F,GAAUuB,CAAO,EAC9B,OAAO,SAASv3F,EAAK,CACnB,GAAIA,GAAO,KAAM,MAAO,GAExB,IAAIxc,EAAO6zG,GAAQr3F,CAAG,EACtB,GAAIg2F,GAAUxyG,CAAI,EAAG,MAAO,GAC5B,QAASxhB,EAAI,EAAGA,EAAI++B,EAAQ/+B,IAC1B,GAAI,CAAC0yH,GAAW10F,EAAIu3F,EAAQv1H,CAAC,CAAC,CAAC,EAAG,MAAO,GAK3C,OAAOu1H,IAAYC,IAAkB,CAAC9C,GAAW10F,EAAIy3F,EAAW,CAAC,CACnE,CACF,CAIA,IAAIA,GAAc,UACdC,GAAU,MACVC,GAAa,CAAC,QAAS,QAAQ,EAC/BC,GAAU,CAAC,MAAOF,GAAS,KAAK,EAIzBG,GAAaF,GAAW,OAAOF,GAAaG,EAAO,EAC1DJ,GAAiBG,GAAW,OAAOC,EAAO,EAC1CE,GAAa,CAAC,KAAK,EAAE,OAAOH,GAAYF,GAAaC,EAAO,EChChE,MAAAK,GAAejD,GAASwC,GAAgBO,EAAU,EAAI3D,GAAU,KAAK,ECArE8D,GAAelD,GAASwC,GAAgBE,EAAc,EAAItD,GAAU,SAAS,ECA7E+D,GAAenD,GAASwC,GAAgBQ,EAAU,EAAI5D,GAAU,KAAK,ECFrEgE,GAAehE,GAAU,SAAS,ECCnB,SAAS1sB,GAAOxnE,EAAK,CAIlC,QAHIw2F,EAAQhzG,GAAKwc,CAAG,EAChBe,EAASy1F,EAAM,OACfhvB,EAAS,MAAMzmE,CAAM,EAChB/+B,EAAI,EAAGA,EAAI++B,EAAQ/+B,IAC1BwlG,EAAOxlG,CAAC,EAAIg+B,EAAIw2F,EAAMx0H,CAAC,CAAC,EAE1B,OAAOwlG,CACT,CCPe,SAAS2wB,GAAMn4F,EAAK,CAIjC,QAHIw2F,EAAQhzG,GAAKwc,CAAG,EAChBe,EAASy1F,EAAM,OACf2B,EAAQ,MAAMp3F,CAAM,EACf/+B,EAAI,EAAGA,EAAI++B,EAAQ/+B,IAC1Bm2H,EAAMn2H,CAAC,EAAI,CAACw0H,EAAMx0H,CAAC,EAAGg+B,EAAIw2F,EAAMx0H,CAAC,CAAC,CAAC,EAErC,OAAOm2H,CACT,CCTe,SAASC,GAAOp4F,EAAK,CAGlC,QAFI7N,EAAS,CAAA,EACTqkG,EAAQhzG,GAAKwc,CAAG,EACX,EAAI,EAAGe,EAASy1F,EAAM,OAAQ,EAAIz1F,EAAQ,IACjD5O,EAAO6N,EAAIw2F,EAAM,CAAC,CAAC,CAAC,EAAIA,EAAM,CAAC,EAEjC,OAAOrkG,CACT,CCPe,SAASkmG,GAAUr4F,EAAK,CACrC,IAAIkT,EAAQ,CAAA,EACZ,QAASzvB,KAAOuc,EACV00F,GAAW10F,EAAIvc,CAAG,CAAC,GAAGyvB,EAAM,KAAKzvB,CAAG,EAE1C,OAAOyvB,EAAM,KAAI,CACnB,CCRe,SAASolF,GAAeC,EAAUC,EAAU,CACzD,OAAO,SAASx4F,EAAK,CACnB,IAAIe,EAAS,UAAU,OAEvB,GADIy3F,IAAUx4F,EAAM,OAAOA,CAAG,GAC1Be,EAAS,GAAKf,GAAO,KAAM,OAAOA,EACtC,QAAS9b,EAAQ,EAAGA,EAAQ6c,EAAQ7c,IAIlC,QAHI6I,EAAS,UAAU7I,CAAK,EACxBV,EAAO+0G,EAASxrG,CAAM,EACtB7tB,EAAIskB,EAAK,OACJxhB,EAAI,EAAGA,EAAI9C,EAAG8C,IAAK,CAC1B,IAAIyhB,EAAMD,EAAKxhB,CAAC,GACZ,CAACw2H,GAAYx4F,EAAIvc,CAAG,IAAM,UAAQuc,EAAIvc,CAAG,EAAIsJ,EAAOtJ,CAAG,EAC7D,CAEF,OAAOuc,CACT,CACF,CCbA,MAAAy4F,GAAeH,GAAejB,EAAO,ECErCqB,GAAeJ,GAAe90G,EAAI,ECFlCg1G,GAAeF,GAAejB,GAAS,EAAI,ECA3C,SAASsB,IAAO,CACd,OAAO,UAAU,CAAC,CACpB,CAGe,SAASC,GAAWC,EAAW,CAC5C,GAAI,CAAChF,GAASgF,CAAS,EAAG,MAAO,CAAA,EACjC,GAAIzF,GAAc,OAAOA,GAAayF,CAAS,EAC/C,IAAItqG,EAAOoqG,GAAI,EACfpqG,EAAK,UAAYsqG,EACjB,IAAI1mG,EAAS,IAAI5D,EACjB,OAAAA,EAAK,UAAY,KACV4D,CACT,CCXe,SAAS2mG,GAAOD,EAAWE,EAAO,CAC/C,IAAI5mG,EAASymG,GAAWC,CAAS,EACjC,OAAIE,GAAOL,GAAUvmG,EAAQ4mG,CAAK,EAC3B5mG,CACT,CCLe,SAAS8gC,GAAMjzB,EAAK,CACjC,OAAK6zF,GAAS7zF,CAAG,EACVi1F,GAAQj1F,CAAG,EAAIA,EAAI,MAAK,EAAKg5F,GAAO,CAAA,EAAIh5F,CAAG,EADvBA,CAE7B,CCLe,SAASi5F,GAAIj5F,EAAKk5F,EAAa,CAC5C,OAAAA,EAAYl5F,CAAG,EACRA,CACT,CCDe,SAASm5F,GAAO3zG,EAAM,CACnC,OAAOyvG,GAAQzvG,CAAI,EAAIA,EAAO,CAACA,CAAI,CACrC,CACA1iB,GAAE,OAASq2H,GCHI,SAASA,GAAO3zG,EAAM,CACnC,OAAO1iB,GAAE,OAAO0iB,CAAI,CACtB,CCNe,SAAS4zG,GAAQp5F,EAAKxa,EAAM,CAEzC,QADIub,EAASvb,EAAK,OACT,EAAI,EAAG,EAAIub,EAAQ,IAAK,CAC/B,GAAIf,GAAO,KAAM,OACjBA,EAAMA,EAAIxa,EAAK,CAAC,CAAC,CACnB,CACA,OAAOub,EAASf,EAAM,MACxB,CCAe,SAASq5F,GAAI/C,EAAQ9wG,EAAMwsC,EAAc,CACtD,IAAI3xD,EAAQ+4H,GAAQ9C,EAAQ6C,GAAO3zG,CAAI,CAAC,EACxC,OAAOuuG,GAAY1zH,CAAK,EAAI2xD,EAAe3xD,CAC7C,CCLe,SAAS60H,GAAIl1F,EAAKxa,EAAM,CACrCA,EAAO2zG,GAAO3zG,CAAI,EAElB,QADIub,EAASvb,EAAK,OACT,EAAI,EAAG,EAAIub,EAAQ,IAAK,CAC/B,IAAItd,EAAM+B,EAAK,CAAC,EAChB,GAAI,CAAC8zG,GAAKt5F,EAAKvc,CAAG,EAAG,MAAO,GAC5Buc,EAAMA,EAAIvc,CAAG,CACf,CACA,MAAO,CAAC,CAACsd,CACX,CCde,SAASw4F,GAASl5H,EAAO,CACtC,OAAOA,CACT,CCEe,SAASm5H,GAAQjD,EAAO,CACrC,OAAAA,EAAQmC,GAAU,CAAA,EAAInC,CAAK,EACpB,SAASv2F,EAAK,CACnB,OAAOq2F,GAAQr2F,EAAKu2F,CAAK,CAC3B,CACF,CCLe,SAASnxG,GAASI,EAAM,CACrC,OAAAA,EAAO2zG,GAAO3zG,CAAI,EACX,SAASwa,EAAK,CACnB,OAAOo5F,GAAQp5F,EAAKxa,CAAI,CAC1B,CACF,CCPe,SAASi0G,GAAWh0D,EAAM9Y,EAAS+sE,EAAU,CAC1D,GAAI/sE,IAAY,OAAQ,OAAO8Y,EAC/B,OAAQi0D,GAAmB,EAAY,CACrC,IAAK,GAAG,OAAO,SAASr5H,EAAO,CAC7B,OAAOolE,EAAK,KAAK9Y,EAAStsD,CAAK,CACjC,EAEA,IAAK,GAAG,OAAO,SAASA,EAAO6jB,EAAOuxG,EAAY,CAChD,OAAOhwD,EAAK,KAAK9Y,EAAStsD,EAAO6jB,EAAOuxG,CAAU,CACpD,EACA,IAAK,GAAG,OAAO,SAASkE,EAAat5H,EAAO6jB,EAAOuxG,EAAY,CAC7D,OAAOhwD,EAAK,KAAK9Y,EAASgtE,EAAat5H,EAAO6jB,EAAOuxG,CAAU,CACjE,CACJ,CACE,OAAO,UAAW,CAChB,OAAOhwD,EAAK,MAAM9Y,EAAS,SAAS,CACtC,CACF,CCTe,SAASitE,GAAav5H,EAAOssD,EAAS+sE,EAAU,CAC7D,OAAIr5H,GAAS,KAAak5H,GACtB7E,GAAWr0H,CAAK,EAAUo5H,GAAWp5H,EAAOssD,EAAS+sE,CAAQ,EAC7D7F,GAASxzH,CAAK,GAAK,CAAC40H,GAAQ50H,CAAK,EAAUm5H,GAAQn5H,CAAK,EACrD+kB,GAAS/kB,CAAK,CACvB,CCVe,SAASw5H,GAASx5H,EAAOssD,EAAS,CAC/C,OAAOitE,GAAav5H,EAAOssD,EAAS,GAAQ,CAC9C,CACA7pD,GAAE,SAAW+2H,GCHE,SAASC,GAAGz5H,EAAOssD,EAAS+sE,EAAU,CACnD,OAAI52H,GAAE,WAAa+2H,GAAiB/2H,GAAE,SAASzC,EAAOssD,CAAO,EACtDitE,GAAav5H,EAAOssD,EAAS+sE,CAAQ,CAC9C,CCJe,SAASK,GAAU/5F,EAAK65F,EAAUltE,EAAS,CACxDktE,EAAWC,GAAGD,EAAUltE,CAAO,EAI/B,QAHI6pE,EAAQhzG,GAAKwc,CAAG,EAChBe,EAASy1F,EAAM,OACf9oG,EAAU,CAAA,EACLxJ,EAAQ,EAAGA,EAAQ6c,EAAQ7c,IAAS,CAC3C,IAAI81G,EAAaxD,EAAMtyG,CAAK,EAC5BwJ,EAAQssG,CAAU,EAAIH,EAAS75F,EAAIg6F,CAAU,EAAGA,EAAYh6F,CAAG,CACjE,CACA,OAAOtS,CACT,CCde,SAASusG,IAAM,CAAC,CCGhB,SAASC,GAAWl6F,EAAK,CACtC,OAAIA,GAAO,KAAai6F,GACjB,SAASz0G,EAAM,CACpB,OAAO6zG,GAAIr5F,EAAKxa,CAAI,CACtB,CACF,CCNe,SAAS20G,GAAMp4H,EAAG83H,EAAUltE,EAAS,CAClD,IAAIytE,EAAQ,MAAM,KAAK,IAAI,EAAGr4H,CAAC,CAAC,EAChC83H,EAAWJ,GAAWI,EAAUltE,EAAS,CAAC,EAC1C,QAAS3qD,EAAI,EAAGA,EAAID,EAAGC,IAAKo4H,EAAMp4H,CAAC,EAAI63H,EAAS73H,CAAC,EACjD,OAAOo4H,CACT,CCPe,SAASC,GAAOh0F,EAAKC,EAAK,CACvC,OAAIA,GAAO,OACTA,EAAMD,EACNA,EAAM,GAEDA,EAAM,KAAK,MAAM,KAAK,OAAM,GAAMC,EAAMD,EAAM,EAAE,CACzD,CCNA,MAAAi0F,GAAe,KAAK,KAAO,UAAW,CACpC,OAAO,IAAI,KAAI,EAAG,QAAO,CAC3B,ECCe,SAASC,GAAc99E,EAAK,CACzC,IAAI+9E,EAAU,SAASrpG,EAAO,CAC5B,OAAOsrB,EAAItrB,CAAK,CAClB,EAEIpE,EAAS,MAAQvJ,GAAKi5B,CAAG,EAAE,KAAK,GAAG,EAAI,IACvCg+E,EAAa,OAAO1tG,CAAM,EAC1B2tG,EAAgB,OAAO3tG,EAAQ,GAAG,EACtC,OAAO,SAAS4tG,EAAQ,CACtB,OAAAA,EAASA,GAAU,KAAO,GAAK,GAAKA,EAC7BF,EAAW,KAAKE,CAAM,EAAIA,EAAO,QAAQD,EAAeF,CAAO,EAAIG,CAC5E,CACF,CCfA,MAAAC,GAAe,CACb,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,QACP,ECJAC,GAAeN,GAAcK,EAAS,ECAtCE,GAAe1C,GAAOwC,EAAS,ECA/BG,GAAeR,GAAcO,EAAW,ECAxCE,GAAel4H,GAAE,iBAAmB,CAClC,SAAU,kBACV,YAAa,mBACb,OAAQ,kBACV,ECDA,IAAIm4H,GAAU,OAIVC,GAAU,CACZ,IAAK,IACL,KAAM,KACN,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,OACZ,EAEIC,GAAe,4BAEnB,SAASC,GAAWjqG,EAAO,CACzB,MAAO,KAAO+pG,GAAQ/pG,CAAK,CAC7B,CAOA,IAAIkqG,GAAiB,mBAMN,SAASC,GAAS75H,EAAM85H,EAAUC,EAAa,CACxD,CAACD,GAAYC,IAAaD,EAAWC,GACzCD,EAAW/C,GAAS,CAAA,EAAI+C,EAAUz4H,GAAE,gBAAgB,EAGpD,IAAI02H,EAAU,OAAO,EAClB+B,EAAS,QAAUN,IAAS,QAC5BM,EAAS,aAAeN,IAAS,QACjCM,EAAS,UAAYN,IAAS,MACnC,EAAI,KAAK,GAAG,EAAI,KAAM,GAAG,EAGnB/2G,EAAQ,EACR6I,EAAS,SACbtrB,EAAK,QAAQ+3H,EAAS,SAASroG,EAAOsqG,EAAQ/oD,EAAagpD,EAAUphE,EAAQ,CAC3E,OAAAvtC,GAAUtrB,EAAK,MAAMyiB,EAAOo2C,CAAM,EAAE,QAAQ6gE,GAAcC,EAAU,EACpEl3G,EAAQo2C,EAASnpC,EAAM,OAEnBsqG,EACF1uG,GAAU;AAAA,SAAgB0uG,EAAS;AAAA,GAC1B/oD,EACT3lD,GAAU;AAAA,SAAgB2lD,EAAc;AAAA,GAC/BgpD,IACT3uG,GAAU;AAAA,EAAS2uG,EAAW;AAAA,SAIzBvqG,CACT,CAAC,EACDpE,GAAU;AAAA,EAEV,IAAI4uG,EAAWJ,EAAS,SACxB,GAAII,GAEF,GAAI,CAACN,GAAe,KAAKM,CAAQ,EAAG,MAAM,IAAI,MAC5C,sCAAwCA,CAC9C,OAGI5uG,EAAS;AAAA,EAAqBA,EAAS;AAAA,EACvC4uG,EAAW,MAGb5uG,EAAS;AAAA,EAEPA,EAAS;AAAA,EAEX,IAAI6uG,EACJ,GAAI,CACFA,EAAS,IAAI,SAASD,EAAU,IAAK5uG,CAAM,CAC7C,OAASjrB,EAAG,CACV,MAAAA,EAAE,OAASirB,EACLjrB,CACR,CAEA,IAAIw5H,EAAW,SAAS56H,EAAM,CAC5B,OAAOk7H,EAAO,KAAK,KAAMl7H,EAAMoC,EAAC,CAClC,EAGA,OAAAw4H,EAAS,OAAS,YAAcK,EAAW;AAAA,EAAS5uG,EAAS,IAEtDuuG,CACT,CC9Fe,SAASnpG,GAAO6N,EAAKxa,EAAMqxB,EAAU,CAClDrxB,EAAO2zG,GAAO3zG,CAAI,EAClB,IAAIub,EAASvb,EAAK,OAClB,GAAI,CAACub,EACH,OAAO2zF,GAAW79E,CAAQ,EAAIA,EAAS,KAAK7W,CAAG,EAAI6W,EAErD,QAAS70C,EAAI,EAAGA,EAAI++B,EAAQ/+B,IAAK,CAC/B,IAAIi+B,EAAOD,GAAO,KAAO,OAASA,EAAIxa,EAAKxjB,CAAC,CAAC,EACzCi+B,IAAS,SACXA,EAAO4W,EACP70C,EAAI++B,GAENf,EAAM00F,GAAWz0F,CAAI,EAAIA,EAAK,KAAKD,CAAG,EAAIC,CAC5C,CACA,OAAOD,CACT,CCnBA,IAAI67F,GAAY,EACD,SAASC,GAASjrG,EAAQ,CACvC,IAAItK,EAAK,EAAEs1G,GAAY,GACvB,OAAOhrG,EAASA,EAAStK,EAAKA,CAChC,CCHe,SAASw1G,GAAM/7F,EAAK,CACjC,IAAIg8F,EAAWl5H,GAAEk9B,CAAG,EACpB,OAAAg8F,EAAS,OAAS,GACXA,CACT,CCDe,SAASC,GAAaC,EAAYC,EAAWxvE,EAASyvE,EAAgB76G,EAAM,CACzF,GAAI,EAAE66G,aAA0BD,GAAY,OAAOD,EAAW,MAAMvvE,EAASprC,CAAI,EACjF,IAAIo1B,EAAOiiF,GAAWsD,EAAW,SAAS,EACtC/pG,EAAS+pG,EAAW,MAAMvlF,EAAMp1B,CAAI,EACxC,OAAIsyG,GAAS1hG,CAAM,EAAUA,EACtBwkB,CACT,CCJA,IAAI0lF,GAAU1I,GAAc,SAASluD,EAAM62D,EAAW,CACpD,IAAIhkG,EAAc+jG,GAAQ,YACtBE,EAAQ,UAAW,CAGrB,QAFIl5G,EAAW,EAAG0d,EAASu7F,EAAU,OACjC/6G,EAAO,MAAMwf,CAAM,EACd/+B,EAAI,EAAGA,EAAI++B,EAAQ/+B,IAC1Buf,EAAKvf,CAAC,EAAIs6H,EAAUt6H,CAAC,IAAMs2B,EAAc,UAAUjV,GAAU,EAAIi5G,EAAUt6H,CAAC,EAE9E,KAAOqhB,EAAW,UAAU,QAAQ9B,EAAK,KAAK,UAAU8B,GAAU,CAAC,EACnE,OAAO44G,GAAax2D,EAAM82D,EAAO,KAAM,KAAMh7G,CAAI,CACnD,EACA,OAAOg7G,CACT,CAAC,EAEDF,GAAQ,YAAcv5H,GChBtB,MAAA05H,GAAe7I,GAAc,SAASluD,EAAM9Y,EAASprC,EAAM,CACzD,GAAI,CAACmzG,GAAWjvD,CAAI,EAAG,MAAM,IAAI,UAAU,mCAAmC,EAC9E,IAAI82D,EAAQ5I,GAAc,SAAS8I,EAAU,CAC3C,OAAOR,GAAax2D,EAAM82D,EAAO5vE,EAAS,KAAMprC,EAAK,OAAOk7G,CAAQ,CAAC,CACvE,CAAC,EACD,OAAOF,CACT,CAAC,ECLDG,GAAenH,GAAwBS,EAAS,ECDjC,SAAS2G,GAAQ37H,EAAO47H,EAAOC,EAAQ,CAChD,CAACD,GAASA,IAAU,IAAGA,EAAQ,KAEnC,QADIr6F,EAAS,CAAA,EAAItjC,EAAM,EAAG+C,EAAI,EAAG++B,EAASi1F,GAAUh1H,CAAK,GAAK,EAAGmoC,EAAQ,CAAA,IAC5D,CACX,GAAInnC,GAAK++B,EAAQ,CACf,GAAI,CAACoI,EAAM,OAAQ,MACnB,IAAI6tF,EAAQ7tF,EAAM,IAAG,EACrBnnC,EAAIg1H,EAAM,EACVh2H,EAAQg2H,EAAM,EACdj2F,EAASi1F,GAAUh1H,CAAK,EACxB,QACF,CACA,IAAIX,EAAQW,EAAMgB,GAAG,EACjBmnC,EAAM,QAAUyzF,EAClBr6F,EAAOtjC,GAAK,EAAIoB,EACPq8H,GAAYr8H,CAAK,IAAM40H,GAAQ50H,CAAK,GAAK80H,GAAY90H,CAAK,IAEnE8oC,EAAM,KAAK,CAAC,EAAGnnC,EAAG,EAAGhB,CAAK,CAAC,EAC3BgB,EAAI,EACJhB,EAAQX,EACR0gC,EAASi1F,GAAUh1H,CAAK,GACd67H,IACVt6F,EAAOtjC,GAAK,EAAIoB,EAEpB,CACA,OAAOkiC,CACT,CCzBA,MAAAu6F,GAAenJ,GAAc,SAAS3zF,EAAKxc,EAAM,CAC/CA,EAAOm5G,GAAQn5G,EAAM,GAAO,EAAK,EACjC,IAAIU,EAAQV,EAAK,OACjB,GAAIU,EAAQ,EAAG,MAAM,IAAI,MAAM,uCAAuC,EACtE,KAAOA,KAAS,CACd,IAAIT,EAAMD,EAAKU,CAAK,EACpB8b,EAAIvc,CAAG,EAAIs5G,GAAK/8F,EAAIvc,CAAG,EAAGuc,CAAG,CAC/B,CACA,OAAOA,CACT,CAAC,ECbc,SAASg9F,GAAQv3D,EAAMw3D,EAAQ,CAC5C,IAAID,EAAU,SAASv5G,EAAK,CAC1B,IAAI+xD,EAAQwnD,EAAQ,MAChBE,EAAU,IAAMD,EAASA,EAAO,MAAM,KAAM,SAAS,EAAIx5G,GAC7D,OAAKyxG,GAAI1/C,EAAO0nD,CAAO,IAAG1nD,EAAM0nD,CAAO,EAAIz3D,EAAK,MAAM,KAAM,SAAS,GAC9D+P,EAAM0nD,CAAO,CACtB,EACA,OAAAF,EAAQ,MAAQ,CAAA,EACTA,CACT,CCRA,MAAAplC,GAAe+7B,GAAc,SAASluD,EAAM03D,EAAM57G,EAAM,CACtD,OAAO,WAAW,UAAW,CAC3B,OAAOkkD,EAAK,MAAM,KAAMlkD,CAAI,CAC9B,EAAG47G,CAAI,CACT,CAAC,ECFDC,GAAef,GAAQzkC,GAAO90F,GAAG,CAAC,ECCnB,SAASu6H,GAAS53D,EAAM03D,EAAMp8H,EAAS,CACpD,IAAI6rD,EAASD,EAASprC,EAAM4Q,EACxB+iC,EAAW,EACVn0D,IAASA,EAAU,CAAA,GAExB,IAAIu8H,EAAQ,UAAW,CACrBpoE,EAAWn0D,EAAQ,UAAY,GAAQ,EAAIu5H,GAAG,EAC9C1tE,EAAU,KACVz6B,EAASszC,EAAK,MAAM9Y,EAASprC,CAAI,EAC5BqrC,IAASD,EAAUprC,EAAO,KACjC,EAEIg8G,EAAY,UAAW,CACzB,IAAIC,EAAOlD,GAAG,EACV,CAACplE,GAAYn0D,EAAQ,UAAY,KAAOm0D,EAAWsoE,GACvD,IAAIC,EAAYN,GAAQK,EAAOtoE,GAC/B,OAAAvI,EAAU,KACVprC,EAAO,UACHk8G,GAAa,GAAKA,EAAYN,GAC5BvwE,IACF,aAAaA,CAAO,EACpBA,EAAU,MAEZsI,EAAWsoE,EACXrrG,EAASszC,EAAK,MAAM9Y,EAASprC,CAAI,EAC5BqrC,IAASD,EAAUprC,EAAO,OACtB,CAACqrC,GAAW7rD,EAAQ,WAAa,KAC1C6rD,EAAU,WAAW0wE,EAAOG,CAAS,GAEhCtrG,CACT,EAEA,OAAAorG,EAAU,OAAS,UAAW,CAC5B,aAAa3wE,CAAO,EACpBsI,EAAW,EACXtI,EAAUD,EAAUprC,EAAO,IAC7B,EAEOg8G,CACT,CCvCe,SAASG,GAASj4D,EAAM03D,EAAMQ,EAAW,CACtD,IAAI/wE,EAASsI,EAAU3zC,EAAM4Q,EAAQw6B,EAEjC2wE,EAAQ,UAAW,CACrB,IAAIM,EAAStD,GAAG,EAAKplE,EACjBioE,EAAOS,EACThxE,EAAU,WAAW0wE,EAAOH,EAAOS,CAAM,GAEzChxE,EAAU,KACL+wE,IAAWxrG,EAASszC,EAAK,MAAM9Y,EAASprC,CAAI,GAE5CqrC,IAASrrC,EAAOorC,EAAU,MAEnC,EAEIkxE,EAAYlK,GAAc,SAASmK,EAAO,CAC5C,OAAAnxE,EAAU,KACVprC,EAAOu8G,EACP5oE,EAAWolE,GAAG,EACT1tE,IACHA,EAAU,WAAW0wE,EAAOH,CAAI,EAC5BQ,IAAWxrG,EAASszC,EAAK,MAAM9Y,EAASprC,CAAI,IAE3C4Q,CACT,CAAC,EAED,OAAA0rG,EAAU,OAAS,UAAW,CAC5B,aAAajxE,CAAO,EACpBA,EAAUrrC,EAAOorC,EAAU,IAC7B,EAEOkxE,CACT,CClCe,SAASE,GAAKt4D,EAAM+zB,EAAS,CAC1C,OAAO6iC,GAAQ7iC,EAAS/zB,CAAI,CAC9B,CCNe,SAASu4D,GAAOC,EAAW,CACxC,OAAO,UAAW,CAChB,MAAO,CAACA,EAAU,MAAM,KAAM,SAAS,CACzC,CACF,CCHe,SAASC,IAAU,CAChC,IAAI38G,EAAO,UACP+tB,EAAQ/tB,EAAK,OAAS,EAC1B,OAAO,UAAW,CAGhB,QAFIvf,EAAIstC,EACJnd,EAAS5Q,EAAK+tB,CAAK,EAAE,MAAM,KAAM,SAAS,EACvCttC,KAAKmwB,EAAS5Q,EAAKvf,CAAC,EAAE,KAAK,KAAMmwB,CAAM,EAC9C,OAAOA,CACT,CACF,CCVe,SAASgsG,GAAMhE,EAAO10D,EAAM,CACzC,OAAO,UAAW,CAChB,GAAI,EAAE00D,EAAQ,EACZ,OAAO10D,EAAK,MAAM,KAAM,SAAS,CAErC,CACF,CCLe,SAAS24D,GAAOjE,EAAO10D,EAAM,CAC1C,IAAI44D,EACJ,OAAO,UAAW,CAChB,MAAI,EAAElE,EAAQ,IACZkE,EAAO54D,EAAK,MAAM,KAAM,SAAS,GAE/B00D,GAAS,IAAG10D,EAAO,MAChB44D,CACT,CACF,CCNA,MAAAv8G,GAAeu6G,GAAQ+B,GAAQ,CAAC,ECDjB,SAASE,GAAQt+F,EAAKi+F,EAAWtxE,EAAS,CACvDsxE,EAAYnE,GAAGmE,EAAWtxE,CAAO,EAEjC,QADI6pE,EAAQhzG,GAAKwc,CAAG,EAAGvc,EACdzhB,EAAI,EAAG++B,EAASy1F,EAAM,OAAQx0H,EAAI++B,EAAQ/+B,IAEjD,GADAyhB,EAAM+yG,EAAMx0H,CAAC,EACTi8H,EAAUj+F,EAAIvc,CAAG,EAAGA,EAAKuc,CAAG,EAAG,OAAOvc,CAE9C,CCPe,SAAS86G,GAA2B5uF,EAAK,CACtD,OAAO,SAASV,EAAOgvF,EAAWtxE,EAAS,CACzCsxE,EAAYnE,GAAGmE,EAAWtxE,CAAO,EAGjC,QAFI5rB,EAASi1F,GAAU/mF,CAAK,EACxB/qB,EAAQyrB,EAAM,EAAI,EAAI5O,EAAS,EAC5B7c,GAAS,GAAKA,EAAQ6c,EAAQ7c,GAASyrB,EAC5C,GAAIsuF,EAAUhvF,EAAM/qB,CAAK,EAAGA,EAAO+qB,CAAK,EAAG,OAAO/qB,EAEpD,MAAO,EACT,CACF,CCXA,MAAAs6G,GAAeD,GAA2B,CAAC,ECA3CE,GAAeF,GAA2B,EAAE,ECE7B,SAASG,GAAYzvF,EAAOjP,EAAK65F,EAAUltE,EAAS,CACjEktE,EAAWC,GAAGD,EAAUltE,EAAS,CAAC,EAGlC,QAFItsD,EAAQw5H,EAAS75F,CAAG,EACpB2+F,EAAM,EAAGC,EAAO5I,GAAU/mF,CAAK,EAC5B0vF,EAAMC,GAAM,CACjB,IAAInvF,EAAM,KAAK,OAAOkvF,EAAMC,GAAQ,CAAC,EACjC/E,EAAS5qF,EAAMQ,CAAG,CAAC,EAAIpvC,EAAOs+H,EAAMlvF,EAAM,EAAQmvF,EAAOnvF,CAC/D,CACA,OAAOkvF,CACT,CCTe,SAASE,GAAkBlvF,EAAKmvF,EAAeJ,EAAa,CACzE,OAAO,SAASzvF,EAAOja,EAAM/1B,EAAK,CAChC,IAAI+C,EAAI,EAAG++B,EAASi1F,GAAU/mF,CAAK,EACnC,GAAI,OAAOhwC,GAAO,SACZ0wC,EAAM,EACR3tC,EAAI/C,GAAO,EAAIA,EAAM,KAAK,IAAIA,EAAM8hC,EAAQ/+B,CAAC,EAE7C++B,EAAS9hC,GAAO,EAAI,KAAK,IAAIA,EAAM,EAAG8hC,CAAM,EAAI9hC,EAAM8hC,EAAS,UAExD29F,GAAez/H,GAAO8hC,EAC/B,OAAA9hC,EAAMy/H,EAAYzvF,EAAOja,CAAI,EACtBia,EAAMhwC,CAAG,IAAM+1B,EAAO/1B,EAAM,GAErC,GAAI+1B,IAASA,EACX,OAAA/1B,EAAM6/H,EAAcjM,GAAM,KAAK5jF,EAAOjtC,EAAG++B,CAAM,EAAGs0F,EAAK,EAChDp2H,GAAO,EAAIA,EAAM+C,EAAI,GAE9B,IAAK/C,EAAM0wC,EAAM,EAAI3tC,EAAI++B,EAAS,EAAG9hC,GAAO,GAAKA,EAAM8hC,EAAQ9hC,GAAO0wC,EACpE,GAAIV,EAAMhwC,CAAG,IAAM+1B,EAAM,OAAO/1B,EAElC,MAAO,EACT,CACF,CCnBA,MAAA8/H,GAAeF,GAAkB,EAAGL,GAAWE,EAAW,ECH1DM,GAAeH,GAAkB,GAAIJ,EAAa,ECAnC,SAASQ,GAAKj/F,EAAKi+F,EAAWtxE,EAAS,CACpD,IAAIuyE,EAAYxC,GAAY18F,CAAG,EAAIw+F,GAAYF,GAC3C76G,EAAMy7G,EAAUl/F,EAAKi+F,EAAWtxE,CAAO,EAC3C,GAAIlpC,IAAQ,QAAUA,IAAQ,GAAI,OAAOuc,EAAIvc,CAAG,CAClD,CCJe,SAAS07G,GAAUn/F,EAAKu2F,EAAO,CAC5C,OAAO0I,GAAKj/F,EAAKw5F,GAAQjD,CAAK,CAAC,CACjC,CCCe,SAAS6I,GAAKp/F,EAAK65F,EAAUltE,EAAS,CACnDktE,EAAWJ,GAAWI,EAAUltE,CAAO,EACvC,IAAI,EAAG5rB,EACP,GAAI27F,GAAY18F,CAAG,EACjB,IAAK,EAAI,EAAGe,EAASf,EAAI,OAAQ,EAAIe,EAAQ,IAC3C84F,EAAS75F,EAAI,CAAC,EAAG,EAAGA,CAAG,MAEpB,CACL,IAAIw2F,EAAQhzG,GAAKwc,CAAG,EACpB,IAAK,EAAI,EAAGe,EAASy1F,EAAM,OAAQ,EAAIz1F,EAAQ,IAC7C84F,EAAS75F,EAAIw2F,EAAM,CAAC,CAAC,EAAGA,EAAM,CAAC,EAAGx2F,CAAG,CAEzC,CACA,OAAOA,CACT,CCjBe,SAASyc,GAAIzc,EAAK65F,EAAUltE,EAAS,CAClDktE,EAAWC,GAAGD,EAAUltE,CAAO,EAI/B,QAHI6pE,EAAQ,CAACkG,GAAY18F,CAAG,GAAKxc,GAAKwc,CAAG,EACrCe,GAAUy1F,GAASx2F,GAAK,OACxBtS,EAAU,MAAMqT,CAAM,EACjB7c,EAAQ,EAAGA,EAAQ6c,EAAQ7c,IAAS,CAC3C,IAAI81G,EAAaxD,EAAQA,EAAMtyG,CAAK,EAAIA,EACxCwJ,EAAQxJ,CAAK,EAAI21G,EAAS75F,EAAIg6F,CAAU,EAAGA,EAAYh6F,CAAG,CAC5D,CACA,OAAOtS,CACT,CCVe,SAAS2xG,GAAa1vF,EAAK,CAGxC,IAAI2vF,EAAU,SAASt/F,EAAK65F,EAAUwE,EAAMkB,EAAS,CACnD,IAAI/I,EAAQ,CAACkG,GAAY18F,CAAG,GAAKxc,GAAKwc,CAAG,EACrCe,GAAUy1F,GAASx2F,GAAK,OACxB9b,EAAQyrB,EAAM,EAAI,EAAI5O,EAAS,EAKnC,IAJKw+F,IACHlB,EAAOr+F,EAAIw2F,EAAQA,EAAMtyG,CAAK,EAAIA,CAAK,EACvCA,GAASyrB,GAEJzrB,GAAS,GAAKA,EAAQ6c,EAAQ7c,GAASyrB,EAAK,CACjD,IAAIqqF,EAAaxD,EAAQA,EAAMtyG,CAAK,EAAIA,EACxCm6G,EAAOxE,EAASwE,EAAMr+F,EAAIg6F,CAAU,EAAGA,EAAYh6F,CAAG,CACxD,CACA,OAAOq+F,CACT,EAEA,OAAO,SAASr+F,EAAK65F,EAAUwE,EAAM1xE,EAAS,CAC5C,IAAI4yE,EAAU,UAAU,QAAU,EAClC,OAAOD,EAAQt/F,EAAKy5F,GAAWI,EAAUltE,EAAS,CAAC,EAAG0xE,EAAMkB,CAAO,CACrE,CACF,CCvBA,MAAAC,GAAeH,GAAa,CAAC,ECD7BI,GAAeJ,GAAa,EAAE,ECCf,SAASh8D,GAAOrjC,EAAKi+F,EAAWtxE,EAAS,CACtD,IAAIj/B,EAAU,CAAA,EACd,OAAAuwG,EAAYnE,GAAGmE,EAAWtxE,CAAO,EACjCyyE,GAAKp/F,EAAK,SAAS3/B,EAAO6jB,EAAOd,EAAM,CACjC66G,EAAU59H,EAAO6jB,EAAOd,CAAI,GAAGsK,EAAQ,KAAKrtB,CAAK,CACvD,CAAC,EACMqtB,CACT,CCNe,SAASpJ,GAAO0b,EAAKi+F,EAAWtxE,EAAS,CACtD,OAAO0W,GAAOrjC,EAAKg+F,GAAOlE,GAAGmE,CAAS,CAAC,EAAGtxE,CAAO,CACnD,CCFe,SAAS+yE,GAAM1/F,EAAKi+F,EAAWtxE,EAAS,CACrDsxE,EAAYnE,GAAGmE,EAAWtxE,CAAO,EAGjC,QAFI6pE,EAAQ,CAACkG,GAAY18F,CAAG,GAAKxc,GAAKwc,CAAG,EACrCe,GAAUy1F,GAASx2F,GAAK,OACnB9b,EAAQ,EAAGA,EAAQ6c,EAAQ7c,IAAS,CAC3C,IAAI81G,EAAaxD,EAAQA,EAAMtyG,CAAK,EAAIA,EACxC,GAAI,CAAC+5G,EAAUj+F,EAAIg6F,CAAU,EAAGA,EAAYh6F,CAAG,EAAG,MAAO,EAC3D,CACA,MAAO,EACT,CCTe,SAAS2/F,GAAK3/F,EAAKi+F,EAAWtxE,EAAS,CACpDsxE,EAAYnE,GAAGmE,EAAWtxE,CAAO,EAGjC,QAFI6pE,EAAQ,CAACkG,GAAY18F,CAAG,GAAKxc,GAAKwc,CAAG,EACrCe,GAAUy1F,GAASx2F,GAAK,OACnB9b,EAAQ,EAAGA,EAAQ6c,EAAQ7c,IAAS,CAC3C,IAAI81G,EAAaxD,EAAQA,EAAMtyG,CAAK,EAAIA,EACxC,GAAI+5G,EAAUj+F,EAAIg6F,CAAU,EAAGA,EAAYh6F,CAAG,EAAG,MAAO,EAC1D,CACA,MAAO,EACT,CCTe,SAAS4/F,GAAS5/F,EAAKhL,EAAM6qG,EAAWC,EAAO,CAC5D,OAAKpD,GAAY18F,CAAG,IAAGA,EAAMwnE,GAAOxnE,CAAG,IACnC,OAAO6/F,GAAa,UAAYC,KAAOD,EAAY,GAChDd,GAAQ/+F,EAAKhL,EAAM6qG,CAAS,GAAK,CAC1C,CCFA,MAAAE,GAAepM,GAAc,SAAS3zF,EAAKxa,EAAMjE,EAAM,CACrD,IAAIy+G,EAAav6D,EACjB,OAAIivD,GAAWlvG,CAAI,EACjBigD,EAAOjgD,GAEPA,EAAO2zG,GAAO3zG,CAAI,EAClBw6G,EAAcx6G,EAAK,MAAM,EAAG,EAAE,EAC9BA,EAAOA,EAAKA,EAAK,OAAS,CAAC,GAEtBi3B,GAAIzc,EAAK,SAAS2sB,EAAS,CAChC,IAAIszE,EAASx6D,EACb,GAAI,CAACw6D,EAAQ,CAIX,GAHID,GAAeA,EAAY,SAC7BrzE,EAAUysE,GAAQzsE,EAASqzE,CAAW,GAEpCrzE,GAAW,KAAM,OACrBszE,EAAStzE,EAAQnnC,CAAI,CACvB,CACA,OAAOy6G,GAAU,KAAOA,EAASA,EAAO,MAAMtzE,EAASprC,CAAI,CAC7D,CAAC,CACH,CAAC,ECvBc,SAAS2+G,GAAMlgG,EAAKvc,EAAK,CACtC,OAAOg5B,GAAIzc,EAAK5a,GAAS3B,CAAG,CAAC,CAC/B,CCDe,SAAS08G,GAAMngG,EAAKu2F,EAAO,CACxC,OAAOlzD,GAAOrjC,EAAKw5F,GAAQjD,CAAK,CAAC,CACnC,CCDe,SAASjwF,GAAItG,EAAK65F,EAAUltE,EAAS,CAClD,IAAIx6B,EAAS,KAAWiuG,EAAe,KACnC//H,EAAOggI,EACX,GAAIxG,GAAY,MAAS,OAAOA,GAAY,UAAY,OAAO75F,EAAI,CAAC,GAAK,UAAYA,GAAO,KAAO,CACjGA,EAAM08F,GAAY18F,CAAG,EAAIA,EAAMwnE,GAAOxnE,CAAG,EACzC,QAASh+B,EAAI,EAAG++B,EAASf,EAAI,OAAQh+B,EAAI++B,EAAQ/+B,IAC/C3B,EAAQ2/B,EAAIh+B,CAAC,EACT3B,GAAS,MAAQA,EAAQ8xB,IAC3BA,EAAS9xB,EAGf,MACEw5H,EAAWC,GAAGD,EAAUltE,CAAO,EAC/ByyE,GAAKp/F,EAAK,SAASt9B,EAAGwhB,EAAOd,EAAM,CACjCi9G,EAAWxG,EAASn3H,EAAGwhB,EAAOd,CAAI,GAC9Bi9G,EAAWD,GAAiBC,IAAa,MAAaluG,IAAW,QACnEA,EAASzvB,EACT09H,EAAeC,EAEnB,CAAC,EAEH,OAAOluG,CACT,CCtBe,SAASkU,GAAIrG,EAAK65F,EAAUltE,EAAS,CAClD,IAAIx6B,EAAS,IAAUiuG,EAAe,IAClC//H,EAAOggI,EACX,GAAIxG,GAAY,MAAS,OAAOA,GAAY,UAAY,OAAO75F,EAAI,CAAC,GAAK,UAAYA,GAAO,KAAO,CACjGA,EAAM08F,GAAY18F,CAAG,EAAIA,EAAMwnE,GAAOxnE,CAAG,EACzC,QAASh+B,EAAI,EAAG++B,EAASf,EAAI,OAAQh+B,EAAI++B,EAAQ/+B,IAC/C3B,EAAQ2/B,EAAIh+B,CAAC,EACT3B,GAAS,MAAQA,EAAQ8xB,IAC3BA,EAAS9xB,EAGf,MACEw5H,EAAWC,GAAGD,EAAUltE,CAAO,EAC/ByyE,GAAKp/F,EAAK,SAASt9B,EAAGwhB,EAAOd,EAAM,CACjCi9G,EAAWxG,EAASn3H,EAAGwhB,EAAOd,CAAI,GAC9Bi9G,EAAWD,GAAiBC,IAAa,KAAYluG,IAAW,OAClEA,EAASzvB,EACT09H,EAAeC,EAEnB,CAAC,EAEH,OAAOluG,CACT,CCnBA,IAAImuG,GAAc,mEACH,SAASC,GAAQvgG,EAAK,CACnC,OAAKA,EACDi1F,GAAQj1F,CAAG,EAAU6yF,GAAM,KAAK7yF,CAAG,EACnCm0F,GAASn0F,CAAG,EAEPA,EAAI,MAAMsgG,EAAW,EAE1B5D,GAAY18F,CAAG,EAAUyc,GAAIzc,EAAKu5F,EAAQ,EACvC/xB,GAAOxnE,CAAG,EAPA,CAAA,CAQnB,CCTe,SAASwgG,GAAOxgG,EAAKj+B,EAAG+9H,EAAO,CAC5C,GAAI/9H,GAAK,MAAQ+9H,EACf,OAAKpD,GAAY18F,CAAG,IAAGA,EAAMwnE,GAAOxnE,CAAG,GAChCA,EAAIq6F,GAAOr6F,EAAI,OAAS,CAAC,CAAC,EAEnC,IAAIwgG,EAASD,GAAQvgG,CAAG,EACpBe,EAASi1F,GAAUwK,CAAM,EAC7Bz+H,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAGg/B,CAAM,EAAG,CAAC,EAEnC,QADIizE,EAAOjzE,EAAS,EACX7c,EAAQ,EAAGA,EAAQniB,EAAGmiB,IAAS,CACtC,IAAIu8G,EAAOpG,GAAOn2G,EAAO8vF,CAAI,EACzBlgD,EAAO0sE,EAAOt8G,CAAK,EACvBs8G,EAAOt8G,CAAK,EAAIs8G,EAAOC,CAAI,EAC3BD,EAAOC,CAAI,EAAI3sE,CACjB,CACA,OAAO0sE,EAAO,MAAM,EAAGz+H,CAAC,CAC1B,CCvBe,SAAS2+H,GAAQ1gG,EAAK,CACnC,OAAOwgG,GAAOxgG,EAAK,GAAQ,CAC7B,CCAe,SAAS2gG,GAAO3gG,EAAK65F,EAAUltE,EAAS,CACrD,IAAIzoC,EAAQ,EACZ,OAAA21G,EAAWC,GAAGD,EAAUltE,CAAO,EACxBuzE,GAAMzjF,GAAIzc,EAAK,SAAS3/B,EAAOojB,EAAKL,EAAM,CAC/C,MAAO,CACL,MAAO/iB,EACP,MAAO6jB,IACP,SAAU21G,EAASx5H,EAAOojB,EAAKL,CAAI,CACzC,CACE,CAAC,EAAE,KAAK,SAASipC,EAAME,EAAO,CAC5B,IAAIpqD,EAAIkqD,EAAK,SACTxpD,EAAI0pD,EAAM,SACd,GAAIpqD,IAAMU,EAAG,CACX,GAAIV,EAAIU,GAAKV,IAAM,OAAQ,MAAO,GAClC,GAAIA,EAAIU,GAAKA,IAAM,OAAQ,MAAO,EACpC,CACA,OAAOwpD,EAAK,MAAQE,EAAM,KAC5B,CAAC,EAAG,OAAO,CACb,CCnBe,SAAS2yB,GAAM0hD,EAAUC,EAAW,CACjD,OAAO,SAAS7gG,EAAK65F,EAAUltE,EAAS,CACtC,IAAIx6B,EAAS0uG,EAAY,CAAC,CAAA,EAAI,CAAA,CAAE,EAAI,CAAA,EACpC,OAAAhH,EAAWC,GAAGD,EAAUltE,CAAO,EAC/ByyE,GAAKp/F,EAAK,SAAS3/B,EAAO6jB,EAAO,CAC/B,IAAIT,EAAMo2G,EAASx5H,EAAO6jB,EAAO8b,CAAG,EACpC4gG,EAASzuG,EAAQ9xB,EAAOojB,CAAG,CAC7B,CAAC,EACM0O,CACT,CACF,CCTA,MAAA2uG,GAAe5hD,GAAM,SAAS/sD,EAAQ9xB,EAAOojB,EAAK,CAC5CyxG,GAAI/iG,EAAQ1O,CAAG,EAAG0O,EAAO1O,CAAG,EAAE,KAAKpjB,CAAK,EAAQ8xB,EAAO1O,CAAG,EAAI,CAACpjB,CAAK,CAC1E,CAAC,ECHD0gI,GAAe7hD,GAAM,SAAS/sD,EAAQ9xB,EAAOojB,EAAK,CAChD0O,EAAO1O,CAAG,EAAIpjB,CAChB,CAAC,ECAD2gI,GAAe9hD,GAAM,SAAS/sD,EAAQ9xB,EAAOojB,EAAK,CAC5CyxG,GAAI/iG,EAAQ1O,CAAG,EAAG0O,EAAO1O,CAAG,IAAU0O,EAAO1O,CAAG,EAAI,CAC1D,CAAC,ECJDo9G,GAAe3hD,GAAM,SAAS/sD,EAAQ9xB,EAAO4gI,EAAM,CACjD9uG,EAAO8uG,EAAO,EAAI,CAAC,EAAE,KAAK5gI,CAAK,CACjC,EAAG,EAAI,ECFQ,SAASi0C,GAAKtU,EAAK,CAChC,OAAIA,GAAO,KAAa,EACjB08F,GAAY18F,CAAG,EAAIA,EAAI,OAASxc,GAAKwc,CAAG,EAAE,MACnD,CCLe,SAASkhG,GAAS7gI,EAAOojB,EAAKuc,EAAK,CAChD,OAAOvc,KAAOuc,CAChB,CCIA,MAAAmhG,GAAexN,GAAc,SAAS3zF,EAAKxc,EAAM,CAC/C,IAAI2O,EAAS,CAAA,EAAI0nG,EAAWr2G,EAAK,CAAC,EAClC,GAAIwc,GAAO,KAAM,OAAO7N,EACpBuiG,GAAWmF,CAAQ,GACjBr2G,EAAK,OAAS,IAAGq2G,EAAWJ,GAAWI,EAAUr2G,EAAK,CAAC,CAAC,GAC5DA,EAAO6zG,GAAQr3F,CAAG,IAElB65F,EAAWqH,GACX19G,EAAOm5G,GAAQn5G,EAAM,GAAO,EAAK,EACjCwc,EAAM,OAAOA,CAAG,GAElB,QAASh+B,EAAI,EAAG++B,EAASvd,EAAK,OAAQxhB,EAAI++B,EAAQ/+B,IAAK,CACrD,IAAIyhB,EAAMD,EAAKxhB,CAAC,EACZ3B,EAAQ2/B,EAAIvc,CAAG,EACfo2G,EAASx5H,EAAOojB,EAAKuc,CAAG,IAAG7N,EAAO1O,CAAG,EAAIpjB,EAC/C,CACA,OAAO8xB,CACT,CAAC,EChBDivG,GAAezN,GAAc,SAAS3zF,EAAKxc,EAAM,CAC/C,IAAIq2G,EAAWr2G,EAAK,CAAC,EAAGmpC,EACxB,OAAI+nE,GAAWmF,CAAQ,GACrBA,EAAWmE,GAAOnE,CAAQ,EACtBr2G,EAAK,OAAS,IAAGmpC,EAAUnpC,EAAK,CAAC,KAErCA,EAAOi5B,GAAIkgF,GAAQn5G,EAAM,GAAO,EAAK,EAAG,MAAM,EAC9Cq2G,EAAW,SAASx5H,EAAOojB,EAAK,CAC9B,MAAO,CAACm8G,GAASp8G,EAAMC,CAAG,CAC5B,GAEK09G,GAAKnhG,EAAK65F,EAAUltE,CAAO,CACpC,CAAC,EChBc,SAAS4yE,GAAQtwF,EAAOltC,EAAG+9H,EAAO,CAC/C,OAAOjN,GAAM,KAAK5jF,EAAO,EAAG,KAAK,IAAI,EAAGA,EAAM,QAAUltC,GAAK,MAAQ+9H,EAAQ,EAAI/9H,EAAE,CAAC,CACtF,CCHe,SAAS0hC,GAAMwL,EAAOltC,EAAG+9H,EAAO,CAC7C,OAAI7wF,GAAS,MAAQA,EAAM,OAAS,EAAUltC,GAAK,MAAQ+9H,EAAQ,OAAS,CAAA,EACxE/9H,GAAK,MAAQ+9H,EAAc7wF,EAAM,CAAC,EAC/BswF,GAAQtwF,EAAOA,EAAM,OAASltC,CAAC,CACxC,CCHe,SAAS8lB,GAAKonB,EAAOltC,EAAG+9H,EAAO,CAC5C,OAAOjN,GAAM,KAAK5jF,EAAOltC,GAAK,MAAQ+9H,EAAQ,EAAI/9H,CAAC,CACrD,CCHe,SAASiyG,GAAK/kE,EAAOltC,EAAG+9H,EAAO,CAC5C,OAAI7wF,GAAS,MAAQA,EAAM,OAAS,EAAUltC,GAAK,MAAQ+9H,EAAQ,OAAS,CAAA,EACxE/9H,GAAK,MAAQ+9H,EAAc7wF,EAAMA,EAAM,OAAS,CAAC,EAC9CpnB,GAAKonB,EAAO,KAAK,IAAI,EAAGA,EAAM,OAASltC,CAAC,CAAC,CAClD,CCLe,SAASs/H,GAAQpyF,EAAO,CACrC,OAAOo0B,GAAOp0B,EAAO,OAAO,CAC9B,CCDe,SAAS0tF,GAAQ1tF,EAAO2tF,EAAO,CAC5C,OAAO0E,GAASryF,EAAO2tF,EAAO,EAAK,CACrC,CCCA,MAAA2E,GAAe5N,GAAc,SAAS1kF,EAAOpnB,EAAM,CACjD,OAAAA,EAAO80G,GAAQ90G,EAAM,GAAM,EAAI,EACxBw7C,GAAOp0B,EAAO,SAAS5uC,EAAM,CAClC,MAAO,CAACu/H,GAAS/3G,EAAMxnB,CAAK,CAC9B,CAAC,CACH,CAAC,ECRDmhI,GAAe7N,GAAc,SAAS1kF,EAAOwyF,EAAa,CACxD,OAAOF,GAAWtyF,EAAOwyF,CAAW,CACtC,CAAC,ECIc,SAASC,GAAKzyF,EAAO0yF,EAAU9H,EAAUltE,EAAS,CAC1DqnE,GAAU2N,CAAQ,IACrBh1E,EAAUktE,EACVA,EAAW8H,EACXA,EAAW,IAET9H,GAAY,OAAMA,EAAWC,GAAGD,EAAUltE,CAAO,GAGrD,QAFIx6B,EAAS,CAAA,EACTyvG,EAAO,CAAA,EACF5/H,EAAI,EAAG++B,EAASi1F,GAAU/mF,CAAK,EAAGjtC,EAAI++B,EAAQ/+B,IAAK,CAC1D,IAAI3B,EAAQ4uC,EAAMjtC,CAAC,EACfq+H,EAAWxG,EAAWA,EAASx5H,EAAO2B,EAAGitC,CAAK,EAAI5uC,EAClDshI,GAAY,CAAC9H,IACX,CAAC73H,GAAK4/H,IAASvB,IAAUluG,EAAO,KAAK9xB,CAAK,EAC9CuhI,EAAOvB,GACExG,EACJ+F,GAASgC,EAAMvB,CAAQ,IAC1BuB,EAAK,KAAKvB,CAAQ,EAClBluG,EAAO,KAAK9xB,CAAK,GAETu/H,GAASztG,EAAQ9xB,CAAK,GAChC8xB,EAAO,KAAK9xB,CAAK,CAErB,CACA,OAAO8xB,CACT,CC7BA,MAAA0vG,GAAelO,GAAc,SAASmO,EAAQ,CAC5C,OAAOJ,GAAK/E,GAAQmF,EAAQ,GAAM,EAAI,CAAC,CACzC,CAAC,ECHc,SAASzsE,GAAapmB,EAAO,CAG1C,QAFI9c,EAAS,CAAA,EACT4vG,EAAa,UAAU,OAClB,EAAI,EAAGhhG,EAASi1F,GAAU/mF,CAAK,EAAG,EAAIlO,EAAQ,IAAK,CAC1D,IAAI/L,EAAOia,EAAM,CAAC,EAClB,GAAI,CAAA2wF,GAASztG,EAAQ6C,CAAI,EACzB,KAAIvxB,EACJ,IAAKA,EAAI,EAAGA,EAAIs+H,GACTnC,GAAS,UAAUn8H,CAAC,EAAGuxB,CAAI,EADNvxB,IAC1B,CAEEA,IAAMs+H,GAAY5vG,EAAO,KAAK6C,CAAI,EACxC,CACA,OAAO7C,CACT,CCZe,SAAS6vG,GAAM/yF,EAAO,CAInC,QAHIlO,EAAUkO,GAAS3I,GAAI2I,EAAO+mF,EAAS,EAAE,QAAW,EACpD7jG,EAAS,MAAM4O,CAAM,EAEhB7c,EAAQ,EAAGA,EAAQ6c,EAAQ7c,IAClCiO,EAAOjO,CAAK,EAAIg8G,GAAMjxF,EAAO/qB,CAAK,EAEpC,OAAOiO,CACT,CCTA,MAAA8vG,GAAetO,GAAcqO,EAAK,ECAnB,SAAS1L,GAAOlzG,EAAMokF,EAAQ,CAE3C,QADIr1E,EAAS,CAAA,EACJ,EAAI,EAAG4O,EAASi1F,GAAU5yG,CAAI,EAAG,EAAI2d,EAAQ,IAChDymE,EACFr1E,EAAO/O,EAAK,CAAC,CAAC,EAAIokF,EAAO,CAAC,EAE1Br1E,EAAO/O,EAAK,CAAC,EAAE,CAAC,CAAC,EAAIA,EAAK,CAAC,EAAE,CAAC,EAGlC,OAAO+O,CACT,CCZe,SAASmwB,GAAMhT,EAAO4yF,EAAMr9D,EAAM,CAC3Cq9D,GAAQ,OACVA,EAAO5yF,GAAS,EAChBA,EAAQ,GAELu1B,IACHA,EAAOq9D,EAAO5yF,EAAQ,GAAK,GAM7B,QAHIvO,EAAS,KAAK,IAAI,KAAK,MAAMmhG,EAAO5yF,GAASu1B,CAAI,EAAG,CAAC,EACrDviB,EAAQ,MAAMvhB,CAAM,EAEf9hC,EAAM,EAAGA,EAAM8hC,EAAQ9hC,IAAOqwC,GAASu1B,EAC9CviB,EAAMrjD,CAAG,EAAIqwC,EAGf,OAAOgT,CACT,CChBe,SAAS9iD,GAAMyvC,EAAO2xC,EAAO,CAC1C,GAAIA,GAAS,MAAQA,EAAQ,EAAG,MAAO,CAAA,EAGvC,QAFIzuD,EAAS,CAAA,EACT,EAAI,EAAG4O,EAASkO,EAAM,OACnB,EAAIlO,GACT5O,EAAO,KAAK0gG,GAAM,KAAK5jF,EAAO,EAAG,GAAK2xC,CAAK,CAAC,EAE9C,OAAOzuD,CACT,CCTe,SAASgwG,GAAYnG,EAAUh8F,EAAK,CACjD,OAAOg8F,EAAS,OAASl5H,GAAEk9B,CAAG,EAAE,MAAK,EAAKA,CAC5C,CCEe,SAASoiG,GAAMpiG,EAAK,CACjCo/F,OAAAA,GAAK/G,GAAUr4F,CAAG,EAAG,SAAS5b,EAAM,CAClC,IAAIqhD,EAAO3iE,GAAEshB,CAAI,EAAI4b,EAAI5b,CAAI,EAC7BthB,GAAE,UAAUshB,CAAI,EAAI,UAAW,CAC7B,IAAI7C,EAAO,CAAC,KAAK,QAAQ,EACzB,OAAAqxG,GAAK,MAAMrxG,EAAM,SAAS,EACnB4gH,GAAY,KAAM18D,EAAK,MAAM3iE,GAAGye,CAAI,CAAC,CAC9C,CACF,CAAC,EACMze,EACT,CCXAs8H,GAAK,CAAC,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,SAAS,EAAG,SAASh7G,EAAM,CACpF,IAAI67G,EAASxN,GAAWruG,CAAI,EAC5BthB,GAAE,UAAUshB,CAAI,EAAI,UAAW,CAC7B,IAAI4b,EAAM,KAAK,SACf,OAAIA,GAAO,OACTigG,EAAO,MAAMjgG,EAAK,SAAS,GACtB5b,IAAS,SAAWA,IAAS,WAAa4b,EAAI,SAAW,GAC5D,OAAOA,EAAI,CAAC,GAGTmiG,GAAY,KAAMniG,CAAG,CAC9B,CACF,CAAC,EAGDo/F,GAAK,CAAC,SAAU,OAAQ,OAAO,EAAG,SAASh7G,EAAM,CAC/C,IAAI67G,EAASxN,GAAWruG,CAAI,EAC5BthB,GAAE,UAAUshB,CAAI,EAAI,UAAW,CAC7B,IAAI4b,EAAM,KAAK,SACf,OAAIA,GAAO,OAAMA,EAAMigG,EAAO,MAAMjgG,EAAK,SAAS,GAC3CmiG,GAAY,KAAMniG,CAAG,CAC9B,CACF,CAAC,ECND,IAAIl9B,GAAIs/H,gnDAAgB,EAExBt/H,GAAE,EAAIA,4tDCxBN,IAAIu/H,GAAS,UAAU,CAEnB,OAAO,OAAS,MACpB,GAAC,EAED,GAAIA,EACAC,WAAiB,CACb,OAAQ,OAAO,OACf,eAAgB,OAAO,eACvB,cAAe,OAAO,yBACtB,KAAM,OAAO,KACb,MAAO,OAAO,oBACd,eAAgB,OAAO,eACvB,QAAS,MAAM,QACf,MAAOD,EACP,mBAAoB,SAASriG,EAAKC,EAAM,CACpC,IAAIsiG,EAAa,OAAO,yBAAyBviG,EAAKC,CAAI,EAC1D,MAAO,CAAC,EAAE,CAACsiG,GAAcA,EAAW,UAAYA,EAAW,IACvE,OAEO,CACH,IAAIrN,EAAM,CAAA,EAAG,eACTp1F,EAAM,CAAA,EAAG,SACTmc,EAAQ,GAAG,YAAY,UAEvBumF,EAAa,SAAUtgI,EAAG,CAC1B,IAAIiiB,EAAM,CAAA,EACV,QAASV,KAAOvhB,EACRgzH,EAAI,KAAKhzH,EAAGuhB,CAAG,GACfU,EAAI,KAAKV,CAAG,EAGpB,OAAOU,CACf,EAEQs+G,EAAsB,SAASvgI,EAAGuhB,EAAK,CACvC,MAAO,CAAC,MAAOvhB,EAAEuhB,CAAG,CAAC,CAC7B,EAEQi/G,EAAuB,SAAUxgI,EAAGuhB,EAAKk/G,EAAM,CAC/C,OAAAzgI,EAAEuhB,CAAG,EAAIk/G,EAAK,MACPzgI,CACf,EAEQ0gI,EAAe,SAAU5iG,EAAK,CAC9B,OAAOA,CACf,EAEQ6iG,EAAuB,SAAU7iG,EAAK,CACtC,GAAI,CACA,OAAO,OAAOA,CAAG,EAAE,YAAY,SAC3C,MACkB,CACN,OAAOic,CACnB,CACA,EAEQ6mF,EAAe,SAAU9iG,EAAK,CAC9B,GAAI,CACA,OAAOF,EAAI,KAAKE,CAAG,IAAM,gBACrC,MACiB,CACL,MAAO,EACnB,CACA,EAEIsiG,WAAiB,CACb,QAASQ,EACT,KAAMN,EACN,MAAOA,EACP,eAAgBE,EAChB,cAAeD,EACf,OAAQG,EACR,eAAgBC,EAChB,MAAOR,EACP,mBAAoB,UAAW,CAC3B,MAAO,EACnB,EAEA,gEC9EA,IAAIU,EAAM37G,GAAA,EACN47G,EAAc,OAAO,UAAa,IAElCh6G,EAAW,CAAC,EAAG,EAAE,EACjBi6G,EACAC,EAAe,OAAO,KAAS,IAAc,KAC7C,OAAO,OAAW,IAAc,OAChC,OAAOC,GAAW,IAAcA,GAChCh7G,KAAS,OAAYA,GAAO,KAEhC,SAASi7G,GAAa,CAClB,GAAI,CACA,IAAI/hH,EAAS4hH,EACb,OAAAA,EAAiB,KACV5hH,EAAO,MAAM,KAAM,SAAS,CAC3C,OAAavf,EAAG,CACR,OAAAknB,EAAS,EAAIlnB,EACNknB,CACf,CACA,CACA,SAASq6G,EAAS52H,EAAI,CAClB,OAAAw2H,EAAiBx2H,EACV22H,CACX,CAEA,IAAIE,EAAW,SAASC,EAAOC,EAAQ,CACnC,IAAIC,EAAU,CAAA,EAAG,eAEjB,SAASpgI,GAAI,CACT,KAAK,YAAckgI,EACnB,KAAK,aAAeC,EACpB,QAAS5oB,KAAgB4oB,EAAO,UACxBC,EAAQ,KAAKD,EAAO,UAAW5oB,CAAY,GAC3CA,EAAa,OAAOA,EAAa,OAAO,CAAC,IAAM,MAE/C,KAAKA,EAAe,GAAG,EAAI4oB,EAAO,UAAU5oB,CAAY,EAGxE,CACI,OAAAv3G,EAAE,UAAYmgI,EAAO,UACrBD,EAAM,UAAY,IAAIlgI,EACfkgI,EAAM,SACjB,EAGA,SAASG,EAAYvxE,EAAK,CACtB,OAAOA,GAAO,MAAQA,IAAQ,IAAQA,IAAQ,IAC1C,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,QAElD,CAEA,SAAS0hE,EAASxzH,EAAO,CACrB,OAAO,OAAOA,GAAU,YACjB,OAAOA,GAAU,UAAYA,IAAU,IAClD,CAEA,SAASsjI,EAAiBC,EAAY,CAClC,OAAKF,EAAYE,CAAU,EAEpB,IAAI,MAAMC,EAAaD,CAAU,CAAC,EAFJA,CAGzC,CAEA,SAASE,EAAaziH,EAAQ0iH,EAAU,CACpC,IAAIrhH,EAAMrB,EAAO,OACb8C,EAAM,IAAI,MAAMzB,EAAM,CAAC,EACvB1gB,EACJ,IAAKA,EAAI,EAAGA,EAAI0gB,EAAK,EAAE1gB,EACnBmiB,EAAIniB,CAAC,EAAIqf,EAAOrf,CAAC,EAErB,OAAAmiB,EAAIniB,CAAC,EAAI+hI,EACF5/G,CACX,CAEA,SAAS6/G,EAAyBhkG,EAAKvc,EAAKuuC,EAAc,CACtD,GAAI+wE,EAAI,MAAO,CACX,IAAIJ,EAAO,OAAO,yBAAyB3iG,EAAKvc,CAAG,EAEnD,GAAIk/G,GAAQ,KACR,OAAOA,EAAK,KAAO,MAAQA,EAAK,KAAO,KAC7BA,EAAK,MACL3wE,CAEtB,KACQ,OAAO,CAAA,EAAG,eAAe,KAAKhyB,EAAKvc,CAAG,EAAIuc,EAAIvc,CAAG,EAAI,MAE7D,CAEA,SAASwgH,EAAkBjkG,EAAK5b,EAAM/jB,EAAO,CACzC,GAAIqjI,EAAY1jG,CAAG,EAAG,OAAOA,EAC7B,IAAIuiG,EAAa,CACb,MAAOliI,EACP,aAAc,GACd,WAAY,GACZ,SAAU,IAEd,OAAA0iI,EAAI,eAAe/iG,EAAK5b,EAAMm+G,CAAU,EACjCviG,CACX,CAEA,SAASkkG,EAAQpmI,EAAG,CAChB,MAAMA,CACV,CAEA,IAAIqmI,GAAqB,UAAW,CAChC,IAAIC,EAAqB,CACrB,MAAM,UACN,OAAO,UACP,SAAS,WAGTC,EAAkB,SAASlyE,EAAK,CAChC,QAASnwD,EAAI,EAAGA,EAAIoiI,EAAmB,OAAQ,EAAEpiI,EAC7C,GAAIoiI,EAAmBpiI,CAAC,IAAMmwD,EAC1B,MAAO,GAGf,MAAO,EACf,EAEI,GAAI4wE,EAAI,MAAO,CACX,IAAIuB,EAAU,OAAO,oBACrB,OAAO,SAAStkG,EAAK,CAGjB,QAFI7b,EAAM,CAAA,EACNogH,GAAc,OAAO,OAAO,IAAI,EAC7BvkG,GAAO,MAAQ,CAACqkG,EAAgBrkG,CAAG,GAAG,CACzC,IAAIxc,GACJ,GAAI,CACAA,GAAO8gH,EAAQtkG,CAAG,CACtC,MAA4B,CACR,OAAO7b,CAC3B,CACgB,QAASniB,GAAI,EAAGA,GAAIwhB,GAAK,OAAQ,EAAExhB,GAAG,CAClC,IAAIyhB,GAAMD,GAAKxhB,EAAC,EAChB,GAAI,CAAAuiI,GAAY9gH,EAAG,EACnB,CAAA8gH,GAAY9gH,EAAG,EAAI,GACnB,IAAIk/G,GAAO,OAAO,yBAAyB3iG,EAAKvc,EAAG,EAC/Ck/G,IAAQ,MAAQA,GAAK,KAAO,MAAQA,GAAK,KAAO,MAChDx+G,EAAI,KAAKV,EAAG,EAEpC,CACgBuc,EAAM+iG,EAAI,eAAe/iG,CAAG,CAC5C,CACY,OAAO7b,CACnB,CACA,KAAW,CACH,IAAIs/G,EAAU,CAAA,EAAG,eACjB,OAAO,SAASzjG,EAAK,CACjB,GAAIqkG,EAAgBrkG,CAAG,EAAG,MAAO,CAAA,EACjC,IAAI7b,EAAM,CAAA,EAGVqgH,EAAa,QAAS/gH,MAAOuc,EACzB,GAAIyjG,EAAQ,KAAKzjG,EAAKvc,EAAG,EACrBU,EAAI,KAAKV,EAAG,MACT,CACH,QAASzhB,GAAI,EAAGA,GAAIoiI,EAAmB,OAAQ,EAAEpiI,GAC7C,GAAIyhI,EAAQ,KAAKW,EAAmBpiI,EAAC,EAAGyhB,EAAG,EACvC,SAAS+gH,EAGjBrgH,EAAI,KAAKV,EAAG,CAChC,CAEY,OAAOU,CACnB,CACA,CAEA,GAAC,EAEGsgH,EAAwB,sBAC5B,SAASC,EAAQj4H,EAAI,CACjB,GAAI,CACA,GAAI,OAAOA,GAAO,WAAY,CAC1B,IAAI+W,EAAOu/G,EAAI,MAAMt2H,EAAG,SAAS,EAE7Bk4H,EAAa5B,EAAI,OAASv/G,EAAK,OAAS,EACxCohH,EAAiCphH,EAAK,OAAS,GAC/C,EAAEA,EAAK,SAAW,GAAKA,EAAK,CAAC,IAAM,eACnCqhH,EACAJ,EAAsB,KAAKh4H,EAAK,EAAE,GAAKs2H,EAAI,MAAMt2H,CAAE,EAAE,OAAS,EAElE,GAAIk4H,GAAcC,GACdC,EACA,MAAO,EAEvB,CACQ,MAAO,EACf,MAAgB,CACR,MAAO,EACf,CACA,CAEA,SAASC,EAAiB9kG,EAAK,CAM3B,OAAOA,CAEX,CAEA,IAAI+kG,EAAS,wBACb,SAASC,EAAallG,EAAK,CACvB,OAAOilG,EAAO,KAAKjlG,CAAG,CAC1B,CAEA,SAASmlG,EAAYrkD,EAAO/vD,EAAQq0G,EAAQ,CAExC,QADI/gH,EAAM,IAAI,MAAMy8D,CAAK,EACjB5+E,EAAI,EAAGA,EAAI4+E,EAAO,EAAE5+E,EACxBmiB,EAAIniB,CAAC,EAAI6uB,EAAS7uB,EAAIkjI,EAE1B,OAAO/gH,CACX,CAEA,SAAS0/G,EAAa7jG,EAAK,CACvB,GAAI,CACA,OAAOA,EAAM,EACrB,MAAgB,CACR,MAAO,4BACf,CACA,CAEA,SAASu0F,EAAQv0F,EAAK,CAClB,OAAOA,IAAQ,MACR,OAAOA,GAAQ,UACf,OAAOA,EAAI,SAAY,UACvB,OAAOA,EAAI,MAAS,QAC/B,CAEA,SAASmlG,EAA+BrjI,EAAG,CACvC,GAAI,CACAmiI,EAAkBniI,EAAG,gBAAiB,EAAI,CAClD,MACkB,CAAA,CAClB,CAEA,SAASsjI,EAAwBtjI,EAAG,CAChC,OAAIA,GAAK,KAAa,GACbA,aAAa,MAAM,uBAA0B,kBAClDA,EAAE,gBAAqB,EAC/B,CAEA,SAASujI,EAAerlG,EAAK,CACzB,OAAOu0F,EAAQv0F,CAAG,GAAK+iG,EAAI,mBAAmB/iG,EAAK,OAAO,CAC9D,CAEA,IAAIslG,GAAqB,UAAW,CAChC,MAAM,UAAW,IAAI,MAOV,SAASjlI,EAAO,CACnB,OAAIglI,EAAehlI,CAAK,EAAUA,EAC3B,IAAI,MAAMwjI,EAAaxjI,CAAK,CAAC,CAChD,EATe,SAASA,EAAO,CACnB,GAAIglI,EAAehlI,CAAK,EAAG,OAAOA,EAClC,GAAI,CAAC,MAAM,IAAI,MAAMwjI,EAAaxjI,CAAK,CAAC,CAAE,OACpCmiB,EAAK,CAAC,OAAOA,CAAI,CACnC,CAOA,GAAC,EAED,SAAS+iH,EAAYvlG,EAAK,CACtB,MAAO,GAAG,SAAS,KAAKA,CAAG,CAC/B,CAEA,SAASwlG,EAAgBC,EAAM3vH,EAAIutD,EAAQ,CAEvC,QADI7/C,EAAOu/G,EAAI,MAAM0C,CAAI,EAChBzjI,EAAI,EAAGA,EAAIwhB,EAAK,OAAQ,EAAExhB,EAAG,CAClC,IAAIyhB,EAAMD,EAAKxhB,CAAC,EAChB,GAAIqhE,EAAO5/C,CAAG,EACV,GAAI,CACAs/G,EAAI,eAAejtH,EAAI2N,EAAKs/G,EAAI,cAAc0C,EAAMhiH,CAAG,CAAC,CACxE,MAA6B,CAAA,CAE7B,CACA,CAEA,IAAIiiH,EAAU,SAAS,EAAG,CACtB,OAAI3C,EAAI,QAAQ,CAAC,EACN,EAEJ,IACX,EAEA,GAAI,OAAO,OAAW,KAAe,OAAO,SAAU,CAClD,IAAI4C,EAAY,OAAO,MAAM,MAAS,WAAa,SAAS,EAAG,CAC3D,OAAO,MAAM,KAAK,CAAC,CAC3B,EAAQ,SAAS,EAAG,CAIZ,QAHIxhH,EAAM,CAAA,EACNxb,EAAK,EAAE,OAAO,QAAQ,EAAC,EACvBi9H,EACG,EAAGA,EAAWj9H,EAAG,KAAI,GAAI,MAC5Bwb,EAAI,KAAKyhH,EAAS,KAAK,EAE3B,OAAOzhH,CACf,EAEIuhH,EAAU,SAAS,EAAG,CAClB,OAAI3C,EAAI,QAAQ,CAAC,EACN,EACA,GAAK,MAAQ,OAAO,EAAE,OAAO,QAAQ,GAAM,WAC3C4C,EAAU,CAAC,EAEf,IACf,CACA,CAEA,IAAIE,EAAS,OAAO,QAAY,KACxBN,EAAY,OAAO,EAAE,YAAW,IAAO,mBAE3CO,EAAkB,OAAO,QAAY,KACrC,OAAO,QAAQ,IAAQ,IAE3B,SAASC,GAAItiH,EAAK,CACd,OAAOqiH,EAAkB,QAAQ,IAAIriH,CAAG,EAAI,MAChD,CAEA,SAASuiH,GAAmB,CACxB,GAAI,OAAO,SAAY,WACnB,GAAI,CACA,IAAI5xF,EAAU,IAAI,QAAQ,UAAU,EAAE,EACtC,GAAI,CAAA,EAAG,SAAS,KAAKA,CAAO,IAAM,mBAC9B,OAAO,OAEvB,MAAoB,CAAA,CAEpB,CAEA,SAAS6xF,GAAWtvF,EAAMmjF,EAAI,CAC1B,OAAOnjF,EAAK,KAAKmjF,CAAE,CACvB,CAEA,IAAI31G,EAAM,CACN,QAASugH,EACT,aAAcM,EACd,kBAAmBb,EACnB,yBAA0BH,EAC1B,QAASE,EACT,QAASnB,EAAI,QACb,QAAS2C,EACT,kBAAmBzB,EACnB,YAAaP,EACb,SAAU7P,EACV,QAASU,EACT,YAAayO,EACb,SAAUh6G,EACV,SAAUq6G,EACV,SAAUC,EACV,aAAcQ,EACd,iBAAkBH,EAClB,iBAAkBmB,EAClB,YAAaG,EACb,SAAUpB,EACV,eAAgBwB,EAChB,kBAAmBC,EACnB,wBAAyBF,EACzB,+BAAgCD,EAChC,YAAaI,EACb,gBAAiBC,EACjB,YAAa,OAAO,OAAW,KAAe,QACjC,OAAO,OAAO,WAAc,WACzC,OAAQK,EACR,gBAAiBC,EACjB,IAAKC,GACL,OAAQ7C,EACR,iBAAkB8C,EAClB,WAAYC,IAEhB9hH,EAAI,aAAeA,EAAI,SAAW,UAAW,CACzC,IAAIqC,EAAU,QAAQ,SAAS,KAAK,MAAM,GAAG,EAAE,IAAI,MAAM,EACzD,OAAQA,EAAQ,CAAC,IAAM,GAAKA,EAAQ,CAAC,EAAI,IAAQA,EAAQ,CAAC,EAAI,CAClE,GAAC,EAEGrC,EAAI,QAAQA,EAAI,iBAAiB,OAAO,EAE5C,GAAI,CAAC,MAAM,IAAI,KAAQ,OAAUriB,EAAG,CAACqiB,EAAI,cAAgBriB,CAAE,CAC3D,OAAAokI,GAAiB/hH,kECzXjB,IAAI+hH,EAAO9+G,GAAA,EACP++G,EACAC,EAAmB,UAAW,CAC9B,MAAM,IAAI,MAAM;AAAA;AAAA;AAAA,CAA4E,CAChG,EACIC,EAAgBH,EAAK,iBAAgB,EACzC,GAAIA,EAAK,QAAU,OAAO,iBAAqB,IAAa,CACxD,IAAII,EAAqBnD,GAAO,aAC5BoD,EAAkB,QAAQ,SAC9BJ,EAAWD,EAAK,aACF,SAASz5H,EAAI,CAAE65H,EAAmB,KAAKnD,GAAQ12H,CAAE,CAAE,EACnD,SAASA,EAAI,CAAE85H,EAAgB,KAAK,QAAS95H,CAAE,CAAE,CACnE,SAAW,OAAO45H,GAAkB,YACzB,OAAOA,EAAc,SAAY,WAAY,CACpD,IAAIG,EAAgBH,EAAc,QAAO,EACzCF,EAAW,SAAS15H,EAAI,CACpB+5H,EAAc,KAAK/5H,CAAE,CAC7B,CACA,MAAY,OAAO,iBAAqB,KAC9B,EAAE,OAAO,OAAW,KAClB,OAAO,YACN,OAAO,UAAU,YAAc,OAAO,UAC/C05H,GAAY,UAAW,CACnB,IAAIz5F,EAAM,SAAS,cAAc,KAAK,EAClCoa,EAAO,CAAC,WAAY,EAAI,EACxB2/E,EAAkB,GAClBC,EAAO,SAAS,cAAc,KAAK,EACnCC,EAAK,IAAI,iBAAiB,UAAW,CACrCj6F,EAAI,UAAU,OAAO,KAAK,EAC1B+5F,EAAkB,EAC9B,CAAS,EACDE,EAAG,QAAQD,EAAM5/E,CAAI,EAErB,IAAI8/E,EAAiB,UAAW,CACxBH,IACAA,EAAkB,GAClBC,EAAK,UAAU,OAAO,KAAK,EAC3C,EAEY,OAAO,SAAkBj6H,EAAI,CAC7B,IAAIvK,EAAI,IAAI,iBAAiB,UAAW,CACpCA,EAAE,WAAU,EACZuK,EAAE,CAClB,CAAa,EACDvK,EAAE,QAAQwqC,EAAKoa,CAAI,EACnB8/E,EAAc,CAC1B,CACA,GAAK,EACM,OAAO,aAAiB,IAC/BT,EAAW,SAAU15H,EAAI,CACrB,aAAaA,CAAE,CACvB,EACW,OAAO,WAAe,IAC7B05H,EAAW,SAAU15H,EAAI,CACrB,WAAWA,EAAI,CAAC,CACxB,EAEI05H,EAAWC,EAEf,OAAAS,GAAiBV,kDC3DjB,SAASW,EAAU93G,EAAK+3G,EAAUC,EAAKC,EAAUvkH,EAAK,CAClD,QAASjf,EAAI,EAAGA,EAAIif,EAAK,EAAEjf,EACvBujI,EAAIvjI,EAAIwjI,CAAQ,EAAIj4G,EAAIvrB,EAAIsjI,CAAQ,EACpC/3G,EAAIvrB,EAAIsjI,CAAQ,EAAI,MAE5B,CAEA,SAASG,EAAMC,EAAU,CACrB,KAAK,UAAYA,EACjB,KAAK,QAAU,EACf,KAAK,OAAS,CAClB,CAEA,OAAAD,EAAM,UAAU,oBAAsB,SAAU5yF,EAAM,CAClD,OAAO,KAAK,UAAYA,CAC5B,EAEA4yF,EAAM,UAAU,SAAW,SAAUhlH,EAAK,CACtC,IAAI6e,EAAS,KAAK,OAAM,EACxB,KAAK,eAAeA,EAAS,CAAC,EAC9B,IAAI/+B,EAAK,KAAK,OAAS++B,EAAW,KAAK,UAAY,EACnD,KAAK/+B,CAAC,EAAIkgB,EACV,KAAK,QAAU6e,EAAS,CAC5B,EAEAmmG,EAAM,UAAU,KAAO,SAAUz6H,EAAI6U,EAAUY,EAAK,CAChD,IAAI6e,EAAS,KAAK,OAAM,EAAK,EAC7B,GAAI,KAAK,oBAAoBA,CAAM,EAAG,CAClC,KAAK,SAASt0B,CAAE,EAChB,KAAK,SAAS6U,CAAQ,EACtB,KAAK,SAASY,CAAG,EACjB,MACR,CACI,IAAIze,EAAI,KAAK,OAASs9B,EAAS,EAC/B,KAAK,eAAeA,CAAM,EAC1B,IAAIqmG,EAAW,KAAK,UAAY,EAChC,KAAM3jI,EAAI,EAAK2jI,CAAQ,EAAI36H,EAC3B,KAAMhJ,EAAI,EAAK2jI,CAAQ,EAAI9lH,EAC3B,KAAM7d,EAAI,EAAK2jI,CAAQ,EAAIllH,EAC3B,KAAK,QAAU6e,CACnB,EAEAmmG,EAAM,UAAU,MAAQ,UAAY,CAChC,IAAIG,EAAQ,KAAK,OACbljH,EAAM,KAAKkjH,CAAK,EAEpB,YAAKA,CAAK,EAAI,OACd,KAAK,OAAUA,EAAQ,EAAM,KAAK,UAAY,EAC9C,KAAK,UACEljH,CACX,EAEA+iH,EAAM,UAAU,OAAS,UAAY,CACjC,OAAO,KAAK,OAChB,EAEAA,EAAM,UAAU,eAAiB,SAAU5yF,EAAM,CACzC,KAAK,UAAYA,GACjB,KAAK,UAAU,KAAK,WAAa,CAAC,CAE1C,EAEA4yF,EAAM,UAAU,UAAY,SAAUC,EAAU,CAC5C,IAAIG,EAAc,KAAK,UACvB,KAAK,UAAYH,EACjB,IAAIE,EAAQ,KAAK,OACbtmG,EAAS,KAAK,QACdwmG,EAAkBF,EAAQtmG,EAAWumG,EAAc,EACvDR,EAAU,KAAM,EAAG,KAAMQ,EAAaC,CAAc,CACxD,EAEAC,GAAiBN,uDCvEjB,IAAIO,EACJ,GAAI,CAAC,MAAM,IAAI,KAAQ,OAAU3lI,EAAG,CAAC2lI,EAAiB3lI,CAAE,CACxD,IAAIqkI,EAAW/+G,GAAA,EACX8/G,EAAQ1+G,GAAA,EACR09G,EAAOx9G,GAAA,EAEX,SAASg/G,GAAQ,CACb,KAAK,iBAAmB,GACxB,KAAK,YAAc,GACnB,KAAK,WAAa,IAAIR,EAAM,EAAE,EAC9B,KAAK,aAAe,IAAIA,EAAM,EAAE,EAChC,KAAK,mBAAqB,GAC1B,KAAK,mBAAqB,GAC1B,IAAIvwF,EAAO,KACX,KAAK,YAAc,UAAY,CAC3BA,EAAK,aAAY,CACzB,EACI,KAAK,UAAYwvF,CACrB,CAEAuB,EAAM,UAAU,aAAe,SAASj7H,EAAI,CACxC,IAAI9N,EAAO,KAAK,UAChB,YAAK,UAAY8N,EACjB,KAAK,iBAAmB,GACjB9N,CACX,EAEA+oI,EAAM,UAAU,mBAAqB,UAAW,CAC5C,OAAO,KAAK,gBAChB,EAEAA,EAAM,UAAU,iBAAmB,UAAW,CAC1C,KAAK,mBAAqB,EAC9B,EAEAA,EAAM,UAAU,6BAA+B,UAAW,CAClDxB,EAAK,cACL,KAAK,mBAAqB,GAElC,EAEAwB,EAAM,UAAU,gBAAkB,UAAY,CAC1C,OAAO,KAAK,aAAe,KAAK,kBACpC,EAGAA,EAAM,UAAU,WAAa,SAAS5lI,EAAG+jI,EAAQ,CACzCA,GACA,QAAQ,OAAO,MAAM,UAAY/jI,aAAa,MAAQA,EAAE,MAAQA,GAC5D;AAAA,CAAI,EACR,QAAQ,KAAK,CAAC,GAEd,KAAK,WAAWA,CAAC,CAEzB,EAEA4lI,EAAM,UAAU,WAAa,SAASj7H,EAAIyV,EAAK,CAK3C,GAJI,UAAU,SAAW,IACrBA,EAAMzV,EACNA,EAAK,UAAY,CAAE,MAAMyV,CAAI,GAE7B,OAAO,WAAe,IACtB,WAAW,UAAW,CAClBzV,EAAGyV,CAAG,CAClB,EAAW,CAAC,MACD,IAAI,CACP,KAAK,UAAU,UAAW,CACtBzV,EAAGyV,CAAG,CAClB,CAAS,CACT,MAAgB,CACR,MAAM,IAAI,MAAM;AAAA;AAAA;AAAA,CAA4E,CACpG,CACA,EAEA,SAASylH,EAAiBl7H,EAAI6U,EAAUY,EAAK,CACzC,KAAK,WAAW,KAAKzV,EAAI6U,EAAUY,CAAG,EACtC,KAAK,WAAU,CACnB,CAEA,SAAS0lH,EAAYn7H,EAAI6U,EAAUY,EAAK,CACpC,KAAK,aAAa,KAAKzV,EAAI6U,EAAUY,CAAG,EACxC,KAAK,WAAU,CACnB,CAEA,SAAS2lH,EAAoBzzF,EAAS,CAClC,KAAK,aAAa,SAASA,CAAO,EAClC,KAAK,WAAU,CACnB,CAEA,OAAK8xF,EAAK,aAKNwB,EAAM,UAAU,YAAc,SAAUj7H,EAAI6U,EAAUY,EAAK,CACnD,KAAK,mBACLylH,EAAiB,KAAK,KAAMl7H,EAAI6U,EAAUY,CAAG,EAE7C,KAAK,UAAU,UAAW,CACtB,WAAW,UAAW,CAClBzV,EAAG,KAAK6U,EAAUY,CAAG,CACzC,EAAmB,GAAG,CACtB,CAAa,CAEb,EAEIwlH,EAAM,UAAU,OAAS,SAAUj7H,EAAI6U,EAAUY,EAAK,CAC9C,KAAK,mBACL0lH,EAAY,KAAK,KAAMn7H,EAAI6U,EAAUY,CAAG,EAExC,KAAK,UAAU,UAAW,CACtBzV,EAAG,KAAK6U,EAAUY,CAAG,CACrC,CAAa,CAEb,EAEIwlH,EAAM,UAAU,eAAiB,SAAStzF,EAAS,CAC3C,KAAK,mBACLyzF,EAAoB,KAAK,KAAMzzF,CAAO,EAEtC,KAAK,UAAU,UAAW,CACtBA,EAAQ,gBAAe,CACvC,CAAa,CAEb,IAlCIszF,EAAM,UAAU,YAAcC,EAC9BD,EAAM,UAAU,OAASE,EACzBF,EAAM,UAAU,eAAiBG,GAmCrCH,EAAM,UAAU,YAAc,SAASF,EAAO,CAC1C,KAAOA,EAAM,OAAM,EAAK,GAAG,CACvB,IAAI/6H,EAAK+6H,EAAM,MAAK,EACpB,GAAI,OAAO/6H,GAAO,WAAY,CAC1BA,EAAG,gBAAe,EAClB,QACZ,CACQ,IAAI6U,EAAWkmH,EAAM,MAAK,EACtBtlH,EAAMslH,EAAM,MAAK,EACrB/6H,EAAG,KAAK6U,EAAUY,CAAG,CAC7B,CACA,EAEAwlH,EAAM,UAAU,aAAe,UAAY,CACvC,KAAK,YAAY,KAAK,YAAY,EAClC,KAAK,OAAM,EACX,KAAK,mBAAqB,GAC1B,KAAK,YAAY,KAAK,UAAU,CACpC,EAEAA,EAAM,UAAU,WAAa,UAAY,CAChC,KAAK,cACN,KAAK,YAAc,GACnB,KAAK,UAAU,KAAK,WAAW,EAEvC,EAEAA,EAAM,UAAU,OAAS,UAAY,CACjC,KAAK,YAAc,EACvB,EAEAI,GAAA,QAAiBJ,EACjBI,GAAA,QAAA,eAAgCL,0DC/JhC,IAAI1E,EAAM37G,GAAA,EACN2gH,EAAehF,EAAI,OACnBmD,EAAO19G,GAAA,EACP86G,EAAW4C,EAAK,SAChBjC,EAAoBiC,EAAK,kBAE7B,SAAS8B,EAASC,EAAcC,EAAgB,CAC5C,SAASC,EAAS97G,EAAS,CACvB,GAAI,EAAE,gBAAgB87G,GAAW,OAAO,IAAIA,EAAS97G,CAAO,EAC5D43G,EAAkB,KAAM,UACpB,OAAO53G,GAAY,SAAWA,EAAU67G,CAAc,EAC1DjE,EAAkB,KAAM,OAAQgE,CAAY,EACxC,MAAM,kBACN,MAAM,kBAAkB,KAAM,KAAK,WAAW,EAE9C,MAAM,KAAK,IAAI,CAE3B,CACI,OAAA3E,EAAS6E,EAAU,KAAK,EACjBA,CACX,CAEA,IAAIC,EAAYC,EACZC,EAAUN,EAAS,UAAW,SAAS,EACvCO,EAAoBP,EAAS,oBAAqB,oBAAoB,EACtEQ,EAAeR,EAAS,eAAgB,eAAe,EACvDS,EAAiBT,EAAS,iBAAkB,iBAAiB,EACjE,GAAI,CACAI,EAAa,UACbC,EAAc,UAClB,MAAW,CACPD,EAAaJ,EAAS,YAAa,YAAY,EAC/CK,EAAcL,EAAS,aAAc,aAAa,CACtD,CAKA,QAHIzQ,EAAW,sHACsD,MAAM,GAAG,EAErEv1H,EAAI,EAAGA,EAAIu1H,EAAQ,OAAQ,EAAEv1H,EAC9B,OAAO,MAAM,UAAUu1H,EAAQv1H,CAAC,CAAC,GAAM,aACvCymI,EAAe,UAAUlR,EAAQv1H,CAAC,CAAC,EAAI,MAAM,UAAUu1H,EAAQv1H,CAAC,CAAC,GAIzE+gI,EAAI,eAAe0F,EAAe,UAAW,SAAU,CACnD,MAAO,EACP,aAAc,GACd,SAAU,GACV,WAAY,EAChB,CAAC,EACDA,EAAe,UAAU,cAAmB,GAC5C,IAAIhxG,EAAQ,EACZgxG,EAAe,UAAU,SAAW,UAAW,CAC3C,IAAIC,EAAS,MAAMjxG,EAAQ,EAAI,CAAC,EAAE,KAAK,GAAG,EACtCtT,EAAM;AAAA,EAAOukH,EAAS;AAAA,EAC1BjxG,IACAixG,EAAS,MAAMjxG,EAAQ,EAAI,CAAC,EAAE,KAAK,GAAG,EACtC,QAASz1B,EAAI,EAAGA,EAAI,KAAK,OAAQ,EAAEA,EAAG,CAGlC,QAFI89B,EAAM,KAAK99B,CAAC,IAAM,KAAO,4BAA8B,KAAKA,CAAC,EAAI,GACjEwvB,EAAQsO,EAAI,MAAM;AAAA,CAAI,EACjBr8B,EAAI,EAAGA,EAAI+tB,EAAM,OAAQ,EAAE/tB,EAChC+tB,EAAM/tB,CAAC,EAAIilI,EAASl3G,EAAM/tB,CAAC,EAE/Bq8B,EAAMtO,EAAM,KAAK;AAAA,CAAI,EACrBrN,GAAO2b,EAAM;AAAA,CACrB,CACI,OAAArI,IACOtT,CACX,EAEA,SAASwkH,EAAiBt8G,EAAS,CAC/B,GAAI,EAAE,gBAAgBs8G,GAClB,OAAO,IAAIA,EAAiBt8G,CAAO,EACvC43G,EAAkB,KAAM,OAAQ,kBAAkB,EAClDA,EAAkB,KAAM,UAAW53G,CAAO,EAC1C,KAAK,MAAQA,EACb,KAAK,cAAmB,GAEpBA,aAAmB,OACnB43G,EAAkB,KAAM,UAAW53G,EAAQ,OAAO,EAClD43G,EAAkB,KAAM,QAAS53G,EAAQ,KAAK,GACvC,MAAM,mBACb,MAAM,kBAAkB,KAAM,KAAK,WAAW,CAGtD,CACAi3G,EAASqF,EAAkB,KAAK,EAEhC,IAAIC,EAAa,MAAM,uBACvB,OAAKA,IACDA,EAAab,EAAa,CACtB,kBAAmBQ,EACnB,aAAcC,EACd,iBAAkBG,EAClB,eAAgBA,EAChB,eAAgBF,CACxB,CAAK,EACD1F,EAAI,eAAe,MAAO,yBAA0B,CAChD,MAAO6F,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EACtB,CAAK,GAGLC,GAAiB,CACb,MACA,UAAWT,EACX,WAAYC,EACZ,kBAAmBO,EAAW,kBAC9B,iBAAkBA,EAAW,iBAC7B,aAAcA,EAAW,aACzB,eAAgBA,EAAW,eAC3B,QAASN,+CCjHbQ,GAAiB,SAASC,EAAS5+C,EAAU,CAC7C,IAAI+7C,EAAO9+G,GAAA,EACP4B,EAAWk9G,EAAK,SAChBrS,EAAWqS,EAAK,SAEpB,SAAS8C,EAAoBhpG,EAAK2sB,EAAS,CACvC,GAAIknE,EAAS7zF,CAAG,EAAG,CACf,GAAIA,aAAe+oG,EAAS,OAAO/oG,EACnC,IAAIipG,EAAOC,EAAQlpG,CAAG,EACtB,GAAIipG,IAASjgH,EAAU,CACf2jC,GAASA,EAAQ,aAAY,EACjC,IAAIxoC,EAAM4kH,EAAQ,OAAOE,EAAK,CAAC,EAC/B,OAAIt8E,GAASA,EAAQ,YAAW,EACzBxoC,CACnB,SAAmB,OAAO8kH,GAAS,WAAY,CACnC,GAAIE,EAAqBnpG,CAAG,EAAG,CAC3B,IAAI7b,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9B,OAAAnqD,EAAI,MACA7b,EAAI,SACJA,EAAI,QACJ,OACAA,EACA,MAEGA,CACvB,CACY,OAAOilH,EAAWppG,EAAKipG,EAAMt8E,CAAO,CAChD,CACA,CACI,OAAO3sB,CACX,CAEA,SAASqpG,EAAUrpG,EAAK,CACpB,OAAOA,EAAI,IACf,CAEA,SAASkpG,EAAQlpG,EAAK,CAClB,GAAI,CACA,OAAOqpG,EAAUrpG,CAAG,CAC5B,OAAal+B,EAAG,CACR,OAAAknB,EAAS,EAAIlnB,EACNknB,CACf,CACA,CAEA,IAAIy6G,EAAU,CAAA,EAAG,eACjB,SAAS0F,EAAqBnpG,EAAK,CAC/B,GAAI,CACA,OAAOyjG,EAAQ,KAAKzjG,EAAK,WAAW,CAC5C,MAAgB,CACR,MAAO,EACf,CACA,CAEA,SAASopG,EAAWzlI,EAAGslI,EAAMt8E,EAAS,CAClC,IAAIvY,EAAU,IAAI20F,EAAQ5+C,CAAQ,EAC9BhmE,EAAMiwB,EACNuY,GAASA,EAAQ,aAAY,EACjCvY,EAAQ,mBAAkB,EACtBuY,GAASA,EAAQ,YAAW,EAChC,IAAI28E,EAAc,GACdn3G,EAAS+zG,EAAK,SAAS+C,CAAI,EAAE,KAAKtlI,EAAG0gB,EAASC,CAAM,EACxDglH,EAAc,GAEVl1F,GAAWjiB,IAAWnJ,IACtBorB,EAAQ,gBAAgBjiB,EAAO,EAAG,GAAM,EAAI,EAC5CiiB,EAAU,MAGd,SAAS/vB,EAAQhkB,EAAO,CACf+zC,IACLA,EAAQ,iBAAiB/zC,CAAK,EAC9B+zC,EAAU,KAClB,CAEI,SAAS9vB,EAAOm8C,EAAQ,CACfrsB,IACLA,EAAQ,gBAAgBqsB,EAAQ6oE,EAAa,EAAI,EACjDl1F,EAAU,KAClB,CACI,OAAOjwB,CACX,CAEA,OAAO6kH,CACP,+CCpFAO,GAAiB,SAASR,EAAS5+C,EAAU6+C,EACzCQ,EAAcC,EAAW,CAC7B,IAAIvD,EAAO9+G,GAAA,EACG8+G,EAAK,QAEnB,SAASwD,EAAkBv3E,EAAK,CAC5B,OAAOA,EAAG,CACV,IAAK,GAAI,MAAO,CAAA,EAChB,IAAK,GAAI,MAAO,CAAA,CACpB,CACA,CAEA,SAASw3E,EAAaniC,EAAQ,CAC1B,IAAIpzD,EAAU,KAAK,SAAW,IAAI20F,EAAQ5+C,CAAQ,EAC9Cqd,aAAkBuhC,GAClB30F,EAAQ,eAAeozD,EAAQ,CAAC,EAEpCpzD,EAAQ,aAAa,IAAI,EACzB,KAAK,QAAUozD,EACf,KAAK,QAAU,EACf,KAAK,eAAiB,EACtB,KAAK,MAAM,OAAW,EAAE,CAC5B,CACA,OAAA0+B,EAAK,SAASyD,EAAcF,CAAS,EAErCE,EAAa,UAAU,OAAS,UAAY,CACxC,OAAO,KAAK,OAChB,EAEAA,EAAa,UAAU,QAAU,UAAY,CACzC,OAAO,KAAK,QAChB,EAEAA,EAAa,UAAU,MAAQ,SAASC,EAAK9mI,EAAG+mI,EAAqB,CACjE,IAAIriC,EAASwhC,EAAoB,KAAK,QAAS,KAAK,QAAQ,EAC5D,GAAIxhC,aAAkBuhC,EAAS,CAC3BvhC,EAASA,EAAO,QAAO,EACvB,IAAIsiC,EAAWtiC,EAAO,UAItB,GAFA,KAAK,QAAUA,GAETsiC,EAAW,YAAc,EAC3B,YAAK,SAAS,oBAAmB,EAC1BtiC,EAAO,MACVoiC,EACA,KAAK,QACL,OACA,KACAC,GAED,IAAMC,EAAW,YAAc,EAClCtiC,EAASA,EAAO,OAAM,MACnB,QAAMsiC,EAAW,YAAc,EAC3B,KAAK,QAAQtiC,EAAO,QAAO,CAAE,EAE7B,KAAK,QAAO,CAE/B,CAEI,GADAA,EAAS0+B,EAAK,QAAQ1+B,CAAM,EACxBA,IAAW,KAAM,CACjB,IAAIhlF,EAAMgnH,EACN,oDAAsDtD,EAAK,YAAY1+B,CAAM,CAAC,EAAE,OAAM,EAC1F,KAAK,SAAS,gBAAgBhlF,EAAK,EAAK,EACxC,MACR,CAEI,GAAIglF,EAAO,SAAW,EAAG,CACjBqiC,IAAwB,GACxB,KAAK,mBAAkB,EAGvB,KAAK,SAASH,EAAkBG,CAAmB,CAAC,EAExD,MACR,CACI,KAAK,SAASriC,CAAM,CACxB,EAEAmiC,EAAa,UAAU,SAAW,SAASniC,EAAQ,CAC/C,IAAI9kF,EAAM,KAAK,gBAAgB8kF,EAAO,MAAM,EAC5C,KAAK,QAAU9kF,EACf,KAAK,QAAU,KAAK,iBAAgB,EAAK,IAAI,MAAMA,CAAG,EAAI,KAAK,QAI/D,QAHIyP,EAAS,KAAK,SACd43G,EAAa,GACbD,EAAW,KACN9nI,EAAI,EAAGA,EAAI0gB,EAAK,EAAE1gB,EAAG,CAC1B,IAAIgoI,EAAehB,EAAoBxhC,EAAOxlG,CAAC,EAAGmwB,CAAM,EAEpD63G,aAAwBjB,GACxBiB,EAAeA,EAAa,QAAO,EACnCF,EAAWE,EAAa,WAExBF,EAAW,KAGXC,EACID,IAAa,MACbE,EAAa,4BAA2B,EAErCF,IAAa,MACdA,EAAW,YAAc,GAC3BE,EAAa,OAAO,KAAMhoI,CAAC,EAC3B,KAAK,QAAQA,CAAC,EAAIgoI,IACTF,EAAW,YAAc,EAClCC,EAAa,KAAK,kBAAkBC,EAAa,OAAM,EAAIhoI,CAAC,GACnD8nI,EAAW,YAAc,EAClCC,EAAa,KAAK,iBAAiBC,EAAa,QAAO,EAAIhoI,CAAC,EAE5D+nI,EAAa,KAAK,kBAAkB/nI,CAAC,EAGzC+nI,EAAa,KAAK,kBAAkBC,EAAchoI,CAAC,CAE/D,CACS+nI,GAAY53G,EAAO,oBAAmB,CAC/C,EAEAw3G,EAAa,UAAU,YAAc,UAAY,CAC7C,OAAO,KAAK,UAAY,IAC5B,EAEAA,EAAa,UAAU,SAAW,SAAUtpI,EAAO,CAC/C,KAAK,QAAU,KACf,KAAK,SAAS,SAASA,CAAK,CAChC,EAEAspI,EAAa,UAAU,QAAU,UAAW,CACpC,KAAK,YAAW,GAAM,CAAC,KAAK,SAAS,mBACzC,KAAK,QAAU,KACf,KAAK,SAAS,QAAO,EACzB,EAEAA,EAAa,UAAU,QAAU,SAAUlpE,EAAQ,CAC/C,KAAK,QAAU,KACf,KAAK,SAAS,gBAAgBA,EAAQ,EAAK,CAC/C,EAEAkpE,EAAa,UAAU,kBAAoB,SAAUtpI,EAAO6jB,EAAO,CAC/D,KAAK,QAAQA,CAAK,EAAI7jB,EACtB,IAAI4pI,EAAgB,EAAE,KAAK,eAC3B,OAAIA,GAAiB,KAAK,SACtB,KAAK,SAAS,KAAK,OAAO,EACnB,IAEJ,EACX,EAEAN,EAAa,UAAU,kBAAoB,UAAW,CAClD,YAAK,QAAO,EACL,EACX,EAEAA,EAAa,UAAU,iBAAmB,SAAUlpE,EAAQ,CACxD,YAAK,iBACL,KAAK,QAAQA,CAAM,EACZ,EACX,EAEAkpE,EAAa,UAAU,iBAAmB,UAAW,CACjD,GAAI,MAAK,cACT,KAAIniC,EAAS,KAAK,QAElB,GADA,KAAK,QAAO,EACRA,aAAkBuhC,EAClBvhC,EAAO,OAAM,MAEb,SAASxlG,EAAI,EAAGA,EAAIwlG,EAAO,OAAQ,EAAExlG,EAC7BwlG,EAAOxlG,CAAC,YAAa+mI,GACrBvhC,EAAOxlG,CAAC,EAAE,OAAM,EAIhC,EAEA2nI,EAAa,UAAU,iBAAmB,UAAY,CAClD,MAAO,EACX,EAEAA,EAAa,UAAU,gBAAkB,SAAUjnH,EAAK,CACpD,OAAOA,CACX,EAEOinH,CACP,+CCtLAh9E,GAAiB,SAASo8E,EAAS,CACnC,IAAImB,EAAkB,GAClBC,EAAe,CAAA,EAEnBpB,EAAQ,UAAU,gBAAkB,UAAW,CAAA,EAC/CA,EAAQ,UAAU,aAAe,UAAW,CAAA,EAC5CA,EAAQ,UAAU,YAAc,UAAW,CAAC,OAAO,IAAK,EACxDA,EAAQ,aAAeA,EAAQ,UAAU,aAAe,UAAW,CAAA,EAEnE,SAASqB,GAAU,CACf,KAAK,OAAS,IAAIA,EAAQ,cAAcC,EAAW,CAAE,CACzD,CACAD,EAAQ,UAAU,aAAe,UAAY,CACrC,KAAK,SAAW,SAChB,KAAK,OAAO,gBAAkB,KAC9BD,EAAa,KAAK,KAAK,MAAM,EAErC,EAEAC,EAAQ,UAAU,YAAc,UAAY,CACxC,GAAI,KAAK,SAAW,OAAW,CAC3B,IAAIE,EAAQH,EAAa,IAAG,EACxBhmH,EAAMmmH,EAAM,gBAChB,OAAAA,EAAM,gBAAkB,KACjBnmH,CACf,CACI,OAAO,IACX,EAEA,SAASomH,GAAgB,CACrB,GAAIL,EAAiB,OAAO,IAAIE,CACpC,CAEA,SAASC,GAAc,CACnB,IAAIn5G,EAAYi5G,EAAa,OAAS,EACtC,GAAIj5G,GAAa,EACb,OAAOi5G,EAAaj5G,CAAS,CAGrC,CACA,OAAAk5G,EAAQ,cAAgB,KACxBA,EAAQ,OAASG,EACjBH,EAAQ,0BAA4B,UAAW,CAAA,EAC/CA,EAAQ,wBAA0B,UAAW,CACzC,IAAII,EAAsBzB,EAAQ,UAAU,aACxC0B,EAAqB1B,EAAQ,UAAU,YACvC2B,EAAsB3B,EAAQ,aAC9B4B,EAAsB5B,EAAQ,UAAU,aACxC6B,EAAyB7B,EAAQ,UAAU,gBAC/CqB,EAAQ,0BAA4B,UAAW,CAC3CrB,EAAQ,UAAU,aAAeyB,EACjCzB,EAAQ,UAAU,YAAc0B,EAChC1B,EAAQ,aAAe2B,EACvB3B,EAAQ,UAAU,aAAe4B,EACjC5B,EAAQ,UAAU,gBAAkB6B,EACpCV,EAAkB,EAC1B,EACIA,EAAkB,GAClBnB,EAAQ,UAAU,aAAeqB,EAAQ,UAAU,aACnDrB,EAAQ,UAAU,YAAcqB,EAAQ,UAAU,YAClDrB,EAAQ,aAAeA,EAAQ,UAAU,aAAesB,EACxDtB,EAAQ,UAAU,gBAAkB,UAAW,CAC3C,IAAIv6G,EAAM,KAAK,aAAY,EACvBA,GAAOA,EAAI,iBAAmB,OAAMA,EAAI,gBAAkB,KACtE,CACA,EACO47G,CACP,+CCnEAS,GAAiB,SAAS9B,EAASqB,EAAS,CAC5C,IAAIU,EAAY/B,EAAQ,WACpBgC,EAAQhC,EAAQ,OAChBT,EAAUlhH,GAAA,EAAoB,QAC9B8+G,EAAO19G,GAAA,EACP68G,EAAiBa,EAAK,eACtB8E,EACAC,EACAC,EACA,2DACAC,EAAmB,6BACnBC,EAAmB,kCACnBC,EAAoB,KACpBC,EAAc,KACdC,EAAoB,GACpBC,EACAC,EAAY,CAAC,EAAEvF,EAAK,IAAI,gBAAgB,GAAK,IAExBA,EAAK,IAAI,gBAAgB,GACzBA,EAAK,IAAI,UAAU,IAAM,gBAE9CwF,EAAW,CAAC,EAAExF,EAAK,IAAI,mBAAmB,GAAK,IAC9CuF,GAAavF,EAAK,IAAI,mBAAmB,IAE1CgE,EAAkB,CAAC,EAAEhE,EAAK,IAAI,4BAA4B,GAAK,IAC9DuF,GAAavF,EAAK,IAAI,4BAA4B,IAEnDyF,EAAmBzF,EAAK,IAAI,6BAA6B,GAAK,IAC7DwF,GAAY,CAAC,CAACxF,EAAK,IAAI,6BAA6B,GAEzD6C,EAAQ,UAAU,4BAA8B,UAAW,CACvD,IAAI1nH,EAAS,KAAK,QAAO,EACzBA,EAAO,UAAcA,EAAO,UAAa,SACvB,MACtB,EAEA0nH,EAAQ,UAAU,gCAAkC,UAAY,EACvD,KAAK,UAAY,UAAY,IAClC,KAAK,yBAAwB,EAC7BgC,EAAM,YAAY,KAAK,0BAA2B,KAAM,MAAS,EACrE,EAEAhC,EAAQ,UAAU,mCAAqC,UAAY,CAC/D6C,GAAmB,mBACWZ,EAA2B,OAAW,IAAI,CAC5E,EAEAjC,EAAQ,UAAU,yBAA2B,UAAW,CACpD,KAAK,UAAY,KAAK,UAAY,SACtC,EAEAA,EAAQ,UAAU,sBAAwB,UAAW,CACjD,OAAQ,KAAK,UAAY,aAAe,CAC5C,EAEAA,EAAQ,UAAU,0BAA4B,UAAY,CACtD,GAAI,KAAK,wBAAyB,CAC9B,IAAItoE,EAAS,KAAK,cAAa,EAC/B,KAAK,iCAAgC,EACrCmrE,GAAmB,qBACWX,EAA4BxqE,EAAQ,IAAI,CAC9E,CACA,EAEAsoE,EAAQ,UAAU,iCAAmC,UAAY,CAC7D,KAAK,UAAY,KAAK,UAAY,MACtC,EAEAA,EAAQ,UAAU,mCAAqC,UAAY,CAC/D,KAAK,UAAY,KAAK,UAAa,OACvC,EAEAA,EAAQ,UAAU,8BAAgC,UAAY,CAC1D,OAAQ,KAAK,UAAY,QAAU,CACvC,EAEAA,EAAQ,UAAU,yBAA2B,UAAY,CACrD,KAAK,UAAY,KAAK,UAAY,OACtC,EAEAA,EAAQ,UAAU,2BAA6B,UAAY,CACvD,KAAK,UAAY,KAAK,UAAa,SAC/B,KAAK,kCACL,KAAK,mCAAkC,EACvC,KAAK,mCAAkC,EAE/C,EAEAA,EAAQ,UAAU,sBAAwB,UAAY,CAClD,OAAQ,KAAK,UAAY,SAAW,CACxC,EAEAA,EAAQ,UAAU,MAAQ,SAAS18G,EAASw/G,GAAmBz3F,GAAS,CACpE,OAAOpV,EAAK3S,EAASw/G,GAAmBz3F,IAAW,IAAI,CAC3D,EAEA20F,EAAQ,6BAA+B,SAAUt8H,EAAI,CACjD,IAAIq/H,GAAShB,EAAS,EACtBG,EACI,OAAOx+H,GAAO,WAAcq/H,KAAW,KACHr/H,EAAKy5H,EAAK,WAAW4F,GAAQr/H,CAAE,EACxC,MACnC,EAEAs8H,EAAQ,4BAA8B,SAAUt8H,EAAI,CAChD,IAAIq/H,GAAShB,EAAS,EACtBE,EACI,OAAOv+H,GAAO,WAAcq/H,KAAW,KACHr/H,EAAKy5H,EAAK,WAAW4F,GAAQr/H,CAAE,EACxC,MACnC,EAEA,IAAIs/H,EAAyB,UAAW,CAAA,EACxChD,EAAQ,gBAAkB,UAAY,CAClC,GAAIgC,EAAM,gBAAe,GAAM,CAACpjH,GAAO,gBACnC,MAAM,IAAI,MAAM;AAAA;AAAA;AAAA,CAAgH,EAEpI,GAAI,CAACA,GAAO,iBAAmBqkH,KAA8B,CACzD,IAAIC,EAA4BlD,EAAQ,UAAU,mBAC9CmD,GAA2BnD,EAAQ,UAAU,kBACjDphH,GAAO,gBAAkB,GACzBokH,EAAyB,UAAW,CAChC,GAAIhB,EAAM,gBAAe,GAAM,CAACpjH,GAAO,gBACnC,MAAM,IAAI,MAAM;AAAA;AAAA;AAAA,CAAgH,EAEpIohH,EAAQ,UAAU,mBAAqBkD,EACvClD,EAAQ,UAAU,kBAAoBmD,GACtC9B,EAAQ,0BAAyB,EACjCW,EAAM,iBAAgB,EACtBpjH,GAAO,gBAAkB,EACrC,EACQohH,EAAQ,UAAU,mBAAqBoD,GACvCpD,EAAQ,UAAU,kBAAoBqD,EACtChC,EAAQ,wBAAuB,EAC/BW,EAAM,6BAA4B,CAC1C,CACA,EAEAhC,EAAQ,mBAAqB,UAAY,CACrC,OAAOphH,GAAO,iBAAmBqkH,GAA0B,CAC/D,EAEA,IAAIK,GAAgB,UAAW,CAC3B,GAAI,CACA,GAAI,OAAO,aAAgB,WAAY,CACnC,IAAIziH,EAAQ,IAAI,YAAY,aAAa,EACzC,OAAAs8G,EAAK,OAAO,cAAct8G,CAAK,EACxB,SAASxF,GAAMwF,GAAO,CACzB,IAAI0iH,GAAW,IAAI,YAAYloH,GAAK,YAAW,EAAI,CAC/C,OAAQwF,GACR,WAAY,EAChC,CAAiB,EACD,MAAO,CAACs8G,EAAK,OAAO,cAAcoG,EAAQ,CAC1D,CACA,SAAmB,OAAO,OAAU,WAAY,CACpC,IAAI1iH,EAAQ,IAAI,MAAM,aAAa,EACnC,OAAAs8G,EAAK,OAAO,cAAct8G,CAAK,EACxB,SAASxF,GAAMwF,GAAO,CACzB,IAAI0iH,GAAW,IAAI,MAAMloH,GAAK,YAAW,EAAI,CACzC,WAAY,EAChC,CAAiB,EACD,OAAAkoH,GAAS,OAAS1iH,GACX,CAACs8G,EAAK,OAAO,cAAcoG,EAAQ,CAC1D,CACA,KAAe,CACH,IAAI1iH,EAAQ,SAAS,YAAY,aAAa,EAC9C,OAAAA,EAAM,gBAAgB,kBAAmB,GAAO,GAAM,CAAA,CAAE,EACxDs8G,EAAK,OAAO,cAAct8G,CAAK,EACxB,SAASxF,GAAMwF,GAAO,CACzB,IAAI0iH,GAAW,SAAS,YAAY,aAAa,EACjD,OAAAA,GAAS,gBAAgBloH,GAAK,YAAW,EAAI,GAAO,GAChDwF,EAAK,EACF,CAACs8G,EAAK,OAAO,cAAcoG,EAAQ,CAC1D,CACA,CACA,MAAgB,CAAA,CACZ,OAAO,UAAW,CACd,MAAO,EACf,CACA,GAAC,EAEGC,GAAmB,UAAW,CAC9B,OAAIrG,EAAK,OACE,UAAW,CACd,OAAO,QAAQ,KAAK,MAAM,QAAS,SAAS,CACxD,EAEaA,EAAK,OAKH,SAAS9hH,EAAM,CAClB,IAAIooH,GAAa,KAAOpoH,EAAK,YAAW,EACpC67G,GAASiG,EAAK,OAAOsG,EAAU,EACnC,OAAKvM,IACLA,GAAO,MAAMiG,EAAK,OAAQ,CAAA,EAAG,MAAM,KAAK,UAAW,CAAC,CAAC,EAC9C,IAFa,EAGhC,EAVmB,UAAW,CACd,MAAO,EACvB,CAUA,GAAC,EAED,SAASuG,EAAoCroH,EAAMgwB,GAAS,CACxD,MAAO,CAAC,QAASA,EAAO,CAC5B,CAEA,IAAIs4F,EAAyB,CACzB,eAAgBD,EAChB,iBAAkBA,EAClB,gBAAiBA,EACjB,gBAAiBA,EACjB,iBAAkBA,EAClB,eAAgB,SAASroH,EAAMgwB,GAASxM,GAAO,CAC3C,MAAO,CAAC,QAASwM,GAAS,MAAOxM,EAAK,CAC9C,EACI,QAAS,SAASxjB,EAAM1C,GAAS,CAC7B,MAAO,CAAC,QAASA,EAAO,CAChC,EACI,mBAAoB,SAAU0C,EAAMq8C,GAAQrsB,GAAS,CACjD,MAAO,CAAC,OAAQqsB,GAAQ,QAASrsB,EAAO,CAChD,EACI,iBAAkBq4F,GAGlBE,EAAkB,SAAUvoH,EAAM,CAClC,IAAIwoH,GAAmB,GACvB,GAAI,CACAA,GAAmBL,EAAgB,MAAM,KAAM,SAAS,CAChE,OAAazqI,GAAG,CACRipI,EAAM,WAAWjpI,EAAC,EAClB8qI,GAAmB,EAC3B,CAEI,IAAIC,GAAgB,GACpB,GAAI,CACAA,GAAgBR,EAAajoH,EACjBsoH,EAAuBtoH,CAAI,EAAE,MAAM,KAAM,SAAS,CAAC,CACvE,OAAatiB,GAAG,CACRipI,EAAM,WAAWjpI,EAAC,EAClB+qI,GAAgB,EACxB,CAEI,OAAOA,IAAiBD,EAC5B,EAEA7D,EAAQ,OAAS,SAASjiF,EAAM,CAS5B,GARAA,EAAO,OAAOA,CAAI,EACd,oBAAqBA,IACjBA,EAAK,gBACLiiF,EAAQ,gBAAe,EAChB,CAACjiF,EAAK,iBAAmBiiF,EAAQ,mBAAkB,GAC1DgD,EAAsB,GAG1B,aAAcjlF,EAAM,CACpB,IAAIgmF,GAAiBhmF,EAAK,SAC1Bn/B,GAAO,SAAW,CAAC,CAACmlH,GACpBnB,EAAmBhkH,GAAO,SAEtBu+G,EAAK,SAAS4G,EAAc,GACxB,qBAAsBA,KACtBnB,EAAmB,CAAC,CAACmB,GAAe,iBAGpD,CACI,GAAI,iBAAkBhmF,GAAQA,EAAK,cAAgB,CAACn/B,GAAO,aAAc,CACrE,GAAIojH,EAAM,kBACN,MAAM,IAAI,MACN,sDAAsD,EAE9DhC,EAAQ,UAAU,uBACdgE,EACJhE,EAAQ,UAAU,eAAiBiE,EACnCjE,EAAQ,UAAU,UAAYkE,EAC9BlE,EAAQ,UAAU,aAAemE,EACjCnE,EAAQ,UAAU,4BACdoE,EACJpE,EAAQ,UAAU,SAAWqE,EAC7BC,GAAwBL,EACxBrlH,GAAO,aAAe,EAC9B,CACI,MAAI,eAAgBm/B,IACZA,EAAK,YAAc,CAACn/B,GAAO,YAC3BA,GAAO,WAAa,GACpBohH,EAAQ,UAAU,WAAa4D,GACxB,CAAC7lF,EAAK,YAAcn/B,GAAO,aAClCA,GAAO,WAAa,GACpBohH,EAAQ,UAAU,WAAauE,IAGhCvE,CACX,EAEA,SAASuE,GAAmB,CAAE,MAAO,EAAM,CAE3CvE,EAAQ,UAAU,WAAauE,EAC/BvE,EAAQ,UAAU,SAAW,SAASwE,EAAUlpH,GAASC,GAAQ,CAC7D,GAAI,CACAipH,EAASlpH,GAASC,EAAM,CAChC,OAAaxiB,GAAG,CACR,OAAOA,EACf,CACA,EACAinI,EAAQ,UAAU,UAAY,UAAY,CAAA,EAC1CA,EAAQ,UAAU,aAAe,SAAUtmH,EAAS,CAAG,EACvDsmH,EAAQ,UAAU,4BAA8B,SAASyE,EAAU,CAEnE,EACAzE,EAAQ,UAAU,mBAAqB,UAAY,CAAA,EACnDA,EAAQ,UAAU,kBAAoB,UAAY,CAAA,EAClDA,EAAQ,UAAU,uBAAyB,UAAW,CAAA,EACtDA,EAAQ,UAAU,eAAiB,SAAU3/F,EAAQzkB,GAAO,CAG5D,EAEA,SAASyoH,EAAoBG,EAAUlpH,GAASC,GAAQ,CACpD,IAAI8vB,GAAU,KACd,GAAI,CACAm5F,EAASlpH,GAASC,GAAQ,SAASkpH,GAAU,CACzC,GAAI,OAAOA,IAAa,WACpB,MAAM,IAAI,UAAU,qCACAtH,EAAK,SAASsH,EAAQ,CAAC,EAE/Cp5F,GAAQ,4BAA4Bo5F,EAAQ,CACxD,CAAS,CACT,OAAa1rI,GAAG,CACR,OAAOA,EACf,CACA,CAEA,SAASqrI,EAAuCK,EAAU,CACtD,GAAI,CAAC,KAAK,eAAc,EAAI,OAAO,KAEnC,IAAIC,GAAmB,KAAK,UAAS,EACjCA,KAAqB,OACjBvH,EAAK,QAAQuH,EAAgB,EAC7BA,GAAiB,KAAKD,CAAQ,EAE9B,KAAK,aAAa,CAACC,GAAkBD,CAAQ,CAAC,EAGlD,KAAK,aAAaA,CAAQ,CAElC,CAEA,SAASP,GAAuB,CAC5B,OAAO,KAAK,cAChB,CAEA,SAASC,EAAwBM,EAAU,CACvC,KAAK,eAAiBA,CAC1B,CAEA,SAAST,GAAoC,CACzC,KAAK,oBAAsB,OAC3B,KAAK,eAAiB,MAC1B,CAEA,SAASC,EAA0B5jG,EAAQzkB,GAAO,CAC9C,IAAKA,GAAQ,KAAO,EAAG,CACnB,KAAK,oBAAsBykB,EAC3B,IAAIskG,GAA4BtkG,EAAO,2BACnCskG,KAA8B,SAC9BA,GAA4B,GAEhCtkG,EAAO,2BAA6BskG,GAA4B,CACxE,EACS/oH,GAAQ,KAAO,GAAKykB,EAAO,SAAQ,GACpC,KAAK,YAAYA,EAAO,QAAQ,CAExC,CAEA,SAASukG,EAAqBvkG,EAAQzkB,GAAO,EACpCA,GAAQ,KAAO,GAAKykB,EAAO,SAAQ,GACpC,KAAK,YAAYA,EAAO,QAAQ,CAExC,CACA,IAAIikG,GAAwBM,EAE5B,SAASC,GAAqB,CAC1B,IAAIzpH,EAAM,KAAK,SACf,OAAIA,IAAQ,QACJA,aAAe4kH,EACX5kH,EAAI,cACGA,EAAI,MAAK,EAEhB,OAILA,CACX,CAEA,SAASgoH,IAAmC,CACxC,KAAK,OAAS,IAAI0B,GAAc,KAAK,aAAY,CAAE,CACvD,CAEA,SAASzB,EAAgC5qI,EAAOssI,GAAY,CACxD,GAAIzI,EAAe7jI,CAAK,EAAG,CACvB,IAAI8oI,GAAQ,KAAK,OAIjB,GAHIA,KAAU,QACNwD,KAAYxD,GAAQA,GAAM,SAE9BA,KAAU,OACVA,GAAM,iBAAiB9oI,CAAK,UACrB,CAACA,EAAM,iBAAkB,CAChC,IAAIizB,GAASs5G,GAAqBvsI,CAAK,EACvC0kI,EAAK,kBAAkB1kI,EAAO,QAC1BizB,GAAO,QAAU;AAAA,EAAOA,GAAO,MAAM,KAAK;AAAA,CAAI,CAAC,EACnDyxG,EAAK,kBAAkB1kI,EAAO,mBAAoB,EAAI,CAClE,CACA,CACA,CAEA,SAASwsI,EAAsBC,EAAaC,GAAgB9pH,GAAMgwB,GACnChL,GAAQ,CACnC,GAAI6kG,IAAgB,QAAaC,KAAmB,MAChDvC,EAAkB,CAElB,GADIviG,KAAW,QAAaA,GAAO,sBAAqB,IACnDgL,GAAQ,UAAY,SAAW,EAAG,OAEnChwB,KAAMA,GAAOA,GAAO,KACxB,IAAI+pH,GAAc,GACdC,GAAc,GAClB,GAAIF,GAAe,OAAQ,CAGvB,QAFIG,GAAaH,GAAe,OAAO,MAAM,MAAM;AAAA,CAAI,EACnD/kG,GAAQmlG,GAAWD,EAAU,EACxBrsI,GAAImnC,GAAM,OAAS,EAAGnnC,IAAK,EAAG,EAAEA,GAAG,CACxC,IAAIvB,GAAO0oC,GAAMnnC,EAAC,EAClB,GAAI,CAACmpI,EAAiB,KAAK1qI,EAAI,EAAG,CAC9B,IAAI8tI,GAAc9tI,GAAK,MAAM2qI,CAAgB,EACzCmD,KACAJ,GAAe,MAAQI,GAAY,CAAC,EAChC,IAAMA,GAAY,CAAC,EAAI,IAAMA,GAAY,CAAC,EAAI,KAEtD,KACpB,CACA,CAEY,GAAIplG,GAAM,OAAS,GAEf,QADIqlG,GAAgBrlG,GAAM,CAAC,EAClBnnC,GAAI,EAAGA,GAAIqsI,GAAW,OAAQ,EAAErsI,GAErC,GAAIqsI,GAAWrsI,EAAC,IAAMwsI,GAAe,CAC7BxsI,GAAI,IACJosI,GAAc;AAAA,EAAOC,GAAWrsI,GAAI,CAAC,GAEzC,KACxB,EAIA,CACQ,IAAI+8B,GAAM,8BAAgC3a,GACtC,WAAa+pH,GAAc,yDAE3BC,GACJh6F,GAAQ,MAAMrV,GAAK,GAAMmvG,EAAc,CAC/C,CACA,CAEA,SAASO,EAAWrqH,EAAMsqH,GAAa,CACnC,IAAIriH,GAAUjI,EACV,0DACJ,OAAIsqH,KAAariH,IAAW,QAAUqiH,GAAc,aAC7C1vG,EAAK3S,EAAO,CACvB,CAEA,SAAS2S,EAAK3S,EAASw/G,GAAmBz3F,GAAS,CAC/C,GAAKzsB,GAAO,SACZ,KAAIjG,GAAU,IAAI4mH,EAAQj8G,CAAO,EAC7BmC,GACJ,GAAIq9G,GACAz3F,GAAQ,kBAAkB1yB,EAAO,UAC1BiG,GAAO,kBAAoB6G,GAAMu6G,EAAQ,aAAY,GAC5Dv6G,GAAI,iBAAiB9M,EAAO,MACzB,CACH,IAAI+S,GAASs5G,GAAqBrsH,EAAO,EACzCA,GAAQ,MAAQ+S,GAAO,QAAU;AAAA,EAAOA,GAAO,MAAM,KAAK;AAAA,CAAI,CACtE,CAESk4G,EAAgB,UAAWjrH,EAAO,GACnCitH,GAAkBjtH,GAAS,GAAI,EAAI,EAE3C,CAEA,SAASktH,EAAiBviH,EAASwiH,GAAQ,CACvC,QAAS7sI,GAAI,EAAGA,GAAI6sI,GAAO,OAAS,EAAG,EAAE7sI,GACrC6sI,GAAO7sI,EAAC,EAAE,KAAK,sBAAsB,EACrC6sI,GAAO7sI,EAAC,EAAI6sI,GAAO7sI,EAAC,EAAE,KAAK;AAAA,CAAI,EAEnC,OAAIA,GAAI6sI,GAAO,SACXA,GAAO7sI,EAAC,EAAI6sI,GAAO7sI,EAAC,EAAE,KAAK;AAAA,CAAI,GAE5BqqB,EAAU;AAAA,EAAOwiH,GAAO,KAAK;AAAA,CAAI,CAC5C,CAEA,SAASC,EAA4BD,EAAQ,CACzC,QAAS7sI,GAAI,EAAGA,GAAI6sI,EAAO,OAAQ,EAAE7sI,IAC7B6sI,EAAO7sI,EAAC,EAAE,SAAW,GACnBA,GAAI,EAAI6sI,EAAO,QAAWA,EAAO7sI,EAAC,EAAE,CAAC,IAAM6sI,EAAO7sI,GAAE,CAAC,EAAE,CAAC,KAC1D6sI,EAAO,OAAO7sI,GAAG,CAAC,EAClBA,KAGZ,CAEA,SAAS+sI,EAAkBF,EAAQ,CAE/B,QADIr/D,GAAUq/D,EAAO,CAAC,EACb7sI,GAAI,EAAGA,GAAI6sI,EAAO,OAAQ,EAAE7sI,GAAG,CAMpC,QALIrD,GAAOkwI,EAAO7sI,EAAC,EACfgtI,GAAmBx/D,GAAQ,OAAS,EACpCy/D,GAAkBz/D,GAAQw/D,EAAgB,EAC1CE,GAAsB,GAEjBzrI,GAAI9E,GAAK,OAAS,EAAG8E,IAAK,EAAG,EAAEA,GACpC,GAAI9E,GAAK8E,EAAC,IAAMwrI,GAAiB,CAC7BC,GAAsBzrI,GACtB,KAChB,CAGQ,QAASA,GAAIyrI,GAAqBzrI,IAAK,EAAG,EAAEA,GAAG,CAC3C,IAAIhD,GAAO9B,GAAK8E,EAAC,EACjB,GAAI+rE,GAAQw/D,EAAgB,IAAMvuI,GAC9B+uE,GAAQ,IAAG,EACXw/D,SAEA,MAEhB,CACQx/D,GAAU7wE,EAClB,CACA,CAEA,SAAS2vI,GAAWnlG,EAAO,CAEvB,QADIhlB,GAAM,CAAA,EACDniB,GAAI,EAAGA,GAAImnC,EAAM,OAAQ,EAAEnnC,GAAG,CACnC,IAAIvB,GAAO0oC,EAAMnnC,EAAC,EACdmtI,GAAyC1uI,KAA3B,wBACd4qI,EAAkB,KAAK5qI,EAAI,EAC3B2uI,GAAkBD,IAAeE,GAAa5uI,EAAI,EAClD0uI,IAAe,CAACC,KACZ7D,GAAqB9qI,GAAK,OAAO,CAAC,IAAM,MACxCA,GAAO,OAASA,IAEpB0jB,GAAI,KAAK1jB,EAAI,EAEzB,CACI,OAAO0jB,EACX,CAEA,SAASmrH,GAAmB9tI,EAAO,CAE/B,QADI2nC,GAAQ3nC,EAAM,MAAM,QAAQ,QAAS,EAAE,EAAE,MAAM;AAAA,CAAI,EAC9CQ,GAAI,EAAGA,GAAImnC,GAAM,OAAQ,EAAEnnC,GAAG,CACnC,IAAIvB,GAAO0oC,GAAMnnC,EAAC,EAClB,GAA+BvB,KAA3B,wBAAmC4qI,EAAkB,KAAK5qI,EAAI,EAC9D,KAEZ,CACI,OAAIuB,GAAI,GAAKR,EAAM,MAAQ,gBACvB2nC,GAAQA,GAAM,MAAMnnC,EAAC,GAElBmnC,EACX,CAEA,SAAS4kG,GAAqBvsI,EAAO,CACjC,IAAI2nC,GAAQ3nC,EAAM,MACd6qB,GAAU7qB,EAAM,SAAQ,EAC5B,OAAA2nC,GAAQ,OAAOA,IAAU,UAAYA,GAAM,OAAS,EACtCmmG,GAAmB9tI,CAAK,EAAI,CAAC,sBAAsB,EAC1D,CACH,QAAS6qB,GACT,MAAO7qB,EAAM,MAAQ,cAAgB2nC,GAAQmlG,GAAWnlG,EAAK,EAErE,CAEA,SAASwlG,GAAkBntI,EAAOy1B,GAAOs4G,GAAQ,CAC7C,GAAI,OAAO,QAAY,IAAa,CAChC,IAAIljH,GACJ,GAAI65G,EAAK,SAAS1kI,CAAK,EAAG,CACtB,IAAI2nC,GAAQ3nC,EAAM,MAClB6qB,GAAU4K,GAAQq0G,EAAYniG,GAAO3nC,CAAK,CACtD,MACY6qB,GAAU4K,GAAQ,OAAOz1B,CAAK,EAE9B,OAAOgqI,GAAiB,WACxBA,EAAan/G,GAASkjH,EAAM,GACrB,OAAO,QAAQ,KAAQ,YAC9B,OAAO,QAAQ,KAAQ,WACvB,QAAQ,IAAIljH,EAAO,CAE/B,CACA,CAEA,SAASu/G,GAAmBxnH,EAAMorH,GAAc/uE,GAAQrsB,GAAS,CAC7D,IAAIq7F,GAAkB,GACtB,GAAI,CACI,OAAOD,IAAiB,aACxBC,GAAkB,GACdrrH,IAAS,mBACTorH,GAAap7F,EAAO,EAEpBo7F,GAAa/uE,GAAQrsB,EAAO,EAG5C,OAAatyC,GAAG,CACRipI,EAAM,WAAWjpI,EAAC,CAC1B,CAEQsiB,IAAS,qBACL,CAACuoH,EAAgBvoH,EAAMq8C,GAAQrsB,EAAO,GAAK,CAACq7F,IAC5Cd,GAAkBluE,GAAQ,sBAAsB,EAGpDksE,EAAgBvoH,EAAMgwB,EAAO,CAErC,CAEA,SAASs7F,GAAe1vG,EAAK,CACzB,IAAIF,GACJ,GAAI,OAAOE,GAAQ,WACfF,GAAM,cACDE,EAAI,MAAQ,aACb,QACD,CACHF,GAAME,GAAO,OAAOA,EAAI,UAAa,WAC/BA,EAAI,SAAQ,EAAKkmG,EAAK,SAASlmG,CAAG,EACxC,IAAI2vG,GAAmB,4BACvB,GAAIA,GAAiB,KAAK7vG,EAAG,EACzB,GAAI,CACA,IAAI8vG,GAAS,KAAK,UAAU5vG,CAAG,EAC/BF,GAAM8vG,EACtB,MACqB,CAErB,CAEY9vG,GAAI,SAAW,IACfA,GAAM,gBAElB,CACI,MAAQ,KAAO+vG,EAAK/vG,EAAG,EAAI,oBAC/B,CAEA,SAAS+vG,EAAK/vG,EAAK,CACf,IAAItM,GAAW,GACf,OAAIsM,EAAI,OAAStM,GACNsM,EAEJA,EAAI,OAAO,EAAGtM,GAAW,CAAC,EAAI,KACzC,CAEA,SAASw4G,IAA6B,CAClC,OAAO,OAAO8D,IAAsB,UACxC,CAEA,IAAIT,GAAe,UAAW,CAAE,MAAO,EAAM,EACzCU,EAAqB,wCACzB,SAASC,EAAcvvI,EAAM,CACzB,IAAI4qC,GAAU5qC,EAAK,MAAMsvI,CAAkB,EAC3C,GAAI1kG,GACA,MAAO,CACH,SAAUA,GAAQ,CAAC,EACnB,KAAM,SAASA,GAAQ,CAAC,EAAG,EAAE,EAGzC,CAEA,SAAS4kG,EAAUxI,EAAgByI,GAAe,CAC9C,GAAKlE,GAA0B,EAO/B,SANImE,GAAkB1I,EAAe,MAAM,MAAM;AAAA,CAAI,EACjD2I,GAAiBF,GAAc,MAAM,MAAM;AAAA,CAAI,EAC/CG,GAAa,GACbn/G,GAAY,GACZo/G,GACAC,GACKvuI,GAAI,EAAGA,GAAImuI,GAAgB,OAAQ,EAAEnuI,GAAG,CAC7C,IAAImwB,GAAS69G,EAAcG,GAAgBnuI,EAAC,CAAC,EAC7C,GAAImwB,GAAQ,CACRm+G,GAAgBn+G,GAAO,SACvBk+G,GAAal+G,GAAO,KACpB,KACZ,CACA,CACI,QAASnwB,GAAI,EAAGA,GAAIouI,GAAe,OAAQ,EAAEpuI,GAAG,CAC5C,IAAImwB,GAAS69G,EAAcI,GAAepuI,EAAC,CAAC,EAC5C,GAAImwB,GAAQ,CACRo+G,GAAep+G,GAAO,SACtBjB,GAAYiB,GAAO,KACnB,KACZ,CACA,CACQk+G,GAAa,GAAKn/G,GAAY,GAAK,CAACo/G,IAAiB,CAACC,IACtDD,KAAkBC,IAAgBF,IAAcn/G,KAIpDm+G,GAAe,SAAS5uI,GAAM,CAC1B,GAAIyqI,EAAqB,KAAKzqI,EAAI,EAAG,MAAO,GAC5C,IAAIq+B,GAAOkxG,EAAcvvI,EAAI,EAC7B,MAAI,GAAAq+B,IACIA,GAAK,WAAawxG,IACjBD,IAAcvxG,GAAK,MAAQA,GAAK,MAAQ5N,GAKzD,GACA,CAEA,SAAS28G,GAAczkG,EAAQ,CAC3B,KAAK,QAAUA,EACf,KAAK,iBAAmB,EACxB,IAAIrI,GAAS,KAAK,QAAU,GAAKqI,IAAW,OAAY,EAAIA,EAAO,SACnE0mG,GAAkB,KAAMjC,EAAa,EACjC9sG,GAAS,IAAI,KAAK,QAAO,CACjC,CACAmlG,EAAK,SAAS2H,GAAe,KAAK,EAClCzD,EAAQ,cAAgByD,GAExBA,GAAc,UAAU,QAAU,UAAW,CACzC,IAAI9sG,EAAS,KAAK,QAClB,GAAI,EAAAA,EAAS,GAIb,SAHI/P,GAAQ,CAAA,EACRw/G,GAAe,CAAA,EAEVxuI,GAAI,EAAGk4B,GAAO,KAAMA,KAAS,OAAW,EAAEl4B,GAC/CgvB,GAAM,KAAKkJ,EAAI,EACfA,GAAOA,GAAK,QAEhB6G,EAAS,KAAK,QAAU/+B,GACxB,QAASA,GAAI++B,EAAS,EAAG/+B,IAAK,EAAG,EAAEA,GAAG,CAClC,IAAImnC,GAAQnY,GAAMhvB,EAAC,EAAE,MACjBwuI,GAAarnG,EAAK,IAAM,SACxBqnG,GAAarnG,EAAK,EAAInnC,GAElC,CACI,QAASA,GAAI,EAAGA,GAAI++B,EAAQ,EAAE/+B,GAAG,CAC7B,IAAIyuI,GAAez/G,GAAMhvB,EAAC,EAAE,MACxBkiB,GAAQssH,GAAaC,EAAY,EACrC,GAAIvsH,KAAU,QAAaA,KAAUliB,GAAG,CAChCkiB,GAAQ,IACR8M,GAAM9M,GAAQ,CAAC,EAAE,QAAU,OAC3B8M,GAAM9M,GAAQ,CAAC,EAAE,QAAU,GAE/B8M,GAAMhvB,EAAC,EAAE,QAAU,OACnBgvB,GAAMhvB,EAAC,EAAE,QAAU,EACnB,IAAI0uI,GAAgB1uI,GAAI,EAAIgvB,GAAMhvB,GAAI,CAAC,EAAI,KAEvCkiB,GAAQ6c,EAAS,GACjB2vG,GAAc,QAAU1/G,GAAM9M,GAAQ,CAAC,EACvCwsH,GAAc,QAAQ,QAAO,EAC7BA,GAAc,QACVA,GAAc,QAAQ,QAAU,IAEpCA,GAAc,QAAU,OACxBA,GAAc,QAAU,GAG5B,QADIC,GAAqBD,GAAc,QAAU,EACxCjtI,GAAIzB,GAAI,EAAGyB,IAAK,EAAG,EAAEA,GAC1ButB,GAAMvtB,EAAC,EAAE,QAAUktI,GACnBA,KAEJ,MACZ,CACA,EACA,EAEA9C,GAAc,UAAU,iBAAmB,SAASrsI,EAAO,CACvD,GAAI,CAAAA,EAAM,iBACV,MAAK,QAAO,EAMZ,QALIizB,GAASs5G,GAAqBvsI,CAAK,EACnC6qB,GAAUoI,GAAO,QACjBo6G,GAAS,CAACp6G,GAAO,KAAK,EAEtB61G,GAAQ,KACLA,KAAU,QACbuE,GAAO,KAAKP,GAAWhE,GAAM,MAAM,MAAM;AAAA,CAAI,CAAC,CAAC,EAC/CA,GAAQA,GAAM,QAElByE,EAAkBF,EAAM,EACxBC,EAA4BD,EAAM,EAClC3I,EAAK,kBAAkB1kI,EAAO,QAASotI,EAAiBviH,GAASwiH,EAAM,CAAC,EACxE3I,EAAK,kBAAkB1kI,EAAO,mBAAoB,EAAI,EAC1D,EAEA,IAAIsuI,IAAqB,UAA0B,CAC/C,IAAIc,GAAsB,YACtBC,GAAmB,SAAS1nG,GAAO3nC,GAAO,CAC1C,OAAI,OAAO2nC,IAAU,SAAiBA,GAElC3nC,GAAM,OAAS,QACfA,GAAM,UAAY,OACXA,GAAM,SAAQ,EAElBkuI,GAAeluI,EAAK,CACnC,EAEI,GAAI,OAAO,MAAM,iBAAoB,UACjC,OAAO,MAAM,mBAAsB,WAAY,CAC/C,MAAM,iBAAmB,EACzB6pI,EAAoBuF,GACpBtF,EAAcuF,GACd,IAAIf,GAAoB,MAAM,kBAE9B,OAAAT,GAAe,SAAS5uI,GAAM,CAC1B,OAAOyqI,EAAqB,KAAKzqI,EAAI,CACjD,EACe,SAAS6gB,GAAUwvH,GAAa,CACnC,MAAM,iBAAmB,EACzBhB,GAAkBxuH,GAAUwvH,EAAW,EACvC,MAAM,iBAAmB,CACrC,CACA,CACI,IAAItuH,GAAM,IAAI,MAEd,GAAI,OAAOA,GAAI,OAAU,UACrBA,GAAI,MAAM,MAAM;AAAA,CAAI,EAAE,CAAC,EAAE,QAAQ,iBAAiB,GAAK,EACvD,OAAA6oH,EAAoB,IACpBC,EAAcuF,GACdtF,EAAoB,GACb,SAA2BrpI,GAAG,CACjCA,GAAE,MAAQ,IAAI,MAAK,EAAG,KAClC,EAGI,IAAI6uI,GACJ,GAAI,CAAE,MAAM,IAAI,KAAQ,OAClBjvI,GAAG,CACLivI,GAAsB,UAAWjvI,EACzC,CACI,MAAI,EAAE,UAAW0gB,KAAQuuH,IACrB,OAAO,MAAM,iBAAoB,UACjC1F,EAAoBuF,GACpBtF,EAAcuF,GACP,SAA2B3uI,GAAG,CACjC,MAAM,iBAAmB,EACzB,GAAI,CAAE,MAAM,IAAI,KAAQ,OAClBJ,GAAG,CAAEI,GAAE,MAAQJ,GAAE,KAAM,CAC7B,MAAM,iBAAmB,CACrC,IAGIwpI,EAAc,SAASniG,GAAO3nC,GAAO,CACjC,OAAI,OAAO2nC,IAAU,SAAiBA,IAEjC,OAAO3nC,IAAU,UAClB,OAAOA,IAAU,aACjBA,GAAM,OAAS,QACfA,GAAM,UAAY,OACXA,GAAM,SAAQ,EAElBkuI,GAAeluI,EAAK,CACnC,EAEW,KAEX,GAAK,EAED,OAAO,QAAY,KAAe,OAAO,QAAQ,KAAS,MAC1DgqI,EAAe,SAAUn/G,EAAS,CAC9B,QAAQ,KAAKA,CAAO,CAC5B,EACQ65G,EAAK,QAAU,QAAQ,OAAO,MAC9BsF,EAAe,SAASn/G,EAASkjH,GAAQ,CACrC,IAAIxjG,GAAQwjG,GAAS,WAAe,WACpC,QAAQ,KAAKxjG,GAAQ1f,EAAU;AAAA,CAAa,CACxD,EACe,CAAC65G,EAAK,QAAU,OAAQ,IAAI,MAAK,EAAG,OAAW,WACtDsF,EAAe,SAASn/G,EAASkjH,GAAQ,CACrC,QAAQ,KAAK,KAAOljH,EACRkjH,GAAS,oBAAsB,YAAY,CACnE,IAIA,IAAI5nH,GAAS,CACT,SAAU+jH,EACV,gBAAiB,GACjB,aAAc,GACd,WAAY,IAGhB,OAAIxB,GAAiBnB,EAAQ,gBAAe,EAErC,CACH,gBAAiB,UAAW,CACxB,OAAOphH,GAAO,eACtB,EACI,SAAU,UAAW,CACjB,OAAOA,GAAO,QACtB,EACI,aAAc,UAAW,CACrB,OAAOA,GAAO,YACtB,EACI,WAAY,UAAW,CACnB,OAAOA,GAAO,UACtB,EACI,sBAAuB,UAAW,CAC9B,OAAO0lH,EACf,EACI,mBAAoB,UAAW,CAC3B,OAAOO,CACf,EACI,sBAAuBI,EACvB,UAAWiC,EACX,KAAMjxG,EACN,WAAYyvG,EACZ,cAAeZ,GACf,aAAcxB,EACd,gBAAiBE,EAErB,+CCl5BAyE,GAAiB,SAASjI,EAASC,EAAqB,CACxD,IAAI9C,EAAO9+G,GAAA,EACPmhH,EAAoBQ,EAAQ,kBAC5B//G,EAAWk9G,EAAK,SAEpB,SAAS+K,EAA0B78F,EAAS/xB,EAAMI,EAAS,CACvD,KAAK,QAAU2xB,EACf,KAAK,KAAO/xB,EACZ,KAAK,QAAUI,EACf,KAAK,OAAS,GACd,KAAK,cAAgB,IACzB,CAEAwuH,EAA0B,UAAU,iBAAmB,UAAW,CAC9D,OAAO,KAAK,OAAS,CACzB,EAEA,SAASC,EAA6BC,EAAgB,CAClD,KAAK,eAAiBA,CAC1B,CAEAD,EAA6B,UAAU,iBAAmB,UAAW,CACjEE,EAAY,KAAK,cAAc,CACnC,EAEA,SAASA,EAAY5iH,EAAKiyC,EAAQ,CAC9B,OAAIjyC,EAAI,eAAiB,MACjB,UAAU,OAAS,EACnBA,EAAI,cAAc,QAAQiyC,CAAM,EAEhCjyC,EAAI,cAAc,QAAO,EAE7BA,EAAI,cAAgB,KACb,IAEJ,EACX,CAEA,SAAS6iH,GAAU,CACf,OAAOF,EAAe,KAAK,KAAM,KAAK,QAAQ,QAAO,EAAG,eAAe,CAC3E,CACA,SAASG,EAAK7wE,EAAQ,CAClB,GAAI,CAAA2wE,EAAY,KAAM3wE,CAAM,EAC5B,OAAAz3C,EAAS,EAAIy3C,EACNz3C,CACX,CACA,SAASmoH,EAAeI,EAAe,CACnC,IAAIn9F,EAAU,KAAK,QACf3xB,EAAU,KAAK,QAEnB,GAAI,CAAC,KAAK,OAAQ,CACd,KAAK,OAAS,GACd,IAAI0B,EAAM,KAAK,iBAAgB,EACzB1B,EAAQ,KAAK2xB,EAAQ,YAAW,CAAE,EAClC3xB,EAAQ,KAAK2xB,EAAQ,YAAW,EAAIm9F,CAAa,EACvD,GAAIptH,IAAQ,OAAW,CACnBiwB,EAAQ,yBAAwB,EAChC,IAAI41F,EAAehB,EAAoB7kH,EAAKiwB,CAAO,EACnD,GAAI41F,aAAwBjB,EAAS,CACjC,GAAI,KAAK,eAAiB,KACtB,GAAIiB,EAAa,eAAgB,CAC7B,IAAIvpE,EACA,IAAI8nE,EAAkB,4BAA4B,EACtD,OAAAn0F,EAAQ,kBAAkBqsB,CAAM,EAChCz3C,EAAS,EAAIy3C,EACNz3C,CAC/B,MAA+BghH,EAAa,aACpBA,EAAa,4BACT,IAAIkH,EAA6B,IAAI,CAAC,EAGlD,OAAOlH,EAAa,MAChBqH,EAASC,EAAM,OAAW,KAAM,MAAS,CAC7D,CACA,CACA,CAEI,OAAIl9F,EAAQ,cACRg9F,EAAY,IAAI,EAChBpoH,EAAS,EAAIuoH,EACNvoH,IAEPooH,EAAY,IAAI,EACTG,EAEf,CAEA,OAAAxI,EAAQ,UAAU,aAAe,SAAStmH,EAASJ,EAAMk1E,EAAS+5C,EAAM,CACpE,OAAI,OAAO7uH,GAAY,WAAmB,KAAK,KAAI,EAC5C,KAAK,MAAM80E,EACA+5C,EACA,OACA,IAAIL,EAA0B,KAAM5uH,EAAMI,CAAO,EACjD,MAAS,CAC/B,EAEAsmH,EAAQ,UAAU,OAClBA,EAAQ,UAAU,QAAa,SAAUtmH,EAAS,CAC9C,OAAO,KAAK,aAAaA,EACA,EACA0uH,EACAA,CAAc,CAC3C,EAEApI,EAAQ,UAAU,IAAM,SAAUtmH,EAAS,CACvC,OAAO,KAAK,aAAaA,EAAS,EAAG0uH,CAAc,CACvD,EAEOF,CACP,+CC7GAO,GAAiB,SAASC,EAAa,CACvC,IAAIvL,EAAO9+G,GAAA,EACPk9G,EAAU97G,GAAA,EAAiB,KAC3B66G,EAAW6C,EAAK,SAChBl9G,EAAWk9G,EAAK,SAEpB,SAASwL,EAAYC,EAAW7X,EAAI1lF,EAAS,CACzC,OAAO,SAAStyC,EAAG,CACf,IAAI8vI,EAAUx9F,EAAQ,YAAW,EACjCy9F,EAAe,QAAS7vI,EAAI,EAAGA,EAAI2vI,EAAU,OAAQ,EAAE3vI,EAAG,CACtD,IAAIgzB,EAAO28G,EAAU3vI,CAAC,EAEtB,GAAIgzB,IAAS,OACRA,GAAQ,MAAQA,EAAK,qBAAqB,OAC3C,GAAIlzB,aAAakzB,EACb,OAAOquG,EAASvJ,CAAE,EAAE,KAAK8X,EAAS9vI,CAAC,UAEhC,OAAOkzB,GAAS,WAAY,CACnC,IAAI88G,EAAmBzO,EAASruG,CAAI,EAAE,KAAK48G,EAAS9vI,CAAC,EACrD,GAAIgwI,IAAqB9oH,EACrB,OAAO8oH,EACJ,GAAIA,EACP,OAAOzO,EAASvJ,CAAE,EAAE,KAAK8X,EAAS9vI,CAAC,CAEvD,SAAuBokI,EAAK,SAASpkI,CAAC,EAAG,CAEzB,QADI0hB,EAAO8gH,EAAQtvG,CAAI,EACdvxB,EAAI,EAAGA,EAAI+f,EAAK,OAAQ,EAAE/f,EAAG,CAClC,IAAIggB,EAAMD,EAAK/f,CAAC,EAChB,GAAIuxB,EAAKvR,CAAG,GAAK3hB,EAAE2hB,CAAG,EAClB,SAASouH,CAEjC,CACgB,OAAOxO,EAASvJ,CAAE,EAAE,KAAK8X,EAAS9vI,CAAC,CACnD,CACA,CACQ,OAAO2vI,CACf,CACA,CAEA,OAAOC,CACP,mDCxCA,IAAIxL,EAAO9+G,GAAA,EACPu8G,EAAmBuC,EAAK,iBACxB2C,EAASrgH,GAAA,EACTmgH,EAAmBE,EAAO,iBAC1B9F,EAAMr6G,GAAA,EAEV,SAASqpH,EAAe/xG,EAAK,CACzB,OAAOA,aAAe,OAClB+iG,EAAI,eAAe/iG,CAAG,IAAM,MAAM,SAC1C,CAEA,IAAIgyG,EAAY,iCAChB,SAASC,EAAuBjyG,EAAK,CACjC,IAAI7b,EACJ,GAAI4tH,EAAe/xG,CAAG,EAAG,CACrB7b,EAAM,IAAIwkH,EAAiB3oG,CAAG,EAC9B7b,EAAI,KAAO6b,EAAI,KACf7b,EAAI,QAAU6b,EAAI,QAClB7b,EAAI,MAAQ6b,EAAI,MAEhB,QADIxc,EAAOu/G,EAAI,KAAK/iG,CAAG,EACdh+B,EAAI,EAAGA,EAAIwhB,EAAK,OAAQ,EAAExhB,EAAG,CAClC,IAAIyhB,EAAMD,EAAKxhB,CAAC,EACXgwI,EAAU,KAAKvuH,CAAG,IACnBU,EAAIV,CAAG,EAAIuc,EAAIvc,CAAG,EAElC,CACQ,OAAOU,CACf,CACI,OAAA+hH,EAAK,+BAA+BlmG,CAAG,EAChCA,CACX,CAEA,SAASkyG,EAAmB99F,EAAS+9F,EAAW,CAC5C,OAAO,SAAS3vH,EAAKniB,EAAO,CACxB,GAAI+zC,IAAY,KAChB,IAAI5xB,EAAK,CACL,IAAIW,EAAU8uH,EAAuBtO,EAAiBnhH,CAAG,CAAC,EAC1D4xB,EAAQ,kBAAkBjxB,CAAO,EACjCixB,EAAQ,QAAQjxB,CAAO,CACnC,SAAmB,CAACgvH,EACR/9F,EAAQ,SAAS/zC,CAAK,MACnB,CACwE,QAAvE+xI,EAAQ,UAAU,OAAW7wH,EAAO,IAAI,MAAM,KAAK,IAAI6wH,EAAQ,EAAG,CAAC,CAAC,EAAWC,EAAM,EAAGA,EAAMD,EAAO,EAAEC,EAAM9wH,EAAK8wH,EAAM,CAAC,EAAI,UAAUA,CAAG,EAC9Ij+F,EAAQ,SAAS7yB,CAAI,CACjC,CACQ6yB,EAAU,KAClB,CACA,CAEA,OAAAk+F,GAAiBJ,8CCjDjBjS,GACA,SAAS8I,EAAS5+C,EAAU6+C,EAAqBQ,EAAc+I,EAAO,CACtE,IAAIrM,EAAO9+G,GAAA,EACPi8G,EAAW6C,EAAK,SAEpB6C,EAAQ,OAAS,SAAUt8H,EAAI,CAC3B,GAAI,OAAOA,GAAO,WACd,MAAM,IAAIs8H,EAAQ,UAAU,gCAAkC7C,EAAK,YAAYz5H,CAAE,CAAC,EAEtF,OAAO,UAAY,CACf,IAAI0X,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9BhmE,EAAI,mBAAkB,EACtBA,EAAI,aAAY,EAChB,IAAI9jB,EAAQgjI,EAAS52H,CAAE,EAAE,MAAM,KAAM,SAAS,EAC1CyhI,EAAiB/pH,EAAI,YAAW,EACpC,OAAAouH,EAAM,sBACFlyI,EAAO6tI,EAAgB,iBAAkB/pH,CAAG,EAChDA,EAAI,sBAAsB9jB,CAAK,EACxB8jB,CACf,CACA,EAEA4kH,EAAQ,QAAUA,EAAQ,IAAS,SAAUt8H,EAAI,CAC7C,GAAI,OAAOA,GAAO,WACd,OAAO+8H,EAAa,gCAAkCtD,EAAK,YAAYz5H,CAAE,CAAC,EAE9E,IAAI0X,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9BhmE,EAAI,mBAAkB,EACtBA,EAAI,aAAY,EAChB,IAAI9jB,EACJ,GAAI,UAAU,OAAS,EAAG,CACtBkyI,EAAM,WAAW,+CAA+C,EAChE,IAAIrwH,EAAM,UAAU,CAAC,EACjBsM,EAAM,UAAU,CAAC,EACrBnuB,EAAQ6lI,EAAK,QAAQhkH,CAAG,EAAImhH,EAAS52H,CAAE,EAAE,MAAM+hB,EAAKtM,CAAG,EAC3BmhH,EAAS52H,CAAE,EAAE,KAAK+hB,EAAKtM,CAAG,CAC9D,MACQ7hB,EAAQgjI,EAAS52H,CAAE,EAAC,EAExB,IAAIyhI,EAAiB/pH,EAAI,YAAW,EACpC,OAAAouH,EAAM,sBACFlyI,EAAO6tI,EAAgB,cAAe/pH,CAAG,EAC7CA,EAAI,sBAAsB9jB,CAAK,EACxB8jB,CACX,EAEA4kH,EAAQ,UAAU,sBAAwB,SAAU1oI,EAAO,CACnDA,IAAU6lI,EAAK,SACf,KAAK,gBAAgB7lI,EAAM,EAAG,EAAK,EAEnC,KAAK,iBAAiBA,EAAO,EAAI,CAEzC,CACA,+CCrDA08H,GAAiB,SAASgM,EAAS5+C,EAAU6+C,EAAqBuJ,EAAO,CACzE,IAAIC,EAAa,GACbC,EAAa,SAAS3vI,EAAGhB,EAAG,CAC5B,KAAK,QAAQA,CAAC,CAClB,EAEI4wI,EAAiB,SAAS5wI,EAAG6qD,EAAS,CACtCA,EAAQ,uBAAyB,GACjCA,EAAQ,eAAe,MAAM8lF,EAAYA,EAAY,KAAM,KAAM3wI,CAAC,CACtE,EAEI6wI,EAAkB,SAASC,EAASjmF,EAAS,EACvC,KAAK,UAAY,YAAc,GACjC,KAAK,iBAAiBA,EAAQ,MAAM,CAE5C,EAEIkmF,EAAkB,SAAS/wI,EAAG6qD,EAAS,CAClCA,EAAQ,wBAAwB,KAAK,QAAQ7qD,CAAC,CACvD,EAEAinI,EAAQ,UAAU,KAAO,SAAU6J,EAAS,CACnCJ,IACDA,EAAa,GACbzJ,EAAQ,UAAU,eAAiBwJ,EAAM,sBAAqB,EAC9DxJ,EAAQ,UAAU,YAAcwJ,EAAM,mBAAkB,GAE5D,IAAIvI,EAAehB,EAAoB4J,CAAO,EAC1CzuH,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9BhmE,EAAI,eAAe,KAAM,CAAC,EAC1B,IAAI9C,EAAS,KAAK,QAAO,EAEzB,GADA8C,EAAI,YAAY6lH,CAAY,EACxBA,aAAwBjB,EAAS,CACjC,IAAIp8E,EAAU,CACV,uBAAwB,GACxB,QAASxoC,EACT,OAAQ9C,EACR,eAAgB2oH,GAEpB3oH,EAAO,MAAM8oE,EAAUuoD,EAAgB,OAAWvuH,EAAKwoC,CAAO,EAC9Dq9E,EAAa,MACT2I,EAAiBE,EAAiB,OAAW1uH,EAAKwoC,CAAO,EAC7DxoC,EAAI,aAAa6lH,CAAY,CACrC,MACQ7lH,EAAI,iBAAiB9C,CAAM,EAE/B,OAAO8C,CACX,EAEA4kH,EAAQ,UAAU,YAAc,SAAU/oG,EAAK,CACvCA,IAAQ,QACR,KAAK,UAAY,KAAK,UAAY,QAClC,KAAK,SAAWA,GAEhB,KAAK,UAAY,KAAK,UAAa,QAE3C,EAEA+oG,EAAQ,UAAU,SAAW,UAAY,CACrC,OAAQ,KAAK,UAAY,WAAa,OAC1C,EAEAA,EAAQ,KAAO,SAAU6J,EAASvyI,EAAO,CACrC,OAAO0oI,EAAQ,QAAQ1oI,CAAK,EAAE,KAAKuyI,CAAO,CAC9C,CACA,+CCjEAzuF,GAAiB,SAAS4kF,EAASY,EAAcH,EAAc+I,EAAO,CACtE,IAAIrM,EAAO9+G,GAAA,EACPi8G,EAAW6C,EAAK,SAChBl9G,EAAWk9G,EAAK,SAChB6E,EAAQhC,EAAQ,OAEpBA,EAAQ,UAAU,MAAWA,EAAQ,UAAU,OAAS,UAAW,CAC/D,GAAI,CAACwJ,EAAM,aAAY,EAAI,OAAO,KAAK,MAAM,0BAA0B,EAIvE,QAFIn+F,EAAU,KACVxM,EAAQwM,EACLA,EAAQ,kBAAkB,CAC7B,GAAI,CAACA,EAAQ,UAAUxM,CAAK,EAAG,CACvBA,EAAM,eACNA,EAAM,UAAS,EAAG,OAAM,EAExBA,EAAM,gBAAe,EAEzB,KACZ,CAEQ,IAAIwB,EAASgL,EAAQ,oBACrB,GAAIhL,GAAU,MAAQ,CAACA,EAAO,eAAc,EAAI,CACxCgL,EAAQ,eACRA,EAAQ,UAAS,EAAG,OAAM,EAE1BA,EAAQ,gBAAe,EAE3B,KACZ,MACgBA,EAAQ,aAAY,GAAIA,EAAQ,UAAS,EAAG,OAAM,EACtDA,EAAQ,oBAAmB,EAC3BxM,EAAQwM,EACRA,EAAUhL,CAEtB,CACA,EAEA2/F,EAAQ,UAAU,oBAAsB,UAAW,CAC/C,KAAK,4BACT,EAEAA,EAAQ,UAAU,6BAA+B,UAAW,CACxD,OAAO,KAAK,6BAA+B,QACpC,KAAK,4BAA8B,CAC9C,EAEAA,EAAQ,UAAU,UAAY,SAAS+J,EAAW,CAC9C,OAAIA,IAAc,MACd,KAAK,2BAA6B,EAClC,KAAK,gBAAe,EACb,KAEP,KAAK,oBAAmB,EACpB,KAAK,gCACL,KAAK,gBAAe,EACb,IAGR,GACX,EAEA/J,EAAQ,UAAU,gBAAkB,UAAW,CACvC,KAAK,gCACL,KAAK,QAAO,CAEpB,EAEAA,EAAQ,UAAU,QAAU,UAAW,CAC9B,KAAK,mBACV,KAAK,cAAa,EAClBgC,EAAM,OAAO,KAAK,gBAAiB,KAAM,MAAS,EACtD,EAEAhC,EAAQ,UAAU,gBAAkB,UAAW,CACvC,KAAK,QAAO,EAAK,GAAG,KAAK,gBAAe,CAChD,EAEAA,EAAQ,UAAU,eAAiB,UAAW,CAC1C,KAAK,eAAiB,MAC1B,EAEAA,EAAQ,UAAU,eAAiB,UAAW,CAC1C,OAAO,KAAK,UAAS,GAAM,CAAC,KAAK,aAAY,CACjD,EAEAA,EAAQ,UAAU,cAAgB,UAAW,CACzC,OAAO,KAAK,UAAS,GAAM,CAAC,KAAK,YAAW,CAChD,EAEAA,EAAQ,UAAU,kBAAoB,SAASgK,EAAkBC,EAAc,CAC3E,GAAI9M,EAAK,QAAQ6M,CAAgB,EAC7B,QAAS/wI,EAAI,EAAGA,EAAI+wI,EAAiB,OAAQ,EAAE/wI,EAC3C,KAAK,kBAAkB+wI,EAAiB/wI,CAAC,EAAGgxI,CAAY,UAErDD,IAAqB,OAC5B,GAAI,OAAOA,GAAqB,YAC5B,GAAI,CAACC,EAAc,CACf,IAAIlxI,EAAIuhI,EAAS0P,CAAgB,EAAE,KAAK,KAAK,aAAa,EACtDjxI,IAAMknB,IACN,KAAK,kBAAkBlnB,EAAE,CAAC,EAC1BipI,EAAM,WAAWjpI,EAAE,CAAC,EAExC,OAEYixI,EAAiB,iBAAiB,IAAI,CAGlD,EAEAhK,EAAQ,UAAU,gBAAkB,UAAW,CAC3C,IAAIgK,EAAmB,KAAK,UAAS,EACrC,KAAK,eAAc,EACnBhI,EAAM,OAAO,KAAK,kBAAmB,KAAMgI,CAAgB,CAC/D,EAEAhK,EAAQ,UAAU,wBAA0B,UAAW,CAC/C,KAAK,mBACL,KAAK,kBAAkB,KAAK,UAAS,EAAI,EAAI,EAC7C,KAAK,eAAc,EAE3B,EAEAA,EAAQ,UAAU,iBAAmB,UAAW,CAC5C,KAAK,OAAM,CACf,CAEA,+CC/HAkK,GAAiB,SAASlK,EAAS,CACnC,SAASmK,GAAW,CAChB,OAAO,KAAK,KAChB,CACA,SAAShP,GAAU,CACf,MAAM,KAAK,MACf,CAEA6E,EAAQ,UAAU,OAClBA,EAAQ,UAAU,WAAa,SAAU1oI,EAAO,CAC5C,OAAIA,aAAiB0oI,GAAS1oI,EAAM,4BAA2B,EACxD,KAAK,MACR6yI,EAAU,OAAW,OAAW,CAAC,MAAO7yI,CAAK,EAAG,MAAS,CACjE,EAEA0oI,EAAQ,UAAU,MAClBA,EAAQ,UAAU,UAAY,SAAUtoE,EAAQ,CAC5C,OAAO,KAAK,MACRyjE,EAAS,OAAW,OAAW,CAAC,OAAQzjE,CAAM,EAAG,MAAS,CAClE,EAEAsoE,EAAQ,UAAU,WAAa,SAAUtoE,EAAQ,CAC7C,GAAI,UAAU,QAAU,EACpB,OAAO,KAAK,MACR,OAAWyjE,EAAS,OAAW,CAAC,OAAQzjE,CAAM,EAAG,MAAS,EAE9D,IAAI0yE,EAAU,UAAU,CAAC,EACrB1wH,EAAU,UAAW,CAAC,MAAM0wH,CAAQ,EACxC,OAAO,KAAK,OAAO1yE,EAAQh+C,CAAO,CAE1C,EAEAsmH,EAAQ,UAAU,YAAc,SAAU1oI,EAAO,CAC7C,GAAI,UAAU,QAAU,EACpB,OAAIA,aAAiB0oI,GAAS1oI,EAAM,4BAA2B,EACxD,KAAK,MACR,OAAW6yI,EAAU,OAAW,CAAC,MAAO7yI,CAAK,EAAG,MAAS,EAE7D,IAAIiqD,EAAS,UAAU,CAAC,EACpBA,aAAkBy+E,GAASz+E,EAAO,4BAA2B,EACjE,IAAI7nC,EAAU,UAAW,CAAC,OAAO6nC,CAAO,EACxC,OAAO,KAAK,OAAOjqD,EAAOoiB,CAAO,CAEzC,CACA,+CC5CA2wH,GAAiB,SAASrK,EAAS,CACnC,SAASsK,EAAkBj/F,EAAS,CAC5BA,IAAY,QACZA,EAAUA,EAAQ,QAAO,EACzB,KAAK,UAAYA,EAAQ,UACzB,KAAK,mBAAqBA,EAAQ,cAAa,EACzCA,EAAQ,cAAa,EAAK,SAGhC,KAAK,UAAY,EACjB,KAAK,mBAAqB,OAElC,CAEAi/F,EAAkB,UAAU,cAAgB,UAAW,CACnD,OAAO,KAAK,kBAChB,EAEA,IAAIhzI,EAAQgzI,EAAkB,UAAU,MAAQ,UAAY,CACxD,GAAI,CAAC,KAAK,cACN,MAAM,IAAI,UAAU;AAAA;AAAA;AAAA,CAAuG,EAE/H,OAAO,KAAK,cAAa,CAC7B,EAEI5yE,EAAS4yE,EAAkB,UAAU,MACzCA,EAAkB,UAAU,OAAS,UAAY,CAC7C,GAAI,CAAC,KAAK,aACN,MAAM,IAAI,UAAU;AAAA;AAAA;AAAA,CAAqG,EAE7H,OAAO,KAAK,cAAa,CAC7B,EAEIC,EAAcD,EAAkB,UAAU,YAAc,UAAW,CACnE,OAAQ,KAAK,UAAY,YAAc,CAC3C,EAEIE,EAAaF,EAAkB,UAAU,WAAa,UAAY,CAClE,OAAQ,KAAK,UAAY,YAAc,CAC3C,EAEIG,EAAYH,EAAkB,UAAU,UAAY,UAAY,CAChE,OAAQ,KAAK,UAAY,YAAc,CAC3C,EAEItJ,EAAasJ,EAAkB,UAAU,WAAa,UAAY,CAClE,OAAQ,KAAK,UAAY,YAAc,CAC3C,EAEAA,EAAkB,UAAU,YAAc,UAAW,CACjD,OAAQ,KAAK,UAAY,WAAa,CAC1C,EAEAtK,EAAQ,UAAU,cAAgB,UAAW,CACzC,OAAQ,KAAK,UAAY,SAAW,KACxC,EAEAA,EAAQ,UAAU,aAAe,UAAW,CACxC,OAAO,KAAK,QAAO,EAAG,cAAa,CACvC,EAEAA,EAAQ,UAAU,YAAc,UAAW,CACvC,OAAQ,KAAK,QAAO,EAAG,UAAY,WAAa,CACpD,EAEAA,EAAQ,UAAU,UAAY,UAAW,CACrC,OAAOyK,EAAU,KAAK,KAAK,QAAO,CAAE,CACxC,EAEAzK,EAAQ,UAAU,WAAa,UAAW,CACtC,OAAOwK,EAAW,KAAK,KAAK,QAAO,CAAE,CACzC,EAEAxK,EAAQ,UAAU,YAAc,UAAW,CACvC,OAAOuK,EAAY,KAAK,KAAK,QAAO,CAAE,CAC1C,EAEAvK,EAAQ,UAAU,WAAa,UAAW,CACtC,OAAOgB,EAAW,KAAK,KAAK,QAAO,CAAE,CACzC,EAEAhB,EAAQ,UAAU,MAAQ,UAAW,CACjC,OAAO1oI,EAAM,KAAK,KAAK,QAAO,CAAE,CACpC,EAEA0oI,EAAQ,UAAU,OAAS,UAAW,CAClC,IAAI1nH,EAAS,KAAK,QAAO,EACzB,OAAAA,EAAO,2BAA0B,EAC1Bo/C,EAAO,KAAKp/C,CAAM,CAC7B,EAEA0nH,EAAQ,UAAU,OAAS,UAAW,CAClC,OAAO,KAAK,cAAa,CAC7B,EAEAA,EAAQ,UAAU,QAAU,UAAW,CACnC,YAAK,2BAA0B,EACxB,KAAK,cAAa,CAC7B,EAEAA,EAAQ,kBAAoBsK,CAC5B,+CCrGAI,GACA,SAAS1K,EAASY,EAAcX,EAAqB7+C,EAAU4gD,EACtDD,EAAW,CACpB,IAAI5E,EAAO9+G,GAAA,EACP47G,EAAckD,EAAK,YACnB7C,EAAW6C,EAAK,SAChBl9G,EAAWk9G,EAAK,SAChB5hH,EAGJ,GAAI0+G,EAAa,CAwFb,QAvFI0Q,EAAe,SAAS1xI,EAAG,CAC3B,OAAO,IAAI,SAAS,QAAS,SAAU;AAAA;AAAA;AAAA;AAAA,eAIjC,QAAQ,SAAUA,CAAC,CAAC,CAClC,EAEQ2xI,EAAgB,SAAS3xI,EAAG,CAC5B,OAAO,IAAI,SAAS,UAAW,SAAU;AAAA;AAAA;AAAA,eAGnC,QAAQ,SAAUA,CAAC,CAAC,CAClC,EAEQ4xI,EAAsB,SAASl4C,EAAO,CAEtC,QADIq9B,EAAQ,IAAI,MAAMr9B,CAAK,EAClB15F,EAAI,EAAGA,EAAI+2H,EAAM,OAAQ,EAAE/2H,EAChC+2H,EAAM/2H,CAAC,EAAI,UAAYA,EAAE,GAE7B,IAAI6xI,EAAa9a,EAAM,KAAK,KAAK,EAAI,WACjC+a,EAAkB;AAAA,EAAmB/a,EAAM,IAAI,SAAS94F,EAAM,CAC9D,MAAO;AAAA,6BACWA,EAAO;AAAA;AAAA;AAAA;AAAA,cAKrC,CAAS,EAAE,KAAK;AAAA,CAAI,EACR8zG,EAAkBhb,EAAM,KAAK,IAAI,EACjC30G,EAAO,UAAYs3E,EAGnBr7D,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAwCX,OAAAA,EAAOA,EAAK,QAAQ,eAAgBjc,CAAI,EACnC,QAAQ,gBAAiBs3E,CAAK,EAC9B,QAAQ,0BAA2Bq4C,CAAe,EAClD,QAAQ,qBAAsBF,CAAU,EACxC,QAAQ,wBAAyBC,CAAgB,EAE/C,IAAI,SAAS,WAAY,WAAY,UAAW,QAASzzG,CAAI,EAChDgjG,EAAUr6G,EAAU+/G,EAASgC,CAAK,CAC9D,EAEQiJ,EAAgB,CAAA,EAChBC,EAAgB,CAAA,EAChBC,EAAiB,CAAA,EAEZlyI,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACrBgyI,EAAc,KAAKJ,EAAoB5xI,EAAI,CAAC,CAAC,EAC7CiyI,EAAc,KAAKP,EAAa1xI,EAAI,CAAC,CAAC,EACtCkyI,EAAe,KAAKP,EAAc3xI,EAAI,CAAC,CAAC,EAG5CsiB,EAAS,SAAUm8C,EAAQ,CACvB,KAAK,QAAQA,CAAM,CAC3B,CACA,CAEAsoE,EAAQ,KAAO,UAAY,CACvB,IAAI/0B,EAAO,UAAU,OAAS,EAC1BvnG,EACJ,GAAIunG,EAAO,GAAK,OAAO,UAAUA,CAAI,GAAM,aACvCvnG,EAAK,UAAUunG,CAAI,EAEXA,GAAQ,GAAKgvB,GAAa,CAC1B,IAAI7+G,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9BhmE,EAAI,mBAAkB,EAKtB,QAJIgwH,EAAcH,EAAchgC,EAAO,CAAC,EACpCogC,EAAS,IAAID,EAAY1nI,CAAE,EAC3BwpC,EAAYg+F,EAEPjyI,EAAI,EAAGA,EAAIgyG,EAAM,EAAEhyG,EAAG,CAC3B,IAAIgoI,EAAehB,EAAoB,UAAUhnI,CAAC,EAAGmiB,CAAG,EACxD,GAAI6lH,aAAwBjB,EAAS,CACjCiB,EAAeA,EAAa,QAAO,EACnC,IAAIF,EAAWE,EAAa,WAEtBF,EAAW,YAAc,GAC3BE,EAAa,MAAM/zF,EAAUj0C,CAAC,EAAGsiB,EACd,OAAWH,EAAKiwH,CAAM,EACzCF,EAAelyI,CAAC,EAAEgoI,EAAcoK,CAAM,EACtCA,EAAO,YAAc,KACZtK,EAAW,YAAc,EAClC7zF,EAAUj0C,CAAC,EAAE,KAAKmiB,EACA6lH,EAAa,OAAM,EAAIoK,CAAM,GACtCtK,EAAW,YAAc,EAClC3lH,EAAI,QAAQ6lH,EAAa,SAAS,EAElC7lH,EAAI,QAAO,CAEvC,MACwB8xB,EAAUj0C,CAAC,EAAE,KAAKmiB,EAAK6lH,EAAcoK,CAAM,CAEnE,CAEgB,GAAI,CAACjwH,EAAI,gBAAiB,CACtB,GAAIiwH,EAAO,YAAa,CACpB,IAAItI,EAAShB,EAAS,EAClBgB,IAAW,OACXsI,EAAO,GAAKlO,EAAK,WAAW4F,EAAQsI,EAAO,EAAE,EAEzE,CACoBjwH,EAAI,oBAAmB,EACvBA,EAAI,aAAaiwH,CAAM,CAC3C,CACgB,OAAOjwH,CACvB,CAG8D,QAAtDiuH,EAAQ,UAAU,OAAW7wH,EAAO,IAAI,MAAM6wH,CAAK,EAAWC,EAAM,EAAGA,EAAMD,EAAO,EAAEC,EAAM9wH,EAAK8wH,CAAG,EAAI,UAAUA,CAAG,EACrH5lI,GAAI8U,EAAK,IAAG,EAChB,IAAI4C,EAAM,IAAIwlH,EAAapoH,CAAI,EAAE,QAAO,EACxC,OAAO9U,IAAO,OAAY0X,EAAI,OAAO1X,CAAE,EAAI0X,CAC/C,CAEA,+CCtKAs4B,GAAiB,SAASssF,EACAY,EACAH,EACAR,EACA7+C,EACAooD,EAAO,CACjC,IAAIzH,EAAY/B,EAAQ,WACpB7C,EAAO9+G,GAAA,EACPi8G,EAAW6C,EAAK,SAChBl9G,EAAWk9G,EAAK,SAChB6E,EAAQhC,EAAQ,OAEpB,SAASsL,EAAoB/0F,EAAU7yC,EAAI6qE,EAAOg9D,EAAS,CACvD,KAAK,aAAah1F,CAAQ,EAC1B,KAAK,SAAS,mBAAkB,EAChC,IAAIwsF,EAAShB,EAAS,EACtB,KAAK,UAAYgB,IAAW,KAAOr/H,EAAKy5H,EAAK,WAAW4F,EAAQr/H,CAAE,EAClE,KAAK,iBAAmB6nI,IAAYnqD,EAC9B,IAAI,MAAM,KAAK,OAAM,CAAE,EACvB,KACN,KAAK,OAAS7S,EACd,KAAK,UAAY,EACjB,KAAK,OAAS,CAAA,EACdyzD,EAAM,OAAO,KAAK,WAAY,KAAM,MAAS,CACjD,CACA7E,EAAK,SAASmO,EAAqB1K,CAAY,EAE/C0K,EAAoB,UAAU,WAAa,UAAW,CAClD,KAAK,OAAO,OAAW,EAAE,CAC7B,EAEAA,EAAoB,UAAU,MAAQ,UAAY,CAAA,EAElDA,EAAoB,UAAU,kBAAoB,SAAUh0I,EAAO6jB,EAAO,CACtE,IAAIsjF,EAAS,KAAK,QACdzmE,EAAS,KAAK,OAAM,EACpBwzG,EAAkB,KAAK,iBACvBj9D,EAAQ,KAAK,OAEjB,GAAIpzD,EAAQ,GAGR,GAFAA,EAASA,EAAQ,GAAM,EACvBsjF,EAAOtjF,CAAK,EAAI7jB,EACZi3E,GAAS,IACT,KAAK,YACL,KAAK,YAAW,EACZ,KAAK,YAAW,GAAI,MAAO,OAEhC,CACH,GAAIA,GAAS,GAAK,KAAK,WAAaA,EAChC,OAAAkwB,EAAOtjF,CAAK,EAAI7jB,EAChB,KAAK,OAAO,KAAK6jB,CAAK,EACf,GAEPqwH,IAAoB,OAAMA,EAAgBrwH,CAAK,EAAI7jB,GAEvD,IAAI+zC,EAAU,KAAK,SACf+B,EAAW,KAAK,UAChB70B,EAAW8yB,EAAQ,YAAW,EAClCA,EAAQ,aAAY,EACpB,IAAIjwB,EAAMk/G,EAASltF,CAAQ,EAAE,KAAK70B,EAAUjhB,EAAO6jB,EAAO6c,CAAM,EAC5DmtG,EAAiB95F,EAAQ,YAAW,EAOxC,GANAm+F,EAAM,sBACFpuH,EACA+pH,EACAqG,IAAoB,KAAO,iBAAmB,cAC9CngG,GAEAjwB,IAAQ6E,EACR,YAAK,QAAQ7E,EAAI,CAAC,EACX,GAGX,IAAI6lH,EAAehB,EAAoB7kH,EAAK,KAAK,QAAQ,EACzD,GAAI6lH,aAAwBjB,EAAS,CACjCiB,EAAeA,EAAa,QAAO,EACnC,IAAIF,EAAWE,EAAa,UAE5B,IAAMF,EAAW,YAAc,EAC3B,OAAIxyD,GAAS,GAAG,KAAK,YACrBkwB,EAAOtjF,CAAK,EAAI8lH,EAChBA,EAAa,OAAO,MAAO9lH,EAAQ,GAAK,EAAE,EACnC,GACJ,IAAM4lH,EAAW,YAAc,EAClC3lH,EAAM6lH,EAAa,OAAM,MACtB,QAAMF,EAAW,YAAc,GAClC,KAAK,QAAQE,EAAa,SAAS,EAC5B,KAEP,KAAK,QAAO,EACL,GAEvB,CACQxiC,EAAOtjF,CAAK,EAAIC,CACxB,CACI,IAAI8lH,EAAgB,EAAE,KAAK,eAC3B,OAAIA,GAAiBlpG,GACbwzG,IAAoB,KACpB,KAAK,QAAQ/sC,EAAQ+sC,CAAe,EAEpC,KAAK,SAAS/sC,CAAM,EAEjB,IAEJ,EACX,EAEA6sC,EAAoB,UAAU,YAAc,UAAY,CAIpD,QAHI7M,EAAQ,KAAK,OACblwD,EAAQ,KAAK,OACbkwB,EAAS,KAAK,QACXggC,EAAM,OAAS,GAAK,KAAK,UAAYlwD,GAAO,CAC/C,GAAI,KAAK,cAAe,OACxB,IAAIpzD,EAAQsjH,EAAM,IAAG,EACrB,KAAK,kBAAkBhgC,EAAOtjF,CAAK,EAAGA,CAAK,CACnD,CACA,EAEAmwH,EAAoB,UAAU,QAAU,SAAUG,EAAUhtC,EAAQ,CAIhE,QAHI9kF,EAAM8kF,EAAO,OACbrjF,EAAM,IAAI,MAAMzB,CAAG,EACnBjf,EAAI,EACCzB,EAAI,EAAGA,EAAI0gB,EAAK,EAAE1gB,EACnBwyI,EAASxyI,CAAC,IAAGmiB,EAAI1gB,GAAG,EAAI+jG,EAAOxlG,CAAC,GAExCmiB,EAAI,OAAS1gB,EACb,KAAK,SAAS0gB,CAAG,CACrB,EAEAkwH,EAAoB,UAAU,gBAAkB,UAAY,CACxD,OAAO,KAAK,gBAChB,EAEA,SAAS53F,EAAI6C,EAAU7yC,EAAI1L,EAASuzI,EAAS,CACzC,GAAI,OAAO7nI,GAAO,WACd,OAAO+8H,EAAa,gCAAkCtD,EAAK,YAAYz5H,CAAE,CAAC,EAG9E,IAAI6qE,EAAQ,EACZ,GAAIv2E,IAAY,OACZ,GAAI,OAAOA,GAAY,UAAYA,IAAY,KAAM,CACjD,GAAI,OAAOA,EAAQ,aAAgB,SAC/B,OAAOgoI,EAAQ,OACX,IAAI,UAAU,4CACE7C,EAAK,YAAYnlI,EAAQ,WAAW,CAAC,CAAC,EAE9Du2E,EAAQv2E,EAAQ,WAC5B,KACY,QAAOgoI,EAAQ,OAAO,IAAI,UACV,gDACC7C,EAAK,YAAYnlI,CAAO,CAAC,CAAC,EAGnD,OAAAu2E,EAAQ,OAAOA,GAAU,UACrB,SAASA,CAAK,GAAKA,GAAS,EAAIA,EAAQ,EACrC,IAAI+8D,EAAoB/0F,EAAU7yC,EAAI6qE,EAAOg9D,CAAO,EAAE,QAAO,CACxE,CAEAvL,EAAQ,UAAU,IAAM,SAAUt8H,EAAI1L,EAAS,CAC3C,OAAO07C,EAAI,KAAMhwC,EAAI1L,EAAS,IAAI,CACtC,EAEAgoI,EAAQ,IAAM,SAAUzpF,EAAU7yC,EAAI1L,EAASuzI,EAAS,CACpD,OAAO73F,EAAI6C,EAAU7yC,EAAI1L,EAASuzI,CAAO,CAC7C,CAGA,mDCtKA,IAAIzkI,EAAK,OAAO,OAChB,GAAIA,EAAI,CACJ,IAAI4kI,EAAc5kI,EAAG,IAAI,EACrB6kI,EAAc7kI,EAAG,IAAI,EACzB4kI,EAAY,OAAO,EAAIC,EAAY,OAAO,EAAI,CAClD,CAEA,OAAAC,GAAiB,SAAS5L,EAAS,CACnC,IAAI7C,EAAO9+G,GAAA,EACP47G,EAAckD,EAAK,YACnBlB,EAAekB,EAAK,aAEpB0O,EACAC,EACQ,CACZ,IAAIC,EAAmB,SAAUtI,EAAY,CACzC,OAAO,IAAI,SAAS,eAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAc9B,QAAQ,cAAeA,CAAU,CAAC,EAAEuI,CAAY,CAC1D,EAEIC,EAAa,SAAUp6B,EAAc,CACrC,OAAO,IAAI,SAAS,MAAO;AAAA;AAAA;AAAA,WAGrB,QAAQ,eAAgBA,CAAY,CAAC,CAC/C,EAEIq6B,EAAc,SAAS7wH,EAAM8wH,EAAU1/D,EAAO,CAC9C,IAAIrxD,EAAMqxD,EAAMpxD,CAAI,EACpB,GAAI,OAAOD,GAAQ,WAAY,CAC3B,GAAI,CAAC6gH,EAAa5gH,CAAI,EAClB,OAAO,KAKX,GAHAD,EAAM+wH,EAAS9wH,CAAI,EACnBoxD,EAAMpxD,CAAI,EAAID,EACdqxD,EAAM,OAAO,IACTA,EAAM,OAAO,EAAI,IAAK,CAEtB,QADIhyD,EAAO,OAAO,KAAKgyD,CAAK,EACnBxzE,EAAI,EAAGA,EAAI,IAAK,EAAEA,EAAG,OAAOwzE,EAAMhyD,EAAKxhB,CAAC,CAAC,EAClDwzE,EAAM,OAAO,EAAIhyD,EAAK,OAAS,GAC3C,CACA,CACI,OAAOW,CACX,EAEAywH,EAAkB,SAASxwH,EAAM,CAC7B,OAAO6wH,EAAY7wH,EAAM0wH,EAAkBL,CAAW,CAC1D,EAEAI,EAAY,SAASzwH,EAAM,CACvB,OAAO6wH,EAAY7wH,EAAM4wH,EAAYN,CAAW,CACpD,CACA,CAEA,SAASK,EAAa/0G,EAAKwsG,EAAY,CACnC,IAAI//H,EAEJ,GADIuzB,GAAO,OAAMvzB,EAAKuzB,EAAIwsG,CAAU,GAChC,OAAO//H,GAAO,WAAY,CAC1B,IAAI4f,EAAU,UAAY65G,EAAK,YAAYlmG,CAAG,EAAI,mBAC9CkmG,EAAK,SAASsG,CAAU,EAAI,IAChC,MAAM,IAAIzD,EAAQ,UAAU18G,CAAO,CAC3C,CACI,OAAO5f,CACX,CAEA,SAAS0oI,EAAOn1G,EAAK,CACjB,IAAIwsG,EAAa,KAAK,IAAG,EACrB//H,EAAKsoI,EAAa/0G,EAAKwsG,CAAU,EACrC,OAAO//H,EAAG,MAAMuzB,EAAK,IAAI,CAC7B,CACA+oG,EAAQ,UAAU,KAAO,SAAUyD,EAAY,CACgC,QAAvE4F,EAAQ,UAAU,OAAW7wH,EAAO,IAAI,MAAM,KAAK,IAAI6wH,EAAQ,EAAG,CAAC,CAAC,EAAWC,EAAM,EAAGA,EAAMD,EAAO,EAAEC,EAAM9wH,EAAK8wH,EAAM,CAAC,EAAI,UAAUA,CAAG,EAE1I,GAAIrP,EAAa,CACb,IAAIoS,EAAcR,EAAgBpI,CAAU,EAC5C,GAAI4I,IAAgB,KAChB,OAAO,KAAK,MACRA,EAAa,OAAW,OAAW7zH,EAAM,MAAS,CAEtE,CAEI,OAAAA,EAAK,KAAKirH,CAAU,EACb,KAAK,MAAM2I,EAAQ,OAAW,OAAW5zH,EAAM,MAAS,CACnE,EAEA,SAAS8zH,EAAYr1G,EAAK,CACtB,OAAOA,EAAI,IAAI,CACnB,CACA,SAASs1G,EAAct1G,EAAK,CACxB,IAAI9b,EAAQ,CAAC,KACb,OAAIA,EAAQ,IAAGA,EAAQ,KAAK,IAAI,EAAGA,EAAQ8b,EAAI,MAAM,GAC9CA,EAAI9b,CAAK,CACpB,CACA6kH,EAAQ,UAAU,IAAM,SAAUnuB,EAAc,CAC5C,IAAI26B,EAAW,OAAO36B,GAAiB,SACnCnW,EACJ,GAAK8wC,EAQD9wC,EAAS6wC,UAPLtS,EAAa,CACb,IAAIwS,EAAcX,EAAUj6B,CAAY,EACxCnW,EAAS+wC,IAAgB,KAAOA,EAAcH,CAC1D,MACY5wC,EAAS4wC,EAKjB,OAAO,KAAK,MAAM5wC,EAAQ,OAAW,OAAWmW,EAAc,MAAS,CAC3E,CACA,8CCzHA66B,GAAiB,SAAU1M,EAASS,EAAcR,EAC9CuB,EAAepgD,EAAUooD,EAAO,CAChC,IAAIrM,EAAO9+G,GAAA,EACPsuH,EAAYltH,GAAA,EAAoB,UAChC86G,EAAWl8G,GAAA,EAAkB,SAC7B4B,EAAWk9G,EAAK,SAChB7C,EAAW6C,EAAK,SAChByP,EAAO,CAAA,EAEX,SAASzR,EAAQpiI,EAAG,CAChB,WAAW,UAAU,CAAC,MAAMA,CAAE,EAAG,CAAC,CAC1C,CAEI,SAAS8zI,EAAyBC,EAAU,CACxC,IAAI7L,EAAehB,EAAoB6M,CAAQ,EAC/C,OAAI7L,IAAiB6L,GACjB,OAAOA,EAAS,eAAkB,YAClC,OAAOA,EAAS,cAAiB,YACjCA,EAAS,cAAa,GACtB7L,EAAa,eAAe6L,EAAS,cAAc,EAEhD7L,CACf,CACI,SAAS8L,EAAQC,EAAWC,EAAY,CACpC,IAAIh0I,EAAI,EACJ0gB,EAAMqzH,EAAU,OAChB5xH,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9B,SAASz/C,GAAW,CAChB,GAAI1oC,GAAK0gB,EAAK,OAAOyB,EAAI,SAAQ,EACjC,IAAI6lH,EAAe4L,EAAyBG,EAAU/zI,GAAG,CAAC,EAC1D,GAAIgoI,aAAwBjB,GACxBiB,EAAa,cAAa,EAAI,CAC9B,GAAI,CACAA,EAAehB,EACXgB,EAAa,aAAY,EAAG,WAAWgM,CAAU,EACjDD,EAAU,OAAO,CACzC,OAAyBj0I,EAAG,CACR,OAAOoiI,EAAQpiI,CAAC,CACpC,CACgB,GAAIkoI,aAAwBjB,EACxB,OAAOiB,EAAa,MAAMt/F,EAAUw5F,EACV,KAAM,KAAM,IAAI,CAE9D,CACYx5F,EAAQ,CACpB,CACQ,OAAAA,EAAQ,EACDvmB,CACf,CAEI,SAAS8xH,EAASv1I,EAAM0zC,EAASuY,EAAS,CACtC,KAAK,MAAQjsD,EACb,KAAK,SAAW0zC,EAChB,KAAK,SAAWuY,CACxB,CAEIspF,EAAS,UAAU,KAAO,UAAY,CAClC,OAAO,KAAK,KACpB,EAEIA,EAAS,UAAU,QAAU,UAAY,CACrC,OAAO,KAAK,QACpB,EAEIA,EAAS,UAAU,SAAW,UAAY,CACtC,OAAI,KAAK,UAAU,cACR,KAAK,QAAO,EAAG,MAAK,EAExBN,CACf,EAEIM,EAAS,UAAU,WAAa,SAASD,EAAY,CACjD,IAAIE,EAAW,KAAK,SAAQ,EACxBvpF,EAAU,KAAK,SACfA,IAAY,QAAWA,EAAQ,aAAY,EAC/C,IAAIxoC,EAAM+xH,IAAaP,EACjB,KAAK,UAAUO,EAAUF,CAAU,EAAI,KAC7C,OAAIrpF,IAAY,QAAWA,EAAQ,YAAW,EAC9C,KAAK,SAAS,iBAAgB,EAC9B,KAAK,MAAQ,KACNxoC,CACf,EAEI8xH,EAAS,WAAa,SAAU3zI,EAAG,CAC/B,OAAQA,GAAK,MACL,OAAOA,EAAE,UAAa,YACtB,OAAOA,EAAE,YAAe,UACxC,EAEI,SAAS6zI,EAAiB1pI,EAAI2nC,EAASuY,EAAS,CAC5C,KAAK,aAAalgD,EAAI2nC,EAASuY,CAAO,CAC9C,CACI22E,EAAS6S,EAAkBF,CAAQ,EAEnCE,EAAiB,UAAU,UAAY,SAAUD,EAAUF,EAAY,CACnE,IAAIvpI,EAAK,KAAK,KAAI,EAClB,OAAOA,EAAG,KAAKypI,EAAUA,EAAUF,CAAU,CACrD,EAEI,SAASI,EAAoB/1I,EAAO,CAChC,OAAI41I,EAAS,WAAW51I,CAAK,GACzB,KAAK,UAAU,KAAK,KAAK,EAAE,eAAeA,CAAK,EACxCA,EAAM,QAAO,GAEjBA,CACf,CAEI,SAASg2I,EAAat1G,EAAQ,CAC1B,KAAK,OAASA,EACd,KAAK,QAAU,KACf,KAAKA,EAAO,CAAC,EAAI,IACzB,CAEIs1G,EAAa,UAAU,iBAAmB,UAAW,CAEjD,QADI3zH,EAAM,KAAK,OACN1gB,EAAI,EAAGA,EAAI0gB,EAAK,EAAE1gB,EAAG,CAC1B,IAAIgzB,EAAO,KAAKhzB,CAAC,EACbgzB,aAAgB+zG,GAChB/zG,EAAK,OAAM,CAE3B,CACA,EAEI+zG,EAAQ,MAAQ,UAAY,CACxB,IAAIrmH,EAAM,UAAU,OACpB,GAAIA,EAAM,EAAG,OAAO8mH,EACJ,qDAAqD,EACrE,IAAI/8H,EAAK,UAAUiW,EAAM,CAAC,EAC1B,GAAI,OAAOjW,GAAO,WACd,OAAO+8H,EAAa,gCAAkCtD,EAAK,YAAYz5H,CAAE,CAAC,EAE9E,IAAIzL,EACAs1I,EAAa,GACb5zH,IAAQ,GAAK,MAAM,QAAQ,UAAU,CAAC,CAAC,GACvC1hB,EAAQ,UAAU,CAAC,EACnB0hB,EAAM1hB,EAAM,OACZs1I,EAAa,KAEbt1I,EAAQ,UACR0hB,KAGJ,QADIqzH,EAAY,IAAIM,EAAa3zH,CAAG,EAC3B1gB,EAAI,EAAGA,EAAI0gB,EAAK,EAAE1gB,EAAG,CAC1B,IAAIk0I,EAAWl1I,EAAMgB,CAAC,EACtB,GAAIi0I,EAAS,WAAWC,CAAQ,EAAG,CAC/B,IAAIK,EAAWL,EACfA,EAAWA,EAAS,QAAO,EAC3BA,EAAS,eAAeK,CAAQ,CAChD,KAAmB,CACH,IAAIvM,EAAehB,EAAoBkN,CAAQ,EAC3ClM,aAAwBjB,IACxBmN,EACIlM,EAAa,MAAMoM,EAAqB,KAAM,KAAM,CAChD,UAAWL,EACX,MAAO/zI,GACZ,MAAS,EAEhC,CACY+zI,EAAU/zI,CAAC,EAAIk0I,CAC3B,CAGQ,QADIM,EAAqB,IAAI,MAAMT,EAAU,MAAM,EAC1C/zI,EAAI,EAAGA,EAAIw0I,EAAmB,OAAQ,EAAEx0I,EAC7Cw0I,EAAmBx0I,CAAC,EAAI+mI,EAAQ,QAAQgN,EAAU/zI,CAAC,CAAC,EAAE,QAAO,EAGjE,IAAIy0I,EAAgB1N,EAAQ,IAAIyN,CAAkB,EAC7C,KAAK,SAASE,EAAa,CACxB,QAAS10I,EAAI,EAAGA,EAAI00I,EAAY,OAAQ,EAAE10I,EAAG,CACzC,IAAIg0I,EAAaU,EAAY10I,CAAC,EAC9B,GAAIg0I,EAAW,aACX,OAAAhtH,EAAS,EAAIgtH,EAAW,MAAK,EACtBhtH,EACJ,GAAI,CAACgtH,EAAW,cAAe,CAClCS,EAAc,OAAM,EACpB,MACxB,CACoBC,EAAY10I,CAAC,EAAIg0I,EAAW,MAAK,CACrD,CACgB5hG,EAAQ,aAAY,EAEpB3nC,EAAK42H,EAAS52H,CAAE,EAChB,IAAI0X,GAAMmyH,EACJ7pI,EAAG,MAAM,OAAWiqI,CAAW,EAAIjqI,EAAGiqI,CAAW,EACnDxI,EAAiB95F,EAAQ,YAAW,EACxC,OAAAm+F,EAAM,sBACFpuH,GAAK+pH,EAAgB,gBAAiB95F,CAAO,EAC1CjwB,EACvB,CAAa,EAEDiwB,EAAUqiG,EAAc,OAAO,UAAW,CAC1C,IAAIT,EAAa,IAAIjN,EAAQ,kBAAkB0N,CAAa,EAC5D,OAAOX,EAAQC,EAAWC,CAAU,CAChD,CAAS,EACD,OAAAD,EAAU,QAAU3hG,EACpBA,EAAQ,aAAa2hG,CAAS,EACvB3hG,CACf,EAEI20F,EAAQ,UAAU,eAAiB,SAAUwN,EAAU,CACnD,KAAK,UAAY,KAAK,UAAY,OAClC,KAAK,UAAYA,CACzB,EAEIxN,EAAQ,UAAU,cAAgB,UAAY,CAC1C,OAAQ,KAAK,UAAY,QAAU,CAC3C,EAEIA,EAAQ,UAAU,aAAe,UAAY,CACzC,OAAO,KAAK,SACpB,EAEIA,EAAQ,UAAU,iBAAmB,UAAY,CAC7C,KAAK,UAAY,KAAK,UAAa,QACnC,KAAK,UAAY,MACzB,EAEIA,EAAQ,UAAU,SAAW,SAAUt8H,EAAI,CACvC,GAAI,OAAOA,GAAO,WACd,OAAO,IAAI0pI,EAAiB1pI,EAAI,KAAM89H,EAAa,CAAE,EAEzD,MAAM,IAAImL,CAClB,CAEA,+CChOAiB,GAAiB,SAAS5N,EAAS5+C,EAAUooD,EAAO,CACpD,IAAIrM,EAAO9+G,GAAA,EACPohH,EAAeO,EAAQ,aAE3B,SAAS6N,EAAcC,EAAS,CAC5B,KAAK,OAASA,CAClB,CAEAD,EAAc,UAAU,iBAAmB,UAAW,CAClD,aAAa,KAAK,MAAM,CAC5B,EAEA,IAAIE,EAAa,SAASz2I,EAAO,CAAE,OAAOu3F,EAAM,CAAC,IAAI,EAAE,WAAWv3F,CAAK,CAAE,EACrEu3F,EAAQmxC,EAAQ,MAAQ,SAAUtvH,EAAIpZ,EAAO,CAC7C,IAAI8jB,EACA0yH,EACJ,OAAIx2I,IAAU,QACV8jB,EAAM4kH,EAAQ,QAAQ1oI,CAAK,EAClB,MAAMy2I,EAAY,KAAM,KAAMr9H,EAAI,MAAS,EAChD84H,EAAM,gBAAkBlyI,aAAiB0oI,GACzC5kH,EAAI,aAAa9jB,CAAK,IAG1B8jB,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC1B0sD,EAAS,WAAW,UAAW,CAAE1yH,EAAI,SAAQ,CAAG,EAAI,CAAC1K,CAAE,EACnD84H,EAAM,gBACNpuH,EAAI,aAAa,IAAIyyH,EAAcC,CAAM,CAAC,EAE9C1yH,EAAI,mBAAkB,GAE1BA,EAAI,oBAAmB,EAChBA,CACX,EAEA4kH,EAAQ,UAAU,MAAQ,SAAUtvH,EAAI,CACpC,OAAOm+E,EAAMn+E,EAAI,IAAI,CACzB,EAEA,IAAIs9H,EAAe,SAAU3iG,EAAS/nB,EAAS+c,EAAQ,CACnD,IAAI5mB,EACA,OAAO6J,GAAY,SACfA,aAAmB,MACnB7J,EAAM6J,EAEN7J,EAAM,IAAIgmH,EAAa,qBAAqB,EAGhDhmH,EAAM,IAAIgmH,EAAan8G,CAAO,EAElC65G,EAAK,+BAA+B1jH,CAAG,EACvC4xB,EAAQ,kBAAkB5xB,CAAG,EAC7B4xB,EAAQ,QAAQ5xB,CAAG,EAEf4mB,GAAU,MACVA,EAAO,OAAM,CAErB,EAEA,SAAS4tG,EAAa32I,EAAO,CACzB,oBAAa,KAAK,MAAM,EACjBA,CACX,CAEA,SAAS42I,EAAax2E,EAAQ,CAC1B,mBAAa,KAAK,MAAM,EAClBA,CACV,CAEAsoE,EAAQ,UAAU,QAAU,SAAUtvH,EAAI4S,EAAS,CAC/C5S,EAAK,CAACA,EACN,IAAI0K,EAAKilB,EAEL8tG,EAAgB,IAAIN,EAAc,WAAW,UAA0B,CACnEzyH,EAAI,aACJ4yH,EAAa5yH,EAAKkI,EAAS+c,CAAM,CAE7C,EAAO3vB,CAAE,CAAC,EAEN,OAAI84H,EAAM,gBACNnpG,EAAS,KAAK,KAAI,EAClBjlB,EAAMilB,EAAO,MAAM4tG,EAAcC,EACb,OAAWC,EAAe,MAAS,EACvD/yH,EAAI,aAAa+yH,CAAa,GAE9B/yH,EAAM,KAAK,MAAM6yH,EAAcC,EACX,OAAWC,EAAe,MAAS,EAGpD/yH,CACX,CAEA,+CC3FAgzH,GAAiB,SAASpO,EACAS,EACAr/C,EACA6+C,EACAS,EACA8I,EAAO,CACjC,IAAI1J,EAASzhH,GAAA,EACTsuH,EAAY7M,EAAO,UACnB3C,EAAO19G,GAAA,EACPQ,EAAWk9G,EAAK,SAChB7C,EAAW6C,EAAK,SAChBkR,EAAgB,CAAA,EAEpB,SAASC,EAAwBh3I,EAAO+2I,EAAeE,EAAa,CAChE,QAASt1I,EAAI,EAAGA,EAAIo1I,EAAc,OAAQ,EAAEp1I,EAAG,CAC3Cs1I,EAAY,aAAY,EACxB,IAAInlH,EAASkxG,EAAS+T,EAAcp1I,CAAC,CAAC,EAAE3B,CAAK,EAE7C,GADAi3I,EAAY,YAAW,EACnBnlH,IAAWnJ,EAAU,CACrBsuH,EAAY,aAAY,EACxB,IAAInzH,EAAM4kH,EAAQ,OAAO//G,EAAS,CAAC,EACnC,OAAAsuH,EAAY,YAAW,EAChBnzH,CACnB,CACQ,IAAI6lH,EAAehB,EAAoB72G,EAAQmlH,CAAW,EAC1D,GAAItN,aAAwBjB,EAAS,OAAOiB,CACpD,CACI,OAAO,IACX,CAEA,SAASuN,EAAaC,EAAmBl2H,EAAUm2H,EAActuG,EAAO,CACpE,GAAIopG,EAAM,eAAgB,CACtB,IAAIznD,EAAW,IAAIi+C,EAAQ5+C,CAAQ,EAC/ButD,EAAkB,KAAK,gBAAkB,IAAI3O,EAAQ5+C,CAAQ,EACjE,KAAK,SAAWW,EAAS,OAAO,UAAW,CACvC,OAAO4sD,CACnB,CAAS,EACD5sD,EAAS,mBAAkB,EAC3BA,EAAS,aAAa,IAAI,CAClC,KAAW,CACH,IAAI12C,EAAU,KAAK,SAAW,IAAI20F,EAAQ5+C,CAAQ,EAClD/1C,EAAQ,mBAAkB,CAClC,CACI,KAAK,OAASjL,EACd,KAAK,mBAAqBquG,EAC1B,KAAK,UAAYl2H,EACjB,KAAK,WAAa,OAClB,KAAK,eAAiB,OAAOm2H,GAAiB,WACxC,CAACA,CAAY,EAAE,OAAOL,CAAa,EACnCA,EACN,KAAK,gBAAkB,KACvB,KAAK,mBAAqB,EAC9B,CACAlR,EAAK,SAASqR,EAAc9N,CAAS,EAErC8N,EAAa,UAAU,YAAc,UAAW,CAC5C,OAAO,KAAK,WAAa,IAC7B,EAEAA,EAAa,UAAU,SAAW,UAAW,CACzC,KAAK,SAAW,KAAK,WAAa,KAC9BhF,EAAM,aAAY,GAAM,KAAK,kBAAoB,OACjD,KAAK,gBAAgB,SAAQ,EAC7B,KAAK,gBAAkB,KAE/B,EAEAgF,EAAa,UAAU,kBAAoB,UAAW,CAClD,GAAI,MAAK,cACT,KAAII,EAAmB,OAAO,KAAK,WAAW,OAAc,IAExDxlH,EACJ,GAAKwlH,EAUD,KAAK,SAAS,aAAY,EAC1BxlH,EAASkxG,EAAS,KAAK,WAAW,MAAS,EAAE,KAAK,KAAK,WACL,MAAS,EAC3D,KAAK,SAAS,YAAW,MAbN,CACnB,IAAI5iE,EAAS,IAAIsoE,EAAQ,kBACrB,8BAA8B,EAClCA,EAAQ,UAAU,eAAiBtoE,EACnC,KAAK,SAAS,kBAAkBA,CAAM,EACtC,KAAK,SAAS,aAAY,EAC1BtuC,EAASkxG,EAAS,KAAK,WAAW,KAAQ,EAAE,KAAK,KAAK,WACL5iE,CAAM,EACvD,KAAK,SAAS,YAAW,CACjC,CAMI,KAAK,mBAAqB,GAC1B,KAAK,gBAAkB,KACvB,KAAK,UAAUtuC,CAAM,EACzB,EAEAolH,EAAa,UAAU,kBAAoB,SAASl3I,EAAO,CACvD,KAAK,gBAAkB,KACvB,KAAK,SAAS,aAAY,EAC1B,IAAI8xB,EAASkxG,EAAS,KAAK,WAAW,IAAI,EAAE,KAAK,KAAK,WAAYhjI,CAAK,EACvE,KAAK,SAAS,YAAW,EACzB,KAAK,UAAU8xB,CAAM,CACzB,EAEAolH,EAAa,UAAU,iBAAmB,SAAS92E,EAAQ,CACvD,KAAK,gBAAkB,KACvB,KAAK,SAAS,kBAAkBA,CAAM,EACtC,KAAK,SAAS,aAAY,EAC1B,IAAItuC,EAASkxG,EAAS,KAAK,WAAW,KAAQ,EACzC,KAAK,KAAK,WAAY5iE,CAAM,EACjC,KAAK,SAAS,YAAW,EACzB,KAAK,UAAUtuC,CAAM,CACzB,EAEAolH,EAAa,UAAU,iBAAmB,UAAW,CACjD,GAAI,KAAK,2BAA2BxO,EAAS,CACzC,IAAI30F,EAAU,KAAK,gBACnB,KAAK,gBAAkB,KACvBA,EAAQ,OAAM,CACtB,CACA,EAEAmjG,EAAa,UAAU,QAAU,UAAY,CACzC,OAAO,KAAK,QAChB,EAEAA,EAAa,UAAU,KAAO,UAAY,CACtC,KAAK,WAAa,KAAK,mBAAmB,KAAK,KAAK,SAAS,EAC7D,KAAK,UACD,KAAK,mBAAqB,OAC9B,KAAK,kBAAkB,MAAS,CACpC,EAEAA,EAAa,UAAU,UAAY,SAAUplH,EAAQ,CACjD,IAAIiiB,EAAU,KAAK,SACnB,GAAIjiB,IAAWnJ,EAEX,OADA,KAAK,SAAQ,EACT,KAAK,mBACEorB,EAAQ,OAAM,EAEdA,EAAQ,gBAAgBjiB,EAAO,EAAG,EAAK,EAItD,IAAI9xB,EAAQ8xB,EAAO,MACnB,GAAIA,EAAO,OAAS,GAEhB,OADA,KAAK,SAAQ,EACT,KAAK,mBACEiiB,EAAQ,OAAM,EAEdA,EAAQ,iBAAiB/zC,CAAK,EAGzC,IAAI2pI,EAAehB,EAAoB3oI,EAAO,KAAK,QAAQ,EAC3D,GAAI,EAAE2pI,aAAwBjB,KAC1BiB,EACIqN,EAAwBrN,EACA,KAAK,eACL,KAAK,QAAQ,EACrCA,IAAiB,MAAM,CACvB,KAAK,iBACD,IAAI0L,EACA;AAAA;AAAA;AAAA;AAAA,EAAoH,QAAQ,KAAMr1I,CAAK,EACvI;AAAA,EACA,KAAK,OAAO,MAAM;AAAA,CAAI,EAAE,MAAM,EAAG,EAAE,EAAE,KAAK;AAAA,CAAI,CACtE,GAEgB,MAChB,CAEQ2pI,EAAeA,EAAa,QAAO,EACnC,IAAIF,EAAWE,EAAa,WAEtBF,EAAW,YAAc,GAC3B,KAAK,gBAAkBE,EACvBA,EAAa,OAAO,KAAM,IAAI,IACrBF,EAAW,YAAc,EAClCf,EAAQ,OAAO,OACX,KAAK,kBAAmB,KAAMiB,EAAa,OAAM,IAE5CF,EAAW,YAAc,EAClCf,EAAQ,OAAO,OACX,KAAK,iBAAkB,KAAMiB,EAAa,QAAO,GAGrD,KAAK,kBAAiB,CAGlC,EAEAjB,EAAQ,UAAY,SAAUyO,EAAmBz2I,EAAS,CACtD,GAAI,OAAOy2I,GAAsB,WAC7B,MAAM,IAAI9B,EAAU;AAAA;AAAA;AAAA,CAAoF,EAE5G,IAAI+B,EAAe,OAAO12I,CAAO,EAAE,aAC/B62I,EAAgBL,EAChBpuG,EAAQ,IAAI,MAAK,EAAG,MACxB,OAAO,UAAY,CACf,IAAI0uG,EAAYL,EAAkB,MAAM,KAAM,SAAS,EACnDM,EAAQ,IAAIF,EAAc,OAAW,OAAWH,EACtBtuG,CAAK,EAC/BhlB,EAAM2zH,EAAM,QAAO,EACvB,OAAAA,EAAM,WAAaD,EACnBC,EAAM,kBAAkB,MAAS,EAC1B3zH,CACf,CACA,EAEA4kH,EAAQ,UAAU,gBAAkB,SAASt8H,EAAI,CAC7C,GAAI,OAAOA,GAAO,WACd,MAAM,IAAIipI,EAAU,gCAAkCxP,EAAK,YAAYz5H,CAAE,CAAC,EAE9E2qI,EAAc,KAAK3qI,CAAE,CACzB,EAEAs8H,EAAQ,MAAQ,SAAUyO,EAAmB,CAEzC,GADAjF,EAAM,WAAW,kBAAmB,qBAAqB,EACrD,OAAOiF,GAAsB,WAC7B,OAAOhO,EAAa;AAAA;AAAA;AAAA,CAAoF,EAE5G,IAAIsO,EAAQ,IAAIP,EAAaC,EAAmB,IAAI,EAChDrzH,EAAM2zH,EAAM,QAAO,EACvB,OAAAA,EAAM,KAAK/O,EAAQ,KAAK,EACjB5kH,CACX,CACA,+CC7NA4zH,GAAiB,SAAShP,EAAS,CACnC,IAAI7C,EAAO9+G,GAAA,EACP2jH,EAAQhC,EAAQ,OAChB1F,EAAW6C,EAAK,SAChBl9G,EAAWk9G,EAAK,SAEpB,SAAS8R,EAAc7lF,EAAKmgF,EAAU,CAClC,IAAIl+F,EAAU,KACd,GAAI,CAAC8xF,EAAK,QAAQ/zE,CAAG,EAAG,OAAO8lF,EAAe,KAAK7jG,EAAS+d,EAAKmgF,CAAQ,EACzE,IAAInuH,EACAk/G,EAASiP,CAAQ,EAAE,MAAMl+F,EAAQ,cAAe,CAAC,IAAI,EAAE,OAAO+d,CAAG,CAAC,EAClEhuC,IAAQ6E,GACR+hH,EAAM,WAAW5mH,EAAI,CAAC,CAE9B,CAEA,SAAS8zH,EAAe9lF,EAAKmgF,EAAU,CACnC,IAAIl+F,EAAU,KACV9yB,EAAW8yB,EAAQ,YAAW,EAC9BjwB,EAAMguC,IAAQ,OACZkxE,EAASiP,CAAQ,EAAE,KAAKhxH,EAAU,IAAI,EACtC+hH,EAASiP,CAAQ,EAAE,KAAKhxH,EAAU,KAAM6wC,CAAG,EAC7ChuC,IAAQ6E,GACR+hH,EAAM,WAAW5mH,EAAI,CAAC,CAE9B,CACA,SAAS+zH,EAAaz3E,EAAQ6xE,EAAU,CACpC,IAAIl+F,EAAU,KACd,GAAI,CAACqsB,EAAQ,CACT,IAAI03E,EAAY,IAAI,MAAM13E,EAAS,EAAE,EACrC03E,EAAU,MAAQ13E,EAClBA,EAAS03E,CACjB,CACI,IAAIh0H,EAAMk/G,EAASiP,CAAQ,EAAE,KAAKl+F,EAAQ,YAAW,EAAIqsB,CAAM,EAC3Dt8C,IAAQ6E,GACR+hH,EAAM,WAAW5mH,EAAI,CAAC,CAE9B,CAEA4kH,EAAQ,UAAU,WAAaA,EAAQ,UAAU,QAAU,SAAUuJ,EACAvxI,EAAS,CAC1E,GAAI,OAAOuxI,GAAY,WAAY,CAC/B,IAAIhpE,EAAU2uE,EACVl3I,IAAY,QAAa,OAAOA,CAAO,EAAE,SACzCuoE,EAAU0uE,GAEd,KAAK,MACD1uE,EACA4uE,EACA,OACA,KACA5F,EAEZ,CACI,OAAO,IACX,CACA,+CCxDA8F,GAAiB,SAASrP,EAAS5+C,EAAU,CAC7C,IAAIkuD,EAAO,CAAA,EACPnS,EAAO9+G,GAAA,EACP8qH,EAAqB1pH,GAAA,EACrBs7G,EAAeoC,EAAK,aACpBvC,EAAmBuC,EAAK,iBACxBlD,EAAckD,EAAK,YACnBwP,EAAYhtH,GAAA,EAAoB,UAChC4vH,EAAgB,QAChBC,EAAqB,CAAC,kBAAmB,EAAI,EAC7CC,EAAc,CACd,QAAY,SACZ,OACA,YACA,SACA,SACA,YACA,qBAEAC,EAAqB,IAAI,OAAO,OAASD,EAAY,KAAK,GAAG,EAAI,IAAI,EAErEE,EAAgB,SAASt0H,EAAM,CAC/B,OAAO8hH,EAAK,aAAa9hH,CAAI,GACzBA,EAAK,OAAO,CAAC,IAAM,KACnBA,IAAS,aACjB,EAEA,SAASu0H,EAAYl1H,EAAK,CACtB,MAAO,CAACg1H,EAAmB,KAAKh1H,CAAG,CACvC,CAEA,SAASm1H,EAAcnsI,EAAI,CACvB,GAAI,CACA,OAAOA,EAAG,oBAAsB,EACxC,MACc,CACN,MAAO,EACf,CACA,CAEA,SAASosI,EAAe74G,EAAKvc,EAAKyhH,EAAQ,CACtC,IAAI/yE,EAAM+zE,EAAK,yBAAyBlmG,EAAKvc,EAAMyhH,EACXqT,CAAkB,EAC1D,OAAOpmF,EAAMymF,EAAczmF,CAAG,EAAI,EACtC,CACA,SAAS2mF,EAAW30H,EAAK+gH,EAAQ6T,EAAc,CAC3C,QAAS/2I,EAAI,EAAGA,EAAImiB,EAAI,OAAQniB,GAAK,EAAG,CACpC,IAAIyhB,EAAMU,EAAIniB,CAAC,EACf,GAAI+2I,EAAa,KAAKt1H,CAAG,GAErB,QADIu1H,GAAwBv1H,EAAI,QAAQs1H,EAAc,EAAE,EAC/Ct1I,EAAI,EAAGA,EAAI0gB,EAAI,OAAQ1gB,GAAK,EACjC,GAAI0gB,EAAI1gB,CAAC,IAAMu1I,GACX,MAAM,IAAItD,EAAU;AAAA;AAAA;AAAA,EACf,QAAQ,KAAMxQ,CAAM,CAAC,EAI9C,CACA,CAEA,SAAS+T,EAAqBj5G,EAAKklG,EAAQ6T,EAAc11E,EAAQ,CAG7D,QAFI7/C,EAAO0iH,EAAK,kBAAkBlmG,CAAG,EACjC7b,GAAM,CAAA,EACDniB,EAAI,EAAGA,EAAIwhB,EAAK,OAAQ,EAAExhB,EAAG,CAClC,IAAIyhB,GAAMD,EAAKxhB,CAAC,EACZ3B,EAAQ2/B,EAAIvc,EAAG,EACfy1H,EAAsB71E,IAAWq1E,EAC/B,GAAOA,EAAcj1H,EAAe,EACtC,OAAOpjB,GAAU,YACjB,CAACu4I,EAAcv4I,CAAK,GACpB,CAACw4I,EAAe74G,EAAKvc,GAAKyhH,CAAM,GAChC7hE,EAAO5/C,GAAKpjB,EAAO2/B,EAAKk5G,CAAmB,GAC3C/0H,GAAI,KAAKV,GAAKpjB,CAAK,CAE/B,CACI,OAAAy4I,EAAW30H,GAAK+gH,EAAQ6T,CAAY,EAC7B50H,EACX,CAEA,IAAIg1H,EAAmB,SAASr5G,EAAK,CACjC,OAAOA,EAAI,QAAQ,QAAS,KAAK,CACrC,EAEIs5G,EACQ,CACZ,IAAIC,EAA0B,SAASC,EAAqB,CAGxD,QAFIn1H,EAAM,CAACm1H,CAAmB,EAC1BjzG,EAAM,KAAK,IAAI,EAAGizG,EAAsB,EAAI,CAAC,EACzCt3I,EAAIs3I,EAAsB,EAAGt3I,GAAKqkC,EAAK,EAAErkC,EAC7CmiB,EAAI,KAAKniB,CAAC,EAEd,QAAQA,EAAIs3I,EAAsB,EAAGt3I,GAAK,EAAG,EAAEA,EAC3CmiB,EAAI,KAAKniB,CAAC,EAEd,OAAOmiB,CACX,EAEIo1H,EAAmB,SAASC,EAAe,CAC3C,OAAOtT,EAAK,YAAYsT,EAAe,OAAQ,EAAE,CACrD,EAEIC,EAAuB,SAASC,EAAgB,CAChD,OAAOxT,EAAK,YACR,KAAK,IAAIwT,EAAgB,CAAC,EAAG,OAAQ,EAAE,CAC/C,EAEIA,EAAiB,SAASjtI,EAAI,CAC9B,OAAI,OAAOA,EAAG,QAAW,SACd,KAAK,IAAI,KAAK,IAAIA,EAAG,OAAQ,IAAQ,EAAG,CAAC,EAE7C,CACX,EAEA2sI,EACA,SAASjjG,EAAU70B,EAAUq4H,EAAcltI,EAAI3J,EAAGqvI,GAAW,CACzD,IAAIyH,EAAoB,KAAK,IAAI,EAAGF,EAAejtI,CAAE,EAAI,CAAC,EACtDotI,GAAgBR,EAAwBO,CAAiB,EACzDE,EAAkB,OAAO3jG,GAAa,UAAY70B,IAAa+2H,EAEnE,SAAS0B,EAA6Bn5D,EAAO,CACzC,IAAIr/D,EAAOg4H,EAAiB34D,CAAK,EAAE,KAAK,IAAI,EACxCo5D,GAAQp5D,EAAQ,EAAI,KAAO,GAC3Bz8D,GACJ,OAAI21H,EACA31H,GAAM;AAAA,EAENA,GAAM7C,IAAa,OACb;AAAA,EACA;AAAA,EAEH6C,GAAI,QAAQ,WAAY5C,CAAI,EAAE,QAAQ,KAAMy4H,EAAK,CAChE,CAEI,SAASC,GAA6B,CAElC,QADI91H,EAAM,GACDniB,EAAI,EAAGA,EAAI63I,GAAc,OAAQ,EAAE73I,EACxCmiB,GAAO,QAAU01H,GAAc73I,CAAC,EAAG,IAC/B+3I,EAA6BF,GAAc73I,CAAC,CAAC,EAGrD,OAAAmiB,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAUL,QAAQ,gBAAkB21H,EACF;AAAA,EACA;AAAA,CAAyC,EAC5D31H,CACf,CAEI,IAAI+1H,EAAkB,OAAO/jG,GAAa,SACX,wBAAwBA,EAAS,UAClC,KAC1Bv2C,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0DAM4CuyI,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAcjE,QAAQ,sBAAuB8H,EAA0B,CAAE,EACxD,QAAQ,oBAAqBC,CAAe,EACjD,OAAAt6I,EAAOA,EAAK,QAAQ,aAAc65I,EAAqBG,CAAiB,CAAC,EAClE,IAAI,SAAS,UACA,KACA,WACA,eACA,mBACA,qBACA,WACA,WACA,oBACA,WACAh6I,CAAI,EACRmpI,EACAt8H,EACA6U,EACAwiH,EACAH,EACAuO,EACAhM,EAAK,SACLA,EAAK,SACLA,EAAK,kBACL/7C,CAAQ,CAC5B,CACA,CAEA,SAASgwD,EAA2BhkG,EAAU70B,EAAUxe,EAAG2J,EAAI2tI,EAAIjI,GAAW,CAC1E,IAAIkI,GAAe,UAAW,CAAC,OAAO,IAAK,GAAC,EACxCpa,GAAS9pF,EACT,OAAO8pF,IAAW,WAClB9pF,EAAW1pC,GAEf,SAAS6tI,GAAc,CACnB,IAAIC,EAAYj5H,EACZA,IAAa+2H,IAAMkC,EAAY,MACnC,IAAInmG,EAAU,IAAI20F,EAAQ5+C,CAAQ,EAClC/1C,EAAQ,mBAAkB,EAC1B,IAAI0lF,EAAK,OAAOmG,IAAW,UAAY,OAASoa,EAC1C,KAAKpa,EAAM,EAAI9pF,EACjB1pC,EAAKylI,EAAmB99F,EAAS+9F,EAAS,EAC9C,GAAI,CACArY,EAAG,MAAMygB,EAAWzW,EAAa,UAAWr3H,CAAE,CAAC,CAC3D,OAAgB3K,EAAG,CACPsyC,EAAQ,gBAAgBuvF,EAAiB7hI,CAAC,EAAG,GAAM,EAAI,CACnE,CACQ,OAAKsyC,EAAQ,iBAAiBA,EAAQ,oBAAmB,EAClDA,CACf,CACI,OAAA8xF,EAAK,kBAAkBoU,EAAa,oBAAqB,EAAI,EACtDA,CACX,CAEA,IAAIE,EAAsBxX,EACpBoW,EACAe,EAEN,SAASM,EAAaz6G,EAAKklG,EAAQ7hE,EAAQq3E,EAAavI,EAAW,CAK/D,QAJI4G,GAAe,IAAI,OAAOI,EAAiBjU,CAAM,EAAI,GAAG,EACxD3N,EACA0hB,EAAqBj5G,EAAKklG,EAAQ6T,GAAc11E,CAAM,EAEjDrhE,GAAI,EAAG0gB,EAAM60G,EAAQ,OAAQv1H,GAAI0gB,EAAK1gB,IAAI,EAAG,CAClD,IAAIyhB,EAAM8zG,EAAQv1H,EAAC,EACfyK,EAAK8qH,EAAQv1H,GAAE,CAAC,EAChB24I,EAAiBl3H,EAAMyhH,EAC3B,GAAIwV,IAAgBF,EAChBx6G,EAAI26G,CAAc,EACdH,EAAoB/2H,EAAK40H,EAAM50H,EAAKhX,EAAIy4H,EAAQiN,CAAS,MAC1D,CACH,IAAImI,EAAcI,EAAYjuI,EAAI,UAAW,CACzC,OAAO+tI,EAAoB/2H,EAAK40H,EAAM50H,EACXhX,EAAIy4H,EAAQiN,CAAS,CAChE,CAAa,EACDjM,EAAK,kBAAkBoU,EAAa,oBAAqB,EAAI,EAC7Dt6G,EAAI26G,CAAc,EAAIL,CAClC,CACA,CACI,OAAApU,EAAK,iBAAiBlmG,CAAG,EAClBA,CACX,CAEA,SAASo4G,EAAUjiG,EAAU70B,EAAU6wH,EAAW,CAC9C,OAAOqI,EAAoBrkG,EAAU70B,EAAU,OACnB60B,EAAU,KAAMg8F,CAAS,CACzD,CAEApJ,EAAQ,UAAY,SAAUt8H,EAAI1L,EAAS,CACvC,GAAI,OAAO0L,GAAO,WACd,MAAM,IAAIipI,EAAU,gCAAkCxP,EAAK,YAAYz5H,CAAE,CAAC,EAE9E,GAAImsI,EAAcnsI,CAAE,EAChB,OAAOA,EAEX1L,EAAU,OAAOA,CAAO,EACxB,IAAIugB,EAAWvgB,EAAQ,UAAY,OAAYs3I,EAAOt3I,EAAQ,QAC1DoxI,EAAY,CAAC,CAACpxI,EAAQ,UACtBojB,EAAMi0H,EAAU3rI,EAAI6U,EAAU6wH,CAAS,EAC3C,OAAAjM,EAAK,gBAAgBz5H,EAAI0X,EAAKw0H,CAAW,EAClCx0H,CACX,EAEA4kH,EAAQ,aAAe,SAAU1nH,EAAQtgB,EAAS,CAC9C,GAAI,OAAOsgB,GAAW,YAAc,OAAOA,GAAW,SAClD,MAAM,IAAIq0H,EAAU;AAAA;AAAA;AAAA,CAA0G,EAElI30I,EAAU,OAAOA,CAAO,EACxB,IAAIoxI,EAAY,CAAC,CAACpxI,EAAQ,UACtBmkI,EAASnkI,EAAQ,OACjB,OAAOmkI,GAAW,WAAUA,EAASoT,GACzC,IAAIj1E,EAAStiE,EAAQ,OACjB,OAAOsiE,GAAW,aAAYA,EAASq1E,GAC3C,IAAIgC,GAAc35I,EAAQ,YAG1B,GAFI,OAAO25I,IAAgB,aAAYA,GAAcF,GAEjD,CAACtU,EAAK,aAAahB,CAAM,EACzB,MAAM,IAAI,WAAW;AAAA;AAAA;AAAA,CAAiF,EAI1G,QADI1hH,EAAO0iH,EAAK,kBAAkB7kH,CAAM,EAC/Brf,GAAI,EAAGA,GAAIwhB,EAAK,OAAQ,EAAExhB,GAAG,CAClC,IAAI3B,EAAQghB,EAAOmC,EAAKxhB,EAAC,CAAC,EACtBwhB,EAAKxhB,EAAC,IAAM,eACZkkI,EAAK,QAAQ7lI,CAAK,IAClBo6I,EAAap6I,EAAM,UAAW6kI,EAAQ7hE,EAAQq3E,GAC1CvI,CAAS,EACbsI,EAAap6I,EAAO6kI,EAAQ7hE,EAAQq3E,GAAavI,CAAS,EAEtE,CAEI,OAAOsI,EAAap5H,EAAQ6jH,EAAQ7hE,EAAQq3E,GAAavI,CAAS,CACtE,CACA,+CCvTApZ,GAAiB,SACbgQ,EAASY,EAAcX,EAAqBQ,EAAc,CAC9D,IAAItD,EAAO9+G,GAAA,EACPysG,EAAWqS,EAAK,SAChBnD,EAAMv6G,GAAA,EACNoyH,EACA,OAAO,KAAQ,aAAYA,EAAS,KAExC,IAAIC,GAAgB,UAAW,CAC3B,IAAI32H,EAAQ,EACRowB,EAAO,EAEX,SAASwmG,EAAaz6I,EAAOojB,EAAK,CAC9B,KAAKS,CAAK,EAAI7jB,EACd,KAAK6jB,EAAQowB,CAAI,EAAI7wB,EACrBS,GACR,CAEI,OAAO,SAAsBu4B,EAAK,CAC9BnI,EAAOmI,EAAI,KACXv4B,EAAQ,EACR,IAAIC,EAAM,IAAI,MAAMs4B,EAAI,KAAO,CAAC,EAChC,OAAAA,EAAI,QAAQq+F,EAAc32H,CAAG,EACtBA,CACf,CACA,GAAC,EAEG42H,EAAe,SAASC,EAAS,CAGjC,QAFI72H,EAAM,IAAIy2H,EACV75G,EAASi6G,EAAQ,OAAS,EAAI,EACzBh5I,EAAI,EAAGA,EAAI++B,EAAQ,EAAE/+B,EAAG,CAC7B,IAAIyhB,EAAMu3H,EAAQj6G,EAAS/+B,CAAC,EACxB3B,EAAQ26I,EAAQh5I,CAAC,EACrBmiB,EAAI,IAAIV,EAAKpjB,CAAK,CAC1B,CACI,OAAO8jB,CACX,EAEA,SAAS82H,EAAuBj7G,EAAK,CACjC,IAAI+3F,EAAQ,GACRijB,EACJ,GAAIJ,IAAW,QAAa56G,aAAe46G,EACvCI,EAAUH,EAAa76G,CAAG,EAC1B+3F,EAAQ,OACL,CACH,IAAIv0G,EAAOu/G,EAAI,KAAK/iG,CAAG,EACnBtd,EAAMc,EAAK,OACfw3H,EAAU,IAAI,MAAMt4H,EAAM,CAAC,EAC3B,QAAS1gB,EAAI,EAAGA,EAAI0gB,EAAK,EAAE1gB,EAAG,CAC1B,IAAIyhB,EAAMD,EAAKxhB,CAAC,EAChBg5I,EAAQh5I,CAAC,EAAIg+B,EAAIvc,CAAG,EACpBu3H,EAAQh5I,EAAI0gB,CAAG,EAAIe,CAC/B,CACA,CACI,KAAK,aAAau3H,CAAO,EACzB,KAAK,OAASjjB,EACd,KAAK,OAAO,OAAW,EAAE,CAC7B,CACAmO,EAAK,SAAS+U,EAAwBtR,CAAY,EAElDsR,EAAuB,UAAU,MAAQ,UAAY,CAAA,EAErDA,EAAuB,UAAU,kBAAoB,SAAU56I,EAAO6jB,EAAO,CACzE,KAAK,QAAQA,CAAK,EAAI7jB,EACtB,IAAI4pI,EAAgB,EAAE,KAAK,eAC3B,GAAIA,GAAiB,KAAK,QAAS,CAC/B,IAAI93E,EACJ,GAAI,KAAK,OACLA,EAAM4oF,EAAa,KAAK,OAAO,MAC5B,CACH5oF,EAAM,CAAA,EAEN,QADI+oF,EAAY,KAAK,OAAM,EAClBl5I,EAAI,EAAG0gB,EAAM,KAAK,OAAM,EAAI1gB,EAAI0gB,EAAK,EAAE1gB,EAC5CmwD,EAAI,KAAK,QAAQnwD,EAAIk5I,CAAS,CAAC,EAAI,KAAK,QAAQl5I,CAAC,CAEjE,CACQ,YAAK,SAASmwD,CAAG,EACV,EACf,CACI,MAAO,EACX,EAEA8oF,EAAuB,UAAU,iBAAmB,UAAY,CAC5D,MAAO,EACX,EAEAA,EAAuB,UAAU,gBAAkB,SAAUv4H,EAAK,CAC9D,OAAOA,GAAO,CAClB,EAEA,SAASq2G,EAAMz5E,EAAU,CACrB,IAAIn7B,EACAg3H,EAAYnS,EAAoB1pF,CAAQ,EAE5C,GAAKu0E,EAASsnB,CAAS,EAEZA,aAAqBpS,EAC5B5kH,EAAMg3H,EAAU,MACZpS,EAAQ,MAAO,OAAW,OAAW,OAAW,MAAS,EAE7D5kH,EAAM,IAAI82H,EAAuBE,CAAS,EAAE,QAAO,MALnD,QAAO3R,EAAa;AAAA;AAAA;AAAA,CAAuF,EAQ/G,OAAI2R,aAAqBpS,GACrB5kH,EAAI,eAAeg3H,EAAW,CAAC,EAE5Bh3H,CACX,CAEA4kH,EAAQ,UAAU,MAAQ,UAAY,CAClC,OAAOhQ,EAAM,IAAI,CACrB,EAEAgQ,EAAQ,MAAQ,SAAUzpF,EAAU,CAChC,OAAOy5E,EAAMz5E,CAAQ,CACzB,CACA,+CCpHA87F,GAAiB,SACbrS,EAAS5+C,EAAU6+C,EAAqBQ,EAAc,CAC1D,IAAItD,EAAO9+G,GAAA,EAEPi0H,EAAY,SAAUjnG,EAAS,CAC/B,OAAOA,EAAQ,KAAK,SAASnF,EAAO,CAChC,OAAOmsG,EAAKnsG,EAAOmF,CAAO,CAClC,CAAK,CACL,EAEA,SAASgnG,EAAK97F,EAAUlW,EAAQ,CAC5B,IAAI4gG,EAAehB,EAAoB1pF,CAAQ,EAE/C,GAAI0qF,aAAwBjB,EACxB,OAAOsS,EAAUrR,CAAY,EAG7B,GADA1qF,EAAW4mF,EAAK,QAAQ5mF,CAAQ,EAC5BA,IAAa,KACb,OAAOkqF,EAAa,oDAAsDtD,EAAK,YAAY5mF,CAAQ,CAAC,EAG5G,IAAIn7B,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC1B/gD,IAAW,QACXjlB,EAAI,eAAeilB,EAAQ,CAAC,EAIhC,QAFIkyG,EAAUn3H,EAAI,SACdG,EAASH,EAAI,QACRniB,EAAI,EAAG0gB,EAAM48B,EAAS,OAAQt9C,EAAI0gB,EAAK,EAAE1gB,EAAG,CACjD,IAAImwD,EAAM7S,EAASt9C,CAAC,EAEhBmwD,IAAQ,QAAa,EAAEnwD,KAAKs9C,IAIhCypF,EAAQ,KAAK52E,CAAG,EAAE,MAAMmpF,EAASh3H,EAAQ,OAAWH,EAAK,IAAI,CACrE,CACI,OAAOA,CACX,CAEA4kH,EAAQ,KAAO,SAAUzpF,EAAU,CAC/B,OAAO87F,EAAK97F,EAAU,MAAS,CACnC,EAEAypF,EAAQ,UAAU,KAAO,UAAY,CACjC,OAAOqS,EAAK,KAAM,MAAS,CAC/B,CAEA,+CC/CAG,GAAiB,SAASxS,EACAY,EACAH,EACAR,EACA7+C,EACAooD,EAAO,CACjC,IAAIzH,EAAY/B,EAAQ,WACpB7C,EAAO9+G,GAAA,EACPi8G,EAAW6C,EAAK,SAEpB,SAASsV,EAAsBl8F,EAAU7yC,EAAIgvI,EAAcC,EAAO,CAC9D,KAAK,aAAap8F,CAAQ,EAC1B,IAAIwsF,EAAShB,EAAS,EACtB,KAAK,IAAMgB,IAAW,KAAOr/H,EAAKy5H,EAAK,WAAW4F,EAAQr/H,CAAE,EACxDgvI,IAAiB,SACjBA,EAAe1S,EAAQ,QAAQ0S,CAAY,EAC3CA,EAAa,4BAA4B,IAAI,GAEjD,KAAK,cAAgBA,EACrB,KAAK,oBAAsB,KACxBC,IAAUvxD,EACT,KAAK,YAAc,MAAM,KAAK,OAAO,EAC9BuxD,IAAU,EACjB,KAAK,YAAc,KAEnB,KAAK,YAAc,OAEvB,KAAK,SAAS,mBAAkB,EAChC,KAAK,OAAO,OAAW,EAAE,CAC7B,CACAxV,EAAK,SAASsV,EAAuB7R,CAAY,EAEjD6R,EAAsB,UAAU,UAAY,SAASphB,EAAO,CACpD,KAAK,cAAgB,QACrB,KAAK,cAAgB,MACrBA,IAAUjwC,GACV,KAAK,YAAY,KAAKiwC,CAAK,CAEnC,EAEAohB,EAAsB,UAAU,cAAgB,SAASn7I,EAAO,CAC5D,OAAI,KAAK,cAAgB,MACrB,KAAK,YAAY,KAAKA,CAAK,EAExB,KAAK,WAChB,EAEAm7I,EAAsB,UAAU,MAAQ,UAAW,CAAA,EAEnDA,EAAsB,UAAU,mBAAqB,UAAW,CAC5D,KAAK,SAAS,KAAK,cAAgB,OAAY,KAAK,YACL,KAAK,aAAa,CACrE,EAEAA,EAAsB,UAAU,iBAAmB,UAAY,CAC3D,MAAO,EACX,EAEAA,EAAsB,UAAU,SAAW,SAASn7I,EAAO,CACvD,KAAK,SAAS,iBAAiBA,CAAK,EACpC,KAAK,QAAU,IACnB,EAEAm7I,EAAsB,UAAU,iBAAmB,SAASG,EAAQ,CAChE,GAAIA,IAAW,KAAK,cAAe,OAAO,KAAK,QAAO,EAClD,KAAK,gBACT,KAAK,kBAAiB,EAClB,KAAK,+BAA+B5S,GACpC,KAAK,oBAAoB,OAAM,EAE/B,KAAK,yBAAyBA,GAC9B,KAAK,cAAc,OAAM,EAEjC,EAEAyS,EAAsB,UAAU,SAAW,SAAUh0C,EAAQ,CACzD,KAAK,QAAUA,EACf,IAAInnG,EACA2B,EACA++B,EAASymE,EAAO,OAWpB,GAVI,KAAK,gBAAkB,QACvBnnG,EAAQ,KAAK,cACb2B,EAAI,IAEJ3B,EAAQ0oI,EAAQ,QAAQvhC,EAAO,CAAC,CAAC,EACjCxlG,EAAI,GAGR,KAAK,oBAAsB3B,EAEvB,CAACA,EAAM,aACP,KAAO2B,EAAI++B,EAAQ,EAAE/+B,EAAG,CACpB,IAAIwsB,EAAM,CACN,MAAO,KACP,MAAOg5E,EAAOxlG,CAAC,EACf,MAAOA,EACP,OAAQ++B,EACR,MAAO,MAEX1gC,EAAQA,EAAM,MAAMu7I,EAAU,OAAW,OAAWptH,EAAK,MAAS,CAC9E,CAGQ,KAAK,cAAgB,SACrBnuB,EAAQA,EACH,MAAM,KAAK,cAAe,OAAW,OAAW,KAAM,MAAS,GAExEA,EAAM,MAAMw7I,EAAWA,EAAW,OAAWx7I,EAAO,IAAI,CAC5D,EAEA0oI,EAAQ,UAAU,OAAS,SAAUt8H,EAAIgvI,EAAc,CACnD,OAAOF,EAAO,KAAM9uI,EAAIgvI,EAAc,IAAI,CAC9C,EAEA1S,EAAQ,OAAS,SAAUzpF,EAAU7yC,EAAIgvI,EAAcC,EAAO,CAC1D,OAAOH,EAAOj8F,EAAU7yC,EAAIgvI,EAAcC,CAAK,CACnD,EAEA,SAASG,EAAUC,EAAe7sG,EAAO,CACjC,KAAK,cACLA,EAAM,SAAS6sG,CAAa,EAE5B7sG,EAAM,QAAQ6sG,CAAa,CAEnC,CAEA,SAASP,EAAOj8F,EAAU7yC,EAAIgvI,EAAcC,EAAO,CAC/C,GAAI,OAAOjvI,GAAO,WACd,OAAO+8H,EAAa,gCAAkCtD,EAAK,YAAYz5H,CAAE,CAAC,EAE9E,IAAIwiC,EAAQ,IAAIusG,EAAsBl8F,EAAU7yC,EAAIgvI,EAAcC,CAAK,EACvE,OAAOzsG,EAAM,QAAO,CACxB,CAEA,SAAS2sG,EAASxhB,EAAO,CACrB,KAAK,MAAQA,EACb,KAAK,MAAM,UAAUA,CAAK,EAC1B,IAAI/5H,EAAQ2oI,EAAoB,KAAK,MAAO,KAAK,MAAM,QAAQ,EAC/D,OAAI3oI,aAAiB0oI,GACjB,KAAK,MAAM,oBAAsB1oI,EAC1BA,EAAM,MAAM07I,EAAU,OAAW,OAAW,KAAM,MAAS,GAE3DA,EAAS,KAAK,KAAM17I,CAAK,CAExC,CAEA,SAAS07I,EAAS17I,EAAO,CACrB,IAAI4uC,EAAQ,KAAK,MACbmF,EAAUnF,EAAM,SAChBxiC,EAAK42H,EAASp0F,EAAM,GAAG,EAC3BmF,EAAQ,aAAY,EACpB,IAAIjwB,EACA8qB,EAAM,cAAgB,OACtB9qB,EAAM1X,EAAG,KAAK2nC,EAAQ,YAAW,EAAI/zC,EAAO,KAAK,MAAO,KAAK,MAAM,EAEnE8jB,EAAM1X,EAAG,KAAK2nC,EAAQ,YAAW,EACX,KAAK,MAAO/zC,EAAO,KAAK,MAAO,KAAK,MAAM,EAEhE8jB,aAAe4kH,IACf95F,EAAM,oBAAsB9qB,GAEhC,IAAI+pH,EAAiB95F,EAAQ,YAAW,EACxC,OAAAm+F,EAAM,sBACFpuH,EACA+pH,EACAj/F,EAAM,cAAgB,OAAY,eAAiB,iBACnDmF,GAEGjwB,CACX,CACA,+CC1KA63H,GACI,SAASjT,EAASY,EAAc4I,EAAO,CAC3C,IAAIc,EAAoBtK,EAAQ,kBAC5B7C,EAAO9+G,GAAA,EAEX,SAAS60H,EAAoBz0C,EAAQ,CACjC,KAAK,aAAaA,CAAM,CAC5B,CACA0+B,EAAK,SAAS+V,EAAqBtS,CAAY,EAE/CsS,EAAoB,UAAU,iBAAmB,SAAU/3H,EAAO8xH,EAAY,CAC1E,KAAK,QAAQ9xH,CAAK,EAAI8xH,EACtB,IAAI/L,EAAgB,EAAE,KAAK,eAC3B,OAAIA,GAAiB,KAAK,SACtB,KAAK,SAAS,KAAK,OAAO,EACnB,IAEJ,EACX,EAEAgS,EAAoB,UAAU,kBAAoB,SAAU57I,EAAO6jB,EAAO,CACtE,IAAIC,EAAM,IAAIkvH,EACd,OAAAlvH,EAAI,UAAY,SAChBA,EAAI,mBAAqB9jB,EAClB,KAAK,iBAAiB6jB,EAAOC,CAAG,CAC3C,EACA83H,EAAoB,UAAU,iBAAmB,SAAUx7E,EAAQv8C,EAAO,CACtE,IAAIC,EAAM,IAAIkvH,EACd,OAAAlvH,EAAI,UAAY,SAChBA,EAAI,mBAAqBs8C,EAClB,KAAK,iBAAiBv8C,EAAOC,CAAG,CAC3C,EAEA4kH,EAAQ,OAAS,SAAUzpF,EAAU,CACjC,OAAAizF,EAAM,WAAW,YAAa,YAAY,EACnC,IAAI0J,EAAoB38F,CAAQ,EAAE,QAAO,CACpD,EAEAypF,EAAQ,UAAU,OAAS,UAAY,CACnC,OAAOA,EAAQ,OAAO,IAAI,CAC9B,CACA,+CCzCApJ,GACA,SAASoJ,EAASY,EAAcH,EAAc,CAC9C,IAAItD,EAAO9+G,GAAA,EACP80H,EAAa1zH,GAAA,EAAoB,WACjCigH,EAAiBjgH,GAAA,EAAoB,eACrCysG,EAAUiR,EAAK,QACfiW,EAAe,CAAA,EAGnB,SAASC,EAAiB50C,EAAQ,CAC9B,KAAK,aAAaA,CAAM,EACxB,KAAK,SAAW,EAChB,KAAK,QAAU,GACf,KAAK,aAAe,EACxB,CACA0+B,EAAK,SAASkW,EAAkBzS,CAAY,EAE5CyS,EAAiB,UAAU,MAAQ,UAAY,CAC3C,GAAK,KAAK,aAGV,IAAI,KAAK,WAAa,EAAG,CACrB,KAAK,SAAS,EAAE,EAChB,MACR,CACI,KAAK,OAAO,OAAW,EAAE,EACzB,IAAIC,EAAkBpnB,EAAQ,KAAK,OAAO,EACtC,CAAC,KAAK,YAAW,GACjBonB,GACA,KAAK,SAAW,KAAK,uBACrB,KAAK,QAAQ,KAAK,eAAe,KAAK,OAAM,CAAE,CAAC,EAEvD,EAEAD,EAAiB,UAAU,KAAO,UAAY,CAC1C,KAAK,aAAe,GACpB,KAAK,MAAK,CACd,EAEAA,EAAiB,UAAU,UAAY,UAAY,CAC/C,KAAK,QAAU,EACnB,EAEAA,EAAiB,UAAU,QAAU,UAAY,CAC7C,OAAO,KAAK,QAChB,EAEAA,EAAiB,UAAU,WAAa,SAAUx7D,EAAO,CACrD,KAAK,SAAWA,CACpB,EAEAw7D,EAAiB,UAAU,kBAAoB,SAAU/7I,EAAO,CAE5D,OADA,KAAK,cAAcA,CAAK,EACpB,KAAK,WAAU,IAAO,KAAK,QAAO,GAClC,KAAK,QAAQ,OAAS,KAAK,QAAO,EAC9B,KAAK,QAAO,IAAO,GAAK,KAAK,QAC7B,KAAK,SAAS,KAAK,QAAQ,CAAC,CAAC,EAE7B,KAAK,SAAS,KAAK,OAAO,EAEvB,IAEJ,EAEX,EACA+7I,EAAiB,UAAU,iBAAmB,SAAU37E,EAAQ,CAC5D,YAAK,aAAaA,CAAM,EACjB,KAAK,cAAa,CAC7B,EAEA27E,EAAiB,UAAU,kBAAoB,UAAY,CACvD,OAAI,KAAK,mBAAmBrT,GAAW,KAAK,SAAW,KAC5C,KAAK,QAAO,GAEvB,KAAK,aAAaoT,CAAY,EACvB,KAAK,cAAa,EAC7B,EAEAC,EAAiB,UAAU,cAAgB,UAAW,CAClD,GAAI,KAAK,QAAO,EAAK,KAAK,oBAAmB,EAAI,CAE7C,QADIt6I,EAAI,IAAI2mI,EACHzmI,EAAI,KAAK,OAAM,EAAIA,EAAI,KAAK,QAAQ,OAAQ,EAAEA,EAC/C,KAAK,QAAQA,CAAC,IAAMm6I,GACpBr6I,EAAE,KAAK,KAAK,QAAQE,CAAC,CAAC,EAG9B,OAAIF,EAAE,OAAS,EACX,KAAK,QAAQA,CAAC,EAEd,KAAK,QAAO,EAET,EACf,CACI,MAAO,EACX,EAEAs6I,EAAiB,UAAU,WAAa,UAAY,CAChD,OAAO,KAAK,cAChB,EAEAA,EAAiB,UAAU,UAAY,UAAY,CAC/C,OAAO,KAAK,QAAQ,OAAS,KAAK,OAAM,CAC5C,EAEAA,EAAiB,UAAU,aAAe,SAAU37E,EAAQ,CACxD,KAAK,QAAQ,KAAKA,CAAM,CAC5B,EAEA27E,EAAiB,UAAU,cAAgB,SAAU/7I,EAAO,CACxD,KAAK,QAAQ,KAAK,gBAAgB,EAAIA,CAC1C,EAEA+7I,EAAiB,UAAU,oBAAsB,UAAY,CACzD,OAAO,KAAK,SAAW,KAAK,UAAS,CACzC,EAEAA,EAAiB,UAAU,eAAiB,SAAUx7D,EAAO,CACzD,IAAIv0D,EAAU,qCACN,KAAK,SAAW,4BAA8Bu0D,EAAQ,SAC9D,OAAO,IAAIs7D,EAAW7vH,CAAO,CACjC,EAEA+vH,EAAiB,UAAU,mBAAqB,UAAY,CACxD,KAAK,QAAQ,KAAK,eAAe,CAAC,CAAC,CACvC,EAEA,SAASzc,EAAKrgF,EAAUg9F,EAAS,CAC7B,IAAKA,EAAU,KAAOA,GAAWA,EAAU,EACvC,OAAO9S,EAAa;AAAA;AAAA;AAAA,CAA4E,EAEpG,IAAIrlH,EAAM,IAAIi4H,EAAiB98F,CAAQ,EACnClL,EAAUjwB,EAAI,QAAO,EACzB,OAAAA,EAAI,WAAWm4H,CAAO,EACtBn4H,EAAI,KAAI,EACDiwB,CACX,CAEA20F,EAAQ,KAAO,SAAUzpF,EAAUg9F,EAAS,CACxC,OAAO3c,EAAKrgF,EAAUg9F,CAAO,CACjC,EAEAvT,EAAQ,UAAU,KAAO,SAAUuT,EAAS,CACxC,OAAO3c,EAAK,KAAM2c,CAAO,CAC7B,EAEAvT,EAAQ,kBAAoBqT,CAC5B,+CClJA/4E,GAAiB,SAAS0lE,EAAS5+C,EAAU,CAC7C,IAAIoyD,EAAaxT,EAAQ,IAEzBA,EAAQ,UAAU,OAAS,SAAUt8H,EAAI1L,EAAS,CAC9C,OAAOw7I,EAAW,KAAM9vI,EAAI1L,EAASopF,CAAQ,CACjD,EAEA4+C,EAAQ,OAAS,SAAUzpF,EAAU7yC,EAAI1L,EAAS,CAC9C,OAAOw7I,EAAWj9F,EAAU7yC,EAAI1L,EAASopF,CAAQ,CACrD,CACA,+CCVAi1C,GAAiB,SAAS2J,EAAS5+C,EAAU,CAC7C,IAAIqyD,EAAgBzT,EAAQ,OACxB0T,EAAa1T,EAAQ,IAEzB,SAAS2T,GAAiB,CACtB,OAAOD,EAAW,IAAI,CAC1B,CAEA,SAASE,EAAiBr9F,EAAU7yC,EAAI,CACpC,OAAO+vI,EAAcl9F,EAAU7yC,EAAI09E,EAAUA,CAAQ,CACzD,CAEA4+C,EAAQ,UAAU,KAAO,SAAUt8H,EAAI,CACnC,OAAO+vI,EAAc,KAAM/vI,EAAI09E,EAAU,CAAC,EAC/B,MAAMuyD,EAAgB,OAAW,OAAW,KAAM,MAAS,CAC1E,EAEA3T,EAAQ,UAAU,UAAY,SAAUt8H,EAAI,CACxC,OAAO+vI,EAAc,KAAM/vI,EAAI09E,EAAUA,CAAQ,CACrD,EAEA4+C,EAAQ,KAAO,SAAUzpF,EAAU7yC,EAAI,CACnC,OAAO+vI,EAAcl9F,EAAU7yC,EAAI09E,EAAU,CAAC,EACnC,MAAMuyD,EAAgB,OAAW,OAAWp9F,EAAU,MAAS,CAC9E,EAEAypF,EAAQ,UAAY4T,CACpB,+CC3BAC,GAAiB,SAAS7T,EAAS,CACnC,IAAIqT,EAAmBrT,EAAQ,kBAC/B,SAAS6T,EAAIt9F,EAAU,CACnB,IAAIn7B,EAAM,IAAIi4H,EAAiB98F,CAAQ,EACnClL,EAAUjwB,EAAI,QAAO,EACzB,OAAAA,EAAI,WAAW,CAAC,EAChBA,EAAI,UAAS,EACbA,EAAI,KAAI,EACDiwB,CACX,CAEA20F,EAAQ,IAAM,SAAUzpF,EAAU,CAC9B,OAAOs9F,EAAIt9F,CAAQ,CACvB,EAEAypF,EAAQ,UAAU,IAAM,UAAY,CAChC,OAAO6T,EAAI,IAAI,CACnB,CAEA,yDCnBAC,EAAA,QAAiB,UAAW,CAC5B,IAAIC,EAA0B,UAAY,CACtC,OAAO,IAAIpH,EAAU;AAAA;AAAA;AAAA,CAAiF,CAC1G,EACIqH,EAAiB,UAAW,CAC5B,OAAO,IAAIhU,EAAQ,kBAAkB,KAAK,QAAO,CAAE,CACvD,EACIS,EAAe,SAASzqG,EAAK,CAC7B,OAAOgqG,EAAQ,OAAO,IAAI2M,EAAU32G,CAAG,CAAC,CAC5C,EACA,SAAS0qG,GAAY,CAAA,CACrB,IAAIuT,EAAoB,CAAA,EACpB9W,EAAO9+G,GAAA,EAEP0jH,EACA5E,EAAK,OACL4E,EAAY,UAAW,CACnB,IAAI3mH,EAAM,QAAQ,OAClB,OAAIA,IAAQ,SAAWA,EAAM,MACtBA,CACf,EAEI2mH,EAAY,UAAW,CACnB,OAAO,IACf,EAEA5E,EAAK,kBAAkB6C,EAAS,aAAc+B,CAAS,EAEvD,IAAI/H,EAAMv6G,GAAA,EACNk/G,EAAQh/G,GAAA,EACRqiH,EAAQ,IAAIrD,EAChB3E,EAAI,eAAegG,EAAS,SAAU,CAAC,MAAOgC,CAAK,CAAC,EACpD,IAAIlC,EAASjgH,GAAA,EACT8sH,EAAY3M,EAAQ,UAAYF,EAAO,UAC3CE,EAAQ,WAAaF,EAAO,WAC5B,IAAIN,EAAoBQ,EAAQ,kBAAoBF,EAAO,kBAC3DE,EAAQ,aAAeF,EAAO,aAC9BE,EAAQ,iBAAmBF,EAAO,iBAClCE,EAAQ,eAAiBF,EAAO,iBAChCE,EAAQ,eAAiBF,EAAO,eAChC,IAAI1+C,EAAW,UAAU,CAAA,EACrB8yD,EAAQ,CAAA,EACRxL,EAAc,CAAA,EACdzI,EAAsBkU,KAAuBnU,EAAS5+C,CAAQ,EAC9Dw/C,EACAwT,GAAA,EAA2BpU,EAAS5+C,EACT6+C,EAAqBQ,EAAcC,CAAS,EACvEW,EAAUgT,GAAA,EAAqBrU,CAAO,EAEtCwB,EAAgBH,EAAQ,OACxBmI,EAAQ8K,KAA2BtU,EAASqB,CAAO,EACnCmI,EAAM,cAC1B,IAAItB,EACAqM,GAAA,EAAqBvU,EAASC,CAAmB,EACjD0I,EAAc6L,GAAA,EAA0B9L,CAAW,EACnDS,EAAqBsL,GAAA,EACrBx0H,EAAWk9G,EAAK,SAChB7C,EAAW6C,EAAK,SACpB,SAASuX,EAAM9mG,EAAM42F,EAAU,CAC3B,GAAI,OAAOA,GAAa,WACpB,MAAM,IAAImI,EAAU,gCAAkCxP,EAAK,YAAYqH,CAAQ,CAAC,EAEpF,GAAI52F,EAAK,cAAgBoyF,EACrB,MAAM,IAAI2M,EAAU;AAAA;AAAA;AAAA,CAAkG,CAE9H,CAEA,SAAS3M,EAAQwE,EAAU,CACvB,KAAK,UAAY,EACjB,KAAK,qBAAuB,OAC5B,KAAK,mBAAqB,OAC1B,KAAK,UAAY,OACjB,KAAK,WAAa,OACdA,IAAapjD,IACbszD,EAAM,KAAMlQ,CAAQ,EACpB,KAAK,qBAAqBA,CAAQ,GAEtC,KAAK,gBAAe,EACpB,KAAK,WAAW,iBAAkB,IAAI,CAC1C,CAEAxE,EAAQ,UAAU,SAAW,UAAY,CACrC,MAAO,kBACX,EAEAA,EAAQ,UAAU,OAASA,EAAQ,UAAU,MAAW,SAAUt8H,EAAI,CAClE,IAAIiW,EAAM,UAAU,OACpB,GAAIA,EAAM,EAAG,CACT,IAAIg7H,GAAiB,IAAI,MAAMh7H,EAAM,CAAC,EAClCjf,EAAI,EAAGzB,GACX,IAAKA,GAAI,EAAGA,GAAI0gB,EAAM,EAAG,EAAE1gB,GAAG,CAC1B,IAAIgzB,EAAO,UAAUhzB,EAAC,EACtB,GAAIkkI,EAAK,SAASlxG,CAAI,EAClB0oH,GAAej6I,GAAG,EAAIuxB,MAEtB,QAAOw0G,EAAa,2DACiBtD,EAAK,YAAYlxG,CAAI,CAAC,CAE3E,CACQ,OAAA0oH,GAAe,OAASj6I,EACxBgJ,EAAK,UAAUzK,EAAC,EACT,KAAK,KAAK,OAAW0vI,EAAYgM,GAAgBjxI,EAAI,IAAI,CAAC,CACzE,CACI,OAAO,KAAK,KAAK,OAAWA,CAAE,CAClC,EAEAs8H,EAAQ,UAAU,QAAU,UAAY,CACpC,OAAO,KAAK,MAAMgU,EACdA,EAAgB,OAAW,KAAM,MAAS,CAClD,EAEAhU,EAAQ,UAAU,KAAO,SAAU4U,EAAYC,EAAW,CACtD,GAAIrL,EAAM,SAAQ,GAAM,UAAU,OAAS,GACvC,OAAOoL,GAAe,YACtB,OAAOC,GAAc,WAAY,CACjC,IAAI7+G,GAAM,kDACFmnG,EAAK,YAAYyX,CAAU,EAC/B,UAAU,OAAS,IACnB5+G,IAAO,KAAOmnG,EAAK,YAAY0X,CAAS,GAE5C,KAAK,MAAM7+G,EAAG,CACtB,CACI,OAAO,KAAK,MAAM4+G,EAAYC,EAAW,OAAW,OAAW,MAAS,CAC5E,EAEA7U,EAAQ,UAAU,KAAO,SAAU4U,EAAYC,EAAW,CACtD,IAAIxpG,GACA,KAAK,MAAMupG,EAAYC,EAAW,OAAW,OAAW,MAAS,EACrExpG,GAAQ,YAAW,CACvB,EAEA20F,EAAQ,UAAU,OAAS,SAAUt8H,EAAI,CACrC,OAAI,OAAOA,GAAO,WACP+8H,EAAa,gCAAkCtD,EAAK,YAAYz5H,CAAE,CAAC,EAEvE,KAAK,IAAG,EAAG,MAAMA,EAAI,OAAW,OAAWwwI,EAAO,MAAS,CACtE,EAEAlU,EAAQ,UAAU,OAAS,UAAY,CACnC,IAAI5kH,EAAM,CACN,YAAa,GACb,WAAY,GACZ,iBAAkB,OAClB,gBAAiB,QAErB,OAAI,KAAK,eACLA,EAAI,iBAAmB,KAAK,MAAK,EACjCA,EAAI,YAAc,IACX,KAAK,eACZA,EAAI,gBAAkB,KAAK,OAAM,EACjCA,EAAI,WAAa,IAEdA,CACX,EAEA4kH,EAAQ,UAAU,IAAM,UAAY,CAChC,OAAI,UAAU,OAAS,GACnB,KAAK,MAAM,sDAAsD,EAE9D,IAAIY,EAAa,IAAI,EAAE,QAAO,CACzC,EAEAZ,EAAQ,UAAU,MAAQ,SAAUt8H,EAAI,CACpC,OAAO,KAAK,OAAOy5H,EAAK,wBAAyBz5H,CAAE,CACvD,EAEAs8H,EAAQ,kBAAoB8T,EAAO,QAEnC9T,EAAQ,GAAK,SAAU52E,EAAK,CACxB,OAAOA,aAAe42E,CAC1B,EAEAA,EAAQ,SAAWA,EAAQ,aAAe,SAASt8H,EAAI,CACnD,IAAI0X,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9BhmE,EAAI,mBAAkB,EACtB,IAAIguH,GAAY,UAAU,OAAS,EAAI,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,EAAE,UACvB,GACnChgH,EAASkxG,EAAS52H,CAAE,EAAEylI,EAAmB/tH,EAAKguH,EAAS,CAAC,EAC5D,OAAIhgH,IAAWnJ,GACX7E,EAAI,gBAAgBgO,EAAO,EAAG,EAAI,EAEjChO,EAAI,iBAAiBA,EAAI,oBAAmB,EAC1CA,CACX,EAEA4kH,EAAQ,IAAM,SAAUzpF,EAAU,CAC9B,OAAO,IAAIqqF,EAAarqF,CAAQ,EAAE,QAAO,CAC7C,EAEAypF,EAAQ,KAAO,SAAU/oG,EAAK,CAC1B,IAAI7b,EAAM6kH,EAAoBhpG,CAAG,EACjC,OAAM7b,aAAe4kH,IACjB5kH,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC1BhmE,EAAI,mBAAkB,EACtBA,EAAI,cAAa,EACjBA,EAAI,mBAAqB6b,GAEtB7b,CACX,EAEA4kH,EAAQ,QAAUA,EAAQ,UAAYA,EAAQ,KAE9CA,EAAQ,OAASA,EAAQ,SAAW,SAAUtoE,EAAQ,CAClD,IAAIt8C,EAAM,IAAI4kH,EAAQ5+C,CAAQ,EAC9B,OAAAhmE,EAAI,mBAAkB,EACtBA,EAAI,gBAAgBs8C,EAAQ,EAAI,EACzBt8C,CACX,EAEA4kH,EAAQ,aAAe,SAASt8H,EAAI,CAChC,GAAI,OAAOA,GAAO,WACd,MAAM,IAAIipI,EAAU,gCAAkCxP,EAAK,YAAYz5H,CAAE,CAAC,EAE9E,OAAOs+H,EAAM,aAAat+H,CAAE,CAChC,EAEAs8H,EAAQ,UAAU,MAAQ,SACtB4U,EACAC,EACA96I,GAAMwe,EACNu8H,GACF,CACE,IAAIC,EAAmBD,KAAiB,OACpCzpG,EAAU0pG,EAAmBD,GAAe,IAAI9U,EAAQ5+C,CAAQ,EAChE9oE,EAAS,KAAK,QAAO,EACrByoH,EAAWzoH,EAAO,UAEjBy8H,IACD1pG,EAAQ,eAAe,KAAM,CAAC,EAC9BA,EAAQ,mBAAkB,EACtB9yB,IAAa,SACX,KAAK,UAAY,WAAa,KACzBwoH,EAAW,YAAc,EAC5BxoH,EAAW,KAAK,YAAW,EAE3BA,EAAWD,IAAW,KAAO,OAAY,KAAK,UAGtD,KAAK,WAAW,iBAAkB,KAAM+yB,CAAO,GAGnD,IAAI03F,EAAShB,EAAS,EACtB,IAAOhB,EAAW,YAAc,EAAI,CAChC,IAAIrnH,EAASpiB,EAAO09I,GAAU18H,EAAO,mBAC/ByoH,EAAW,YAAc,GAC3BzpI,EAAQghB,EAAO,mBACfoB,EAAUk7H,IACD7T,EAAW,YAAc,GAClCzpI,EAAQghB,EAAO,qBACfoB,EAAUm7H,EACVv8H,EAAO,2BAA0B,IAEjC08H,GAAU18H,EAAO,uCACjBhhB,EAAQ,IAAIkoI,EAAkB,4BAA4B,EAC1DlnH,EAAO,kBAAkBhhB,CAAK,EAC9BoiB,EAAUm7H,GAGd7S,EAAM,OAAOgT,GAAS18H,EAAQ,CAC1B,QAASyqH,IAAW,KAAOrpH,EACpB,OAAOA,GAAY,YAClByjH,EAAK,WAAW4F,EAAQrpH,CAAO,EACvC,QAAS2xB,EACT,SAAU9yB,EACV,MAAOjhB,CACnB,CAAS,CACT,MACQghB,EAAO,cAAcs8H,EAAYC,EAAWxpG,EAAS9yB,EAAUwqH,CAAM,EAGzE,OAAO13F,CACX,EAEA20F,EAAQ,UAAU,QAAU,UAAY,CACpC,OAAO,KAAK,UAAY,KAC5B,EAEAA,EAAQ,UAAU,cAAgB,UAAY,CAC1C,OAAQ,KAAK,UAAY,aAAe,CAC5C,EAEAA,EAAQ,UAAU,aAAe,UAAY,CACzC,OAAQ,KAAK,UAAY,YAAc,QAC3C,EAEAA,EAAQ,UAAU,WAAa,SAAUrmH,EAAK,CAC1C,KAAK,UAAa,KAAK,UAAY,OAC9BA,EAAM,KACf,EAEAqmH,EAAQ,UAAU,cAAgB,UAAY,CAC1C,KAAK,UAAY,KAAK,UAAY,SAClC,KAAK,WAAW,mBAAoB,IAAI,CAC5C,EAEAA,EAAQ,UAAU,aAAe,UAAY,CACzC,KAAK,UAAY,KAAK,UAAY,SAClC,KAAK,WAAW,kBAAmB,IAAI,CAC3C,EAEAA,EAAQ,UAAU,cAAgB,UAAY,CAC1C,KAAK,UAAY,KAAK,UAAY,SAClC,KAAK,WAAW,kBAAmB,IAAI,CAC3C,EAEAA,EAAQ,UAAU,YAAc,UAAY,CACxC,KAAK,UAAY,KAAK,UAAY,OACtC,EAEAA,EAAQ,UAAU,SAAW,UAAY,CACrC,OAAQ,KAAK,UAAY,SAAW,CACxC,EAEAA,EAAQ,UAAU,gBAAkB,UAAW,CAC3C,KAAK,UAAY,KAAK,UAAa,MACvC,EAEAA,EAAQ,UAAU,cAAgB,UAAW,CACzC,KAAK,UAAY,KAAK,UAAY,MAClC,KAAK,WAAW,mBAAoB,IAAI,CAC5C,EAEAA,EAAQ,UAAU,oBAAsB,UAAW,CAC/C,KAAK,UAAY,KAAK,UAAY,OACtC,EAEAA,EAAQ,UAAU,oBAAsB,UAAW,CAC3CgC,EAAM,uBACV,KAAK,UAAY,KAAK,UAAY,UACtC,EAEAhC,EAAQ,UAAU,YAAc,SAAU7kH,EAAO,CAC7C,IAAIC,EAAMD,IAAU,EAAI,KAAK,WAAa,KAClCA,EAAQ,EAAI,EAAI,CAAC,EACzB,GAAIC,IAAQ64H,EAEL,OAAI74H,IAAQ,QAAa,KAAK,SAAQ,EAClC,KAAK,YAAW,EAEpBA,CACX,EAEA4kH,EAAQ,UAAU,WAAa,SAAU7kH,EAAO,CAC5C,OAAO,KACCA,EAAQ,EAAI,EAAI,CAAC,CAC7B,EAEA6kH,EAAQ,UAAU,sBAAwB,SAAU7kH,EAAO,CACvD,OAAO,KACCA,EAAQ,EAAI,EAAI,CAAC,CAC7B,EAEA6kH,EAAQ,UAAU,oBAAsB,SAAU7kH,EAAO,CACrD,OAAO,KACCA,EAAQ,EAAI,EAAI,CAAC,CAC7B,EAEA6kH,EAAQ,UAAU,YAAc,UAAW,CAAA,EAE3CA,EAAQ,UAAU,kBAAoB,SAAUiV,EAAU,CACvCA,EAAS,UACxB,IAAI1C,EAAU0C,EAAS,qBACnB15H,GAAS05H,EAAS,mBAClB5pG,EAAU4pG,EAAS,UACnB18H,GAAW08H,EAAS,YAAY,CAAC,EACjC18H,KAAa,SAAWA,GAAW07H,GACvC,KAAK,cAAc1B,EAASh3H,GAAQ8vB,EAAS9yB,GAAU,IAAI,CAC/D,EAEAynH,EAAQ,UAAU,mBAAqB,SAAUiV,EAAU95H,EAAO,CAC9D,IAAIo3H,GAAU0C,EAAS,sBAAsB95H,CAAK,EAC9CI,EAAS05H,EAAS,oBAAoB95H,CAAK,EAC3CkwB,GAAU4pG,EAAS,WAAW95H,CAAK,EACnC5C,EAAW08H,EAAS,YAAY95H,CAAK,EACrC5C,IAAa,SAAWA,EAAW07H,GACvC,KAAK,cAAc1B,GAASh3H,EAAQ8vB,GAAS9yB,EAAU,IAAI,CAC/D,EAEAynH,EAAQ,UAAU,cAAgB,SAC9BuS,EACAh3H,EACA8vB,GACA9yB,EACAwqH,GACF,CACE,IAAI5nH,EAAQ,KAAK,QAAO,EAOxB,GALIA,GAAS,QACTA,EAAQ,EACR,KAAK,WAAW,CAAC,GAGjBA,IAAU,EACV,KAAK,UAAYkwB,GACjB,KAAK,WAAa9yB,EACd,OAAOg6H,GAAY,aACnB,KAAK,qBACDxP,KAAW,KAAOwP,EAAUpV,EAAK,WAAW4F,GAAQwP,CAAO,GAE/D,OAAOh3H,GAAW,aAClB,KAAK,mBACDwnH,KAAW,KAAOxnH,EAAS4hH,EAAK,WAAW4F,GAAQxnH,CAAM,OAE9D,CACH,IAAIwM,EAAO5M,EAAQ,EAAI,EACvB,KAAK4M,EAAO,CAAC,EAAIsjB,GACjB,KAAKtjB,EAAO,CAAC,EAAIxP,EACb,OAAOg6H,GAAY,aACnB,KAAKxqH,EAAO,CAAC,EACTg7G,KAAW,KAAOwP,EAAUpV,EAAK,WAAW4F,GAAQwP,CAAO,GAE/D,OAAOh3H,GAAW,aAClB,KAAKwM,EAAO,CAAC,EACTg7G,KAAW,KAAOxnH,EAAS4hH,EAAK,WAAW4F,GAAQxnH,CAAM,EAEzE,CACI,YAAK,WAAWJ,EAAQ,CAAC,EAClBA,CACX,EAEA6kH,EAAQ,UAAU,OAAS,SAAUkV,EAAW/7H,EAAK,CACjD,KAAK,cAAc,OAAW,OAAWA,EAAK+7H,EAAW,IAAI,CACjE,EAEAlV,EAAQ,UAAU,iBAAmB,SAAS1oI,EAAO69I,EAAY,CAC7D,IAAM,KAAK,UAAY,aAAe,EACtC,IAAI79I,IAAU,KACV,OAAO,KAAK,gBAAgBy8I,EAAuB,EAAI,EAAK,EAChE,IAAI9S,GAAehB,EAAoB3oI,EAAO,IAAI,EAClD,GAAI,EAAE2pI,cAAwBjB,GAAU,OAAO,KAAK,SAAS1oI,CAAK,EAE9D69I,GAAY,KAAK,eAAelU,GAAc,CAAC,EAEnD,IAAI51F,EAAU41F,GAAa,QAAO,EAElC,GAAI51F,IAAY,KAAM,CAClB,KAAK,QAAQ0oG,GAAyB,EACtC,MACR,CAEI,IAAIhT,GAAW11F,EAAQ,UACvB,IAAM01F,GAAW,YAAc,EAAI,CAC/B,IAAIpnH,EAAM,KAAK,QAAO,EAClBA,EAAM,GAAG0xB,EAAQ,kBAAkB,IAAI,EAC3C,QAASpyC,EAAI,EAAGA,EAAI0gB,EAAK,EAAE1gB,EACvBoyC,EAAQ,mBAAmB,KAAMpyC,CAAC,EAEtC,KAAK,cAAa,EAClB,KAAK,WAAW,CAAC,EACjB,KAAK,aAAaoyC,CAAO,CACjC,UAAiB01F,GAAW,YAAc,EAClC,KAAK,SAAS11F,EAAQ,QAAQ,WACrB01F,GAAW,YAAc,EAClC,KAAK,QAAQ11F,EAAQ,SAAS,MAC3B,CACH,IAAIqsB,EAAS,IAAI8nE,EAAkB,4BAA4B,EAC/Dn0F,EAAQ,kBAAkBqsB,CAAM,EAChC,KAAK,QAAQA,CAAM,CAC3B,EACA,EAEAsoE,EAAQ,UAAU,gBAClB,SAAStoE,EAAQ6oE,EAAa6U,GAAwB,CAClD,IAAI7T,EAAQpE,EAAK,kBAAkBzlE,CAAM,EACrC29E,GAAW9T,IAAU7pE,EACzB,GAAI,CAAC29E,IAAY,CAACD,IAA0B5L,EAAM,SAAQ,EAAI,CAC1D,IAAIlmH,EAAU,4CACV65G,EAAK,YAAYzlE,CAAM,EAC3B,KAAK,MAAMp0C,EAAS,EAAI,CAChC,CACI,KAAK,kBAAkBi+G,EAAOhB,EAAc8U,GAAW,EAAK,EAC5D,KAAK,QAAQ39E,CAAM,CACvB,EAEAsoE,EAAQ,UAAU,qBAAuB,SAAUwE,EAAU,CACzD,IAAIn5F,EAAU,KACd,KAAK,mBAAkB,EACvB,KAAK,aAAY,EACjB,IAAIk1F,GAAc,GACdxrI,EAAI,KAAK,SAASyvI,EAAU,SAASltI,GAAO,CAC5C+zC,EAAQ,iBAAiB/zC,EAAK,CACtC,EAAO,SAAUogE,GAAQ,CACjBrsB,EAAQ,gBAAgBqsB,GAAQ6oE,EAAW,CACnD,CAAK,EACDA,GAAc,GACd,KAAK,YAAW,EAEZxrI,IAAM,QACNs2C,EAAQ,gBAAgBt2C,EAAG,EAAI,CAEvC,EAEAirI,EAAQ,UAAU,0BAA4B,SAC1CtmH,EAASnB,EAAUjhB,GAAO+zC,EAC5B,CACE,IAAI01F,GAAW11F,EAAQ,UACvB,IAAM01F,GAAW,SAAW,EAC5B,CAAA11F,EAAQ,aAAY,EACpB,IAAIzwC,EACA2d,IAAa27H,EACT,CAAC58I,IAAS,OAAOA,GAAM,QAAW,UAClCsD,EAAIqlB,EACJrlB,EAAE,EAAI,IAAI+xI,EAAU,iCACIxP,EAAK,YAAY7lI,EAAK,CAAC,GAE/CsD,EAAI0/H,EAAS5gH,CAAO,EAAE,MAAM,KAAK,YAAW,EAAIpiB,EAAK,EAGzDsD,EAAI0/H,EAAS5gH,CAAO,EAAE,KAAKnB,EAAUjhB,EAAK,EAE9C,IAAI6tI,EAAiB95F,EAAQ,YAAW,EACxC01F,GAAW11F,EAAQ,WACb01F,GAAW,SAAW,IAExBnmI,IAAM8tI,EACNr9F,EAAQ,QAAQ/zC,EAAK,EACdsD,IAAMqlB,EACborB,EAAQ,gBAAgBzwC,EAAE,EAAG,EAAK,GAElC4uI,EAAM,sBAAsB5uI,EAAGuqI,EAAgB,GAAK95F,EAAS,IAAI,EACjEA,EAAQ,iBAAiBzwC,CAAC,IAElC,EAEAolI,EAAQ,UAAU,QAAU,UAAW,CAEnC,QADI5kH,EAAM,KACHA,EAAI,aAAY,GAAIA,EAAMA,EAAI,UAAS,EAC9C,OAAOA,CACX,EAEA4kH,EAAQ,UAAU,UAAY,UAAW,CACrC,OAAO,KAAK,kBAChB,EAEAA,EAAQ,UAAU,aAAe,SAAS30F,EAAS,CAC/C,KAAK,mBAAqBA,CAC9B,EAEA20F,EAAQ,UAAU,eAAiB,SAAS30F,EAAS3xB,EAASnB,GAAUjhB,EAAO,CAC3E,IAAIg+I,GAAYjqG,aAAmB20F,EAC/Be,EAAW,KAAK,UAChBwU,GAAoBxU,EAAW,aAAe,GAC5CA,EAAW,SAAW,GACpBuU,IAAWjqG,EAAQ,wBAAuB,EAE1C9yB,cAAoB2vH,GACpB3vH,GAAS,iBAAgB,GACzBA,GAAS,cAAgB8yB,EACrBivF,EAAS5gH,CAAO,EAAE,KAAKnB,GAAUjhB,CAAK,IAAM2oB,GAC5CorB,EAAQ,QAAQprB,EAAS,CAAC,GAEvBvG,IAAYs6H,EACnB3oG,EAAQ,SAAS2oG,EAAe,KAAKz7H,EAAQ,CAAC,EACvCA,cAAoBmoH,EAC3BnoH,GAAS,kBAAkB8yB,CAAO,EAC3BiqG,IAAajqG,aAAmBu1F,EACvCv1F,EAAQ,QAAO,EAEf9yB,GAAS,OAAM,GAEZ,OAAOmB,GAAY,WACrB47H,IAGGC,GAAiBlqG,EAAQ,oBAAmB,EAChD,KAAK,0BAA0B3xB,EAASnB,GAAUjhB,EAAO+zC,CAAO,GAHhE3xB,EAAQ,KAAKnB,GAAUjhB,EAAO+zC,CAAO,EAKlC9yB,cAAoBmoH,EACtBnoH,GAAS,iBACJwoH,EAAW,YAAc,EAC3BxoH,GAAS,kBAAkBjhB,EAAO+zC,CAAO,EAEzC9yB,GAAS,iBAAiBjhB,EAAO+zC,CAAO,GAGzCiqG,KACHC,GAAiBlqG,EAAQ,oBAAmB,GAC1C01F,EAAW,YAAc,EAC3B11F,EAAQ,SAAS/zC,CAAK,EAEtB+zC,EAAQ,QAAQ/zC,CAAK,EAGjC,EAEA0oI,EAAQ,UAAU,uCAAyC,SAASv6G,EAAK,CACrE,IAAI/L,EAAU+L,EAAI,QACd4lB,GAAU5lB,EAAI,QACdlN,EAAWkN,EAAI,SACfnuB,GAAQmuB,EAAI,MACZ,OAAO/L,GAAY,WACb2xB,cAAmB20F,EAGrB,KAAK,0BAA0BtmH,EAASnB,EAAUjhB,GAAO+zC,EAAO,EAFhE3xB,EAAQ,KAAKnB,EAAUjhB,GAAO+zC,EAAO,EAIlCA,cAAmB20F,GAC1B30F,GAAQ,QAAQ/zC,EAAK,CAE7B,EAEA0oI,EAAQ,UAAU,kBAAoB,SAASv6G,EAAK,CAChD,KAAK,eAAeA,EAAI,QAASA,EAAI,QAASA,EAAI,SAAUA,EAAI,KAAK,CACzE,EAEAu6G,EAAQ,UAAU,gBAAkB,SAAStmH,EAASpiB,EAAOypI,GAAU,CACnE,IAAI11F,EAAU,KAAK,UACf9yB,GAAW,KAAK,YAAY,CAAC,EACjC,KAAK,UAAY,OACjB,KAAK,WAAa,OAClB,KAAK,eAAe8yB,EAAS3xB,EAASnB,GAAUjhB,CAAK,CACzD,EAEA0oI,EAAQ,UAAU,0BAA4B,SAAS7kH,EAAO,CAC1D,IAAI4M,EAAO5M,EAAQ,EAAI,EACvB,KAAK4M,EAAO,CAAC,EACb,KAAKA,EAAO,CAAC,EACb,KAAKA,EAAO,CAAC,EACb,KAAKA,EAAO,CAAC,EAAI,MACrB,EAEAi4G,EAAQ,UAAU,SAAW,SAAU1oI,EAAO,CAC1C,IAAIypI,EAAW,KAAK,UACpB,GAAM,GAAAA,EAAW,aAAe,IAChC,IAAIzpI,IAAU,KAAM,CAChB,IAAImiB,GAAMs6H,EAAuB,EACjC,YAAK,kBAAkBt6H,EAAG,EACnB,KAAK,QAAQA,EAAG,CAC/B,CACI,KAAK,cAAa,EAClB,KAAK,mBAAqBniB,GAErBypI,EAAW,OAAS,KACfA,EAAW,aAAe,EAC5B,KAAK,gBAAe,EAEpBiB,EAAM,eAAe,IAAI,GAGrC,EAEAhC,EAAQ,UAAU,QAAU,SAAUtoE,EAAQ,CAC1C,IAAIqpE,EAAW,KAAK,UACpB,GAAM,GAAAA,EAAW,aAAe,IAIhC,IAHA,KAAK,aAAY,EACjB,KAAK,qBAAuBrpE,EAExB,KAAK,WACL,OAAOsqE,EAAM,WAAWtqE,EAAQylE,EAAK,MAAM,GAG1C4D,EAAW,OAAS,EACrBiB,EAAM,eAAe,IAAI,EAEzB,KAAK,gCAA+B,EAE5C,EAEAhC,EAAQ,UAAU,iBAAmB,SAAUrmH,EAAKriB,EAAO,CACvD,QAAS2B,GAAI,EAAGA,GAAI0gB,EAAK1gB,KAAK,CAC1B,IAAIygB,EAAU,KAAK,sBAAsBzgB,EAAC,EACtCoyC,GAAU,KAAK,WAAWpyC,EAAC,EAC3Bsf,EAAW,KAAK,YAAYtf,EAAC,EACjC,KAAK,0BAA0BA,EAAC,EAChC,KAAK,eAAeoyC,GAAS3xB,EAASnB,EAAUjhB,CAAK,CAC7D,CACA,EAEA0oI,EAAQ,UAAU,gBAAkB,SAAUrmH,EAAK+9C,EAAQ,CACvD,QAASz+D,GAAI,EAAGA,GAAI0gB,EAAK1gB,KAAK,CAC1B,IAAIygB,EAAU,KAAK,oBAAoBzgB,EAAC,EACpCoyC,GAAU,KAAK,WAAWpyC,EAAC,EAC3Bsf,EAAW,KAAK,YAAYtf,EAAC,EACjC,KAAK,0BAA0BA,EAAC,EAChC,KAAK,eAAeoyC,GAAS3xB,EAASnB,EAAUm/C,CAAM,CAC9D,CACA,EAEAsoE,EAAQ,UAAU,gBAAkB,UAAY,CAC5C,IAAIe,EAAW,KAAK,UAChBpnH,EAAOonH,EAAW,MAEtB,GAAIpnH,EAAM,EAAG,CACT,IAAMonH,EAAW,YAAc,EAAI,CAC/B,IAAIrpE,GAAS,KAAK,qBAClB,KAAK,gBAAgB,KAAK,mBAAoBA,GAAQqpE,CAAQ,EAC9D,KAAK,gBAAgBpnH,EAAK+9C,EAAM,CAC5C,KAAe,CACH,IAAIpgE,EAAQ,KAAK,mBACjB,KAAK,gBAAgB,KAAK,qBAAsBA,EAAOypI,CAAQ,EAC/D,KAAK,iBAAiBpnH,EAAKriB,CAAK,CAC5C,CACQ,KAAK,WAAW,CAAC,CACzB,CACI,KAAK,uBAAsB,CAC/B,EAEA0oI,EAAQ,UAAU,cAAgB,UAAW,CACzC,IAAIe,EAAW,KAAK,UACpB,IAAMA,EAAW,YAAc,EAC3B,OAAO,KAAK,mBACT,IAAMA,EAAW,YAAc,EAClC,OAAO,KAAK,oBAEpB,EAEA,SAASyU,EAAa77I,EAAG,CAAC,KAAK,QAAQ,iBAAiBA,CAAC,CAAE,CAC3D,SAAS87I,EAAY97I,EAAG,CAAC,KAAK,QAAQ,gBAAgBA,EAAG,EAAK,CAAE,CAEhEqmI,EAAQ,MAAQA,EAAQ,QAAU,UAAW,CACzCwJ,EAAM,WAAW,gBAAiB,aAAa,EAC/C,IAAIn+F,EAAU,IAAI20F,EAAQ5+C,CAAQ,EAClC,MAAO,CACH,QAAS/1C,EACT,QAASmqG,EACT,OAAQC,EAEhB,EAEAtY,EAAK,kBAAkB6C,EACA,2BACA+T,CAAuB,EAE9C2B,KAAoB1V,EAAS5+C,EAAU6+C,EAAqBQ,EACxD+I,CAAK,EACTmM,GAAA,EAAkB3V,EAAS5+C,EAAU6+C,EAAqBuJ,CAAK,EAC/DoM,GAAA,EAAoB5V,EAASY,EAAcH,EAAc+I,CAAK,EAC9DqM,GAAA,EAA4B7V,CAAO,EACnC8V,GAAA,EAAoC9V,CAAO,EAC3C+V,GAAA,EACI/V,EAASY,EAAcX,EAAqB7+C,EAAU4gD,EAAOD,CAAS,EAC1E/B,EAAQ,QAAUA,EAClBA,EAAQ,QAAU,QAClBgW,GAAA,EAAoBhW,EAASY,EAAcH,EAAcR,EAAqB7+C,EAAUooD,CAAK,EAC7FyM,GAAA,EAAyBjW,CAAO,EAChCkW,GAAA,EAAsBlW,EAASS,EAAcR,EAAqBuB,EAAepgD,EAAUooD,CAAK,EAChG2M,KAAuBnW,EAAS5+C,EAAUooD,CAAK,EAC/C4M,GAAA,EAA2BpW,EAASS,EAAcr/C,EAAU6+C,EAAqBS,EAAW8I,CAAK,EACjG6M,GAAA,EAAwBrW,CAAO,EAC/BsW,GAAA,EAA0BtW,EAAS5+C,CAAQ,EAC3Cm1D,GAAA,EAAsBvW,EAASY,EAAcX,EAAqBQ,CAAY,EAC9E+V,GAAA,EAAqBxW,EAAS5+C,EAAU6+C,EAAqBQ,CAAY,EACzEgW,GAAA,EAAuBzW,EAASY,EAAcH,EAAcR,EAAqB7+C,EAAUooD,CAAK,EAChGkN,KAAuB1W,EAASY,EAAc4I,CAAK,EACnDmN,KAAqB3W,EAASY,EAAcH,CAAY,EACxDmW,GAAA,EAAuB5W,EAAS5+C,CAAQ,EACxCy1D,GAAA,EAAqB7W,EAAS5+C,CAAQ,EACtC01D,GAAA,EAAoB9W,CAAO,EAEvB7C,EAAK,iBAAiB6C,CAAO,EAC7B7C,EAAK,iBAAiB6C,EAAQ,SAAS,EACvC,SAAS+W,EAAUz/I,EAAO,CACtB,IAAIkC,EAAI,IAAIwmI,EAAQ5+C,CAAQ,EAC5B5nF,EAAE,qBAAuBlC,EACzBkC,EAAE,mBAAqBlC,EACvBkC,EAAE,UAAYlC,EACdkC,EAAE,WAAalC,CACvB,CAGI,OAAAy/I,EAAU,CAAC,EAAG,CAAC,CAAC,EAChBA,EAAU,CAAC,EAAG,CAAC,CAAC,EAChBA,EAAU,CAAC,EAAG,CAAC,CAAC,EAChBA,EAAU,CAAC,EACXA,EAAU,UAAU,CAAA,CAAE,EACtBA,EAAU,MAAS,EACnBA,EAAU,EAAK,EACfA,EAAU,IAAI/W,EAAQ5+C,CAAQ,CAAC,EAC/BooD,EAAM,UAAU7K,EAAM,eAAgBxB,EAAK,aAAa,EACjD6C,CAEX,8DCpwBA,IAAIjmI,EAAIskB,GACJ24H,EAAWv3H,KAAsC,EAErD82B,GAAA,MAAgB89E,EAChB99E,GAAA,KAAeygG,EAAS,QACxBzgG,GAAA,QAAkBygG,EAAS,QAC3BzgG,GAAA,IAAcygG,EAAS,IACvBzgG,GAAA,MAAgBygG,EAAS,MACzBzgG,GAAA,OAAiBygG,EAAS,OAC1BzgG,GAAA,UAAoBygG,EAAS,UAC7BzgG,GAAA,UAAoBygG,EAAS,UAC7BzgG,GAAA,QAAkBygG,EAAS,QAE3BzgG,GAAA,OAAiB,SAASmmB,EAAM,CAC5B,IAAIlkD,EAAO,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EAC9Cy+H,EAAeD,EAAS,UAAUt6E,CAAI,EAC1C,OAAOu6E,EAAa,MAAM,KAAMz+H,CAAI,CACxC,EAEAw+H,EAAS,UAAU,KAAOA,EAAS,UAAU,OAE7CA,EAAS,UAAU,KAAO,SAASt6E,EAAM,CACrC,OAAO,KAAK,KAAK,SAASplE,EAAO,CAC7B,IAAI4tI,EAAcnrI,EAAE,OAAO,CAAA,EAAIzC,EAAOolE,EAAKplE,CAAK,CAAC,EACjD,OAAO0/I,EAAS,MAAM9R,CAAW,CACzC,CAAK,CACL,EAEA,SAAS7Q,GAAQ,CACb,IAAI/4G,EACAC,EACA8vB,EAAU,IAAI2rG,EAAS,QAAQ,SAASE,EAAYC,EAAW,CAC/D77H,EAAU47H,EACV37H,EAAS47H,CACjB,CAAK,EAED,MAAO,CACH,QAAS77H,EACT,OAAQC,EACR,QAAS8vB,EAEjB,2DCzCA,IAAItxC,EAAIskB,GAEJ04B,EAAQqgG,GAAA,MAAgB,CACxB,SAAU,WACV,UAAW,YACX,IAAK,MACL,KAAM,OACN,IAAK,MACL,SAAU,WACV,UAAW,YACX,cAAe,gBACf,MAAO,QACP,KAAM,OACN,iBAAkB,mBAClB,QAAS,UACT,MAAO,QACP,SAAU,WACV,UAAW,YACX,MAAS,QACT,cAAe,iBAGnB,SAASC,EAAStzF,EAAU/rD,EAAS,CACjC,OAAAA,EAAUA,GAAW,CAAA,EACd,CACH,KAAM++C,EAAM,SACZ,SAAUgN,EACV,MAAO/rD,EAAQ,OAAS,IAAIs/I,EAAM,CAAA,CAAE,EACpC,SAAUt/I,EAAQ,UAAY,CAAA,EAEtC,CAEA,SAASu/I,EAAUxzF,EAAUylB,EAAY,CACrCA,EAAaA,GAAc,CAAA,EAC3B,IAAIm2D,EAASn2D,EAAW,QAAU,CAAA,EAClC,MAAO,CACH,KAAMzyB,EAAM,UACZ,SAAUgN,EACV,QAASylB,EAAW,SAAW,KAC/B,UAAWA,EAAW,WAAa,KACnC,UAAWA,EAAW,WAAa,KACnC,UAAWA,EAAW,WAAa,KACnC,OAAQ,CACJ,MAAOm2D,EAAO,OAAS,KACvB,IAAKA,EAAO,KAAO,KACnB,UAAWA,EAAO,WAAa,KAC/B,QAASA,EAAO,SAAW,IACvC,EAEA,CAEA,SAAS6X,EAAIzzF,EAAUylB,EAAY,CAC/B,OAAAA,EAAaA,GAAc,CAAA,EACpB,CACH,KAAMzyB,EAAM,IACZ,SAAUgN,EACV,QAASylB,EAAW,SAAW,KAC/B,UAAWA,EAAW,WAAa,KACnC,OAAQ,CAAC,CAACA,EAAW,OACrB,YAAa,CAAC,CAACA,EAAW,YAC1B,SAAU,CAAC,CAACA,EAAW,SACvB,gBAAiB,CAAC,CAACA,EAAW,gBAC9B,UAAW,CAAC,CAACA,EAAW,UACxB,YAAa,CAAC,CAACA,EAAW,YAC1B,kBAAmBA,EAAW,mBAAqBiuE,EAAkB,SACrE,KAAMjuE,EAAW,MAAQ,KACzB,SAAUA,EAAW,UAAY,KACjC,UAAWA,EAAW,WAAa,KAE3C,CAEA,IAAIiuE,EAAoB,CACpB,SAAU,WACV,YAAa,cACb,UAAW,aAGf,SAASC,EAAKpgJ,EAAO,CACjB,MAAO,CACH,KAAMy/C,EAAM,KACZ,MAAOz/C,EAEf,CAEA,SAASqgJ,GAAM,CACX,MAAO,CACH,KAAM5gG,EAAM,IAEpB,CAEA,SAAS6gG,EAAS5/I,EAAS,CACvB,MAAO,CACH,KAAM++C,EAAM,SACZ,QAAS/+C,EAAQ,QAEzB,CAEA,SAAS6/I,EAAU9zF,EAAU/rD,EAAS,CAClC,MAAO,CACH,KAAM++C,EAAM,UACZ,SAAUgN,EACV,KAAM/rD,EAAQ,KACd,OAAQA,EAAQ,OAChB,YAAaA,EAAQ,YAE7B,CAEA,SAAS8/I,EAAc9/I,EAAS,CAC5B,MAAO,CACH,KAAM++C,EAAM,cACZ,SAAU/+C,EAAQ,SAClB,OAAQA,EAAQ,OAExB,CAEA,SAASs/I,EAAMS,EAAO,CAClB,KAAK,OAASh+I,EAAE,QAAQg+I,EAAO,SAASC,EAAM,CAC1C,OAAOC,EAAQD,EAAK,SAAUA,EAAK,MAAM,CACjD,CAAK,CACL,CAEAV,EAAM,UAAU,QAAU,SAASY,EAAW,CAC1C,OAAO,KAAK,cAAcD,EAAQC,EAAU,SAAUA,EAAU,MAAM,CAAC,CAC3E,EAEAZ,EAAM,UAAU,cAAgB,SAAS58H,EAAK,CAC1C,OAAO,KAAK,OAAOA,CAAG,GAAK,IAC/B,EAEA,SAASy9H,EAAKngJ,EAAS,CACnB,MAAO,CACH,KAAM++C,EAAM,KACZ,SAAU/+C,EAAQ,SAClB,OAAQA,EAAQ,OAChB,KAAMA,EAAQ,KAEtB,CAEA,SAASogJ,EAAiBpgJ,EAAS,CAC/B,MAAO,CACH,KAAM++C,EAAM,iBACZ,UAAW/+C,EAAQ,UAE3B,CAEA,SAASuwC,EAAQvwC,EAAS,CACtB,MAAO,CACH,KAAM++C,EAAM,QACZ,UAAW/+C,EAAQ,UACnB,KAAMA,EAAQ,KACd,WAAYA,EAAQ,WACpB,eAAgBA,EAAQ,eAEhC,CAEA,SAASigJ,EAAQI,EAAU76H,EAAI,CAC3B,OAAO66H,EAAW,IAAM76H,CAC5B,CAEA,SAAS86H,EAAMtgJ,EAAS,CACpB,MAAO,CACH,KAAM++C,EAAM,MAGZ,KAAM,SAASilC,EAAU,CACrB,OAAIA,EACOhkF,EAAQ,UAAUgkF,CAAQ,EAE1BhkF,EAAQ,UAAS,EAAG,KAAK,SAASugJ,EAAa,CAClD,OAAO,OAAO,KAAKA,CAAW,CAClD,CAAiB,CAEjB,EACQ,kBAAmB,UAAW,CAC1B,OAAOvgJ,EAAQ,UAAS,CACpC,EACQ,mBAAoB,UAAW,CAC3B,OAAOA,EAAQ,UAAU,QAAQ,CAC7C,EACQ,aAAc,UAAW,CACrB,OAAOA,EAAQ,UAAS,EAAG,KAAK,SAASugJ,EAAa,CAClD,OAAO,OAAO,KAAKA,CAAW,CAC9C,CAAa,CACb,EACQ,QAASvgJ,EAAQ,QACjB,YAAaA,EAAQ,YAE7B,CAEA,SAASwgJ,EAAMz0F,EAAUylB,EAAY,CACjC,OAAAA,EAAaA,GAAc,CAAA,EACpB,CACH,KAAMzyB,EAAM,MACZ,SAAUgN,EACV,QAASylB,EAAW,SAAW,KAC/B,UAAWA,EAAW,WAAa,KAE3C,CAEA,SAASivE,EAAS10F,EAAU/rD,EAAS,CACjC,OAAAA,EAAUA,GAAW,CAAA,EACd,CACH,KAAM++C,EAAM,SACZ,SAAUgN,EACV,SAAU/rD,EAAQ,UAAY,GAEtC,CAEA,SAAS0gJ,EAAU30F,EAAU/rD,EAAS,CAClC,OAAAA,EAAUA,GAAW,CAAA,EACd,CACH,KAAM++C,EAAM,UACZ,SAAUgN,EACV,QAAS/rD,EAAQ,SAAW,KAAO,EAAIA,EAAQ,QAC/C,QAASA,EAAQ,SAAW,KAAO,EAAIA,EAAQ,QAEvD,CAEA,SAAS2gJ,EAAMC,EAAW,CACtB,MAAO,CACH,KAAM7hG,EAAM,MACZ,UAAW6hG,EAEnB,CAEA,SAASC,EAAc7gJ,EAAS,CAC5B,MAAO,CACH,KAAM++C,EAAM,cACZ,KAAM/+C,EAAQ,KAEtB,CAEA,OAAAo/I,GAAA,SAAmBA,GAAA,SAAmBC,EACtCD,GAAA,UAAoBA,GAAA,UAAoBG,EACxCH,GAAA,IAAcA,GAAA,IAAcI,EAC5BJ,GAAA,KAAeA,GAAA,KAAeM,EAC9BN,GAAA,IAAcA,GAAA,IAAcO,EAC5BP,GAAA,SAAmBA,GAAA,SAAmBQ,EACtCR,GAAA,UAAoBS,EACpBT,GAAA,cAAwBA,GAAA,cAAwBU,EAChDV,GAAA,MAAgBE,EAChBF,GAAA,KAAee,EACff,GAAA,iBAA2BgB,EAC3BhB,GAAA,QAAkB7uG,EAClB6uG,GAAA,MAAgBkB,EAChBlB,GAAA,MAAgBoB,EAChBpB,GAAA,SAAmBqB,EACnBrB,GAAA,UAAoBsB,EACpBtB,GAAA,UAAoBuB,EAAM,MAAM,EAChCvB,GAAA,UAAoBuB,EAAM,MAAM,EAChCvB,GAAA,YAAsBuB,EAAM,QAAQ,EACpCvB,GAAA,cAAwByB,EAExBzB,GAAA,kBAA4BK,qDC7P5B,IAAI19I,EAAIskB,GAGRsG,GAAA,OAAiBm0H,EACjBn0H,GAAA,QAAkB6pE,EAClB7pE,GAAA,QAAkBhM,EAClBgM,GAAA,MAAgBlsB,EAGhB,SAASqgJ,EAAOxhJ,EAAOu6B,EAAU,CAC7B,KAAK,MAAQv6B,EACb,KAAK,SAAWu6B,GAAY,CAAA,CAChC,CAEAinH,EAAO,UAAU,IAAM,SAASp8E,EAAM,CAClC,OAAO,IAAIo8E,EAAOp8E,EAAK,KAAK,KAAK,EAAG,KAAK,QAAQ,CACrD,EAEAo8E,EAAO,UAAU,QAAU,SAASp8E,EAAM,CACtC,IAAIq8E,EAAar8E,EAAK,KAAK,KAAK,EAChC,OAAO,IAAIo8E,EAAOC,EAAW,MAAOC,EAAgB,CAAC,KAAMD,CAAU,CAAC,CAAC,CAC3E,EAEAD,EAAO,UAAU,YAAc,SAASp8E,EAAM,CAC1C,IAAIrjD,EAAO,KACX,OAAOqjD,EAAK,KAAK,KAAK,EAAE,KAAK,SAASu8E,EAAa,CAC/C,OAAO,IAAIH,EAAOG,EAAY,MAAOD,EAAgB,CAAC3/H,EAAM4/H,CAAW,CAAC,CAAC,CACjF,CAAK,CACL,EAEAH,EAAO,QAAU,SAASn0H,EAAS,CAC/B,IAAI85E,EAAS1kG,EAAE,QAAQA,EAAE,MAAM4qB,EAAS,OAAO,CAAC,EAC5CkN,EAAWmnH,EAAgBr0H,CAAO,EACtC,OAAO,IAAIm0H,EAAOr6C,EAAQ5sE,CAAQ,CACtC,EAEA,SAAS28D,EAAQl3F,EAAO,CACpB,OAAO,IAAIwhJ,EAAOxhJ,EAAO,EAAE,CAC/B,CAEA,SAASqhB,EAAQ2K,EAAS,CACtB,MAAO,CACH,KAAM,UACN,QAASA,EAEjB,CAEA,SAAS7qB,EAAMygJ,EAAW,CACtB,MAAO,CACH,KAAM,QACN,QAASA,EAAU,QACnB,MAAOA,EAEf,CAEA,SAASF,EAAgBr0H,EAAS,CAC9B,IAAIkN,EAAW,CAAA,EACf,OAAA93B,EAAE,QAAQA,EAAE,MAAM4qB,EAAS,UAAU,EAAG,EAAI,EAAE,QAAQ,SAASrB,EAAS,CAC/D61H,EAAgBtnH,EAAUvO,CAAO,GAClCuO,EAAS,KAAKvO,CAAO,CAEjC,CAAK,EACMuO,CACX,CAEA,SAASsnH,EAAgBtnH,EAAUvO,EAAS,CACxC,OAAOvpB,EAAE,KAAK83B,EAAUunH,EAAc,KAAK,KAAM91H,CAAO,CAAC,IAAM,MACnE,CAEA,SAAS81H,EAAc1+G,EAAOC,EAAQ,CAClC,OAAOD,EAAM,OAASC,EAAO,MAAQD,EAAM,UAAYC,EAAO,OAClE,iECrEA0+G,GAAA,WAAqBlrB,EACrBkrB,GAAA,YAAsBC,EACtBD,GAAA,cAAwBE,EAOxB,QALIC,EAAS,CAAA,EACTC,EAAY,CAAA,EACZC,EAAM,OAAO,WAAe,IAAc,WAAa,MAEvDpiH,EAAO,mEACFr+B,EAAI,EAAG0gB,EAAM2d,EAAK,OAAQr+B,EAAI0gB,EAAK,EAAE1gB,EAC5CugJ,EAAOvgJ,CAAC,EAAIq+B,EAAKr+B,CAAC,EAClBwgJ,EAAUniH,EAAK,WAAWr+B,CAAC,CAAC,EAAIA,EAKlCwgJ,EAAU,EAAiB,EAAI,GAC/BA,EAAU,EAAiB,EAAI,GAE/B,SAASE,EAASC,EAAK,CACrB,IAAIjgI,EAAMigI,EAAI,OAEd,GAAIjgI,EAAM,EAAI,EACZ,MAAM,IAAI,MAAM,gDAAgD,EAKlE,IAAIkgI,EAAWD,EAAI,QAAQ,GAAG,EAC1BC,IAAa,KAAIA,EAAWlgI,GAEhC,IAAImgI,EAAkBD,IAAalgI,EAC/B,EACA,EAAKkgI,EAAW,EAEpB,MAAO,CAACA,EAAUC,CAAe,CACnC,CAGA,SAAS3rB,EAAYyrB,EAAK,CACxB,IAAIG,EAAOJ,EAAQC,CAAG,EAClBC,EAAWE,EAAK,CAAC,EACjBD,EAAkBC,EAAK,CAAC,EAC5B,OAASF,EAAWC,GAAmB,EAAI,EAAKA,CAClD,CAEA,SAASE,EAAaJ,EAAKC,EAAUC,EAAiB,CACpD,OAASD,EAAWC,GAAmB,EAAI,EAAKA,CAClD,CAEA,SAASR,EAAaM,EAAK,CACzB,IAAIn3E,EACAs3E,EAAOJ,EAAQC,CAAG,EAClBC,EAAWE,EAAK,CAAC,EACjBD,EAAkBC,EAAK,CAAC,EAExB9+H,EAAM,IAAIy+H,EAAIM,EAAYJ,EAAKC,EAAUC,CAAe,CAAC,EAEzDG,EAAU,EAGVtgI,EAAMmgI,EAAkB,EACxBD,EAAW,EACXA,EAEA5gJ,EACJ,IAAKA,EAAI,EAAGA,EAAI0gB,EAAK1gB,GAAK,EACxBwpE,EACGg3E,EAAUG,EAAI,WAAW3gJ,CAAC,CAAC,GAAK,GAChCwgJ,EAAUG,EAAI,WAAW3gJ,EAAI,CAAC,CAAC,GAAK,GACpCwgJ,EAAUG,EAAI,WAAW3gJ,EAAI,CAAC,CAAC,GAAK,EACrCwgJ,EAAUG,EAAI,WAAW3gJ,EAAI,CAAC,CAAC,EACjCgiB,EAAIg/H,GAAS,EAAKx3E,GAAO,GAAM,IAC/BxnD,EAAIg/H,GAAS,EAAKx3E,GAAO,EAAK,IAC9BxnD,EAAIg/H,GAAS,EAAIx3E,EAAM,IAGzB,OAAIq3E,IAAoB,IACtBr3E,EACGg3E,EAAUG,EAAI,WAAW3gJ,CAAC,CAAC,GAAK,EAChCwgJ,EAAUG,EAAI,WAAW3gJ,EAAI,CAAC,CAAC,GAAK,EACvCgiB,EAAIg/H,GAAS,EAAIx3E,EAAM,KAGrBq3E,IAAoB,IACtBr3E,EACGg3E,EAAUG,EAAI,WAAW3gJ,CAAC,CAAC,GAAK,GAChCwgJ,EAAUG,EAAI,WAAW3gJ,EAAI,CAAC,CAAC,GAAK,EACpCwgJ,EAAUG,EAAI,WAAW3gJ,EAAI,CAAC,CAAC,GAAK,EACvCgiB,EAAIg/H,GAAS,EAAKx3E,GAAO,EAAK,IAC9BxnD,EAAIg/H,GAAS,EAAIx3E,EAAM,KAGlBxnD,CACT,CAEA,SAASi/H,EAAiB1zH,EAAK,CAC7B,OAAOgzH,EAAOhzH,GAAO,GAAK,EAAI,EAC5BgzH,EAAOhzH,GAAO,GAAK,EAAI,EACvBgzH,EAAOhzH,GAAO,EAAI,EAAI,EACtBgzH,EAAOhzH,EAAM,EAAI,CACrB,CAEA,SAAS2zH,EAAaC,EAAO7zG,EAAOC,EAAK,CAGvC,QAFIi8B,EACAjpC,EAAS,CAAA,EACJvgC,EAAIstC,EAAOttC,EAAIutC,EAAKvtC,GAAK,EAChCwpE,GACI23E,EAAMnhJ,CAAC,GAAK,GAAM,WAClBmhJ,EAAMnhJ,EAAI,CAAC,GAAK,EAAK,QACtBmhJ,EAAMnhJ,EAAI,CAAC,EAAI,KAClBugC,EAAO,KAAK0gH,EAAgBz3E,CAAG,CAAC,EAElC,OAAOjpC,EAAO,KAAK,EAAE,CACvB,CAEA,SAAS+/G,EAAea,EAAO,CAQ7B,QAPI33E,EACA9oD,EAAMygI,EAAM,OACZC,EAAa1gI,EAAM,EACnBspB,EAAQ,CAAA,EACRq3G,EAAiB,MAGZrhJ,EAAI,EAAGshJ,EAAO5gI,EAAM0gI,EAAYphJ,EAAIshJ,EAAMthJ,GAAKqhJ,EACtDr3G,EAAM,KAAKk3G,EAAYC,EAAOnhJ,EAAIA,EAAIqhJ,EAAkBC,EAAOA,EAAQthJ,EAAIqhJ,CAAe,CAAC,EAI7F,OAAID,IAAe,GACjB53E,EAAM23E,EAAMzgI,EAAM,CAAC,EACnBspB,EAAM,KACJu2G,EAAO/2E,GAAO,CAAC,EACf+2E,EAAQ/2E,GAAO,EAAK,EAAI,EACxB,IACN,GACa43E,IAAe,IACxB53E,GAAO23E,EAAMzgI,EAAM,CAAC,GAAK,GAAKygI,EAAMzgI,EAAM,CAAC,EAC3CspB,EAAM,KACJu2G,EAAO/2E,GAAO,EAAE,EAChB+2E,EAAQ/2E,GAAO,EAAK,EAAI,EACxB+2E,EAAQ/2E,GAAO,EAAK,EAAI,EACxB,GACN,GAGSx/B,EAAM,KAAK,EAAE,CACtB;;;;;;;;;;0DCzIC,SAAS,EAAE,CAAyD6wG,EAAA,QAAe,GAAuL,GAAE,UAAU,CAAC,OAAO,SAASj/I,EAAEuE,EAAED,EAAEM,EAAE,CAAC,SAASH,EAAEvE,EAAEgE,EAAE,CAAC,GAAG,CAACI,EAAEpE,CAAC,EAAE,CAAC,GAAG,CAACqE,EAAErE,CAAC,EAAE,CAAC,IAAImE,EAAc,OAAOshJ,IAAnB,YAA4BA,GAAQ,GAAG,CAACzhJ,GAAGG,EAAE,OAAOA,EAAEnE,EAAE,EAAE,EAAE,GAAGoB,EAAE,OAAOA,EAAEpB,EAAE,EAAE,EAAE,IAAIiE,EAAE,IAAI,MAAM,uBAAuBjE,EAAE,GAAG,EAAE,MAAMiE,EAAE,KAAK,mBAAmBA,CAAC,CAAC,IAAIC,EAAEE,EAAEpE,CAAC,EAAE,CAAC,QAAQ,CAAA,CAAE,EAAEqE,EAAErE,CAAC,EAAE,CAAC,EAAE,KAAKkE,EAAE,QAAQ,SAASF,EAAE,CAAC,IAAIG,EAAEE,EAAErE,CAAC,EAAE,CAAC,EAAEgE,CAAC,EAAE,OAAOO,EAAEJ,GAAGH,CAAC,CAAC,EAAEE,EAAEA,EAAE,QAAQpE,EAAEuE,EAAED,EAAEM,CAAC,CAAC,CAAC,OAAON,EAAEpE,CAAC,EAAE,OAAO,CAAC,QAAQoB,EAAc,OAAOqkJ,IAAnB,YAA4BA,GAAQzhJ,EAAE,EAAEA,EAAEU,EAAE,OAAOV,IAAIO,EAAEG,EAAEV,CAAC,CAAC,EAAE,OAAOO,CAAC,GAAE,CAAC,EAAE,CAAC,SAAS,EAAEJ,EAAEnE,EAAE,CAAc,IAAIwE,EAAE,EAAE,SAAS,EAAEF,EAAE,EAAE,WAAW,EAAEG,EAAE,oEAAoEzE,EAAE,OAAO,SAASgE,EAAE,CAAC,QAAQG,EAAE,EAAEF,EAAEC,EAAEpE,EAAEuE,EAAED,EAAEM,EAAE,CAAA,EAAGH,EAAE,EAAEnD,EAAE4C,EAAE,OAAOW,EAAEvD,EAAEkD,EAAaE,EAAE,UAAUR,CAAC,IAAxB,SAA0BO,EAAEP,EAAE,QAAQW,EAAEvD,EAAEmD,EAAEN,EAAEK,GAAGH,EAAEH,EAAEO,GAAG,EAAE,EAAEA,EAAEnD,EAAE4C,EAAEO,GAAG,EAAE,EAAEA,EAAEnD,EAAE4C,EAAEO,GAAG,EAAE,IAAIJ,EAAEH,EAAE,WAAWO,GAAG,EAAE,EAAEA,EAAEnD,EAAE4C,EAAE,WAAWO,GAAG,EAAE,EAAEA,EAAEnD,EAAE4C,EAAE,WAAWO,GAAG,EAAE,GAAGL,EAAEC,GAAG,EAAErE,GAAG,EAAEqE,IAAI,EAAE,GAAG,EAAEE,EAAE,EAAEM,GAAG,GAAG,IAAI,EAAEV,GAAG,EAAE,GAAGG,EAAE,EAAEO,EAAE,GAAGV,EAAE,GAAGS,EAAE,KAAKD,EAAE,OAAOP,CAAC,EAAEO,EAAE,OAAO3E,CAAC,EAAE2E,EAAE,OAAOJ,CAAC,EAAEI,EAAE,OAAOL,CAAC,CAAC,EAAE,OAAOM,EAAE,KAAK,EAAE,CAAC,EAAE1E,EAAE,OAAO,SAASgE,EAAE,CAAC,IAAIG,EAAE,EAAEF,EAAEC,EAAEpE,EAAEuE,EAAED,EAAE,EAAEM,EAAE,EAAEH,EAAE,QAAQ,GAAGP,EAAE,OAAO,EAAEO,EAAE,MAAM,IAAIA,EAAE,MAAM,IAAI,MAAM,iDAAiD,EAAE,IAAInD,EAAEuD,EAAE,GAAGX,EAAEA,EAAE,QAAQ,mBAAmB,EAAE,GAAG,OAAO,EAAE,GAAGA,EAAE,OAAOA,EAAE,OAAO,CAAC,IAAIS,EAAE,OAAO,EAAE,GAAGE,IAAIX,EAAE,OAAOA,EAAE,OAAO,CAAC,IAAIS,EAAE,OAAO,EAAE,GAAGE,IAAIA,EAAE,GAAG,EAAE,MAAM,IAAI,MAAM,2CAA2C,EAAE,IAAIvD,EAAEkD,EAAE,WAAW,IAAI,WAAW,EAAEK,CAAC,EAAE,IAAI,MAAM,EAAEA,CAAC,EAAEP,EAAEJ,EAAE,QAAQG,EAAEM,EAAE,QAAQT,EAAE,OAAOI,GAAG,CAAC,GAAG,GAAGF,EAAEO,EAAE,QAAQT,EAAE,OAAOI,GAAG,CAAC,IAAI,EAAE,GAAG,GAAGF,IAAI,GAAGpE,EAAE2E,EAAE,QAAQT,EAAE,OAAOI,GAAG,CAAC,IAAI,EAAEH,GAAG,EAAEnE,IAAI,GAAGuE,EAAEI,EAAE,QAAQT,EAAE,OAAOI,GAAG,CAAC,GAAGhD,EAAEsD,GAAG,EAAEP,EAAOrE,IAAL,KAASsB,EAAEsD,GAAG,EAAE,GAAQL,IAAL,KAASjD,EAAEsD,GAAG,EAAET,GAAG,OAAO7C,CAAC,CAAC,EAAE,CAAC,YAAY,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE+C,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,YAAY,EAAEC,EAAE,EAAE,qBAAqB,EAAEpE,EAAE,EAAE,qBAAqB,EAAEuE,EAAE,EAAE,0BAA0B,EAAE,SAASD,EAAEJ,EAAEG,EAAEnE,EAAEiE,EAAEC,EAAE,CAAC,KAAK,eAAeF,EAAE,KAAK,iBAAiBG,EAAE,KAAK,MAAMnE,EAAE,KAAK,YAAYiE,EAAE,KAAK,kBAAkBC,CAAC,CAACE,EAAE,UAAU,CAAC,iBAAiB,UAAU,CAAC,IAAIJ,EAAE,IAAIE,EAAED,EAAE,QAAQ,QAAQ,KAAK,iBAAiB,CAAC,EAAE,KAAK,KAAK,YAAY,kBAAkB,EAAE,KAAK,IAAII,EAAE,aAAa,CAAC,EAAEF,EAAE,KAAK,OAAOH,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,KAAK,WAAW,cAAcG,EAAE,iBAAiB,MAAM,IAAI,MAAM,uCAAuC,CAAC,CAAC,EAAEH,CAAC,EAAE,oBAAoB,UAAU,CAAC,OAAO,IAAIE,EAAED,EAAE,QAAQ,QAAQ,KAAK,iBAAiB,CAAC,EAAE,eAAe,iBAAiB,KAAK,cAAc,EAAE,eAAe,mBAAmB,KAAK,gBAAgB,EAAE,eAAe,QAAQ,KAAK,KAAK,EAAE,eAAe,cAAc,KAAK,WAAW,CAAC,CAAC,EAAEG,EAAE,iBAAiB,SAASJ,EAAEG,EAAEnE,EAAE,CAAC,OAAOgE,EAAE,KAAK,IAAIlE,CAAC,EAAE,KAAK,IAAIuE,EAAE,kBAAkB,CAAC,EAAE,KAAKF,EAAE,eAAenE,CAAC,CAAC,EAAE,KAAK,IAAIqE,EAAE,gBAAgB,CAAC,EAAE,eAAe,cAAcF,CAAC,CAAC,EAAEA,EAAE,QAAQC,CAAC,EAAE,CAAC,aAAa,EAAE,sBAAsB,GAAG,2BAA2B,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAED,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,wBAAwB,EAAEjE,EAAE,MAAM,CAAC,MAAM,OAAO,eAAe,UAAU,CAAC,OAAO,IAAIiE,EAAE,mBAAmB,CAAC,EAAE,iBAAiB,UAAU,CAAC,OAAO,IAAIA,EAAE,qBAAqB,CAAC,CAAC,EAAEjE,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,yBAAyB,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAEmE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,SAAS,EAAMG,GAAE,UAAU,CAAC,QAAQJ,EAAEG,EAAE,GAAGnE,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAACgE,EAAEhE,EAAE,QAAQiE,EAAE,EAAEA,EAAE,EAAEA,IAAID,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAEG,EAAEnE,CAAC,EAAEgE,CAAC,CAAC,OAAOG,CAAC,GAAC,EAAGA,EAAE,QAAQ,SAASH,EAAEG,EAAE,CAAC,OAAgBH,IAAT,QAAYA,EAAE,OAAkBC,EAAE,UAAUD,CAAC,IAAxB,UAA0B,SAASA,EAAEG,EAAEnE,EAAEiE,EAAE,CAAC,IAAIC,EAAEE,EAAEtE,EAAEmE,EAAEjE,EAAEgE,GAAG,GAAG,QAAQK,EAAEJ,EAAEI,EAAEvE,EAAEuE,IAAIL,EAAEA,IAAI,EAAEE,EAAE,KAAKF,EAAEG,EAAEE,CAAC,EAAE,EAAE,MAAM,GAAGL,CAAC,GAAE,EAAEG,EAAEH,EAAEA,EAAE,OAAO,CAAC,GAAE,SAASA,EAAEG,EAAEnE,EAAEiE,EAAE,CAAC,IAAIC,EAAEE,EAAEtE,EAAEmE,EAAEjE,EAAEgE,GAAG,GAAG,QAAQK,EAAEJ,EAAEI,EAAEvE,EAAEuE,IAAIL,EAAEA,IAAI,EAAEE,EAAE,KAAKF,EAAEG,EAAE,WAAWE,CAAC,EAAE,EAAE,SAASL,CAAC,GAAE,EAAEG,EAAEH,EAAEA,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAEG,EAAEnE,EAAE,CAAcA,EAAE,OAAO,GAAGA,EAAE,OAAO,GAAGA,EAAE,IAAI,GAAGA,EAAE,cAAc,GAAGA,EAAE,KAAK,KAAKA,EAAE,YAAY,KAAKA,EAAE,mBAAmB,KAAKA,EAAE,QAAQ,KAAKA,EAAE,gBAAgB,KAAKA,EAAE,eAAe,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,EAAEmE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,KAAKA,EAAe,OAAO,QAApB,IAA4B,QAAQ,EAAE,KAAK,EAAEE,EAAE,QAAQ,CAAC,QAAQF,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAEE,EAAEnE,EAAE,CAAc,IAAIiE,EAAe,OAAO,WAApB,KAA6C,OAAO,YAApB,KAA8C,OAAO,YAApB,IAAgCC,EAAE,EAAE,MAAM,EAAEpE,EAAE,EAAE,SAAS,EAAEuE,EAAE,EAAE,wBAAwB,EAAED,EAAEH,EAAE,aAAa,QAAQ,SAASS,EAAEV,EAAEG,EAAE,CAACE,EAAE,KAAK,KAAK,eAAeL,CAAC,EAAE,KAAK,MAAM,KAAK,KAAK,YAAYA,EAAE,KAAK,aAAaG,EAAE,KAAK,KAAK,CAAA,CAAE,CAACnE,EAAE,MAAM,OAAOF,EAAE,SAAS4E,EAAEL,CAAC,EAAEK,EAAE,UAAU,aAAa,SAASV,EAAE,CAAC,KAAK,KAAKA,EAAE,KAAY,KAAK,QAAZ,MAAmB,KAAK,YAAW,EAAG,KAAK,MAAM,KAAKlE,EAAE,YAAYsE,EAAEJ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAEU,EAAE,UAAU,MAAM,UAAU,CAACL,EAAE,UAAU,MAAM,KAAK,IAAI,EAAS,KAAK,QAAZ,MAAmB,KAAK,YAAW,EAAG,KAAK,MAAM,KAAK,CAAA,EAAG,EAAE,CAAC,EAAEK,EAAE,UAAU,QAAQ,UAAU,CAACL,EAAE,UAAU,QAAQ,KAAK,IAAI,EAAE,KAAK,MAAM,IAAI,EAAEK,EAAE,UAAU,YAAY,UAAU,CAAC,KAAK,MAAM,IAAIR,EAAE,KAAK,WAAW,EAAE,CAAC,IAAI,GAAG,MAAM,KAAK,aAAa,OAAO,EAAE,CAAC,EAAE,IAAIC,EAAE,KAAK,KAAK,MAAM,OAAO,SAASH,EAAE,CAACG,EAAE,KAAK,CAAC,KAAKH,EAAE,KAAKG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAEnE,EAAE,eAAe,SAASgE,EAAE,CAAC,OAAO,IAAIU,EAAE,UAAUV,CAAC,CAAC,EAAEhE,EAAE,iBAAiB,UAAU,CAAC,OAAO,IAAI0E,EAAE,UAAU,CAAA,CAAE,CAAC,CAAC,EAAE,CAAC,yBAAyB,GAAG,UAAU,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAEP,EAAEnE,EAAE,CAAc,SAAS0F,EAAE1B,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAE,GAAG,IAAIjE,EAAE,EAAEA,EAAEmE,EAAEnE,IAAIiE,GAAG,OAAO,aAAa,IAAID,CAAC,EAAEA,KAAK,EAAE,OAAOC,CAAC,CAAC,SAASA,EAAED,EAAEG,EAAEnE,EAAEiE,EAAEC,EAAEpE,EAAE,CAAC,IAAIuE,EAAED,EAAEM,EAAEV,EAAE,KAAKO,EAAEP,EAAE,YAAY5C,EAAEtB,IAAI0F,EAAE,WAAWb,EAAEiB,EAAE,YAAY,SAAS9F,EAAE4E,EAAE,IAAI,CAAC,EAAEJ,EAAEsB,EAAE,YAAY,SAASJ,EAAE,WAAWd,EAAE,IAAI,CAAC,EAAEF,EAAEE,EAAE,QAAQD,EAAEmB,EAAE,YAAY,SAAS9F,EAAE0E,CAAC,CAAC,EAAElD,EAAEsE,EAAE,YAAY,SAASJ,EAAE,WAAWhB,CAAC,CAAC,EAAEQ,EAAEV,EAAE,SAASI,EAAE,KAAK,OAAOG,EAAEvD,EAAE,SAASkD,EAAE,OAAOO,EAAE,GAAGH,EAAE,GAAGE,EAAE,GAAGG,GAAEP,EAAE,IAAIS,EAAET,EAAE,KAAKmB,GAAE,CAAC,MAAM,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE1B,GAAG,CAACnE,IAAI6F,GAAE,MAAM7B,EAAE,MAAM6B,GAAE,eAAe7B,EAAE,eAAe6B,GAAE,iBAAiB7B,EAAE,kBAAkB,IAAIkB,EAAE,EAAEf,IAAIe,GAAG,GAAG9D,GAAG,CAAC4D,GAAG,CAACH,IAAIK,GAAG,MAAM,IAAIwB,EAAE,EAAErB,EAAE,EAAEJ,KAAIyB,GAAG,IAAaxC,IAAT,QAAYmB,EAAE,IAAIqB,IAAG,SAAS1C,EAAEG,EAAE,CAAC,IAAInE,EAAEgE,EAAE,OAAOA,IAAIhE,EAAEmE,EAAE,MAAM,QAAQ,MAAMnE,IAAI,EAAE,GAAE0E,EAAE,gBAAgBO,EAAC,IAAII,EAAE,GAAGqB,IAAG,SAAS1C,EAAE,CAAC,MAAO,KAAIA,GAAG,EAAE,GAAEU,EAAE,cAAc,GAAGL,EAAEc,EAAE,YAAW,EAAGd,IAAI,EAAEA,GAAGc,EAAE,gBAAgBd,IAAI,EAAEA,GAAGc,EAAE,cAAa,EAAG,EAAEf,EAAEe,EAAE,iBAAiB,KAAKf,IAAI,EAAEA,GAAGe,EAAE,YAAW,EAAG,EAAEf,IAAI,EAAEA,GAAGe,EAAE,aAAaH,IAAIJ,EAAEc,EAAE,EAAE,CAAC,EAAEA,EAAEU,EAAEzB,CAAC,EAAE,CAAC,EAAEL,EAAES,GAAG,KAAKW,EAAEd,EAAE,OAAO,CAAC,EAAEA,GAAGC,IAAIC,EAAEY,EAAE,EAAE,CAAC,EAAEA,EAAEU,EAAE3B,CAAC,EAAE,CAAC,EAAEnD,EAAEyD,GAAG,KAAKW,EAAEZ,EAAE,OAAO,CAAC,EAAEA,GAAG,IAAIQ,EAAE,GAAG,OAAOA,GAAG;AAAA,IAAOA,GAAGI,EAAER,EAAE,CAAC,EAAEI,GAAGf,EAAE,MAAMe,GAAGI,EAAErB,EAAE,CAAC,EAAEiB,GAAGI,EAAEtB,EAAE,CAAC,EAAEkB,GAAGI,EAAEG,GAAE,MAAM,CAAC,EAAEP,GAAGI,EAAEG,GAAE,eAAe,CAAC,EAAEP,GAAGI,EAAEG,GAAE,iBAAiB,CAAC,EAAEP,GAAGI,EAAEf,EAAE,OAAO,CAAC,EAAEW,GAAGI,EAAEX,EAAE,OAAO,CAAC,EAAE,CAAC,WAAWmB,EAAE,kBAAkBZ,EAAEX,EAAEI,EAAE,UAAUmB,EAAE,oBAAoBR,EAAEL,EAAE,CAAC,EAAEC,EAAEI,EAAEjB,EAAE,OAAO,CAAC,EAAE,WAAWiB,EAAEgB,EAAE,CAAC,EAAEhB,EAAEzB,EAAE,CAAC,EAAEU,EAAEI,EAAEN,CAAC,CAAC,CAAC,IAAImB,EAAE,EAAE,UAAU,EAAE1B,EAAE,EAAE,yBAAyB,EAAEsB,EAAE,EAAE,SAAS,EAAEY,EAAE,EAAE,UAAU,EAAEF,EAAE,EAAE,cAAc,EAAE,SAASpG,EAAEkE,EAAEG,EAAEnE,EAAEiE,EAAE,CAACC,EAAE,KAAK,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,WAAWC,EAAE,KAAK,YAAYnE,EAAE,KAAK,eAAeiE,EAAE,KAAK,YAAYD,EAAE,KAAK,WAAW,GAAG,KAAK,cAAc,GAAG,KAAK,WAAW,CAAA,EAAG,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,KAAK,KAAK,SAAS,EAAE,CAAC4B,EAAE,SAAS9F,EAAEoE,CAAC,EAAEpE,EAAE,UAAU,KAAK,SAASkE,EAAE,CAAC,IAAIG,EAAEH,EAAE,KAAK,SAAS,EAAEhE,EAAE,KAAK,aAAaiE,EAAE,KAAK,SAAS,OAAO,KAAK,WAAW,KAAK,cAAc,KAAKD,CAAC,GAAG,KAAK,cAAcA,EAAE,KAAK,OAAOE,EAAE,UAAU,KAAK,KAAK,KAAK,CAAC,KAAKF,EAAE,KAAK,KAAK,CAAC,YAAY,KAAK,YAAY,QAAQhE,GAAGmE,EAAE,KAAKnE,EAAEiE,EAAE,IAAIjE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAEF,EAAE,UAAU,aAAa,SAASkE,EAAE,CAAC,KAAK,oBAAoB,KAAK,aAAa,KAAK,YAAYA,EAAE,KAAK,KAAK,IAAIG,EAAE,KAAK,aAAa,CAACH,EAAE,KAAK,IAAI,GAAGG,EAAE,CAAC,IAAInE,EAAEiE,EAAED,EAAEG,EAAE,GAAG,KAAK,oBAAoB,KAAK,YAAY,KAAK,cAAc,EAAE,KAAK,KAAK,CAAC,KAAKnE,EAAE,WAAW,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,EAAEF,EAAE,UAAU,aAAa,SAASkE,EAAE,CAAC,KAAK,WAAW,GAAG,IAAIG,EAAE,KAAK,aAAa,CAACH,EAAE,KAAK,IAAIhE,EAAEiE,EAAED,EAAEG,EAAE,GAAG,KAAK,oBAAoB,KAAK,YAAY,KAAK,cAAc,EAAE,GAAG,KAAK,WAAW,KAAKnE,EAAE,SAAS,EAAEmE,EAAE,KAAK,KAAK,CAAC,MAAK,SAASH,EAAE,CAAC,OAAOkC,EAAE,gBAAgBR,EAAE1B,EAAE,MAAM,CAAC,EAAE0B,EAAE1B,EAAE,eAAe,CAAC,EAAE0B,EAAE1B,EAAE,iBAAiB,CAAC,CAAC,GAAEA,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAO,KAAI,KAAK,KAAK,CAAC,KAAKhE,EAAE,WAAW,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,QAAQ,KAAK,KAAK,KAAK,cAAc,MAAK,CAAE,EAAE,KAAK,YAAY,IAAI,EAAEF,EAAE,UAAU,MAAM,UAAU,CAAC,QAAQkE,EAAE,KAAK,aAAaG,EAAE,EAAEA,EAAE,KAAK,WAAW,OAAOA,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,WAAWA,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,IAAInE,EAAE,KAAK,aAAagE,EAAEC,GAAE,SAASD,EAAEG,EAAEnE,EAAEiE,EAAEC,EAAE,CAAC,IAAIpE,EAAE8F,EAAE,YAAY,SAAS1B,EAAED,CAAC,CAAC,EAAE,OAAOiC,EAAE,sBAAsB,WAAWR,EAAE1B,EAAE,CAAC,EAAE0B,EAAE1B,EAAE,CAAC,EAAE0B,EAAEvB,EAAE,CAAC,EAAEuB,EAAE1F,EAAE,CAAC,EAAE0F,EAAE5F,EAAE,OAAO,CAAC,EAAEA,CAAC,GAAE,KAAK,WAAW,OAAOE,EAAEgE,EAAE,KAAK,WAAW,KAAK,cAAc,EAAE,KAAK,KAAK,CAAC,KAAKC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAEnE,EAAE,UAAU,kBAAkB,UAAU,CAAC,KAAK,SAAS,KAAK,SAAS,MAAK,EAAG,KAAK,aAAa,KAAK,SAAS,UAAU,EAAE,KAAK,SAAS,KAAK,SAAS,MAAK,EAAG,KAAK,SAAS,OAAM,CAAE,EAAEA,EAAE,UAAU,iBAAiB,SAASkE,EAAE,CAAC,KAAK,SAAS,KAAKA,CAAC,EAAE,IAAIG,EAAE,KAAK,OAAOH,EAAE,GAAG,OAAO,SAASA,EAAE,CAACG,EAAE,aAAaH,CAAC,CAAC,CAAC,EAAEA,EAAE,GAAG,MAAM,UAAU,CAACG,EAAE,aAAaA,EAAE,SAAS,UAAU,EAAEA,EAAE,SAAS,OAAOA,EAAE,kBAAiB,EAAGA,EAAE,IAAG,CAAE,CAAC,EAAEH,EAAE,GAAG,QAAQ,SAASA,EAAE,CAACG,EAAE,MAAMH,CAAC,CAAC,CAAC,EAAE,IAAI,EAAElE,EAAE,UAAU,OAAO,UAAU,CAAC,MAAM,CAAC,CAACoE,EAAE,UAAU,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,UAAU,KAAK,SAAS,QAAQ,KAAK,kBAAiB,EAAG,IAAI,KAAK,UAAU,KAAK,SAAS,QAAQ,KAAK,eAAe,QAAQ,KAAK,IAAG,EAAG,IAAI,EAAEpE,EAAE,UAAU,MAAM,SAASkE,EAAE,CAAC,IAAIG,EAAE,KAAK,SAAS,GAAG,CAACD,EAAE,UAAU,MAAM,KAAK,KAAKF,CAAC,EAAE,MAAM,GAAG,QAAQhE,EAAE,EAAEA,EAAEmE,EAAE,OAAOnE,IAAI,GAAG,CAACmE,EAAEnE,CAAC,EAAE,MAAMgE,CAAC,CAAC,MAAS,CAAA,CAAE,QAAQ,EAAElE,EAAE,UAAU,KAAK,UAAU,CAACoE,EAAE,UAAU,KAAK,KAAK,IAAI,EAAE,QAAQF,EAAE,KAAK,SAASG,EAAE,EAAEA,EAAEH,EAAE,OAAOG,IAAIH,EAAEG,CAAC,EAAE,KAAI,CAAE,EAAEA,EAAE,QAAQrE,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,GAAG,0BAA0B,GAAG,UAAU,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAc,IAAIuE,EAAE,EAAE,iBAAiB,EAAEN,EAAE,EAAE,iBAAiB,EAAEjE,EAAE,eAAe,SAASgE,EAAEK,EAAEF,EAAE,CAAC,IAAIC,EAAE,IAAIH,EAAEI,EAAE,YAAYF,EAAEE,EAAE,SAASA,EAAE,cAAc,EAAEK,EAAE,EAAE,GAAG,CAACV,EAAE,QAAQ,SAASA,EAAEG,EAAE,CAACO,IAAI,IAAI1E,GAAE,SAASgE,EAAEG,EAAE,CAAC,IAAInE,EAAEgE,GAAGG,EAAEF,EAAEM,EAAEvE,CAAC,EAAE,GAAG,CAACiE,EAAE,MAAM,IAAI,MAAMjE,EAAE,sCAAsC,EAAE,OAAOiE,CAAC,GAAEE,EAAE,QAAQ,YAAYE,EAAE,WAAW,EAAEJ,EAAEE,EAAE,QAAQ,oBAAoBE,EAAE,oBAAoB,GAAGH,EAAEC,EAAE,IAAIrE,EAAEqE,EAAE,KAAKA,EAAE,gBAAgBnE,EAAEiE,CAAC,EAAE,eAAe,OAAO,CAAC,KAAKD,EAAE,IAAIE,EAAE,KAAKpE,EAAE,QAAQqE,EAAE,SAAS,GAAG,gBAAgBA,EAAE,gBAAgB,eAAeA,EAAE,cAAc,CAAC,EAAE,KAAKC,CAAC,CAAC,CAAC,EAAEA,EAAE,aAAaM,CAAC,OAAOV,EAAE,CAACI,EAAE,MAAMJ,CAAC,CAAC,CAAC,OAAOI,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,EAAED,EAAEnE,EAAE,CAAc,SAASiE,GAAG,CAAC,GAAG,EAAE,gBAAgBA,GAAG,OAAO,IAAIA,EAAE,GAAG,UAAU,OAAO,MAAM,IAAI,MAAM,gGAAgG,EAAE,KAAK,MAAM,OAAO,OAAO,IAAI,EAAE,KAAK,QAAQ,KAAK,KAAK,KAAK,GAAG,KAAK,MAAM,UAAU,CAAC,IAAID,EAAE,IAAIC,EAAE,QAAQE,KAAK,KAAiB,OAAO,KAAKA,CAAC,GAAzB,aAA6BH,EAAEG,CAAC,EAAE,KAAKA,CAAC,GAAG,OAAOH,CAAC,CAAC,EAAEC,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,QAAQ,EAAEA,EAAE,QAAQ,EAAE,WAAW,EAAEA,EAAE,SAAS,EAAE,YAAY,EAAEA,EAAE,QAAQ,SAASA,EAAE,UAAU,SAASD,EAAEG,EAAE,CAAC,OAAO,IAAIF,IAAG,UAAUD,EAAEG,CAAC,CAAC,EAAEF,EAAE,SAAS,EAAE,YAAY,EAAEE,EAAE,QAAQF,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEE,EAAEnE,EAAE,CAAc,IAAIuE,EAAE,EAAE,SAAS,EAAEL,EAAE,EAAE,YAAY,EAAED,EAAE,EAAE,QAAQ,EAAEnE,EAAE,EAAE,cAAc,EAAEuE,EAAE,EAAE,qBAAqB,EAAEjD,EAAE,EAAE,eAAe,EAAE,SAASuD,EAAEV,EAAE,CAAC,OAAO,IAAIC,EAAE,QAAQ,SAASF,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAE,aAAa,iBAAgB,EAAG,KAAK,IAAII,CAAC,EAAErE,EAAE,GAAG,QAAQ,SAASgE,EAAE,CAACG,EAAEH,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,UAAU,CAAChE,EAAE,WAAW,QAAQiE,EAAE,aAAa,MAAME,EAAE,IAAI,MAAM,gCAAgC,CAAC,EAAEH,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAACG,EAAE,QAAQ,SAASH,EAAEI,EAAE,CAAC,IAAIM,EAAE,KAAK,OAAON,EAAEG,EAAE,OAAOH,GAAG,CAAA,EAAG,CAAC,OAAO,GAAG,WAAW,GAAG,sBAAsB,GAAG,cAAc,GAAG,eAAeH,EAAE,UAAU,CAAC,EAAE7C,EAAE,QAAQA,EAAE,SAAS4C,CAAC,EAAEE,EAAE,QAAQ,OAAO,IAAI,MAAM,sDAAsD,CAAC,EAAEK,EAAE,eAAe,sBAAsBP,EAAE,GAAGI,EAAE,sBAAsBA,EAAE,MAAM,EAAE,KAAK,SAASJ,EAAE,CAAC,IAAIG,EAAE,IAAIrE,EAAEsE,CAAC,EAAE,OAAOD,EAAE,KAAKH,CAAC,EAAEG,CAAC,CAAC,EAAE,KAAK,SAASH,EAAE,CAAC,IAAIG,EAAE,CAACD,EAAE,QAAQ,QAAQF,CAAC,CAAC,EAAEhE,EAAEgE,EAAE,MAAM,GAAGI,EAAE,WAAW,QAAQH,EAAE,EAAEA,EAAEjE,EAAE,OAAOiE,IAAIE,EAAE,KAAKQ,EAAE3E,EAAEiE,CAAC,CAAC,CAAC,EAAE,OAAOC,EAAE,QAAQ,IAAIC,CAAC,CAAC,CAAC,EAAE,KAAK,SAASH,EAAE,CAAC,QAAQG,EAAEH,EAAE,MAAK,EAAGhE,EAAEmE,EAAE,MAAMF,EAAE,EAAEA,EAAEjE,EAAE,OAAOiE,IAAI,CAAC,IAAIC,EAAElE,EAAEiE,CAAC,EAAEnE,EAAEoE,EAAE,YAAYG,EAAEE,EAAE,QAAQL,EAAE,WAAW,EAAEQ,EAAE,KAAKL,EAAEH,EAAE,aAAa,CAAC,OAAO,GAAG,sBAAsB,GAAG,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,QAAQA,EAAE,eAAe,OAAOA,EAAE,eAAe,KAAK,gBAAgBA,EAAE,gBAAgB,eAAeA,EAAE,eAAe,cAAcE,EAAE,aAAa,CAAC,EAAEF,EAAE,MAAMQ,EAAE,KAAKL,CAAC,EAAE,mBAAmBvE,EAAE,CAAC,OAAOqE,EAAE,WAAW,SAASO,EAAE,QAAQP,EAAE,YAAYO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEP,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,UAAU,EAAEC,EAAE,EAAE,yBAAyB,EAAE,SAASpE,EAAEkE,EAAEG,EAAE,CAACD,EAAE,KAAK,KAAK,mCAAmCF,CAAC,EAAE,KAAK,eAAe,GAAG,KAAK,YAAYG,CAAC,CAAC,CAACF,EAAE,SAASnE,EAAEoE,CAAC,EAAEpE,EAAE,UAAU,YAAY,SAASkE,EAAE,CAAC,IAAIG,EAAE,MAAM,KAAK,QAAQH,GAAG,QAAQA,EAAE,GAAG,OAAO,SAASA,EAAE,CAACG,EAAE,KAAK,CAAC,KAAKH,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,SAASA,EAAE,CAACG,EAAE,SAAS,KAAK,eAAeH,EAAEG,EAAE,MAAMH,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,UAAU,CAACG,EAAE,SAASA,EAAE,eAAe,GAAGA,EAAE,IAAG,CAAE,CAAC,CAAC,EAAErE,EAAE,UAAU,MAAM,UAAU,CAAC,MAAM,CAAC,CAACoE,EAAE,UAAU,MAAM,KAAK,IAAI,IAAI,KAAK,QAAQ,QAAQ,GAAG,EAAEpE,EAAE,UAAU,OAAO,UAAU,CAAC,MAAM,CAAC,CAACoE,EAAE,UAAU,OAAO,KAAK,IAAI,IAAI,KAAK,eAAe,KAAK,IAAG,EAAG,KAAK,QAAQ,OAAM,EAAG,GAAG,EAAEC,EAAE,QAAQrE,CAAC,EAAE,CAAC,0BAA0B,GAAG,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAc,IAAIkE,EAAE,EAAE,iBAAiB,EAAE,SAAS,SAASD,EAAED,EAAEG,EAAEnE,EAAE,CAACkE,EAAE,KAAK,KAAKC,CAAC,EAAE,KAAK,QAAQH,EAAE,IAAIC,EAAE,KAAKD,EAAE,GAAG,OAAO,SAASA,EAAEG,EAAE,CAACF,EAAE,KAAKD,CAAC,GAAGC,EAAE,QAAQ,MAAK,EAAGjE,GAAGA,EAAEmE,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,SAASH,EAAE,CAACC,EAAE,KAAK,QAAQD,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,UAAU,CAACC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAASA,EAAEC,CAAC,EAAED,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,QAAQ,OAAM,CAAE,EAAEE,EAAE,QAAQF,CAAC,EAAE,CAAC,WAAW,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEE,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,CAAC,OAAoB,OAAO,OAApB,IAA2B,cAAc,SAASH,EAAEG,EAAE,CAAC,GAAG,OAAO,MAAM,OAAO,OAAO,WAAW,KAAK,OAAO,OAAO,KAAKH,EAAEG,CAAC,EAAE,GAAa,OAAOH,GAAjB,SAAmB,MAAM,IAAI,MAAM,0CAA0C,EAAE,OAAO,IAAI,OAAOA,EAAEG,CAAC,CAAC,EAAE,YAAY,SAASH,EAAE,CAAC,GAAG,OAAO,MAAM,OAAO,OAAO,MAAMA,CAAC,EAAE,IAAIG,EAAE,IAAI,OAAOH,CAAC,EAAE,OAAOG,EAAE,KAAK,CAAC,EAAEA,CAAC,EAAE,SAAS,SAASH,EAAE,CAAC,OAAO,OAAO,SAASA,CAAC,CAAC,EAAE,SAAS,SAASA,EAAE,CAAC,OAAOA,GAAe,OAAOA,EAAE,IAArB,YAAqC,OAAOA,EAAE,OAArB,YAAwC,OAAOA,EAAE,QAArB,UAA2B,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,EAAEG,EAAEnE,EAAE,CAAc,SAASF,EAAEkE,EAAEG,EAAEnE,EAAE,CAAC,IAAIiE,EAAEC,EAAEK,EAAE,UAAUJ,CAAC,EAAErE,EAAEyE,EAAE,OAAOvE,GAAG,CAAA,EAAG2E,CAAC,EAAE7E,EAAE,KAAKA,EAAE,MAAM,IAAI,KAAYA,EAAE,cAAT,OAAuBA,EAAE,YAAYA,EAAE,YAAY,YAAW,GAAc,OAAOA,EAAE,iBAAnB,WAAqCA,EAAE,gBAAgB,SAASA,EAAE,gBAAgB,CAAC,GAAGA,EAAE,iBAAiB,MAAMA,EAAE,kBAAkBA,EAAE,IAAI,IAAIA,EAAE,gBAAgB,GAAGA,EAAE,iBAAiBA,EAAE,IAAI,IAAIA,EAAE,MAAMkE,EAAEa,EAAEb,CAAC,GAAGlE,EAAE,gBAAgBmE,EAAEe,EAAEhB,CAAC,IAAIe,EAAE,KAAK,KAAKd,EAAE,EAAE,EAAE,IAAII,EAAaH,IAAX,UAAmBpE,EAAE,SAAP,IAAoBA,EAAE,SAAP,GAAcE,GAAYA,EAAE,SAAX,SAAoBF,EAAE,OAAO,CAACuE,IAAIF,aAAaG,GAAOH,EAAE,mBAAN,GAAwBrE,EAAE,KAAK,CAACqE,GAAOA,EAAE,SAAN,KAAgBrE,EAAE,OAAO,GAAGA,EAAE,OAAO,GAAGqE,EAAE,GAAGrE,EAAE,YAAY,QAAQoE,EAAE,UAAU,IAAIE,EAAE,KAAKA,EAAED,aAAaG,GAAGH,aAAa/C,EAAE+C,EAAE,EAAE,QAAQ,EAAE,SAASA,CAAC,EAAE,IAAI7C,EAAE0C,EAAEG,CAAC,EAAEI,EAAE,eAAeP,EAAEG,EAAErE,EAAE,OAAOA,EAAE,sBAAsBA,EAAE,MAAM,EAAE,IAAI4E,EAAE,IAAIF,EAAER,EAAEI,EAAEtE,CAAC,EAAE,KAAK,MAAMkE,CAAC,EAAEU,CAAC,CAAC,IAAIR,EAAE,EAAE,QAAQ,EAAEK,EAAE,EAAE,SAAS,EAAEnD,EAAE,EAAE,wBAAwB,EAAEiD,EAAE,EAAE,uBAAuB,EAAEM,EAAE,EAAE,YAAY,EAAEL,EAAE,EAAE,oBAAoB,EAAEE,EAAE,EAAE,aAAa,EAAEJ,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE9C,EAAE,EAAE,mCAAmC,EAAE0D,EAAE,SAAShB,EAAE,CAAOA,EAAE,MAAM,EAAE,IAAhB,MAAoBA,EAAEA,EAAE,UAAU,EAAEA,EAAE,OAAO,CAAC,GAAG,IAAIG,EAAEH,EAAE,YAAY,GAAG,EAAE,MAAO,GAAEG,EAAEH,EAAE,UAAU,EAAEG,CAAC,EAAE,EAAE,EAAEU,EAAE,SAASb,EAAE,CAAC,OAAYA,EAAE,MAAM,EAAE,IAAhB,MAAoBA,GAAG,KAAKA,CAAC,EAAEe,EAAE,SAASf,EAAEG,EAAE,CAAC,OAAOA,EAAWA,IAAT,OAAWA,EAAEQ,EAAE,cAAcX,EAAEa,EAAEb,CAAC,EAAE,KAAK,MAAMA,CAAC,GAAGlE,EAAE,KAAK,KAAKkE,EAAE,KAAK,CAAC,IAAI,GAAG,cAAcG,CAAC,CAAC,EAAE,KAAK,MAAMH,CAAC,CAAC,EAAE,SAASU,EAAEV,EAAE,CAAC,OAA0B,OAAO,UAAU,SAAS,KAAKA,CAAC,IAApD,iBAAqD,CAAC,IAAIC,EAAE,CAAC,KAAK,UAAU,CAAC,MAAM,IAAI,MAAM,4EAA4E,CAAC,EAAE,QAAQ,SAASD,EAAE,CAAC,IAAIG,EAAEnE,EAAEiE,EAAE,IAAIE,KAAK,KAAK,MAAMF,EAAE,KAAK,MAAME,CAAC,GAAGnE,EAAEmE,EAAE,MAAM,KAAK,KAAK,OAAOA,EAAE,MAAM,IAAIA,EAAE,MAAM,EAAE,KAAK,KAAK,MAAM,IAAI,KAAK,MAAMH,EAAEhE,EAAEiE,CAAC,CAAC,EAAE,OAAO,SAASjE,EAAE,CAAC,IAAIiE,EAAE,CAAA,EAAG,OAAO,KAAK,QAAQ,SAASD,EAAEG,EAAE,CAACnE,EAAEgE,EAAEG,CAAC,GAAGF,EAAE,KAAKE,CAAC,CAAC,CAAC,EAAEF,CAAC,EAAE,KAAK,SAASD,EAAEG,EAAEnE,EAAE,CAAC,GAAO,UAAU,SAAd,EAAqB,OAAOgE,EAAE,KAAK,KAAKA,EAAElE,EAAE,KAAK,KAAKkE,EAAEG,EAAEnE,CAAC,EAAE,KAAK,GAAG0E,EAAEV,CAAC,EAAE,CAAC,IAAIC,EAAED,EAAE,OAAO,KAAK,OAAO,SAASA,EAAEG,EAAE,CAAC,MAAM,CAACA,EAAE,KAAKF,EAAE,KAAKD,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIE,EAAE,KAAK,MAAM,KAAK,KAAKF,CAAC,EAAE,OAAOE,GAAG,CAACA,EAAE,IAAIA,EAAE,IAAI,EAAE,OAAO,SAASlE,EAAE,CAAC,GAAG,CAACA,EAAE,OAAO,KAAK,GAAG0E,EAAE1E,CAAC,EAAE,OAAO,KAAK,OAAO,SAASgE,EAAEG,EAAE,CAAC,OAAOA,EAAE,KAAKnE,EAAE,KAAKgE,CAAC,CAAC,CAAC,EAAE,IAAIA,EAAE,KAAK,KAAKhE,EAAEmE,EAAEY,EAAE,KAAK,KAAKf,CAAC,EAAEC,EAAE,KAAK,MAAK,EAAG,OAAOA,EAAE,KAAKE,EAAE,KAAKF,CAAC,EAAE,OAAO,SAASjE,EAAE,CAACA,EAAE,KAAK,KAAKA,EAAE,IAAIgE,EAAE,KAAK,MAAMhE,CAAC,EAAE,GAAGgE,IAAUhE,EAAE,MAAM,EAAE,IAAhB,MAAoBA,GAAG,KAAKgE,EAAE,KAAK,MAAMhE,CAAC,GAAGgE,GAAG,CAACA,EAAE,IAAI,OAAO,KAAK,MAAMhE,CAAC,MAAO,SAAQmE,EAAE,KAAK,OAAO,SAASH,EAAEG,EAAE,CAAC,OAAOA,EAAE,KAAK,MAAM,EAAEnE,EAAE,MAAM,IAAIA,CAAC,CAAC,EAAEiE,EAAE,EAAEA,EAAEE,EAAE,OAAOF,IAAI,OAAO,KAAK,MAAME,EAAEF,CAAC,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,SAAS,UAAU,CAAC,MAAM,IAAI,MAAM,4EAA4E,CAAC,EAAE,uBAAuB,SAASD,EAAE,CAAC,IAAIG,EAAEnE,EAAE,CAAA,EAAG,GAAG,CAAC,IAAIA,EAAEuE,EAAE,OAAOP,GAAG,CAAA,EAAG,CAAC,YAAY,GAAG,YAAY,QAAQ,mBAAmB,KAAK,KAAK,GAAG,SAAS,MAAM,QAAQ,KAAK,SAAS,kBAAkB,eAAeE,EAAE,UAAU,CAAC,GAAG,KAAKlE,EAAE,KAAK,YAAW,EAAGA,EAAE,YAAYA,EAAE,YAAY,YAAW,EAAoBA,EAAE,OAAnB,iBAA0BA,EAAE,KAAK,UAAU,CAACA,EAAE,KAAK,MAAM,IAAI,MAAM,2BAA2B,EAAEuE,EAAE,aAAavE,EAAE,IAAI,EAAaA,EAAE,WAAb,UAAmCA,EAAE,WAAd,WAAkCA,EAAE,WAAZ,SAAgCA,EAAE,WAAZ,UAAuBA,EAAE,SAAS,QAAkBA,EAAE,WAAZ,UAAuBA,EAAE,SAAS,OAAO,IAAIiE,EAAEjE,EAAE,SAAS,KAAK,SAAS,GAAGmE,EAAEC,EAAE,eAAe,KAAKpE,EAAEiE,CAAC,CAAC,OAAOD,EAAE,EAAEG,EAAE,IAAI/C,EAAE,OAAO,GAAG,MAAM4C,CAAC,CAAC,CAAC,OAAO,IAAIK,EAAEF,EAAEnE,EAAE,MAAM,SAASA,EAAE,QAAQ,CAAC,EAAE,cAAc,SAASgE,EAAEG,EAAE,CAAC,OAAO,KAAK,uBAAuBH,CAAC,EAAE,WAAWG,CAAC,CAAC,EAAE,mBAAmB,SAASH,EAAEG,EAAE,CAAC,OAAOH,EAAEA,GAAG,CAAA,GAAI,OAAOA,EAAE,KAAK,cAAc,KAAK,uBAAuBA,CAAC,EAAE,eAAeG,CAAC,CAAC,CAAC,EAAEA,EAAE,QAAQF,CAAC,EAAE,CAAC,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,oCAAoC,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEE,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEA,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,cAAc,EAAE,SAASC,EAAEF,EAAE,CAACC,EAAE,KAAK,KAAKD,CAAC,EAAE,QAAQG,EAAE,EAAEA,EAAE,KAAK,KAAK,OAAOA,IAAIH,EAAEG,CAAC,EAAE,IAAIH,EAAEG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAASD,EAAED,CAAC,EAAEC,EAAE,UAAU,OAAO,SAASF,EAAE,CAAC,OAAO,KAAK,KAAK,KAAK,KAAKA,CAAC,CAAC,EAAEE,EAAE,UAAU,qBAAqB,SAASF,EAAE,CAAC,QAAQG,EAAEH,EAAE,WAAW,CAAC,EAAEhE,EAAEgE,EAAE,WAAW,CAAC,EAAEC,EAAED,EAAE,WAAW,CAAC,EAAEE,EAAEF,EAAE,WAAW,CAAC,EAAElE,EAAE,KAAK,OAAO,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,KAAK,KAAKA,CAAC,IAAIqE,GAAG,KAAK,KAAKrE,EAAE,CAAC,IAAIE,GAAG,KAAK,KAAKF,EAAE,CAAC,IAAImE,GAAG,KAAK,KAAKnE,EAAE,CAAC,IAAIoE,EAAE,OAAOpE,EAAE,KAAK,KAAK,QAAQ,EAAEoE,EAAE,UAAU,sBAAsB,SAASF,EAAE,CAAC,IAAIG,EAAEH,EAAE,WAAW,CAAC,EAAEhE,EAAEgE,EAAE,WAAW,CAAC,EAAEC,EAAED,EAAE,WAAW,CAAC,EAAEE,EAAEF,EAAE,WAAW,CAAC,EAAElE,EAAE,KAAK,SAAS,CAAC,EAAE,OAAOqE,IAAIrE,EAAE,CAAC,GAAGE,IAAIF,EAAE,CAAC,GAAGmE,IAAInE,EAAE,CAAC,GAAGoE,IAAIpE,EAAE,CAAC,CAAC,EAAEoE,EAAE,UAAU,SAAS,SAASF,EAAE,CAAC,GAAG,KAAK,YAAYA,CAAC,EAAMA,IAAJ,EAAM,MAAM,CAAA,EAAG,IAAIG,EAAE,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMH,CAAC,EAAE,OAAO,KAAK,OAAOA,EAAEG,CAAC,EAAEA,EAAE,QAAQD,CAAC,EAAE,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEC,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,UAAU,EAAE,SAASC,EAAEF,EAAE,CAAC,KAAK,KAAKA,EAAE,KAAK,OAAOA,EAAE,OAAO,KAAK,MAAM,EAAE,KAAK,KAAK,CAAC,CAACE,EAAE,UAAU,CAAC,YAAY,SAASF,EAAE,CAAC,KAAK,WAAW,KAAK,MAAMA,CAAC,CAAC,EAAE,WAAW,SAASA,EAAE,CAAC,GAAG,KAAK,OAAO,KAAK,KAAKA,GAAGA,EAAE,EAAE,MAAM,IAAI,MAAM,sCAAsC,KAAK,OAAO,mBAAmBA,EAAE,oBAAoB,CAAC,EAAE,SAAS,SAASA,EAAE,CAAC,KAAK,WAAWA,CAAC,EAAE,KAAK,MAAMA,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,KAAK,SAAS,KAAK,MAAMA,CAAC,CAAC,EAAE,OAAO,UAAU,GAAG,QAAQ,SAASA,EAAE,CAAC,IAAIG,EAAEnE,EAAE,EAAE,IAAI,KAAK,YAAYgE,CAAC,EAAEG,EAAE,KAAK,MAAMH,EAAE,EAAEG,GAAG,KAAK,MAAMA,IAAInE,GAAGA,GAAG,GAAG,KAAK,OAAOmE,CAAC,EAAE,OAAO,KAAK,OAAOH,EAAEhE,CAAC,EAAE,WAAW,SAASgE,EAAE,CAAC,OAAOC,EAAE,YAAY,SAAS,KAAK,SAASD,CAAC,CAAC,CAAC,EAAE,SAAS,UAAU,CAAA,EAAG,qBAAqB,UAAU,CAAA,EAAG,sBAAsB,UAAU,CAAA,EAAG,SAAS,UAAU,CAAC,IAAIA,EAAE,KAAK,QAAQ,CAAC,EAAE,OAAO,IAAI,KAAK,KAAK,IAAI,MAAMA,GAAG,GAAG,MAAMA,GAAG,GAAG,IAAI,EAAEA,GAAG,GAAG,GAAGA,GAAG,GAAG,GAAGA,GAAG,EAAE,IAAI,GAAGA,IAAI,CAAC,CAAC,CAAC,CAAC,EAAEG,EAAE,QAAQD,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEC,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,oBAAoB,EAAE,SAASC,EAAEF,EAAE,CAACC,EAAE,KAAK,KAAKD,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAASE,EAAED,CAAC,EAAEC,EAAE,UAAU,SAAS,SAASF,EAAE,CAAC,KAAK,YAAYA,CAAC,EAAE,IAAIG,EAAE,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMH,CAAC,EAAE,OAAO,KAAK,OAAOA,EAAEG,CAAC,EAAEA,EAAE,QAAQD,CAAC,EAAE,CAAC,WAAW,GAAG,qBAAqB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEC,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,cAAc,EAAE,SAASC,EAAEF,EAAE,CAACC,EAAE,KAAK,KAAKD,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAASE,EAAED,CAAC,EAAEC,EAAE,UAAU,OAAO,SAASF,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,KAAK,KAAKA,CAAC,CAAC,EAAEE,EAAE,UAAU,qBAAqB,SAASF,EAAE,CAAC,OAAO,KAAK,KAAK,YAAYA,CAAC,EAAE,KAAK,IAAI,EAAEE,EAAE,UAAU,sBAAsB,SAASF,EAAE,CAAC,OAAOA,IAAI,KAAK,SAAS,CAAC,CAAC,EAAEE,EAAE,UAAU,SAAS,SAASF,EAAE,CAAC,KAAK,YAAYA,CAAC,EAAE,IAAIG,EAAE,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMH,CAAC,EAAE,OAAO,KAAK,OAAOA,EAAEG,CAAC,EAAEA,EAAE,QAAQD,CAAC,EAAE,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEC,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,eAAe,EAAE,SAASC,EAAEF,EAAE,CAACC,EAAE,KAAK,KAAKD,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAASE,EAAED,CAAC,EAAEC,EAAE,UAAU,SAAS,SAASF,EAAE,CAAC,GAAG,KAAK,YAAYA,CAAC,EAAMA,IAAJ,EAAM,OAAO,IAAI,WAAW,CAAC,EAAE,IAAIG,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMH,CAAC,EAAE,OAAO,KAAK,OAAOA,EAAEG,CAAC,EAAEA,EAAE,QAAQD,CAAC,EAAE,CAAC,WAAW,GAAG,gBAAgB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEC,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,UAAU,EAAEC,EAAE,EAAE,YAAY,EAAEpE,EAAE,EAAE,eAAe,EAAEuE,EAAE,EAAE,gBAAgB,EAAED,EAAE,EAAE,oBAAoB,EAAEM,EAAE,EAAE,oBAAoB,EAAEP,EAAE,QAAQ,SAASH,EAAE,CAAC,IAAIG,EAAEF,EAAE,UAAUD,CAAC,EAAE,OAAOC,EAAE,aAAaE,CAAC,EAAaA,IAAX,UAAcD,EAAE,WAA0BC,IAAf,aAAiB,IAAIC,EAAEJ,CAAC,EAAEE,EAAE,WAAW,IAAIQ,EAAET,EAAE,YAAY,aAAaD,CAAC,CAAC,EAAE,IAAIlE,EAAEmE,EAAE,YAAY,QAAQD,CAAC,CAAC,EAAE,IAAIK,EAAEL,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,GAAG,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEG,EAAEnE,EAAE,CAAcA,EAAE,kBAAkB,OAAOA,EAAE,oBAAoB,OAAOA,EAAE,sBAAsB,OAAOA,EAAE,gCAAgC,UAAOA,EAAE,4BAA4B,OAAOA,EAAE,gBAAgB,UAAO,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,EAAEmE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,iBAAiB,EAAEC,EAAE,EAAE,UAAU,EAAE,SAASpE,EAAEkE,EAAE,CAACC,EAAE,KAAK,KAAK,oBAAoBD,CAAC,EAAE,KAAK,SAASA,CAAC,CAACE,EAAE,SAASpE,EAAEmE,CAAC,EAAEnE,EAAE,UAAU,aAAa,SAASkE,EAAE,CAAC,KAAK,KAAK,CAAC,KAAKE,EAAE,YAAY,KAAK,SAASF,EAAE,IAAI,EAAE,KAAKA,EAAE,IAAI,CAAC,CAAC,EAAEG,EAAE,QAAQrE,CAAC,EAAE,CAAC,WAAW,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,iBAAiB,EAAEC,EAAE,EAAE,UAAU,EAAE,SAASpE,GAAG,CAACmE,EAAE,KAAK,KAAK,YAAY,EAAE,KAAK,eAAe,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAASnE,EAAEmE,CAAC,EAAEnE,EAAE,UAAU,aAAa,SAASkE,EAAE,CAAC,KAAK,WAAW,MAAME,EAAEF,EAAE,KAAK,KAAK,WAAW,OAAO,CAAC,EAAE,KAAK,KAAKA,CAAC,CAAC,EAAEG,EAAE,QAAQrE,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,UAAU,EAAEC,EAAE,EAAE,iBAAiB,EAAE,SAASpE,EAAEkE,EAAE,CAACE,EAAE,KAAK,KAAK,uBAAuBF,CAAC,EAAE,KAAK,SAASA,EAAE,KAAK,eAAeA,EAAE,CAAC,CAAC,CAACC,EAAE,SAASnE,EAAEoE,CAAC,EAAEpE,EAAE,UAAU,aAAa,SAASkE,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAIG,EAAE,KAAK,WAAW,KAAK,QAAQ,GAAG,EAAE,KAAK,WAAW,KAAK,QAAQ,EAAEA,EAAEH,EAAE,KAAK,MAAM,CAACE,EAAE,UAAU,aAAa,KAAK,KAAKF,CAAC,CAAC,EAAEG,EAAE,QAAQrE,CAAC,EAAE,CAAC,WAAW,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,UAAU,EAAEC,EAAE,EAAE,iBAAiB,EAAE,SAASpE,EAAEkE,EAAE,CAACE,EAAE,KAAK,KAAK,YAAY,EAAE,IAAIC,EAAE,KAAK,KAAK,YAAY,GAAG,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,eAAe,GAAGH,EAAE,KAAK,SAASA,EAAE,CAACG,EAAE,YAAY,GAAGA,EAAE,KAAKH,EAAEG,EAAE,IAAIH,GAAGA,EAAE,QAAQ,EAAEG,EAAE,KAAKF,EAAE,UAAUD,CAAC,EAAEG,EAAE,UAAUA,EAAE,eAAc,CAAE,EAAE,SAASH,EAAE,CAACG,EAAE,MAAMH,CAAC,CAAC,CAAC,CAAC,CAACC,EAAE,SAASnE,EAAEoE,CAAC,EAAEpE,EAAE,UAAU,QAAQ,UAAU,CAACoE,EAAE,UAAU,QAAQ,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,EAAEpE,EAAE,UAAU,OAAO,UAAU,CAAC,MAAM,CAAC,CAACoE,EAAE,UAAU,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,gBAAgB,KAAK,cAAc,KAAK,eAAe,GAAGD,EAAE,MAAM,KAAK,eAAe,CAAA,EAAG,IAAI,GAAG,GAAG,EAAEnE,EAAE,UAAU,eAAe,UAAU,CAAC,KAAK,eAAe,GAAG,KAAK,UAAU,KAAK,aAAa,KAAK,MAAK,EAAG,KAAK,aAAamE,EAAE,MAAM,KAAK,eAAe,CAAA,EAAG,IAAI,EAAE,KAAK,eAAe,IAAI,EAAEnE,EAAE,UAAU,MAAM,UAAU,CAAC,GAAG,KAAK,UAAU,KAAK,WAAW,MAAM,GAAG,IAAIkE,EAAE,KAAKG,EAAE,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,EAAE,GAAG,KAAK,OAAO,KAAK,IAAI,OAAO,KAAK,MAAM,OAAO,KAAK,KAAI,CAAE,IAAI,SAASH,EAAE,KAAK,KAAK,UAAU,KAAK,MAAMG,CAAC,EAAE,MAAM,IAAI,aAAaH,EAAE,KAAK,KAAK,SAAS,KAAK,MAAMG,CAAC,EAAE,MAAM,IAAI,QAAQ,IAAI,aAAaH,EAAE,KAAK,KAAK,MAAM,KAAK,MAAMG,CAAC,CAAC,CAAC,OAAO,KAAK,MAAMA,EAAE,KAAK,KAAK,CAAC,KAAKH,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAEG,EAAE,QAAQrE,CAAC,EAAE,CAAC,WAAW,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAc,SAASiE,EAAED,EAAE,CAAC,KAAK,KAAKA,GAAG,UAAU,KAAK,WAAW,CAAA,EAAG,KAAK,eAAe,KAAK,KAAK,gBAAgB,CAAA,EAAG,KAAK,SAAS,GAAG,KAAK,WAAW,GAAG,KAAK,SAAS,GAAG,KAAK,WAAW,CAAC,KAAK,GAAG,IAAI,CAAA,EAAG,MAAM,CAAA,CAAE,EAAE,KAAK,SAAS,IAAI,CAACC,EAAE,UAAU,CAAC,KAAK,SAASD,EAAE,CAAC,KAAK,KAAK,OAAOA,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,KAAK,WAAW,MAAM,GAAG,KAAK,MAAK,EAAG,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE,KAAK,QAAO,EAAG,KAAK,WAAW,EAAE,OAAOA,EAAE,CAAC,KAAK,KAAK,QAAQA,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,SAASA,EAAE,CAAC,MAAM,CAAC,KAAK,aAAa,KAAK,SAAS,KAAK,eAAeA,GAAG,KAAK,WAAW,GAAG,KAAK,KAAK,QAAQA,CAAC,EAAE,KAAK,UAAU,KAAK,SAAS,MAAMA,CAAC,EAAE,KAAK,QAAO,GAAI,GAAG,EAAE,GAAG,SAASA,EAAEG,EAAE,CAAC,OAAO,KAAK,WAAWH,CAAC,EAAE,KAAKG,CAAC,EAAE,IAAI,EAAE,QAAQ,UAAU,CAAC,KAAK,WAAW,KAAK,eAAe,KAAK,gBAAgB,KAAK,KAAK,WAAW,CAAA,CAAE,EAAE,KAAK,SAASH,EAAEG,EAAE,CAAC,GAAG,KAAK,WAAWH,CAAC,EAAE,QAAQhE,EAAE,EAAEA,EAAE,KAAK,WAAWgE,CAAC,EAAE,OAAOhE,IAAI,KAAK,WAAWgE,CAAC,EAAEhE,CAAC,EAAE,KAAK,KAAKmE,CAAC,CAAC,EAAE,KAAK,SAASH,EAAE,CAAC,OAAOA,EAAE,iBAAiB,IAAI,CAAC,EAAE,iBAAiB,SAASA,EAAE,CAAC,GAAG,KAAK,SAAS,MAAM,IAAI,MAAM,eAAe,KAAK,0BAA0B,EAAE,KAAK,WAAWA,EAAE,WAAW,KAAK,gBAAe,EAAG,KAAK,SAASA,EAAE,IAAIG,EAAE,KAAK,OAAOH,EAAE,GAAG,OAAO,SAASA,EAAE,CAACG,EAAE,aAAaH,CAAC,CAAC,CAAC,EAAEA,EAAE,GAAG,MAAM,UAAU,CAACG,EAAE,IAAG,CAAE,CAAC,EAAEH,EAAE,GAAG,QAAQ,SAASA,EAAE,CAACG,EAAE,MAAMH,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,KAAK,aAAa,KAAK,SAAS,GAAG,KAAK,UAAU,KAAK,SAAS,MAAK,EAAG,GAAG,EAAE,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,KAAK,WAAW,MAAM,GAAG,IAAIA,EAAE,KAAK,SAAS,GAAG,OAAO,KAAK,iBAAiB,KAAK,MAAM,KAAK,cAAc,EAAEA,EAAE,IAAI,KAAK,UAAU,KAAK,SAAS,SAAS,CAACA,CAAC,EAAE,MAAM,UAAU,CAAA,EAAG,aAAa,SAASA,EAAE,CAAC,KAAK,KAAKA,CAAC,CAAC,EAAE,eAAe,SAASA,EAAEG,EAAE,CAAC,OAAO,KAAK,gBAAgBH,CAAC,EAAEG,EAAE,KAAK,gBAAe,EAAG,IAAI,EAAE,gBAAgB,UAAU,CAAC,QAAQH,KAAK,KAAK,gBAAgB,OAAO,UAAU,eAAe,KAAK,KAAK,gBAAgBA,CAAC,IAAI,KAAK,WAAWA,CAAC,EAAE,KAAK,gBAAgBA,CAAC,EAAE,EAAE,KAAK,UAAU,CAAC,GAAG,KAAK,SAAS,MAAM,IAAI,MAAM,eAAe,KAAK,0BAA0B,EAAE,KAAK,SAAS,GAAG,KAAK,UAAU,KAAK,SAAS,KAAI,CAAE,EAAE,SAAS,UAAU,CAAC,IAAIA,EAAE,UAAU,KAAK,KAAK,OAAO,KAAK,SAAS,KAAK,SAAS,OAAOA,EAAEA,CAAC,CAAC,EAAEG,EAAE,QAAQF,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,EAAEE,EAAEnE,EAAE,CAAc,IAAI0E,EAAE,EAAE,UAAU,EAAER,EAAE,EAAE,iBAAiB,EAAEpE,EAAE,EAAE,iBAAiB,EAAEyE,EAAE,EAAE,WAAW,EAAEN,EAAE,EAAE,YAAY,EAAEI,EAAE,EAAE,aAAa,EAAED,EAAE,KAAK,GAAGH,EAAE,WAAW,GAAG,CAACG,EAAE,EAAE,qCAAqC,CAAC,MAAS,CAAA,CAAE,SAAShD,EAAE4C,EAAEI,EAAE,CAAC,OAAO,IAAIC,EAAE,QAAQ,SAASF,EAAEnE,EAAE,CAAC,IAAIiE,EAAE,CAAA,EAAGC,EAAEF,EAAE,cAAclE,EAAEkE,EAAE,YAAYK,EAAEL,EAAE,UAAUA,EAAE,GAAG,OAAO,SAASA,EAAEG,EAAE,CAACF,EAAE,KAAKD,CAAC,EAAEI,GAAGA,EAAED,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,SAASH,EAAE,CAACC,EAAE,CAAA,EAAGjE,EAAEgE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAIA,GAAE,SAASA,EAAEG,EAAEnE,EAAE,CAAC,OAAOgE,EAAC,CAAE,IAAI,OAAO,OAAOU,EAAE,QAAQA,EAAE,YAAY,cAAcP,CAAC,EAAEnE,CAAC,EAAE,IAAI,SAAS,OAAOuE,EAAE,OAAOJ,CAAC,EAAE,QAAQ,OAAOO,EAAE,YAAYV,EAAEG,CAAC,CAAC,CAAC,GAAErE,GAAE,SAASkE,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAE,EAAEC,EAAE,KAAKpE,EAAE,EAAE,IAAIE,EAAE,EAAEA,EAAEmE,EAAE,OAAOnE,IAAIF,GAAGqE,EAAEnE,CAAC,EAAE,OAAO,OAAOgE,EAAC,CAAE,IAAI,SAAS,OAAOG,EAAE,KAAK,EAAE,EAAE,IAAI,QAAQ,OAAO,MAAM,UAAU,OAAO,MAAM,GAAGA,CAAC,EAAE,IAAI,aAAa,IAAID,EAAE,IAAI,WAAWpE,CAAC,EAAEE,EAAE,EAAEA,EAAEmE,EAAE,OAAOnE,IAAIkE,EAAE,IAAIC,EAAEnE,CAAC,EAAEiE,CAAC,EAAEA,GAAGE,EAAEnE,CAAC,EAAE,OAAO,OAAOkE,EAAE,IAAI,aAAa,OAAO,OAAO,OAAOC,CAAC,EAAE,QAAQ,MAAM,IAAI,MAAM,8BAA8BH,EAAE,GAAG,CAAC,CAAC,GAAEE,EAAED,CAAC,EAAEI,CAAC,EAAEF,EAAEH,CAAC,CAAC,OAAOA,EAAE,CAAChE,EAAEgE,CAAC,CAAC,CAACC,EAAE,CAAA,CAAE,CAAC,EAAE,OAAM,CAAE,CAAC,CAAC,CAAC,SAASU,EAAEX,EAAEG,EAAEnE,EAAE,CAAC,IAAIiE,EAAEE,EAAE,OAAOA,EAAC,CAAE,IAAI,OAAO,IAAI,cAAcF,EAAE,aAAa,MAAM,IAAI,SAASA,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,cAAcA,EAAE,KAAK,YAAYE,EAAE,KAAK,UAAUnE,EAAE0E,EAAE,aAAaT,CAAC,EAAE,KAAK,QAAQD,EAAE,KAAK,IAAIE,EAAED,CAAC,CAAC,EAAED,EAAE,MAAM,OAAOA,EAAE,CAAC,KAAK,QAAQ,IAAIlE,EAAE,OAAO,EAAE,KAAK,QAAQ,MAAMkE,CAAC,CAAC,CAAC,CAACW,EAAE,UAAU,CAAC,WAAW,SAASX,EAAE,CAAC,OAAO5C,EAAE,KAAK4C,CAAC,CAAC,EAAE,GAAG,SAASA,EAAEG,EAAE,CAAC,IAAInE,EAAE,KAAK,OAAegE,IAAT,OAAW,KAAK,QAAQ,GAAGA,EAAE,SAASA,EAAE,CAACG,EAAE,KAAKnE,EAAEgE,EAAE,KAAKA,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,GAAGA,EAAE,UAAU,CAACU,EAAE,MAAMP,EAAE,UAAUnE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,UAAU,CAAC,OAAO0E,EAAE,MAAM,KAAK,QAAQ,OAAO,CAAA,EAAG,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,OAAO,KAAK,QAAQ,MAAK,EAAG,IAAI,EAAE,eAAe,SAASV,EAAE,CAAC,GAAGU,EAAE,aAAa,YAAY,EAAiB,KAAK,cAApB,aAAgC,MAAM,IAAI,MAAM,KAAK,YAAY,kCAAkC,EAAE,OAAO,IAAIN,EAAE,KAAK,CAAC,WAA0B,KAAK,cAApB,YAA+B,EAAEJ,CAAC,CAAC,CAAC,EAAEG,EAAE,QAAQQ,CAAC,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,sCAAsC,GAAG,aAAa,GAAG,WAAW,GAAG,kBAAkB,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAER,EAAEnE,EAAE,CAAc,GAAGA,EAAE,OAAO,GAAGA,EAAE,MAAM,GAAGA,EAAE,OAAO,GAAGA,EAAE,YAAyB,OAAO,YAApB,KAA8C,OAAO,WAApB,IAA+BA,EAAE,WAAwB,OAAO,OAApB,IAA2BA,EAAE,WAAwB,OAAO,WAApB,IAA4C,OAAO,YAApB,IAAgCA,EAAE,KAAK,OAAO,CAAC,IAAIiE,EAAE,IAAI,YAAY,CAAC,EAAE,GAAG,CAACjE,EAAE,KAAS,IAAI,KAAK,CAACiE,CAAC,EAAE,CAAC,KAAK,iBAAiB,CAAC,EAAE,OAA3C,CAA+C,MAAS,CAAC,GAAG,CAAC,IAAIC,EAAE,IAAI,KAAK,aAAa,KAAK,mBAAmB,KAAK,gBAAgB,KAAK,eAAeA,EAAE,OAAOD,CAAC,EAAEjE,EAAE,KAASkE,EAAE,QAAQ,iBAAiB,EAAE,OAAjC,CAAqC,MAAS,CAAClE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAACA,EAAE,WAAW,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,MAAS,CAACA,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEmE,EAAErE,EAAE,CAAc,QAAQsE,EAAE,EAAE,SAAS,EAAEM,EAAE,EAAE,WAAW,EAAE1E,EAAE,EAAE,eAAe,EAAEiE,EAAE,EAAE,wBAAwB,EAAEM,EAAE,IAAI,MAAM,GAAG,EAAEL,EAAE,EAAEA,EAAE,IAAIA,IAAIK,EAAEL,CAAC,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAEK,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAE,EAAE,SAASF,GAAG,CAACJ,EAAE,KAAK,KAAK,cAAc,EAAE,KAAK,SAAS,IAAI,CAAC,SAAS7C,GAAG,CAAC6C,EAAE,KAAK,KAAK,cAAc,CAAC,CAACnE,EAAE,WAAW,SAASkE,EAAE,CAAC,OAAOU,EAAE,WAAW1E,EAAE,cAAcgE,EAAE,OAAO,GAAE,SAASA,EAAE,CAAC,IAAIG,EAAEnE,EAAEiE,EAAEC,EAAEpE,EAAEuE,EAAEL,EAAE,OAAOI,EAAE,EAAE,IAAIF,EAAE,EAAEA,EAAEG,EAAEH,KAAY,OAAOlE,EAAEgE,EAAE,WAAWE,CAAC,KAA/B,OAAoCA,EAAE,EAAEG,IAAW,OAAOJ,EAAED,EAAE,WAAWE,EAAE,CAAC,KAAjC,QAAuClE,EAAE,OAAOA,EAAE,OAAO,KAAKiE,EAAE,OAAOC,KAAKE,GAAGpE,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAImE,EAAEO,EAAE,WAAW,IAAI,WAAWN,CAAC,EAAE,IAAI,MAAMA,CAAC,EAAEF,EAAEpE,EAAE,EAAEA,EAAEsE,EAAEF,KAAY,OAAOlE,EAAEgE,EAAE,WAAWE,CAAC,KAA/B,OAAoCA,EAAE,EAAEG,IAAW,OAAOJ,EAAED,EAAE,WAAWE,EAAE,CAAC,KAAjC,QAAuClE,EAAE,OAAOA,EAAE,OAAO,KAAKiE,EAAE,OAAOC,KAAKlE,EAAE,IAAImE,EAAErE,GAAG,EAAEE,GAAGA,EAAE,KAAKmE,EAAErE,GAAG,EAAE,IAAIE,IAAI,GAAGA,EAAE,MAAMmE,EAAErE,GAAG,EAAE,IAAIE,IAAI,IAAImE,EAAErE,GAAG,EAAE,IAAIE,IAAI,GAAGmE,EAAErE,GAAG,EAAE,IAAIE,IAAI,GAAG,IAAImE,EAAErE,GAAG,EAAE,IAAIE,IAAI,EAAE,IAAImE,EAAErE,GAAG,EAAE,IAAI,GAAGE,GAAG,OAAOmE,CAAC,GAAEH,CAAC,CAAC,EAAElE,EAAE,WAAW,SAASkE,EAAE,CAAC,OAAOU,EAAE,WAAWN,EAAE,YAAY,aAAaJ,CAAC,EAAE,SAAS,OAAO,GAAE,SAASA,EAAE,CAAC,IAAIG,EAAEnE,EAAEiE,EAAEC,EAAEpE,EAAEkE,EAAE,OAAOK,EAAE,IAAI,MAAM,EAAEvE,CAAC,EAAE,IAAIqE,EAAEnE,EAAE,EAAEmE,EAAErE,GAAG,IAAImE,EAAED,EAAEG,GAAG,GAAG,IAAIE,EAAErE,GAAG,EAAEiE,UAAU,GAAGC,EAAEK,EAAEN,CAAC,GAAGI,EAAErE,GAAG,EAAE,MAAMmE,GAAGD,EAAE,MAAM,CAAC,IAAID,GAAOC,IAAJ,EAAM,GAAOA,IAAJ,EAAM,GAAG,EAAE,EAAEA,GAAGC,EAAErE,GAAGmE,EAAEA,GAAG,EAAE,GAAGD,EAAEG,GAAG,EAAED,IAAI,EAAEA,EAAEG,EAAErE,GAAG,EAAE,MAAMiE,EAAE,MAAMI,EAAErE,GAAG,EAAEiE,GAAGA,GAAG,MAAMI,EAAErE,GAAG,EAAE,MAAMiE,GAAG,GAAG,KAAKI,EAAErE,GAAG,EAAE,MAAM,KAAKiE,EAAE,CAAC,OAAOI,EAAE,SAASrE,IAAIqE,EAAE,SAASA,EAAEA,EAAE,SAAS,EAAErE,CAAC,EAAEqE,EAAE,OAAOrE,GAAGoE,EAAE,kBAAkBC,CAAC,CAAC,GAAEL,EAAEI,EAAE,YAAYM,EAAE,WAAW,aAAa,QAAQV,CAAC,CAAC,CAAC,EAAEI,EAAE,SAASC,EAAEJ,CAAC,EAAEI,EAAE,UAAU,aAAa,SAASL,EAAE,CAAC,IAAIG,EAAEC,EAAE,YAAYM,EAAE,WAAW,aAAa,QAAQV,EAAE,IAAI,EAAE,GAAG,KAAK,UAAU,KAAK,SAAS,OAAO,CAAC,GAAGU,EAAE,WAAW,CAAC,IAAI1E,EAAEmE,GAAGA,EAAE,IAAI,WAAWnE,EAAE,OAAO,KAAK,SAAS,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,EAAEmE,EAAE,IAAInE,EAAE,KAAK,SAAS,MAAM,CAAC,MAAMmE,EAAE,KAAK,SAAS,OAAOA,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,IAAIF,GAAE,SAASD,EAAEG,EAAE,CAAC,IAAInE,EAAE,KAAKmE,EAAEA,GAAGH,EAAE,QAAQA,EAAE,SAASG,EAAEH,EAAE,QAAQhE,EAAEmE,EAAE,EAAE,GAAGnE,IAAS,IAAIgE,EAAEhE,CAAC,IAAb,KAAiBA,IAAI,OAAOA,EAAE,GAAQA,IAAJ,EAAFmE,EAAUnE,EAAEuE,EAAEP,EAAEhE,CAAC,CAAC,EAAEmE,EAAEnE,EAAEmE,CAAC,GAAEA,CAAC,EAAED,EAAEC,EAAEF,IAAIE,EAAE,SAASO,EAAE,YAAYR,EAAEC,EAAE,SAAS,EAAEF,CAAC,EAAE,KAAK,SAASE,EAAE,SAASF,EAAEE,EAAE,MAAM,IAAID,EAAEC,EAAE,MAAM,EAAEF,CAAC,EAAE,KAAK,SAASE,EAAE,MAAMF,EAAEE,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,KAAKrE,EAAE,WAAWoE,CAAC,EAAE,KAAKF,EAAE,IAAI,CAAC,CAAC,EAAEK,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,UAAU,KAAK,SAAS,SAAS,KAAK,KAAK,CAAC,KAAKvE,EAAE,WAAW,KAAK,QAAQ,EAAE,KAAK,CAAA,CAAE,CAAC,EAAE,KAAK,SAAS,KAAK,EAAEA,EAAE,iBAAiBuE,EAAED,EAAE,SAAShD,EAAE6C,CAAC,EAAE7C,EAAE,UAAU,aAAa,SAAS4C,EAAE,CAAC,KAAK,KAAK,CAAC,KAAKlE,EAAE,WAAWkE,EAAE,IAAI,EAAE,KAAKA,EAAE,IAAI,CAAC,CAAC,EAAElE,EAAE,iBAAiBsB,CAAC,EAAE,CAAC,gBAAgB,GAAG,yBAAyB,GAAG,YAAY,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE+C,EAAEE,EAAE,CAAc,IAAID,EAAE,EAAE,WAAW,EAAEM,EAAE,EAAE,UAAU,EAAE1E,EAAE,EAAE,eAAe,EAAEuE,EAAE,EAAE,YAAY,EAAE,SAASN,EAAED,EAAE,CAAC,OAAOA,CAAC,CAAC,SAAS5C,EAAE4C,EAAEG,EAAE,CAAC,QAAQnE,EAAE,EAAEA,EAAEgE,EAAE,OAAO,EAAEhE,EAAEmE,EAAEnE,CAAC,EAAE,IAAIgE,EAAE,WAAWhE,CAAC,EAAE,OAAOmE,CAAC,CAAC,EAAE,cAAc,EAAEE,EAAE,QAAQ,SAASF,EAAEnE,EAAE,CAACqE,EAAE,aAAa,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK,CAACF,CAAC,EAAE,CAAC,KAAKnE,CAAC,CAAC,CAAC,MAAS,CAAC,GAAG,CAAC,IAAIiE,EAAE,IAAI,KAAK,aAAa,KAAK,mBAAmB,KAAK,gBAAgB,KAAK,eAAe,OAAOA,EAAE,OAAOE,CAAC,EAAEF,EAAE,QAAQjE,CAAC,CAAC,MAAS,CAAC,MAAM,IAAI,MAAM,iCAAiC,CAAC,CAAC,CAAC,EAAE,IAAIkE,EAAE,CAAC,iBAAiB,SAASF,EAAEG,EAAEnE,EAAE,CAAC,IAAIiE,EAAE,CAAA,EAAGC,EAAE,EAAEpE,EAAEkE,EAAE,OAAO,GAAGlE,GAAGE,EAAE,OAAO,OAAO,aAAa,MAAM,KAAKgE,CAAC,EAAE,KAAKE,EAAEpE,GAAaqE,IAAV,SAA4BA,IAAf,aAAiBF,EAAE,KAAK,OAAO,aAAa,MAAM,KAAKD,EAAE,MAAME,EAAE,KAAK,IAAIA,EAAElE,EAAEF,CAAC,CAAC,CAAC,CAAC,EAAEmE,EAAE,KAAK,OAAO,aAAa,MAAM,KAAKD,EAAE,SAASE,EAAE,KAAK,IAAIA,EAAElE,EAAEF,CAAC,CAAC,CAAC,CAAC,EAAEoE,GAAGlE,EAAE,OAAOiE,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,SAASD,EAAE,CAAC,QAAQG,EAAE,GAAGnE,EAAE,EAAEA,EAAEgE,EAAE,OAAOhE,IAAImE,GAAG,OAAO,aAAaH,EAAEhE,CAAC,CAAC,EAAE,OAAOmE,CAAC,EAAE,eAAe,CAAC,YAAW,UAAU,CAAC,GAAG,CAAC,OAAOC,EAAE,YAAgB,OAAO,aAAa,MAAM,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,SAAtD,CAA4D,MAAS,CAAC,MAAM,EAAE,CAAC,GAAC,EAAG,YAAW,UAAU,CAAC,GAAG,CAAC,OAAOA,EAAE,YAAgB,OAAO,aAAa,MAAM,KAAKpE,EAAE,YAAY,CAAC,CAAC,EAAE,SAArD,CAA2D,MAAS,CAAC,MAAM,EAAE,CAAC,GAAC,CAAE,CAAC,EAAE,SAASF,EAAEkE,EAAE,CAAC,IAAIG,EAAE,MAAMnE,EAAEqE,EAAE,UAAUL,CAAC,EAAEC,EAAE,GAAG,GAAkBjE,IAAf,aAAiBiE,EAAEC,EAAE,eAAe,WAA0BlE,IAAf,eAAmBiE,EAAEC,EAAE,eAAe,YAAYD,EAAE,KAAK,EAAEE,GAAG,GAAG,CAAC,OAAOD,EAAE,iBAAiBF,EAAEhE,EAAEmE,CAAC,CAAC,MAAS,CAACA,EAAE,KAAK,MAAMA,EAAE,CAAC,CAAC,CAAC,OAAOD,EAAE,gBAAgBF,CAAC,CAAC,CAAC,SAASW,EAAEX,EAAEG,EAAE,CAAC,QAAQnE,EAAE,EAAEA,EAAEgE,EAAE,OAAOhE,IAAImE,EAAEnE,CAAC,EAAEgE,EAAEhE,CAAC,EAAE,OAAOmE,CAAC,CAACE,EAAE,kBAAkBvE,EAAE,IAAIwE,EAAE,CAAA,EAAGA,EAAE,OAAO,CAAC,OAAOL,EAAE,MAAM,SAASD,EAAE,CAAC,OAAO5C,EAAE4C,EAAE,IAAI,MAAMA,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,SAASA,EAAE,CAAC,OAAOM,EAAE,OAAO,WAAWN,CAAC,EAAE,MAAM,EAAE,WAAW,SAASA,EAAE,CAAC,OAAO5C,EAAE4C,EAAE,IAAI,WAAWA,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,SAASA,EAAE,CAAC,OAAO5C,EAAE4C,EAAEhE,EAAE,YAAYgE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAEM,EAAE,MAAM,CAAC,OAAOxE,EAAE,MAAMmE,EAAE,YAAY,SAASD,EAAE,CAAC,OAAO,IAAI,WAAWA,CAAC,EAAE,MAAM,EAAE,WAAW,SAASA,EAAE,CAAC,OAAO,IAAI,WAAWA,CAAC,CAAC,EAAE,WAAW,SAASA,EAAE,CAAC,OAAOhE,EAAE,cAAcgE,CAAC,CAAC,CAAC,EAAEM,EAAE,YAAY,CAAC,OAAO,SAASN,EAAE,CAAC,OAAOlE,EAAE,IAAI,WAAWkE,CAAC,CAAC,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,OAAOW,EAAE,IAAI,WAAWX,CAAC,EAAE,IAAI,MAAMA,EAAE,UAAU,CAAC,CAAC,EAAE,YAAYC,EAAE,WAAW,SAASD,EAAE,CAAC,OAAO,IAAI,WAAWA,CAAC,CAAC,EAAE,WAAW,SAASA,EAAE,CAAC,OAAOhE,EAAE,cAAc,IAAI,WAAWgE,CAAC,CAAC,CAAC,CAAC,EAAEM,EAAE,WAAW,CAAC,OAAOxE,EAAE,MAAM,SAASkE,EAAE,CAAC,OAAOW,EAAEX,EAAE,IAAI,MAAMA,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,SAASA,EAAE,CAAC,OAAOA,EAAE,MAAM,EAAE,WAAWC,EAAE,WAAW,SAASD,EAAE,CAAC,OAAOhE,EAAE,cAAcgE,CAAC,CAAC,CAAC,EAAEM,EAAE,WAAW,CAAC,OAAOxE,EAAE,MAAM,SAASkE,EAAE,CAAC,OAAOW,EAAEX,EAAE,IAAI,MAAMA,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,SAASA,EAAE,CAAC,OAAOM,EAAE,WAAW,WAAWN,CAAC,EAAE,MAAM,EAAE,WAAW,SAASA,EAAE,CAAC,OAAOW,EAAEX,EAAE,IAAI,WAAWA,EAAE,MAAM,CAAC,CAAC,EAAE,WAAWC,CAAC,EAAEI,EAAE,YAAY,SAASL,EAAEG,EAAE,CAAC,GAAGA,EAAEA,GAAG,GAAG,CAACH,EAAE,OAAOG,EAAEE,EAAE,aAAaL,CAAC,EAAE,IAAIhE,EAAEqE,EAAE,UAAUF,CAAC,EAAE,OAAOG,EAAEtE,CAAC,EAAEgE,CAAC,EAAEG,CAAC,CAAC,EAAEE,EAAE,QAAQ,SAASL,EAAE,CAAC,QAAQG,EAAEH,EAAE,MAAM,GAAG,EAAEhE,EAAE,CAAA,EAAGiE,EAAE,EAAEA,EAAEE,EAAE,OAAOF,IAAI,CAAC,IAAIC,EAAEC,EAAEF,CAAC,EAAQC,IAAN,KAAcA,IAAL,IAAYD,IAAJ,GAAOA,IAAIE,EAAE,OAAO,IAAWD,IAAP,KAASlE,EAAE,IAAG,EAAGA,EAAE,KAAKkE,CAAC,EAAE,CAAC,OAAOlE,EAAE,KAAK,GAAG,CAAC,EAAEqE,EAAE,UAAU,SAASL,EAAE,CAAC,OAAgB,OAAOA,GAAjB,SAAmB,SAA4B,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAnD,iBAAqD,QAAQI,EAAE,YAAYpE,EAAE,SAASgE,CAAC,EAAE,aAAaI,EAAE,YAAYJ,aAAa,WAAW,aAAaI,EAAE,aAAaJ,aAAa,YAAY,cAAc,MAAM,EAAEK,EAAE,aAAa,SAASL,EAAE,CAAC,GAAG,CAACI,EAAEJ,EAAE,YAAW,CAAE,EAAE,MAAM,IAAI,MAAMA,EAAE,oCAAoC,CAAC,EAAEK,EAAE,iBAAiB,MAAMA,EAAE,iBAAiB,GAAGA,EAAE,OAAO,SAASL,EAAE,CAAC,IAAIG,EAAEnE,EAAEiE,EAAE,GAAG,IAAIjE,EAAE,EAAEA,GAAGgE,GAAG,IAAI,OAAOhE,IAAIiE,GAAG,QAAQE,EAAEH,EAAE,WAAWhE,CAAC,GAAG,GAAG,IAAI,IAAImE,EAAE,SAAS,EAAE,EAAE,YAAW,EAAG,OAAOF,CAAC,EAAEI,EAAE,MAAM,SAASL,EAAEG,EAAEnE,EAAE,CAAC,aAAa,UAAU,CAACgE,EAAE,MAAMhE,GAAG,KAAKmE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAEE,EAAE,SAAS,SAASL,EAAEG,EAAE,CAAC,SAASnE,GAAG,CAAA,CAAEA,EAAE,UAAUmE,EAAE,UAAUH,EAAE,UAAU,IAAIhE,CAAC,EAAEqE,EAAE,OAAO,UAAU,CAAC,IAAIL,EAAEG,EAAEnE,EAAE,CAAA,EAAG,IAAIgE,EAAE,EAAEA,EAAE,UAAU,OAAOA,IAAI,IAAIG,KAAK,UAAUH,CAAC,EAAE,OAAO,UAAU,eAAe,KAAK,UAAUA,CAAC,EAAEG,CAAC,GAAYnE,EAAEmE,CAAC,IAAZ,SAAgBnE,EAAEmE,CAAC,EAAE,UAAUH,CAAC,EAAEG,CAAC,GAAG,OAAOnE,CAAC,EAAEqE,EAAE,eAAe,SAASrE,EAAEgE,EAAEC,EAAEC,EAAEpE,EAAE,CAAC,OAAOyE,EAAE,QAAQ,QAAQP,CAAC,EAAE,KAAK,SAASC,EAAE,CAAC,OAAOG,EAAE,OAAOH,aAAa,MAAW,CAAC,gBAAgB,eAAe,EAAE,QAAQ,OAAO,UAAU,SAAS,KAAKA,CAAC,CAAC,IAAhF,KAAiG,OAAO,WAApB,IAA+B,IAAIM,EAAE,QAAQ,SAASJ,EAAEnE,EAAE,CAAC,IAAIgE,EAAE,IAAI,WAAWA,EAAE,OAAO,SAASA,EAAE,CAACG,EAAEH,EAAE,OAAO,MAAM,CAAC,EAAEA,EAAE,QAAQ,SAASA,EAAE,CAAChE,EAAEgE,EAAE,OAAO,KAAK,CAAC,EAAEA,EAAE,kBAAkBC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,EAAE,KAAK,SAASD,EAAE,CAAC,IAAIG,EAAEE,EAAE,UAAUL,CAAC,EAAE,OAAOG,GAAmBA,IAAhB,cAAkBH,EAAEK,EAAE,YAAY,aAAaL,CAAC,EAAaG,IAAX,WAAerE,EAAEkE,EAAEU,EAAE,OAAOV,CAAC,EAAEC,GAAQC,IAAL,KAASF,GAAE,SAASA,EAAE,CAAC,OAAO5C,EAAE4C,EAAEI,EAAE,WAAW,IAAI,WAAWJ,EAAE,MAAM,EAAE,IAAI,MAAMA,EAAE,MAAM,CAAC,CAAC,GAAEA,CAAC,IAAIA,GAAGO,EAAE,QAAQ,OAAO,IAAI,MAAM,2BAA2BvE,EAAE,4EAA4E,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,GAAG,YAAY,GAAG,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEmE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,oBAAoB,EAAEC,EAAE,EAAE,SAAS,EAAEpE,EAAE,EAAE,aAAa,EAAEuE,EAAE,EAAE,YAAY,EAAED,EAAE,EAAE,WAAW,EAAE,SAASM,EAAEV,EAAE,CAAC,KAAK,MAAM,CAAA,EAAG,KAAK,YAAYA,CAAC,CAACU,EAAE,UAAU,CAAC,eAAe,SAASV,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,sBAAsBA,CAAC,EAAE,CAAC,KAAK,OAAO,OAAO,EAAE,IAAIG,EAAE,KAAK,OAAO,WAAW,CAAC,EAAE,MAAM,IAAI,MAAM,+CAA+CD,EAAE,OAAOC,CAAC,EAAE,cAAcD,EAAE,OAAOF,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,SAASA,EAAEG,EAAE,CAAC,IAAInE,EAAE,KAAK,OAAO,MAAM,KAAK,OAAO,SAASgE,CAAC,EAAE,IAAIC,EAAE,KAAK,OAAO,WAAW,CAAC,IAAIE,EAAE,OAAO,KAAK,OAAO,SAASnE,CAAC,EAAEiE,CAAC,EAAE,sBAAsB,UAAU,CAAC,KAAK,WAAW,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,wBAAwB,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,4BAA4B,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,kBAAkB,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,eAAe,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,iBAAiB,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,iBAAiB,KAAK,OAAO,QAAQ,CAAC,EAAE,IAAID,EAAE,KAAK,OAAO,SAAS,KAAK,gBAAgB,EAAEG,EAAEC,EAAE,WAAW,aAAa,QAAQpE,EAAEkE,EAAE,YAAYC,EAAEH,CAAC,EAAE,KAAK,WAAW,KAAK,YAAY,eAAehE,CAAC,CAAC,EAAE,2BAA2B,UAAU,CAAC,KAAK,sBAAsB,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,OAAO,KAAK,CAAC,EAAE,KAAK,WAAW,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,wBAAwB,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,4BAA4B,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,kBAAkB,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,eAAe,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,iBAAiB,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,oBAAoB,CAAA,EAAG,QAAQgE,EAAEG,EAAEnE,EAAEiE,EAAE,KAAK,sBAAsB,GAAG,EAAEA,GAAGD,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAEG,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAEnE,EAAE,KAAK,OAAO,SAASmE,CAAC,EAAE,KAAK,oBAAoBH,CAAC,EAAE,CAAC,GAAGA,EAAE,OAAOG,EAAE,MAAMnE,CAAC,CAAC,EAAE,kCAAkC,UAAU,CAAC,GAAG,KAAK,6BAA6B,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,mCAAmC,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,WAAW,KAAK,OAAO,QAAQ,CAAC,EAAE,EAAE,KAAK,WAAW,MAAM,IAAI,MAAM,qCAAqC,CAAC,EAAE,eAAe,UAAU,CAAC,IAAIgE,EAAEG,EAAE,IAAIH,EAAE,EAAEA,EAAE,KAAK,MAAM,OAAOA,IAAIG,EAAE,KAAK,MAAMH,CAAC,EAAE,KAAK,OAAO,SAASG,EAAE,iBAAiB,EAAE,KAAK,eAAerE,EAAE,iBAAiB,EAAEqE,EAAE,cAAc,KAAK,MAAM,EAAEA,EAAE,WAAU,EAAGA,EAAE,kBAAiB,CAAE,EAAE,eAAe,UAAU,CAAC,IAAIH,EAAE,IAAI,KAAK,OAAO,SAAS,KAAK,gBAAgB,EAAE,KAAK,OAAO,sBAAsBlE,EAAE,mBAAmB,IAAIkE,EAAE,IAAIK,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE,KAAK,WAAW,GAAG,gBAAgB,KAAK,MAAM,EAAE,KAAK,MAAM,KAAKL,CAAC,EAAE,GAAG,KAAK,oBAAoB,KAAK,MAAM,QAAY,KAAK,oBAAT,GAAgC,KAAK,MAAM,SAAf,EAAsB,MAAM,IAAI,MAAM,kCAAkC,KAAK,kBAAkB,gCAAgC,KAAK,MAAM,MAAM,CAAC,EAAE,iBAAiB,UAAU,CAAC,IAAIA,EAAE,KAAK,OAAO,qBAAqBlE,EAAE,qBAAqB,EAAE,GAAGkE,EAAE,EAAE,MAAM,KAAK,YAAY,EAAElE,EAAE,iBAAiB,EAAuJ,IAAI,MAAM,oDAAoD,EAAnN,IAAI,MAAM,yIAAyI,EAAkE,KAAK,OAAO,SAASkE,CAAC,EAAE,IAAIG,EAAEH,EAAE,GAAG,KAAK,eAAelE,EAAE,qBAAqB,EAAE,KAAK,sBAAqB,EAAG,KAAK,aAAaoE,EAAE,kBAAkB,KAAK,0BAA0BA,EAAE,kBAAkB,KAAK,8BAA8BA,EAAE,kBAAkB,KAAK,oBAAoBA,EAAE,kBAAkB,KAAK,iBAAiBA,EAAE,kBAAkB,KAAK,mBAAmBA,EAAE,iBAAiB,CAAC,GAAG,KAAK,MAAM,IAAIF,EAAE,KAAK,OAAO,qBAAqBlE,EAAE,+BAA+B,GAAG,EAAE,MAAM,IAAI,MAAM,sEAAsE,EAAE,GAAG,KAAK,OAAO,SAASkE,CAAC,EAAE,KAAK,eAAelE,EAAE,+BAA+B,EAAE,KAAK,oCAAoC,CAAC,KAAK,YAAY,KAAK,mCAAmCA,EAAE,2BAA2B,IAAI,KAAK,mCAAmC,KAAK,OAAO,qBAAqBA,EAAE,2BAA2B,EAAE,KAAK,mCAAmC,GAAG,MAAM,IAAI,MAAM,8DAA8D,EAAE,KAAK,OAAO,SAAS,KAAK,kCAAkC,EAAE,KAAK,eAAeA,EAAE,2BAA2B,EAAE,KAAK,2BAA0B,CAAE,CAAC,IAAIE,EAAE,KAAK,iBAAiB,KAAK,eAAe,KAAK,QAAQA,GAAG,GAAGA,GAAG,GAAG,KAAK,uBAAuB,IAAIiE,EAAEE,EAAEnE,EAAE,GAAG,EAAEiE,EAAE,KAAK,YAAYE,EAAErE,EAAE,mBAAmB,IAAI,KAAK,OAAO,KAAKmE,WAAWA,EAAE,EAAE,MAAM,IAAI,MAAM,0BAA0B,KAAK,IAAIA,CAAC,EAAE,SAAS,CAAC,EAAE,cAAc,SAASD,EAAE,CAAC,KAAK,OAAOC,EAAED,CAAC,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,KAAK,cAAcA,CAAC,EAAE,KAAK,iBAAgB,EAAG,KAAK,eAAc,EAAG,KAAK,eAAc,CAAE,CAAC,EAAEG,EAAE,QAAQO,CAAC,EAAE,CAAC,qBAAqB,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEP,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,EAAEC,EAAE,EAAE,oBAAoB,EAAEG,EAAE,EAAE,SAAS,EAAED,EAAE,EAAE,QAAQ,EAAEM,EAAE,EAAE,gBAAgB,EAAEH,EAAE,EAAE,WAAW,EAAE,SAASnD,EAAE4C,EAAEG,EAAE,CAAC,KAAK,QAAQH,EAAE,KAAK,YAAYG,CAAC,CAAC/C,EAAE,UAAU,CAAC,YAAY,UAAU,CAAC,OAAW,EAAE,KAAK,UAAX,CAAmB,EAAE,QAAQ,UAAU,CAAC,OAAc,KAAK,KAAK,UAAjB,IAAyB,EAAE,cAAc,SAAS4C,EAAE,CAAC,IAAIG,EAAEnE,EAAE,GAAGgE,EAAE,KAAK,EAAE,EAAE,KAAK,eAAeA,EAAE,QAAQ,CAAC,EAAEhE,EAAEgE,EAAE,QAAQ,CAAC,EAAE,KAAK,SAASA,EAAE,SAAS,KAAK,cAAc,EAAEA,EAAE,KAAKhE,CAAC,EAAO,KAAK,iBAAV,IAA+B,KAAK,mBAAV,GAA2B,MAAM,IAAI,MAAM,oIAAoI,EAAE,IAAWmE,GAAE,SAASH,EAAE,CAAC,QAAQG,KAAKO,EAAE,GAAG,OAAO,UAAU,eAAe,KAAKA,EAAEP,CAAC,GAAGO,EAAEP,CAAC,EAAE,QAAQH,EAAE,OAAOU,EAAEP,CAAC,EAAE,OAAO,IAAI,GAAE,KAAK,iBAAiB,KAAjJ,KAAoJ,MAAM,IAAI,MAAM,+BAA+B,EAAE,OAAO,KAAK,iBAAiB,EAAE,0BAA0B,EAAE,YAAY,SAAS,KAAK,QAAQ,EAAE,GAAG,EAAE,KAAK,aAAa,IAAID,EAAE,KAAK,eAAe,KAAK,iBAAiB,KAAK,MAAMC,EAAEH,EAAE,SAAS,KAAK,cAAc,CAAC,CAAC,EAAE,gBAAgB,SAASA,EAAE,CAAC,KAAK,cAAcA,EAAE,QAAQ,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,KAAK,QAAQA,EAAE,QAAQ,CAAC,EAAE,KAAK,kBAAkBA,EAAE,WAAW,CAAC,EAAE,KAAK,KAAKA,EAAE,WAAW,KAAK,MAAMA,EAAE,QAAQ,CAAC,EAAE,KAAK,eAAeA,EAAE,QAAQ,CAAC,EAAE,KAAK,iBAAiBA,EAAE,QAAQ,CAAC,EAAE,IAAIG,EAAEH,EAAE,QAAQ,CAAC,EAAE,GAAG,KAAK,kBAAkBA,EAAE,QAAQ,CAAC,EAAE,KAAK,kBAAkBA,EAAE,QAAQ,CAAC,EAAE,KAAK,gBAAgBA,EAAE,QAAQ,CAAC,EAAE,KAAK,uBAAuBA,EAAE,QAAQ,CAAC,EAAE,KAAK,uBAAuBA,EAAE,QAAQ,CAAC,EAAE,KAAK,kBAAkBA,EAAE,QAAQ,CAAC,EAAE,KAAK,YAAW,EAAG,MAAM,IAAI,MAAM,iCAAiC,EAAEA,EAAE,KAAKG,CAAC,EAAE,KAAK,gBAAgBH,CAAC,EAAE,KAAK,qBAAqBA,CAAC,EAAE,KAAK,YAAYA,EAAE,SAAS,KAAK,iBAAiB,CAAC,EAAE,kBAAkB,UAAU,CAAC,KAAK,gBAAgB,KAAK,KAAK,eAAe,KAAK,IAAIA,EAAE,KAAK,eAAe,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,KAAK,wBAA2BA,GAAH,IAAO,KAAK,eAAe,GAAG,KAAK,wBAA2BA,GAAH,IAAO,KAAK,gBAAgB,KAAK,wBAAwB,GAAG,OAAO,KAAK,KAAW,KAAK,YAAY,MAAM,EAAE,IAA/B,MAAmC,KAAK,IAAI,GAAG,EAAE,qBAAqB,UAAU,CAAC,GAAG,KAAK,YAAY,CAAC,EAAE,CAAC,IAAIA,EAAEC,EAAE,KAAK,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,KAAK,iBAAiBD,EAAE,QAAQ,CAAC,GAAG,KAAK,iBAAiB,EAAE,mBAAmB,KAAK,eAAeA,EAAE,QAAQ,CAAC,GAAG,KAAK,oBAAoB,EAAE,mBAAmB,KAAK,kBAAkBA,EAAE,QAAQ,CAAC,GAAG,KAAK,kBAAkB,EAAE,mBAAmB,KAAK,gBAAgBA,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,SAASA,EAAE,CAAC,IAAIG,EAAEnE,EAAEiE,EAAEC,EAAEF,EAAE,MAAM,KAAK,kBAAkB,IAAI,KAAK,cAAc,KAAK,YAAY,IAAIA,EAAE,MAAM,EAAEE,GAAGC,EAAEH,EAAE,QAAQ,CAAC,EAAEhE,EAAEgE,EAAE,QAAQ,CAAC,EAAEC,EAAED,EAAE,SAAShE,CAAC,EAAE,KAAK,YAAYmE,CAAC,EAAE,CAAC,GAAGA,EAAE,OAAOnE,EAAE,MAAMiE,CAAC,EAAED,EAAE,SAASE,CAAC,CAAC,EAAE,WAAW,UAAU,CAAC,IAAIF,EAAEO,EAAE,WAAW,aAAa,QAAQ,GAAG,KAAK,QAAO,EAAG,KAAK,YAAYH,EAAE,WAAW,KAAK,QAAQ,EAAE,KAAK,eAAeA,EAAE,WAAW,KAAK,WAAW,MAAM,CAAC,IAAID,EAAE,KAAK,4BAA4B,GAAUA,IAAP,KAAS,KAAK,YAAYA,MAAM,CAAC,IAAInE,EAAE,EAAE,YAAYgE,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,KAAK,YAAY,eAAehE,CAAC,CAAC,CAAC,IAAIiE,EAAE,KAAK,6BAA4B,EAAG,GAAUA,IAAP,KAAS,KAAK,eAAeA,MAAM,CAAC,IAAIC,EAAE,EAAE,YAAYF,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,KAAK,YAAY,eAAeE,CAAC,CAAC,CAAC,CAAC,EAAE,0BAA0B,UAAU,CAAC,IAAIF,EAAE,KAAK,YAAY,KAAK,EAAE,GAAGA,EAAE,CAAC,IAAIG,EAAEF,EAAED,EAAE,KAAK,EAAE,OAAWG,EAAE,QAAQ,CAAC,IAAf,GAAsBE,EAAE,KAAK,QAAQ,IAAIF,EAAE,QAAQ,CAAC,EAAnC,KAA0CC,EAAE,WAAWD,EAAE,SAASH,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,6BAA6B,UAAU,CAAC,IAAIA,EAAE,KAAK,YAAY,KAAK,EAAE,GAAGA,EAAE,CAAC,IAAIG,EAAEF,EAAED,EAAE,KAAK,EAAE,OAAWG,EAAE,QAAQ,CAAC,IAAf,GAAsBE,EAAE,KAAK,WAAW,IAAIF,EAAE,QAAQ,CAAC,EAAtC,KAA6CC,EAAE,WAAWD,EAAE,SAASH,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAEG,EAAE,QAAQ/C,CAAC,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE+C,EAAEnE,EAAE,CAAc,SAASiE,EAAED,EAAEG,EAAEnE,EAAE,CAAC,KAAK,KAAKgE,EAAE,KAAK,IAAIhE,EAAE,IAAI,KAAK,KAAKA,EAAE,KAAK,KAAK,QAAQA,EAAE,QAAQ,KAAK,gBAAgBA,EAAE,gBAAgB,KAAK,eAAeA,EAAE,eAAe,KAAK,MAAMmE,EAAE,KAAK,YAAYnE,EAAE,OAAO,KAAK,QAAQ,CAAC,YAAYA,EAAE,YAAY,mBAAmBA,EAAE,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE,uBAAuB,EAAEkE,EAAE,EAAE,qBAAqB,EAAEG,EAAE,EAAE,QAAQ,EAAED,EAAE,EAAE,oBAAoB,EAAEM,EAAE,EAAE,wBAAwB,EAAET,EAAE,UAAU,CAAC,eAAe,SAASD,EAAE,CAAC,IAAIG,EAAE,KAAKnE,EAAE,SAAS,GAAG,CAAC,GAAG,CAACgE,EAAE,MAAM,IAAI,MAAM,2BAA2B,EAAE,IAAIC,GAAcjE,EAAEgE,EAAE,iBAAhB,UAAyChE,IAAT,OAA4BA,IAAjB,gBAA6BA,IAAT,SAAaA,EAAE,UAAUmE,EAAE,KAAK,oBAAoB,IAAID,EAAE,CAAC,KAAK,YAAYA,GAAG,CAACD,IAAIE,EAAEA,EAAE,KAAK,IAAIE,EAAE,gBAAgB,GAAG,CAACH,GAAGD,IAAIE,EAAEA,EAAE,KAAK,IAAIE,EAAE,gBAAgB,EAAE,OAAOL,EAAE,EAAEG,EAAE,IAAIO,EAAE,OAAO,GAAG,MAAMV,CAAC,CAAC,CAAC,OAAO,IAAI,EAAEG,EAAEnE,EAAE,EAAE,CAAC,EAAE,MAAM,SAASgE,EAAEG,EAAE,CAAC,OAAO,KAAK,eAAeH,CAAC,EAAE,WAAWG,CAAC,CAAC,EAAE,WAAW,SAASH,EAAEG,EAAE,CAAC,OAAO,KAAK,eAAeH,GAAG,YAAY,EAAE,eAAeG,CAAC,CAAC,EAAE,gBAAgB,SAASH,EAAEG,EAAE,CAAC,GAAG,KAAK,iBAAiBC,GAAG,KAAK,MAAM,YAAY,QAAQJ,EAAE,MAAM,OAAO,KAAK,MAAM,oBAAmB,EAAG,IAAIhE,EAAE,KAAK,kBAAiB,EAAG,OAAO,KAAK,cAAcA,EAAEA,EAAE,KAAK,IAAIqE,EAAE,gBAAgB,GAAGD,EAAE,iBAAiBpE,EAAEgE,EAAEG,CAAC,CAAC,EAAE,kBAAkB,UAAU,CAAC,OAAO,KAAK,iBAAiBC,EAAE,KAAK,MAAM,iBAAgB,EAAG,KAAK,iBAAiBM,EAAE,KAAK,MAAM,IAAIR,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,QAAQK,EAAE,CAAC,SAAS,WAAW,eAAe,eAAe,eAAe,EAAEnD,EAAE,UAAU,CAAC,MAAM,IAAI,MAAM,4EAA4E,CAAC,EAAEuD,EAAE,EAAEA,EAAEJ,EAAE,OAAOI,IAAIV,EAAE,UAAUM,EAAEI,CAAC,CAAC,EAAEvD,EAAE+C,EAAE,QAAQF,CAAC,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE7C,EAAE+C,EAAE,EAAE,SAASA,EAAE,CAAc,IAAInE,EAAEiE,EAAED,EAAEG,EAAE,kBAAkBA,EAAE,uBAAuB,GAAGH,EAAE,CAAC,IAAIE,EAAE,EAAEpE,EAAE,IAAIkE,EAAEO,CAAC,EAAEF,EAAEF,EAAE,SAAS,eAAe,EAAE,EAAErE,EAAE,QAAQuE,EAAE,CAAC,cAAc,EAAE,CAAC,EAAErE,EAAE,UAAU,CAACqE,EAAE,KAAKH,EAAE,EAAEA,EAAE,CAAC,CAAC,SAASC,EAAE,cAAuBA,EAAE,iBAAX,OAA0BnE,EAAE,aAAamE,GAAG,uBAAuBA,EAAE,SAAS,cAAc,QAAQ,EAAE,UAAU,CAAC,IAAIH,EAAEG,EAAE,SAAS,cAAc,QAAQ,EAAEH,EAAE,mBAAmB,UAAU,CAACO,EAAC,EAAGP,EAAE,mBAAmB,KAAKA,EAAE,WAAW,YAAYA,CAAC,EAAEA,EAAE,IAAI,EAAEG,EAAE,SAAS,gBAAgB,YAAYH,CAAC,CAAC,EAAE,UAAU,CAAC,WAAWO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAIH,EAAE,IAAID,EAAE,eAAeC,EAAE,MAAM,UAAUG,EAAEvE,EAAE,UAAU,CAACoE,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,IAAIM,EAAE,CAAA,EAAG,SAASH,GAAG,CAAC,IAAIP,EAAEG,EAAEF,EAAE,GAAG,QAAQjE,EAAE0E,EAAE,OAAO1E,GAAG,CAAC,IAAImE,EAAEO,EAAEA,EAAE,CAAA,EAAGV,EAAE,GAAG,EAAEA,EAAEhE,GAAGmE,EAAEH,CAAC,EAAC,EAAGhE,EAAE0E,EAAE,MAAM,CAACT,EAAE,EAAE,CAAC7C,EAAE,QAAQ,SAAS4C,EAAE,CAAKU,EAAE,KAAKV,CAAC,IAAZ,GAAeC,GAAGjE,GAAG,CAAC,GAAG,KAAK,KAAkB,OAAOqlI,GAApB,IAA2BA,GAAoB,OAAO,KAApB,IAAyB,KAAkB,OAAO,OAApB,IAA2B,OAAO,CAAA,CAAE,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAElhI,EAAEnE,EAAE,CAAc,IAAIkE,EAAE,EAAE,WAAW,EAAE,SAASK,GAAG,CAAA,CAAE,IAAInD,EAAE,CAAA,EAAGtB,EAAE,CAAC,UAAU,EAAEuE,EAAE,CAAC,WAAW,EAAEJ,EAAE,CAAC,SAAS,EAAE,SAASG,EAAEJ,EAAE,CAAC,GAAe,OAAOA,GAAnB,WAAqB,MAAM,IAAI,UAAU,6BAA6B,EAAE,KAAK,MAAMC,EAAE,KAAK,MAAM,CAAA,EAAG,KAAK,QAAQ,OAAOD,IAAIO,GAAGC,EAAE,KAAKR,CAAC,CAAC,CAAC,SAASU,EAAEV,EAAEG,EAAEnE,EAAE,CAAC,KAAK,QAAQgE,EAAc,OAAOG,GAAnB,aAAuB,KAAK,YAAYA,EAAE,KAAK,cAAc,KAAK,oBAAgC,OAAOnE,GAAnB,aAAuB,KAAK,WAAWA,EAAE,KAAK,aAAa,KAAK,kBAAkB,CAAC,SAAS2E,EAAER,EAAEnE,EAAEiE,EAAE,CAACC,EAAE,UAAU,CAAC,IAAIF,EAAE,GAAG,CAACA,EAAEhE,EAAEiE,CAAC,CAAC,OAAOD,EAAE,CAAC,OAAO5C,EAAE,OAAO+C,EAAEH,CAAC,CAAC,CAACA,IAAIG,EAAE/C,EAAE,OAAO+C,EAAE,IAAI,UAAU,oCAAoC,CAAC,EAAE/C,EAAE,QAAQ+C,EAAEH,CAAC,CAAC,CAAC,CAAC,CAAC,SAASM,EAAEN,EAAE,CAAC,IAAIG,EAAEH,GAAGA,EAAE,KAAK,GAAGA,IAAc,OAAOA,GAAjB,UAAgC,OAAOA,GAAnB,aAAmC,OAAOG,GAAnB,WAAqB,OAAO,UAAU,CAACA,EAAE,MAAMH,EAAE,SAAS,CAAC,CAAC,CAAC,SAASQ,EAAEL,EAAEH,EAAE,CAAC,IAAIhE,EAAE,GAAG,SAASiE,EAAED,EAAE,CAAChE,IAAIA,EAAE,GAAGoB,EAAE,OAAO+C,EAAEH,CAAC,EAAE,CAAC,SAASE,EAAEF,EAAE,CAAChE,IAAIA,EAAE,GAAGoB,EAAE,QAAQ+C,EAAEH,CAAC,EAAE,CAAC,IAAIlE,EAAE2E,EAAE,UAAU,CAACT,EAAEE,EAAED,CAAC,CAAC,CAAC,EAAYnE,EAAE,SAAZ,SAAoBmE,EAAEnE,EAAE,KAAK,CAAC,CAAC,SAAS2E,EAAET,EAAEG,EAAE,CAAC,IAAInE,EAAE,GAAG,GAAG,CAACA,EAAE,MAAMgE,EAAEG,CAAC,EAAEnE,EAAE,OAAO,SAAS,OAAOgE,EAAE,CAAChE,EAAE,OAAO,QAAQA,EAAE,MAAMgE,CAAC,CAAC,OAAOhE,CAAC,EAAEmE,EAAE,QAAQC,GAAG,UAAU,QAAQ,SAASD,EAAE,CAAC,GAAe,OAAOA,GAAnB,WAAqB,OAAO,KAAK,IAAInE,EAAE,KAAK,YAAY,OAAO,KAAK,KAAK,SAASgE,EAAE,CAAC,OAAOhE,EAAE,QAAQmE,GAAG,EAAE,KAAK,UAAU,CAAC,OAAOH,CAAC,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,OAAOhE,EAAE,QAAQmE,GAAG,EAAE,KAAK,UAAU,CAAC,MAAMH,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEI,EAAE,UAAU,MAAM,SAASJ,EAAE,CAAC,OAAO,KAAK,KAAK,KAAKA,CAAC,CAAC,EAAEI,EAAE,UAAU,KAAK,SAASJ,EAAEG,EAAE,CAAC,GAAe,OAAOH,GAAnB,YAAsB,KAAK,QAAQK,GAAe,OAAOF,GAAnB,YAAsB,KAAK,QAAQrE,EAAE,OAAO,KAAK,IAAIE,EAAE,IAAI,KAAK,YAAYuE,CAAC,EAAE,YAAK,QAAQN,EAAEU,EAAE3E,EAAE,KAAK,QAAQqE,EAAEL,EAAEG,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,KAAK,IAAIO,EAAE1E,EAAEgE,EAAEG,CAAC,CAAC,EAASnE,CAAC,EAAE0E,EAAE,UAAU,cAAc,SAASV,EAAE,CAAC5C,EAAE,QAAQ,KAAK,QAAQ4C,CAAC,CAAC,EAAEU,EAAE,UAAU,mBAAmB,SAASV,EAAE,CAACW,EAAE,KAAK,QAAQ,KAAK,YAAYX,CAAC,CAAC,EAAEU,EAAE,UAAU,aAAa,SAASV,EAAE,CAAC5C,EAAE,OAAO,KAAK,QAAQ4C,CAAC,CAAC,EAAEU,EAAE,UAAU,kBAAkB,SAASV,EAAE,CAACW,EAAE,KAAK,QAAQ,KAAK,WAAWX,CAAC,CAAC,EAAE5C,EAAE,QAAQ,SAAS4C,EAAEG,EAAE,CAAC,IAAInE,EAAEyE,EAAEH,EAAEH,CAAC,EAAE,GAAanE,EAAE,SAAZ,QAAmB,OAAOoB,EAAE,OAAO4C,EAAEhE,EAAE,KAAK,EAAE,IAAIiE,EAAEjE,EAAE,MAAM,GAAGiE,EAAEO,EAAER,EAAEC,CAAC,MAAM,CAACD,EAAE,MAAMK,EAAEL,EAAE,QAAQG,EAAE,QAAQD,EAAE,GAAGpE,EAAEkE,EAAE,MAAM,OAAO,EAAEE,EAAEpE,GAAGkE,EAAE,MAAME,CAAC,EAAE,cAAcC,CAAC,CAAC,CAAC,OAAOH,CAAC,EAAE5C,EAAE,OAAO,SAAS4C,EAAEG,EAAE,CAACH,EAAE,MAAMlE,EAAEkE,EAAE,QAAQG,EAAE,QAAQnE,EAAE,GAAGiE,EAAED,EAAE,MAAM,OAAO,EAAEhE,EAAEiE,GAAGD,EAAE,MAAMhE,CAAC,EAAE,aAAamE,CAAC,EAAE,OAAOH,CAAC,EAAEI,EAAE,QAAQ,SAASJ,EAAE,CAAC,OAAGA,aAAa,KAAYA,EAAS5C,EAAE,QAAQ,IAAI,KAAKmD,CAAC,EAAEP,CAAC,CAAC,EAAEI,EAAE,OAAO,SAASJ,EAAE,CAAC,IAAIG,EAAE,IAAI,KAAKI,CAAC,EAAE,OAAOnD,EAAE,OAAO+C,EAAEH,CAAC,CAAC,EAAEI,EAAE,IAAI,SAASJ,EAAE,CAAC,IAAIhE,EAAE,KAAK,GAAsB,OAAO,UAAU,SAAS,KAAKgE,CAAC,IAAnD,iBAAqD,OAAO,KAAK,OAAO,IAAI,UAAU,kBAAkB,CAAC,EAAE,IAAIC,EAAED,EAAE,OAAOE,EAAE,GAAG,GAAG,CAACD,EAAE,OAAO,KAAK,QAAQ,CAAA,CAAE,EAA4C,QAAtCnE,EAAE,IAAI,MAAMmE,CAAC,EAAEI,EAAE,EAAEF,EAAE,GAAGC,EAAE,IAAI,KAAKG,CAAC,EAAO,EAAEJ,EAAEF,GAAGS,EAAEV,EAAEG,CAAC,EAAEA,CAAC,EAAE,OAAOC,EAAE,SAASM,EAAEV,EAAEG,EAAE,CAACnE,EAAE,QAAQgE,CAAC,EAAE,KAAK,SAASA,EAAE,CAAClE,EAAEqE,CAAC,EAAEH,EAAE,EAAEK,IAAIJ,GAAGC,IAAIA,EAAE,GAAG9C,EAAE,QAAQgD,EAAEtE,CAAC,EAAE,EAAE,SAASkE,EAAE,CAACE,IAAIA,EAAE,GAAG9C,EAAE,OAAOgD,EAAEJ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEI,EAAE,KAAK,SAASJ,EAAE,CAAC,IAAIG,EAAE,KAAK,GAAsB,OAAO,UAAU,SAAS,KAAKH,CAAC,IAAnD,iBAAqD,OAAO,KAAK,OAAO,IAAI,UAAU,kBAAkB,CAAC,EAAE,IAAIhE,EAAEgE,EAAE,OAAOC,EAAE,GAAG,GAAG,CAACjE,EAAE,OAAO,KAAK,QAAQ,EAAE,EAAyB,QAAnBkE,EAAE,GAAGpE,EAAE,IAAI,KAAKyE,CAAC,EAAO,EAAEL,EAAElE,GAAGqE,EAAEL,EAAEE,CAAC,EAAEC,EAAE,QAAQE,CAAC,EAAE,KAAK,SAASL,EAAE,CAACC,IAAIA,EAAE,GAAG7C,EAAE,QAAQtB,EAAEkE,CAAC,EAAE,EAAE,SAASA,EAAE,CAACC,IAAIA,EAAE,GAAG7C,EAAE,OAAOtB,EAAEkE,CAAC,EAAE,CAAC,EAAE,IAAIK,EAAE,OAAOvE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAc,IAAIiE,EAAE,CAAA,KAAM,EAAE,oBAAoB,EAAE,QAAQA,EAAE,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,EAAE,sBAAsB,CAAC,EAAEE,EAAE,QAAQF,CAAC,EAAE,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEE,EAAEnE,EAAE,CAAc,IAAIqE,EAAE,EAAE,gBAAgB,EAAED,EAAE,EAAE,gBAAgB,EAAEM,EAAE,EAAE,iBAAiB,EAAER,EAAE,EAAE,iBAAiB,EAAEpE,EAAE,EAAE,gBAAgB,EAAEyE,EAAE,OAAO,UAAU,SAASnD,EAAE,EAAEuD,EAAE,GAAGL,EAAE,EAAEE,EAAE,EAAE,SAASC,EAAET,EAAE,CAAC,GAAG,EAAE,gBAAgBS,GAAG,OAAO,IAAIA,EAAET,CAAC,EAAE,KAAK,QAAQI,EAAE,OAAO,CAAC,MAAMO,EAAE,OAAOH,EAAE,UAAU,MAAM,WAAW,GAAG,SAAS,EAAE,SAASF,EAAE,GAAG,EAAE,EAAEN,GAAG,CAAA,CAAE,EAAE,IAAIG,EAAE,KAAK,QAAQA,EAAE,KAAK,EAAEA,EAAE,WAAWA,EAAE,WAAW,CAACA,EAAE,WAAWA,EAAE,MAAM,EAAEA,EAAE,YAAYA,EAAE,WAAW,KAAKA,EAAE,YAAY,IAAI,KAAK,IAAI,EAAE,KAAK,IAAI,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,CAAA,EAAG,KAAK,KAAK,IAAIrE,EAAE,KAAK,KAAK,UAAU,EAAE,IAAIE,EAAEqE,EAAE,aAAa,KAAK,KAAKF,EAAE,MAAMA,EAAE,OAAOA,EAAE,WAAWA,EAAE,SAASA,EAAE,QAAQ,EAAE,GAAGnE,IAAIoB,EAAE,MAAM,IAAI,MAAM8C,EAAElE,CAAC,CAAC,EAAE,GAAGmE,EAAE,QAAQE,EAAE,iBAAiB,KAAK,KAAKF,EAAE,MAAM,EAAEA,EAAE,WAAW,CAAC,IAAIF,EAAE,GAAGA,EAAY,OAAOE,EAAE,YAAnB,SAA8BO,EAAE,WAAWP,EAAE,UAAU,EAA2BI,EAAE,KAAKJ,EAAE,UAAU,IAA5C,uBAA8C,IAAI,WAAWA,EAAE,UAAU,EAAEA,EAAE,YAAYnE,EAAEqE,EAAE,qBAAqB,KAAK,KAAKJ,CAAC,KAAK7C,EAAE,MAAM,IAAI,MAAM8C,EAAElE,CAAC,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC,CAAC,SAASiE,EAAED,EAAEG,EAAE,CAAC,IAAInE,EAAE,IAAIyE,EAAEN,CAAC,EAAE,GAAGnE,EAAE,KAAKgE,EAAE,EAAE,EAAEhE,EAAE,IAAI,MAAMA,EAAE,KAAKkE,EAAElE,EAAE,GAAG,EAAE,OAAOA,EAAE,MAAM,CAACyE,EAAE,UAAU,KAAK,SAAST,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAEC,EAAE,KAAK,KAAKpE,EAAE,KAAK,QAAQ,UAAU,GAAG,KAAK,MAAM,SAASmE,EAAEE,IAAI,CAAC,CAACA,EAAEA,EAAOA,IAAL,GAAO,EAAE,EAAY,OAAOH,GAAjB,SAAmBE,EAAE,MAAMQ,EAAE,WAAWV,CAAC,EAA2BO,EAAE,KAAKP,CAAC,IAAjC,uBAAmCE,EAAE,MAAM,IAAI,WAAWF,CAAC,EAAEE,EAAE,MAAMF,EAAEE,EAAE,QAAQ,EAAEA,EAAE,SAASA,EAAE,MAAM,OAAO,EAAE,CAAC,GAAOA,EAAE,YAAN,IAAkBA,EAAE,OAAO,IAAIE,EAAE,KAAKtE,CAAC,EAAEoE,EAAE,SAAS,EAAEA,EAAE,UAAUpE,IAAQE,EAAEqE,EAAE,QAAQH,EAAED,CAAC,KAApB,GAAwBjE,IAAIoB,EAAE,OAAO,KAAK,MAAMpB,CAAC,EAAE,EAAE,KAAK,MAAM,IAAQkE,EAAE,YAAN,IAAsBA,EAAE,WAAN,GAAoBD,IAAJ,GAAWA,IAAJ,KAAoB,KAAK,QAAQ,KAAxB,SAA2B,KAAK,OAAOS,EAAE,cAAcN,EAAE,UAAUF,EAAE,OAAOA,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,OAAOE,EAAE,UAAUF,EAAE,OAAOA,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAEA,EAAE,UAAcA,EAAE,YAAN,IAAsBlE,IAAJ,GAAO,OAAWiE,IAAJ,GAAOjE,EAAEqE,EAAE,WAAW,KAAK,IAAI,EAAE,KAAK,MAAMrE,CAAC,EAAE,KAAK,MAAM,GAAGA,IAAIoB,GAAO6C,IAAJ,IAAQ,KAAK,MAAM7C,CAAC,EAAE,EAAE8C,EAAE,UAAU,GAAG,EAAEO,EAAE,UAAU,OAAO,SAAST,EAAE,CAAC,KAAK,OAAO,KAAKA,CAAC,CAAC,EAAES,EAAE,UAAU,MAAM,SAAST,EAAE,CAACA,IAAI5C,IAAe,KAAK,QAAQ,KAAxB,SAA2B,KAAK,OAAO,KAAK,OAAO,KAAK,EAAE,EAAE,KAAK,OAAOgD,EAAE,cAAc,KAAK,MAAM,GAAG,KAAK,OAAO,CAAA,EAAG,KAAK,IAAIJ,EAAE,KAAK,IAAI,KAAK,KAAK,GAAG,EAAEhE,EAAE,QAAQyE,EAAEzE,EAAE,QAAQiE,EAAEjE,EAAE,WAAW,SAASgE,EAAEG,EAAE,CAAC,OAAOA,EAAEA,GAAG,CAAA,GAAI,IAAI,GAAGF,EAAED,EAAEG,CAAC,CAAC,EAAEnE,EAAE,KAAK,SAASgE,EAAEG,EAAE,CAAC,OAAOA,EAAEA,GAAG,CAAA,GAAI,KAAK,GAAGF,EAAED,EAAEG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEA,EAAEnE,EAAE,CAAc,IAAIsE,EAAE,EAAE,gBAAgB,EAAEE,EAAE,EAAE,gBAAgB,EAAEC,EAAE,EAAE,iBAAiB,EAAEnD,EAAE,EAAE,kBAAkB,EAAE2C,EAAE,EAAE,iBAAiB,EAAEC,EAAE,EAAE,gBAAgB,EAAEpE,EAAE,EAAE,iBAAiB,EAAEkF,EAAE,OAAO,UAAU,SAAS,SAASX,EAAEL,EAAE,CAAC,GAAG,EAAE,gBAAgBK,GAAG,OAAO,IAAIA,EAAEL,CAAC,EAAE,KAAK,QAAQQ,EAAE,OAAO,CAAC,UAAU,MAAM,WAAW,EAAE,GAAG,EAAE,EAAER,GAAG,CAAA,CAAE,EAAE,IAAIG,EAAE,KAAK,QAAQA,EAAE,KAAK,GAAGA,EAAE,YAAYA,EAAE,WAAW,KAAKA,EAAE,WAAW,CAACA,EAAE,WAAeA,EAAE,aAAN,IAAmBA,EAAE,WAAW,MAAM,EAAE,GAAGA,EAAE,YAAYA,EAAE,WAAW,KAAKH,GAAGA,EAAE,aAAaG,EAAE,YAAY,IAAI,GAAGA,EAAE,YAAYA,EAAE,WAAW,KAAQ,GAAGA,EAAE,aAAT,IAAuBA,EAAE,YAAY,IAAI,KAAK,IAAI,EAAE,KAAK,IAAI,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,CAAA,EAAG,KAAK,KAAK,IAAID,EAAE,KAAK,KAAK,UAAU,EAAE,IAAIlE,EAAEsE,EAAE,aAAa,KAAK,KAAKH,EAAE,UAAU,EAAE,GAAGnE,IAAIsB,EAAE,KAAK,MAAM,IAAI,MAAM2C,EAAEjE,CAAC,CAAC,EAAE,KAAK,OAAO,IAAIF,EAAEwE,EAAE,iBAAiB,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC,SAASF,EAAEJ,EAAEG,EAAE,CAAC,IAAInE,EAAE,IAAIqE,EAAEF,CAAC,EAAE,GAAGnE,EAAE,KAAKgE,EAAE,EAAE,EAAEhE,EAAE,IAAI,MAAMA,EAAE,KAAKiE,EAAEjE,EAAE,GAAG,EAAE,OAAOA,EAAE,MAAM,CAACqE,EAAE,UAAU,KAAK,SAASL,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAEC,EAAEpE,EAAEuE,EAAED,EAAEM,EAAE,KAAK,KAAKH,EAAE,KAAK,QAAQ,UAAUnD,EAAE,KAAK,QAAQ,WAAWuD,EAAE,GAAG,GAAG,KAAK,MAAM,MAAM,GAAGV,EAAEE,IAAI,CAAC,CAACA,EAAEA,EAAOA,IAAL,GAAO7C,EAAE,SAASA,EAAE,WAAqB,OAAO0C,GAAjB,SAAmBU,EAAE,MAAMD,EAAE,cAAcT,CAAC,EAA2BgB,EAAE,KAAKhB,CAAC,IAAjC,uBAAmCU,EAAE,MAAM,IAAI,WAAWV,CAAC,EAAEU,EAAE,MAAMV,EAAEU,EAAE,QAAQ,EAAEA,EAAE,SAASA,EAAE,MAAM,OAAO,EAAE,CAAC,GAAOA,EAAE,YAAN,IAAkBA,EAAE,OAAO,IAAIF,EAAE,KAAKD,CAAC,EAAEG,EAAE,SAAS,EAAEA,EAAE,UAAUH,IAAIvE,EAAEsE,EAAE,QAAQI,EAAEpD,EAAE,UAAU,KAAKA,EAAE,aAAaF,IAAIgD,EAAY,OAAOhD,GAAjB,SAAmBqD,EAAE,WAAWrD,CAAC,EAA2B4D,EAAE,KAAK5D,CAAC,IAAjC,uBAAmC,IAAI,WAAWA,CAAC,EAAEA,EAAEpB,EAAEsE,EAAE,qBAAqB,KAAK,KAAKF,CAAC,GAAGpE,IAAIsB,EAAE,aAAkBqD,IAAL,KAAS3E,EAAEsB,EAAE,KAAKqD,EAAE,IAAI3E,IAAIsB,EAAE,cAActB,IAAIsB,EAAE,KAAK,OAAO,KAAK,MAAMtB,CAAC,EAAE,EAAE,KAAK,MAAM,IAAI0E,EAAE,WAAeA,EAAE,YAAN,GAAiB1E,IAAIsB,EAAE,eAAmBoD,EAAE,WAAN,GAAgBT,IAAI3C,EAAE,UAAU2C,IAAI3C,EAAE,gBAA2B,KAAK,QAAQ,KAAxB,UAA4B4C,EAAEO,EAAE,WAAWC,EAAE,OAAOA,EAAE,QAAQ,EAAE5E,EAAE4E,EAAE,SAASR,EAAEG,EAAEI,EAAE,WAAWC,EAAE,OAAOR,CAAC,EAAEQ,EAAE,SAAS5E,EAAE4E,EAAE,UAAUH,EAAEzE,EAAEA,GAAG0E,EAAE,SAASE,EAAE,OAAOA,EAAE,OAAOR,EAAEpE,EAAE,CAAC,EAAE,KAAK,OAAOuE,CAAC,GAAG,KAAK,OAAOG,EAAE,UAAUE,EAAE,OAAOA,EAAE,QAAQ,CAAC,IAAQA,EAAE,WAAN,GAAoBA,EAAE,YAAN,IAAkBC,EAAE,GAAG,QAAQ,EAAED,EAAE,UAAcA,EAAE,YAAN,IAAkB1E,IAAIsB,EAAE,cAAc,OAAOtB,IAAIsB,EAAE,eAAe2C,EAAE3C,EAAE,UAAU2C,IAAI3C,EAAE,UAAUtB,EAAEsE,EAAE,WAAW,KAAK,IAAI,EAAE,KAAK,MAAMtE,CAAC,EAAE,KAAK,MAAM,GAAGA,IAAIsB,EAAE,MAAM2C,IAAI3C,EAAE,eAAe,KAAK,MAAMA,EAAE,IAAI,EAAE,EAAEoD,EAAE,UAAU,GAAG,EAAEL,EAAE,UAAU,OAAO,SAASL,EAAE,CAAC,KAAK,OAAO,KAAKA,CAAC,CAAC,EAAEK,EAAE,UAAU,MAAM,SAASL,EAAE,CAACA,IAAI1C,EAAE,OAAkB,KAAK,QAAQ,KAAxB,SAA2B,KAAK,OAAO,KAAK,OAAO,KAAK,EAAE,EAAE,KAAK,OAAOkD,EAAE,cAAc,KAAK,MAAM,GAAG,KAAK,OAAO,CAAA,EAAG,KAAK,IAAIR,EAAE,KAAK,IAAI,KAAK,KAAK,GAAG,EAAEhE,EAAE,QAAQqE,EAAErE,EAAE,QAAQoE,EAAEpE,EAAE,WAAW,SAASgE,EAAEG,EAAE,CAAC,OAAOA,EAAEA,GAAG,IAAI,IAAI,GAAGC,EAAEJ,EAAEG,CAAC,CAAC,EAAEnE,EAAE,OAAOoE,CAAC,EAAE,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAED,EAAEnE,EAAE,CAAc,IAAIiE,EAAe,OAAO,WAApB,KAA6C,OAAO,YAApB,KAA8C,OAAO,WAApB,IAA+BjE,EAAE,OAAO,SAASgE,EAAE,CAAC,QAAQG,EAAE,MAAM,UAAU,MAAM,KAAK,UAAU,CAAC,EAAEA,EAAE,QAAQ,CAAC,IAAI,EAAEA,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAa,OAAO,GAAjB,SAAmB,MAAM,IAAI,UAAU,EAAE,oBAAoB,EAAE,QAAQF,KAAK,EAAE,EAAE,eAAeA,CAAC,IAAID,EAAEC,CAAC,EAAE,EAAEA,CAAC,EAAE,CAAC,CAAC,OAAOD,CAAC,EAAEhE,EAAE,UAAU,SAASgE,EAAEG,EAAE,CAAC,OAAOH,EAAE,SAASG,EAAEH,EAAEA,EAAE,SAASA,EAAE,SAAS,EAAEG,CAAC,GAAGH,EAAE,OAAOG,EAAEH,EAAE,EAAE,IAAIE,EAAE,CAAC,SAAS,SAASF,EAAEG,EAAE,EAAEF,EAAEC,EAAE,CAAC,GAAGC,EAAE,UAAUH,EAAE,SAASA,EAAE,IAAIG,EAAE,SAAS,EAAE,EAAEF,CAAC,EAAEC,CAAC,MAAO,SAAQpE,EAAE,EAAEA,EAAEmE,EAAEnE,IAAIkE,EAAEE,EAAEpE,CAAC,EAAEqE,EAAE,EAAErE,CAAC,CAAC,EAAE,cAAc,SAASkE,EAAE,CAAC,IAAIG,EAAE,EAAEF,EAAEC,EAAEpE,EAAEuE,EAAE,IAAIF,EAAEF,EAAE,EAAE,EAAED,EAAE,OAAOG,EAAE,EAAEA,IAAIF,GAAGD,EAAEG,CAAC,EAAE,OAAO,IAAIE,EAAE,IAAI,WAAWJ,CAAC,EAAEE,EAAED,EAAE,EAAE,EAAEF,EAAE,OAAOG,EAAE,EAAEA,IAAIrE,EAAEkE,EAAEG,CAAC,EAAEE,EAAE,IAAIvE,EAAEoE,CAAC,EAAEA,GAAGpE,EAAE,OAAO,OAAOuE,CAAC,CAAC,EAAEvE,EAAE,CAAC,SAAS,SAASkE,EAAEG,EAAE,EAAEF,EAAEC,EAAE,CAAC,QAAQpE,EAAE,EAAEA,EAAEmE,EAAEnE,IAAIkE,EAAEE,EAAEpE,CAAC,EAAEqE,EAAE,EAAErE,CAAC,CAAC,EAAE,cAAc,SAASkE,EAAE,CAAC,MAAM,CAAA,EAAG,OAAO,MAAM,CAAA,EAAGA,CAAC,CAAC,CAAC,EAAEhE,EAAE,SAAS,SAASgE,EAAE,CAACA,GAAGhE,EAAE,KAAK,WAAWA,EAAE,MAAM,YAAYA,EAAE,MAAM,WAAWA,EAAE,OAAOA,EAAEkE,CAAC,IAAIlE,EAAE,KAAK,MAAMA,EAAE,MAAM,MAAMA,EAAE,MAAM,MAAMA,EAAE,OAAOA,EAAEF,CAAC,EAAE,EAAEE,EAAE,SAASiE,CAAC,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEE,EAAEnE,EAAE,CAAc,IAAI0E,EAAE,EAAE,UAAU,EAAER,EAAE,GAAGpE,EAAE,GAAG,GAAG,CAAC,OAAO,aAAa,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAS,CAACoE,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,aAAa,MAAM,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,MAAS,CAACpE,EAAE,EAAE,CAAC,QAAQyE,EAAE,IAAIG,EAAE,KAAK,GAAG,EAAET,EAAE,EAAEA,EAAE,IAAIA,IAAIM,EAAEN,CAAC,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,KAAKA,EAAE,EAAE,EAAE,SAAS7C,EAAE4C,EAAEG,EAAE,CAAC,GAAGA,EAAE,QAAQH,EAAE,UAAUlE,GAAG,CAACkE,EAAE,UAAUE,GAAG,OAAO,OAAO,aAAa,MAAM,KAAKQ,EAAE,UAAUV,EAAEG,CAAC,CAAC,EAAE,QAAQnE,EAAE,GAAGiE,EAAE,EAAEA,EAAEE,EAAEF,IAAIjE,GAAG,OAAO,aAAagE,EAAEC,CAAC,CAAC,EAAE,OAAOjE,CAAC,CAACuE,EAAE,GAAG,EAAEA,EAAE,GAAG,EAAE,EAAEvE,EAAE,WAAW,SAASgE,EAAE,CAAC,IAAIG,EAAEnE,EAAEiE,EAAEC,EAAEpE,EAAEuE,EAAEL,EAAE,OAAOI,EAAE,EAAE,IAAIF,EAAE,EAAEA,EAAEG,EAAEH,KAAY,OAAOlE,EAAEgE,EAAE,WAAWE,CAAC,KAA/B,OAAoCA,EAAE,EAAEG,IAAW,OAAOJ,EAAED,EAAE,WAAWE,EAAE,CAAC,KAAjC,QAAuClE,EAAE,OAAOA,EAAE,OAAO,KAAKiE,EAAE,OAAOC,KAAKE,GAAGpE,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAImE,EAAE,IAAIO,EAAE,KAAKN,CAAC,EAAEF,EAAEpE,EAAE,EAAEA,EAAEsE,EAAEF,KAAY,OAAOlE,EAAEgE,EAAE,WAAWE,CAAC,KAA/B,OAAoCA,EAAE,EAAEG,IAAW,OAAOJ,EAAED,EAAE,WAAWE,EAAE,CAAC,KAAjC,QAAuClE,EAAE,OAAOA,EAAE,OAAO,KAAKiE,EAAE,OAAOC,KAAKlE,EAAE,IAAImE,EAAErE,GAAG,EAAEE,GAAGA,EAAE,KAAKmE,EAAErE,GAAG,EAAE,IAAIE,IAAI,GAAGA,EAAE,MAAMmE,EAAErE,GAAG,EAAE,IAAIE,IAAI,IAAImE,EAAErE,GAAG,EAAE,IAAIE,IAAI,GAAGmE,EAAErE,GAAG,EAAE,IAAIE,IAAI,GAAG,IAAImE,EAAErE,GAAG,EAAE,IAAIE,IAAI,EAAE,IAAImE,EAAErE,GAAG,EAAE,IAAI,GAAGE,GAAG,OAAOmE,CAAC,EAAEnE,EAAE,cAAc,SAASgE,EAAE,CAAC,OAAO5C,EAAE4C,EAAEA,EAAE,MAAM,CAAC,EAAEhE,EAAE,cAAc,SAASgE,EAAE,CAAC,QAAQG,EAAE,IAAIO,EAAE,KAAKV,EAAE,MAAM,EAAEhE,EAAE,EAAEiE,EAAEE,EAAE,OAAOnE,EAAEiE,EAAEjE,IAAImE,EAAEnE,CAAC,EAAEgE,EAAE,WAAWhE,CAAC,EAAE,OAAOmE,CAAC,EAAEnE,EAAE,WAAW,SAASgE,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAEC,EAAEpE,EAAEuE,EAAEF,GAAGH,EAAE,OAAOI,EAAE,IAAI,MAAM,EAAEC,CAAC,EAAE,IAAIrE,EAAEiE,EAAE,EAAEjE,EAAEqE,GAAG,IAAIH,EAAEF,EAAEhE,GAAG,GAAG,IAAIoE,EAAEH,GAAG,EAAEC,UAAU,GAAGpE,EAAEyE,EAAEL,CAAC,GAAGE,EAAEH,GAAG,EAAE,MAAMjE,GAAGF,EAAE,MAAM,CAAC,IAAIoE,GAAOpE,IAAJ,EAAM,GAAOA,IAAJ,EAAM,GAAG,EAAE,EAAEA,GAAGE,EAAEqE,GAAGH,EAAEA,GAAG,EAAE,GAAGF,EAAEhE,GAAG,EAAEF,IAAI,EAAEA,EAAEsE,EAAEH,GAAG,EAAE,MAAMC,EAAE,MAAME,EAAEH,GAAG,EAAEC,GAAGA,GAAG,MAAME,EAAEH,GAAG,EAAE,MAAMC,GAAG,GAAG,KAAKE,EAAEH,GAAG,EAAE,MAAM,KAAKC,EAAE,CAAC,OAAO9C,EAAEgD,EAAEH,CAAC,CAAC,EAAEjE,EAAE,WAAW,SAASgE,EAAEG,EAAE,CAAC,IAAInE,EAAE,KAAKmE,EAAEA,GAAGH,EAAE,QAAQA,EAAE,SAASG,EAAEH,EAAE,QAAQhE,EAAEmE,EAAE,EAAE,GAAGnE,IAAS,IAAIgE,EAAEhE,CAAC,IAAb,KAAiBA,IAAI,OAAOA,EAAE,GAAQA,IAAJ,EAAFmE,EAAUnE,EAAEuE,EAAEP,EAAEhE,CAAC,CAAC,EAAEmE,EAAEnE,EAAEmE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEA,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,SAASH,EAAEG,EAAEnE,EAAEiE,EAAE,CAAC,QAAQC,EAAE,MAAMF,EAAE,EAAElE,EAAEkE,IAAI,GAAG,MAAM,EAAEK,EAAE,EAAMrE,IAAJ,GAAO,CAAC,IAAIA,GAAGqE,EAAE,IAAIrE,EAAE,IAAIA,EAAEF,EAAEA,GAAGoE,EAAEA,EAAEC,EAAEF,GAAG,EAAE,GAAG,EAAE,EAAEI,GAAG,CAACH,GAAG,MAAMpE,GAAG,KAAK,CAAC,OAAOoE,EAAEpE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEqE,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,GAAG,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,GAAG,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEA,EAAEnE,EAAE,CAAc,IAAIoE,GAAE,UAAU,CAAC,QAAQJ,EAAEG,EAAE,CAAA,EAAGnE,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAACgE,EAAEhE,EAAE,QAAQiE,EAAE,EAAEA,EAAE,EAAEA,IAAID,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAEG,EAAEnE,CAAC,EAAEgE,CAAC,CAAC,OAAOG,CAAC,GAAC,EAAGA,EAAE,QAAQ,SAASH,EAAEG,EAAEnE,EAAEiE,EAAE,CAAC,IAAIC,EAAEE,EAAEtE,EAAEmE,EAAEjE,EAAEgE,GAAG,GAAG,QAAQK,EAAEJ,EAAEI,EAAEvE,EAAEuE,IAAIL,EAAEA,IAAI,EAAEE,EAAE,KAAKF,EAAEG,EAAEE,CAAC,EAAE,EAAE,SAASL,CAAC,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEG,EAAEnE,EAAE,CAAc,IAAI0E,EAAEJ,EAAE,EAAE,iBAAiB,EAAEC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAEE,EAAE,EAAE,SAAS,EAAER,EAAE,EAAE,YAAY,EAAE7C,EAAE,EAAEuD,EAAE,EAAErD,EAAE,EAAE0D,EAAE,GAAGH,EAAE,GAAGE,EAAE,EAAEb,EAAE,EAAEU,EAAE,EAAEE,EAAE,EAAEhF,EAAE,IAAIuE,EAAE,GAAGD,EAAE,GAAGa,EAAE,EAAEnF,EAAE,EAAEqF,EAAE,GAAGU,EAAE,EAAEX,EAAE,IAAIwB,EAAExB,EAAEW,EAAE,EAAER,EAAE,GAAGC,EAAE,IAAII,EAAE,EAAEE,EAAE,EAAEJ,EAAE,EAAEY,EAAE,EAAE,SAASF,GAAElC,EAAEG,GAAE,CAAC,OAAOH,EAAE,IAAIC,EAAEE,EAAC,EAAEA,EAAC,CAAC,SAASoB,EAAEvB,EAAE,CAAC,OAAOA,GAAG,IAAI,EAAEA,EAAE,EAAE,EAAE,CAAC,SAASkf,GAAElf,EAAE,CAAC,QAAQG,GAAEH,EAAE,OAAO,GAAG,EAAEG,IAAGH,EAAEG,EAAC,EAAE,CAAC,CAAC,SAASgC,EAAEnC,EAAE,CAAC,IAAIG,GAAEH,EAAE,MAAMhE,GAAEmE,GAAE,QAAQnE,GAAEgE,EAAE,YAAYhE,GAAEgE,EAAE,WAAehE,KAAJ,IAAQsE,EAAE,SAASN,EAAE,OAAOG,GAAE,YAAYA,GAAE,YAAYnE,GAAEgE,EAAE,QAAQ,EAAEA,EAAE,UAAUhE,GAAEmE,GAAE,aAAanE,GAAEgE,EAAE,WAAWhE,GAAEgE,EAAE,WAAWhE,GAAEmE,GAAE,SAASnE,GAAMmE,GAAE,UAAN,IAAgBA,GAAE,YAAY,GAAG,CAAC,SAAS8B,EAAEjC,EAAEG,GAAE,CAACI,EAAE,gBAAgBP,EAAE,GAAGA,EAAE,YAAYA,EAAE,YAAY,GAAGA,EAAE,SAASA,EAAE,YAAYG,EAAC,EAAEH,EAAE,YAAYA,EAAE,SAASmC,EAAEnC,EAAE,IAAI,CAAC,CAAC,SAASqC,EAAErC,EAAEG,GAAE,CAACH,EAAE,YAAYA,EAAE,SAAS,EAAEG,EAAC,CAAC,SAASsB,EAAEzB,EAAEG,GAAE,CAACH,EAAE,YAAYA,EAAE,SAAS,EAAEG,KAAI,EAAE,IAAIH,EAAE,YAAYA,EAAE,SAAS,EAAE,IAAIG,EAAC,CAAC,SAAS,EAAEH,EAAEG,GAAE,CAAC,IAAInE,GAAEiE,EAAEC,EAAEF,EAAE,iBAAiBlE,EAAEkE,EAAE,SAASK,GAAEL,EAAE,YAAYI,GAAEJ,EAAE,WAAWU,GAAEV,EAAE,SAASA,EAAE,OAAO0C,EAAE1C,EAAE,UAAUA,EAAE,OAAO0C,GAAG,EAAEnC,EAAEP,EAAE,OAAO5C,GAAE4C,EAAE,OAAOW,GAAEX,EAAE,KAAKM,GAAEN,EAAE,SAASkB,EAAEV,GAAED,EAAEzE,EAAEuE,GAAE,CAAC,EAAEI,GAAEF,EAAEzE,EAAEuE,EAAC,EAAEL,EAAE,aAAaA,EAAE,aAAaE,IAAI,GAAGE,GAAEJ,EAAE,YAAYI,GAAEJ,EAAE,WAAW,EAAG,IAAGO,GAAGvE,GAAEmE,IAAGE,EAAC,IAAII,IAAGF,EAAEvE,GAAEqE,GAAE,CAAC,IAAIG,IAAGD,EAAEvE,EAAC,IAAIuE,EAAEzE,CAAC,GAAGyE,EAAE,EAAEvE,EAAC,IAAIuE,EAAEzE,EAAE,CAAC,EAAE,CAACA,GAAG,EAAEE,KAAI,EAAE,OAAQuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGuE,EAAE,EAAEzE,CAAC,IAAIyE,EAAE,EAAEvE,EAAC,GAAGF,EAAEwE,IAAG,GAAGL,EAAEiB,GAAGZ,GAAExE,GAAGA,EAAEwE,GAAEY,EAAEb,GAAEJ,EAAE,CAAC,GAAGD,EAAE,YAAYG,GAAEC,KAAIC,GAAEJ,GAAG,MAAMO,GAAED,EAAEzE,EAAEuE,GAAE,CAAC,EAAEI,GAAEF,EAAEzE,EAAEuE,EAAC,CAAC,CAAC,QAASF,GAAEQ,GAAER,GAAE/C,EAAC,GAAGsD,IAAM,EAAER,GAAL,GAAQ,OAAOG,IAAGL,EAAE,UAAUK,GAAEL,EAAE,SAAS,CAAC,SAAS2B,EAAE3B,EAAE,CAAC,IAAIG,GAAEnE,GAAEiE,EAAEC,EAAEpE,EAAEuE,GAAED,GAAEM,GAAEH,EAAEnD,GAAEuD,GAAEX,EAAE,OAAO,EAAE,CAAC,GAAGE,EAAEF,EAAE,YAAYA,EAAE,UAAUA,EAAE,SAASA,EAAE,UAAUW,IAAGA,GAAE+B,GAAG,CAAC,IAAIpC,EAAE,SAASN,EAAE,OAAOA,EAAE,OAAOW,GAAEA,GAAE,CAAC,EAAEX,EAAE,aAAaW,GAAEX,EAAE,UAAUW,GAAEX,EAAE,aAAaW,GAAER,GAAEnE,GAAEgE,EAAE,UAAUC,EAAED,EAAE,KAAK,EAAEG,EAAC,EAAEH,EAAE,KAAKG,EAAC,EAAEQ,IAAGV,EAAEA,EAAEU,GAAE,EAAE,EAAE3E,IAAG,CAAC,IAAImE,GAAEnE,GAAE2E,GAAEV,EAAED,EAAE,KAAK,EAAEG,EAAC,EAAEH,EAAE,KAAKG,EAAC,EAAEQ,IAAGV,EAAEA,EAAEU,GAAE,EAAE,EAAE3E,IAAG,CAACkE,GAAGS,EAAC,CAAC,GAAOX,EAAE,KAAK,WAAX,EAAoB,MAAM,GAAGK,GAAEL,EAAE,KAAKI,GAAEJ,EAAE,OAAOU,GAAEV,EAAE,SAASA,EAAE,UAAUO,EAAEL,EAAE9C,GAAE,OAAOA,GAAEiD,GAAE,SAASE,EAAEnD,KAAIA,GAAEmD,GAAGvE,GAAMoB,KAAJ,EAAM,GAAGiD,GAAE,UAAUjD,GAAEkD,EAAE,SAASF,GAAEC,GAAE,MAAMA,GAAE,QAAQjD,GAAEsD,EAAC,EAAML,GAAE,MAAM,OAAZ,EAAiBA,GAAE,MAAM,EAAEA,GAAE,MAAMD,GAAEhD,GAAEsD,EAAC,EAAML,GAAE,MAAM,OAAZ,IAAmBA,GAAE,MAAMI,EAAEJ,GAAE,MAAMD,GAAEhD,GAAEsD,EAAC,GAAGL,GAAE,SAASjD,GAAEiD,GAAE,UAAUjD,GAAEA,IAAG4C,EAAE,WAAWhE,GAAEgE,EAAE,UAAUA,EAAE,QAAQ6B,EAAE,IAAI/F,EAAEkE,EAAE,SAASA,EAAE,OAAOA,EAAE,MAAMA,EAAE,OAAOlE,CAAC,EAAEkE,EAAE,OAAOA,EAAE,OAAOA,EAAE,WAAWA,EAAE,OAAOlE,EAAE,CAAC,GAAGkE,EAAE,UAAUA,EAAE,SAASA,EAAE,OAAOA,EAAE,OAAOA,EAAE,WAAWA,EAAE,OAAOlE,EAAE+F,EAAE,CAAC,GAAG7B,EAAE,UAAUA,EAAE,KAAKlE,EAAEkE,EAAE,MAAM,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAElE,EAAEA,IAAIkE,EAAE,SAAS,EAAEA,EAAE,UAAUA,EAAE,OAAO6B,KAAK,CAAC,OAAO7B,EAAE,UAAU0C,GAAO1C,EAAE,KAAK,WAAX,EAAoB,CAAC,SAASkD,EAAElD,EAAEG,GAAE,CAAC,QAAQnE,GAAEiE,IAAI,CAAC,GAAGD,EAAE,UAAU0C,EAAE,CAAC,GAAGf,EAAE3B,CAAC,EAAEA,EAAE,UAAU0C,GAAGvC,KAAI/C,EAAE,OAAOsE,EAAE,GAAO1B,EAAE,YAAN,EAAgB,KAAK,CAAC,GAAGhE,GAAE,EAAEgE,EAAE,WAAW6B,IAAI7B,EAAE,OAAOA,EAAE,OAAOA,EAAE,WAAWA,EAAE,OAAOA,EAAE,SAAS6B,EAAE,CAAC,GAAG7B,EAAE,UAAUhE,GAAEgE,EAAE,KAAKA,EAAE,SAASA,EAAE,MAAM,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,UAAchE,KAAJ,GAAOgE,EAAE,SAAShE,IAAGgE,EAAE,OAAO0C,IAAI1C,EAAE,aAAa,EAAEA,EAAEhE,EAAC,GAAGgE,EAAE,cAAc6B,EAAE,GAAG5B,EAAEM,EAAE,UAAUP,EAAEA,EAAE,SAASA,EAAE,YAAYA,EAAE,aAAa6B,CAAC,EAAE7B,EAAE,WAAWA,EAAE,aAAaA,EAAE,cAAcA,EAAE,gBAAgBA,EAAE,WAAW6B,EAAE,CAAC,IAAI7B,EAAE,eAAeA,EAAE,WAAWA,EAAE,OAAOA,EAAE,OAAOA,EAAE,WAAWA,EAAE,OAAOA,EAAE,SAAS6B,EAAE,CAAC,GAAG7B,EAAE,UAAUhE,GAAEgE,EAAE,KAAKA,EAAE,SAASA,EAAE,MAAM,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,SAAY,EAAEA,EAAE,cAAP,GAAqB,CAACA,EAAE,UAAU,MAAMA,EAAE,UAAUA,EAAE,aAAaA,EAAE,aAAa,EAAEA,EAAE,MAAMA,EAAE,OAAOA,EAAE,QAAQ,EAAEA,EAAE,OAAOA,EAAE,OAAOA,EAAE,WAAWA,EAAE,OAAOA,EAAE,SAAS,CAAC,GAAGA,EAAE,eAAeC,EAAEM,EAAE,UAAUP,EAAE,EAAEA,EAAE,OAAOA,EAAE,QAAQ,CAAC,EAAEA,EAAE,YAAYA,EAAE,WAAW,GAAGC,IAAIgC,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,GAAsB,OAAO0B,CAAC,CAAC,OAAO1B,EAAE,OAAOA,EAAE,SAAS6B,EAAE,EAAE7B,EAAE,SAAS6B,EAAE,EAAE1B,KAAIQ,GAAGsB,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,EAAqBwB,EAAEY,GAAGpC,EAAE,WAAWiC,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,GAAsB0B,EAAEE,CAAC,CAAC,SAASe,GAAE3C,EAAEG,GAAE,CAAC,QAAQnE,GAAEiE,EAAEC,IAAI,CAAC,GAAGF,EAAE,UAAU0C,EAAE,CAAC,GAAGf,EAAE3B,CAAC,EAAEA,EAAE,UAAU0C,GAAGvC,KAAI/C,EAAE,OAAOsE,EAAE,GAAO1B,EAAE,YAAN,EAAgB,KAAK,CAAC,GAAGhE,GAAE,EAAEgE,EAAE,WAAW6B,IAAI7B,EAAE,OAAOA,EAAE,OAAOA,EAAE,WAAWA,EAAE,OAAOA,EAAE,SAAS6B,EAAE,CAAC,GAAG7B,EAAE,UAAUhE,GAAEgE,EAAE,KAAKA,EAAE,SAASA,EAAE,MAAM,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,UAAUA,EAAE,YAAYA,EAAE,aAAaA,EAAE,WAAWA,EAAE,YAAYA,EAAE,aAAa6B,EAAE,EAAM7F,KAAJ,GAAOgE,EAAE,YAAYA,EAAE,gBAAgBA,EAAE,SAAShE,IAAGgE,EAAE,OAAO0C,IAAI1C,EAAE,aAAa,EAAEA,EAAEhE,EAAC,EAAEgE,EAAE,cAAc,IAAQA,EAAE,WAAN,GAAgBA,EAAE,eAAe6B,GAAG,KAAK7B,EAAE,SAASA,EAAE,eAAeA,EAAE,aAAa6B,EAAE,IAAI7B,EAAE,aAAa6B,GAAG7B,EAAE,cAAcA,EAAE,YAAY,CAAC,IAAIE,EAAEF,EAAE,SAASA,EAAE,UAAU6B,EAAE5B,EAAEM,EAAE,UAAUP,EAAEA,EAAE,SAAS,EAAEA,EAAE,WAAWA,EAAE,YAAY6B,CAAC,EAAE7B,EAAE,WAAWA,EAAE,YAAY,EAAEA,EAAE,aAAa,EAAE,EAAEA,EAAE,UAAUE,IAAIF,EAAE,OAAOA,EAAE,OAAOA,EAAE,WAAWA,EAAE,OAAOA,EAAE,SAAS6B,EAAE,CAAC,GAAG7B,EAAE,UAAUhE,GAAEgE,EAAE,KAAKA,EAAE,SAASA,EAAE,MAAM,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,KAAKA,EAAE,KAAK,EAAEA,EAAE,UAAa,EAAEA,EAAE,aAAP,GAAoB,CAAC,GAAGA,EAAE,gBAAgB,EAAEA,EAAE,aAAa6B,EAAE,EAAE7B,EAAE,WAAWC,IAAIgC,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,GAAsB,OAAO0B,CAAC,SAAS1B,EAAE,iBAAiB,IAAIC,EAAEM,EAAE,UAAUP,EAAE,EAAEA,EAAE,OAAOA,EAAE,SAAS,CAAC,CAAC,IAAIiC,EAAEjC,EAAE,EAAE,EAAEA,EAAE,WAAWA,EAAE,YAAgBA,EAAE,KAAK,YAAX,EAAqB,OAAO0B,OAAO1B,EAAE,gBAAgB,EAAEA,EAAE,WAAWA,EAAE,WAAW,CAAC,OAAOA,EAAE,kBAAkBC,EAAEM,EAAE,UAAUP,EAAE,EAAEA,EAAE,OAAOA,EAAE,SAAS,CAAC,CAAC,EAAEA,EAAE,gBAAgB,GAAGA,EAAE,OAAOA,EAAE,SAAS6B,EAAE,EAAE7B,EAAE,SAAS6B,EAAE,EAAE1B,KAAIQ,GAAGsB,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,EAAqBwB,EAAEY,GAAGpC,EAAE,WAAWiC,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,GAAsB0B,EAAEE,CAAC,CAAC,SAASR,GAAEpB,EAAEG,GAAEnE,GAAEiE,EAAEC,EAAE,CAAC,KAAK,YAAYF,EAAE,KAAK,SAASG,GAAE,KAAK,YAAYnE,GAAE,KAAK,UAAUiE,EAAE,KAAK,KAAKC,CAAC,CAAC,SAAS0C,IAAG,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,EAAE,KAAK,YAAY,KAAK,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,KAAK,KAAK,QAAQ,EAAE,KAAK,OAAOhC,EAAE,KAAK,WAAW,GAAG,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,KAAK,KAAK,YAAY,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,IAAIN,EAAE,MAAM,EAAEW,CAAC,EAAE,KAAK,UAAU,IAAIX,EAAE,MAAM,GAAG,EAAED,EAAE,EAAE,EAAE,KAAK,QAAQ,IAAIC,EAAE,MAAM,GAAG,EAAEF,EAAE,EAAE,EAAE8e,GAAE,KAAK,SAAS,EAAEA,GAAE,KAAK,SAAS,EAAEA,GAAE,KAAK,OAAO,EAAE,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,IAAI5e,EAAE,MAAMa,EAAE,CAAC,EAAE,KAAK,KAAK,IAAIb,EAAE,MAAM,EAAExE,EAAE,CAAC,EAAEojB,GAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,IAAI5e,EAAE,MAAM,EAAExE,EAAE,CAAC,EAAEojB,GAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,SAASrc,GAAE7C,EAAE,CAAC,IAAIG,GAAE,OAAOH,GAAGA,EAAE,OAAOA,EAAE,SAASA,EAAE,UAAU,EAAEA,EAAE,UAAUE,GAAGC,GAAEH,EAAE,OAAO,QAAQ,EAAEG,GAAE,YAAY,EAAEA,GAAE,KAAK,IAAIA,GAAE,KAAK,CAACA,GAAE,MAAMA,GAAE,OAAOA,GAAE,KAAKkB,EAAEC,EAAEtB,EAAE,MAAUG,GAAE,OAAN,EAAW,EAAE,EAAEA,GAAE,WAAW/C,EAAEmD,EAAE,SAASJ,EAAC,EAAE7C,GAAG4E,GAAElC,EAAEgB,CAAC,CAAC,CAAC,SAAS+B,GAAE/C,EAAE,CAAC,IAAIG,GAAE0C,GAAE7C,CAAC,EAAE,OAAOG,KAAI7C,IAAG,SAAS0C,GAAE,CAACA,GAAE,YAAY,EAAEA,GAAE,OAAOkf,GAAElf,GAAE,IAAI,EAAEA,GAAE,eAAeU,EAAEV,GAAE,KAAK,EAAE,SAASA,GAAE,WAAWU,EAAEV,GAAE,KAAK,EAAE,YAAYA,GAAE,WAAWU,EAAEV,GAAE,KAAK,EAAE,YAAYA,GAAE,iBAAiBU,EAAEV,GAAE,KAAK,EAAE,UAAUA,GAAE,SAAS,EAAEA,GAAE,YAAY,EAAEA,GAAE,UAAU,EAAEA,GAAE,OAAO,EAAEA,GAAE,aAAaA,GAAE,YAAY6B,EAAE,EAAE7B,GAAE,gBAAgB,EAAEA,GAAE,MAAM,CAAC,GAAEA,EAAE,KAAK,EAAEG,EAAC,CAAC,SAAS6C,GAAEhD,EAAEG,GAAEnE,GAAEiE,EAAEC,EAAEpE,EAAE,CAAC,GAAG,CAACkE,EAAE,OAAOgB,EAAE,IAAIX,GAAE,EAAE,GAAGF,KAAIU,IAAIV,GAAE,GAAGF,EAAE,GAAGI,GAAE,EAAEJ,EAAE,CAACA,GAAG,GAAGA,IAAII,GAAE,EAAEJ,GAAG,IAAIC,EAAE,GAAGY,EAAEZ,GAAGlE,KAAI4E,GAAGX,EAAE,GAAG,GAAGA,GAAGE,GAAE,GAAG,EAAEA,IAAGrE,EAAE,GAAGiF,EAAEjF,EAAE,OAAOoG,GAAElC,EAAEgB,CAAC,EAAMf,IAAJ,IAAQA,EAAE,GAAG,IAAIG,GAAE,IAAIwC,GAAE,OAAO5C,EAAE,MAAMI,IAAG,KAAKJ,EAAEI,GAAE,KAAKC,GAAED,GAAE,OAAO,KAAKA,GAAE,OAAOH,EAAEG,GAAE,OAAO,GAAGA,GAAE,OAAOA,GAAE,OAAOA,GAAE,OAAO,EAAEA,GAAE,UAAUF,EAAE,EAAEE,GAAE,UAAU,GAAGA,GAAE,UAAUA,GAAE,UAAUA,GAAE,UAAU,EAAEA,GAAE,WAAW,CAAC,GAAGA,GAAE,UAAUyB,EAAE,GAAGA,GAAGzB,GAAE,OAAO,IAAIE,EAAE,KAAK,EAAEF,GAAE,MAAM,EAAEA,GAAE,KAAK,IAAIE,EAAE,MAAMF,GAAE,SAAS,EAAEA,GAAE,KAAK,IAAIE,EAAE,MAAMF,GAAE,MAAM,EAAEA,GAAE,YAAY,GAAGF,EAAE,EAAEE,GAAE,iBAAiB,EAAEA,GAAE,YAAYA,GAAE,YAAY,IAAIE,EAAE,KAAKF,GAAE,gBAAgB,EAAEA,GAAE,MAAM,EAAEA,GAAE,YAAYA,GAAE,MAAM,EAAEA,GAAE,YAAYA,GAAE,MAAMD,GAAEC,GAAE,SAAStE,EAAEsE,GAAE,OAAOpE,GAAE+G,GAAE/C,CAAC,CAAC,CAACU,EAAE,CAAC,IAAIU,GAAE,EAAE,EAAE,EAAE,EAAE,SAASpB,EAAEG,GAAE,CAAC,IAAInE,GAAE,MAAM,IAAIA,GAAEgE,EAAE,iBAAiB,IAAIhE,GAAEgE,EAAE,iBAAiB,KAAK,CAAC,GAAGA,EAAE,WAAW,EAAE,CAAC,GAAG2B,EAAE3B,CAAC,EAAMA,EAAE,YAAN,GAAiBG,KAAI/C,EAAE,OAAOsE,EAAE,GAAO1B,EAAE,YAAN,EAAgB,KAAK,CAACA,EAAE,UAAUA,EAAE,UAAUA,EAAE,UAAU,EAAE,IAAIC,EAAED,EAAE,YAAYhE,GAAoH,IAA1GgE,EAAE,WAAN,GAAgBA,EAAE,UAAUC,KAAKD,EAAE,UAAUA,EAAE,SAASC,EAAED,EAAE,SAASC,EAAEgC,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,IAAkCA,EAAE,SAASA,EAAE,aAAaA,EAAE,OAAO0C,IAAIT,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,GAAsB,OAAO0B,CAAC,CAAC,OAAO1B,EAAE,OAAO,EAAEG,KAAIQ,GAAGsB,EAAEjC,EAAE,EAAE,EAAMA,EAAE,KAAK,YAAX,EAAqBwB,EAAEY,IAAIpC,EAAE,SAASA,EAAE,cAAciC,EAAEjC,EAAE,EAAE,EAAEA,EAAE,KAAK,WAAW0B,EAAE,CAAC,EAAE,IAAIN,GAAE,EAAE,EAAE,EAAE,EAAE8B,CAAC,EAAE,IAAI9B,GAAE,EAAE,EAAE,GAAG,EAAE8B,CAAC,EAAE,IAAI9B,GAAE,EAAE,EAAE,GAAG,GAAG8B,CAAC,EAAE,IAAI9B,GAAE,EAAE,EAAE,GAAG,GAAGuB,EAAC,EAAE,IAAIvB,GAAE,EAAE,GAAG,GAAG,GAAGuB,EAAC,EAAE,IAAIvB,GAAE,EAAE,GAAG,IAAI,IAAIuB,EAAC,EAAE,IAAIvB,GAAE,EAAE,GAAG,IAAI,IAAIuB,EAAC,EAAE,IAAIvB,GAAE,GAAG,IAAI,IAAI,KAAKuB,EAAC,EAAE,IAAIvB,GAAE,GAAG,IAAI,IAAI,KAAKuB,EAAC,CAAC,EAAE3G,EAAE,YAAY,SAASgE,EAAEG,GAAE,CAAC,OAAO6C,GAAEhD,EAAEG,GAAES,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE5E,EAAE,aAAagH,GAAEhH,EAAE,aAAa+G,GAAE/G,EAAE,iBAAiB6G,GAAE7G,EAAE,iBAAiB,SAASgE,EAAEG,GAAE,CAAC,OAAOH,GAAGA,EAAE,MAAUA,EAAE,MAAM,OAAZ,EAAiBgB,GAAGhB,EAAE,MAAM,OAAOG,GAAE7C,GAAG0D,CAAC,EAAEhF,EAAE,QAAQ,SAASgE,EAAEG,GAAE,CAAC,IAAInE,GAAEiE,EAAEC,EAAEpE,EAAE,GAAG,CAACkE,GAAG,CAACA,EAAE,OAAO,EAAEG,IAAGA,GAAE,EAAE,OAAOH,EAAEkC,GAAElC,EAAEgB,CAAC,EAAEA,EAAE,GAAGf,EAAED,EAAE,MAAM,CAACA,EAAE,QAAQ,CAACA,EAAE,OAAWA,EAAE,WAAN,GAAsBC,EAAE,SAAR,KAAgBE,KAAIQ,EAAE,OAAOuB,GAAElC,EAAMA,EAAE,YAAN,EAAgB,GAAGgB,CAAC,EAAE,GAAGf,EAAE,KAAKD,EAAEhE,GAAEiE,EAAE,WAAWA,EAAE,WAAWE,GAAEF,EAAE,SAASoB,EAAE,GAAOpB,EAAE,OAAN,EAAWD,EAAE,MAAM,EAAEqC,EAAEpC,EAAE,EAAE,EAAEoC,EAAEpC,EAAE,GAAG,EAAEoC,EAAEpC,EAAE,CAAC,EAAEA,EAAE,QAAQoC,EAAEpC,GAAGA,EAAE,OAAO,KAAK,EAAE,IAAIA,EAAE,OAAO,KAAK,EAAE,IAAIA,EAAE,OAAO,MAAM,EAAE,IAAIA,EAAE,OAAO,KAAK,EAAE,IAAIA,EAAE,OAAO,QAAQ,GAAG,EAAE,EAAEoC,EAAEpC,EAAE,IAAIA,EAAE,OAAO,IAAI,EAAEoC,EAAEpC,EAAEA,EAAE,OAAO,MAAM,EAAE,GAAG,EAAEoC,EAAEpC,EAAEA,EAAE,OAAO,MAAM,GAAG,GAAG,EAAEoC,EAAEpC,EAAEA,EAAE,OAAO,MAAM,GAAG,GAAG,EAAEoC,EAAEpC,EAAMA,EAAE,QAAN,EAAY,EAAE,GAAGA,EAAE,UAAUA,EAAE,MAAM,EAAE,EAAE,CAAC,EAAEoC,EAAEpC,EAAE,IAAIA,EAAE,OAAO,EAAE,EAAEA,EAAE,OAAO,OAAOA,EAAE,OAAO,MAAM,SAASoC,EAAEpC,EAAE,IAAIA,EAAE,OAAO,MAAM,MAAM,EAAEoC,EAAEpC,EAAEA,EAAE,OAAO,MAAM,QAAQ,EAAE,GAAG,GAAGA,EAAE,OAAO,OAAOD,EAAE,MAAMS,EAAET,EAAE,MAAMC,EAAE,YAAYA,EAAE,QAAQ,CAAC,GAAGA,EAAE,QAAQ,EAAEA,EAAE,OAAO,KAAKoC,EAAEpC,EAAE,CAAC,EAAEoC,EAAEpC,EAAE,CAAC,EAAEoC,EAAEpC,EAAE,CAAC,EAAEoC,EAAEpC,EAAE,CAAC,EAAEoC,EAAEpC,EAAE,CAAC,EAAEoC,EAAEpC,EAAMA,EAAE,QAAN,EAAY,EAAE,GAAGA,EAAE,UAAUA,EAAE,MAAM,EAAE,EAAE,CAAC,EAAEoC,EAAEpC,EAAE,CAAC,EAAEA,EAAE,OAAOqB,OAAO,CAAC,IAAIjB,GAAEO,GAAGX,EAAE,OAAO,GAAG,IAAI,EAAEI,KAAI,GAAGJ,EAAE,UAAUA,EAAE,MAAM,EAAE,EAAEA,EAAE,MAAM,EAAE,EAAMA,EAAE,QAAN,EAAY,EAAE,IAAI,EAAMA,EAAE,WAAN,IAAiBI,IAAG,IAAIA,IAAG,GAAGA,GAAE,GAAGJ,EAAE,OAAOqB,EAAEG,EAAExB,EAAEI,EAAC,EAAMJ,EAAE,WAAN,IAAiBwB,EAAExB,EAAED,EAAE,QAAQ,EAAE,EAAEyB,EAAExB,EAAE,MAAMD,EAAE,KAAK,GAAGA,EAAE,MAAM,CAAC,CAAC,GAAQC,EAAE,SAAP,GAAc,GAAGA,EAAE,OAAO,MAAM,CAAC,IAAIC,EAAED,EAAE,QAAQA,EAAE,SAAS,MAAMA,EAAE,OAAO,MAAM,UAAUA,EAAE,UAAUA,EAAE,mBAAmBA,EAAE,OAAO,MAAMA,EAAE,QAAQC,IAAIF,EAAE,MAAMS,EAAET,EAAE,MAAMC,EAAE,YAAYA,EAAE,QAAQC,EAAEA,CAAC,GAAGiC,EAAEnC,CAAC,EAAEE,EAAED,EAAE,QAAQA,EAAE,UAAUA,EAAE,oBAAoBoC,EAAEpC,EAAE,IAAIA,EAAE,OAAO,MAAMA,EAAE,OAAO,CAAC,EAAEA,EAAE,UAAUA,EAAE,OAAO,MAAMA,EAAE,QAAQC,IAAIF,EAAE,MAAMS,EAAET,EAAE,MAAMC,EAAE,YAAYA,EAAE,QAAQC,EAAEA,CAAC,GAAGD,EAAE,UAAUA,EAAE,OAAO,MAAM,SAASA,EAAE,QAAQ,EAAEA,EAAE,OAAO,GAAG,MAAMA,EAAE,OAAO,GAAG,GAAQA,EAAE,SAAP,GAAc,GAAGA,EAAE,OAAO,KAAK,CAACC,EAAED,EAAE,QAAQ,EAAE,CAAC,GAAGA,EAAE,UAAUA,EAAE,mBAAmBA,EAAE,OAAO,MAAMA,EAAE,QAAQC,IAAIF,EAAE,MAAMS,EAAET,EAAE,MAAMC,EAAE,YAAYA,EAAE,QAAQC,EAAEA,CAAC,GAAGiC,EAAEnC,CAAC,EAAEE,EAAED,EAAE,QAAQA,EAAE,UAAUA,EAAE,kBAAkB,CAACnE,EAAE,EAAE,KAAK,CAACA,EAAEmE,EAAE,QAAQA,EAAE,OAAO,KAAK,OAAO,IAAIA,EAAE,OAAO,KAAK,WAAWA,EAAE,SAAS,EAAE,EAAEoC,EAAEpC,EAAEnE,CAAC,CAAC,OAAWA,IAAJ,GAAOmE,EAAE,OAAO,MAAMA,EAAE,QAAQC,IAAIF,EAAE,MAAMS,EAAET,EAAE,MAAMC,EAAE,YAAYA,EAAE,QAAQC,EAAEA,CAAC,GAAOpE,IAAJ,IAAQmE,EAAE,QAAQ,EAAEA,EAAE,OAAO,GAAG,MAAMA,EAAE,OAAO,GAAG,GAAQA,EAAE,SAAP,GAAc,GAAGA,EAAE,OAAO,QAAQ,CAACC,EAAED,EAAE,QAAQ,EAAE,CAAC,GAAGA,EAAE,UAAUA,EAAE,mBAAmBA,EAAE,OAAO,MAAMA,EAAE,QAAQC,IAAIF,EAAE,MAAMS,EAAET,EAAE,MAAMC,EAAE,YAAYA,EAAE,QAAQC,EAAEA,CAAC,GAAGiC,EAAEnC,CAAC,EAAEE,EAAED,EAAE,QAAQA,EAAE,UAAUA,EAAE,kBAAkB,CAACnE,EAAE,EAAE,KAAK,CAACA,EAAEmE,EAAE,QAAQA,EAAE,OAAO,QAAQ,OAAO,IAAIA,EAAE,OAAO,QAAQ,WAAWA,EAAE,SAAS,EAAE,EAAEoC,EAAEpC,EAAEnE,CAAC,CAAC,OAAWA,IAAJ,GAAOmE,EAAE,OAAO,MAAMA,EAAE,QAAQC,IAAIF,EAAE,MAAMS,EAAET,EAAE,MAAMC,EAAE,YAAYA,EAAE,QAAQC,EAAEA,CAAC,GAAOpE,IAAJ,IAAQmE,EAAE,OAAO,IAAI,MAAMA,EAAE,OAAO,IAAI,GAASA,EAAE,SAAR,MAAiBA,EAAE,OAAO,MAAMA,EAAE,QAAQ,EAAEA,EAAE,kBAAkBkC,EAAEnC,CAAC,EAAEC,EAAE,QAAQ,GAAGA,EAAE,mBAAmBoC,EAAEpC,EAAE,IAAID,EAAE,KAAK,EAAEqC,EAAEpC,EAAED,EAAE,OAAO,EAAE,GAAG,EAAEA,EAAE,MAAM,EAAEC,EAAE,OAAOqB,IAAIrB,EAAE,OAAOqB,GAAOrB,EAAE,UAAN,GAAe,GAAGkC,EAAEnC,CAAC,EAAMA,EAAE,YAAN,EAAgB,OAAOC,EAAE,WAAW,GAAG3C,UAAc0C,EAAE,WAAN,GAAgBuB,EAAEpB,EAAC,GAAGoB,EAAEvF,EAAC,GAAGmE,KAAIQ,EAAE,OAAOuB,GAAElC,EAAE,EAAE,EAAE,GAASC,EAAE,SAAR,KAAoBD,EAAE,WAAN,EAAe,OAAOkC,GAAElC,EAAE,EAAE,EAAE,GAAOA,EAAE,WAAN,GAAoBC,EAAE,YAAN,GAAiBE,KAAI/C,GAAS6C,EAAE,SAAR,IAAe,CAAC,IAAIG,GAAMH,EAAE,WAAN,GAAe,SAASD,GAAEG,EAAE,CAAC,QAAQnE,KAAI,CAAC,GAAOgE,GAAE,YAAN,IAAkB2B,EAAE3B,EAAC,EAAMA,GAAE,YAAN,GAAiB,CAAC,GAAGG,IAAI/C,EAAE,OAAOsE,EAAE,KAAK,CAAC,GAAG1B,GAAE,aAAa,EAAEhE,GAAEuE,EAAE,UAAUP,GAAE,EAAEA,GAAE,OAAOA,GAAE,QAAQ,CAAC,EAAEA,GAAE,YAAYA,GAAE,WAAWhE,KAAIiG,EAAEjC,GAAE,EAAE,EAAMA,GAAE,KAAK,YAAX,GAAsB,OAAO0B,CAAC,CAAC,OAAO1B,GAAE,OAAO,EAAEG,IAAIQ,GAAGsB,EAAEjC,GAAE,EAAE,EAAMA,GAAE,KAAK,YAAX,EAAqBwB,EAAEY,GAAGpC,GAAE,WAAWiC,EAAEjC,GAAE,EAAE,EAAMA,GAAE,KAAK,YAAX,GAAsB0B,EAAEE,CAAC,GAAE3B,EAAEE,EAAC,EAAMF,EAAE,WAAN,GAAe,SAASD,GAAEG,EAAE,CAAC,QAAQnE,GAAEiE,GAAEC,GAAEpE,GAAEuE,GAAEL,GAAE,SAAS,CAAC,GAAGA,GAAE,WAAWkB,EAAE,CAAC,GAAGS,EAAE3B,EAAC,EAAEA,GAAE,WAAWkB,GAAGf,IAAI/C,EAAE,OAAOsE,EAAE,GAAO1B,GAAE,YAAN,EAAgB,KAAK,CAAC,GAAGA,GAAE,aAAa,EAAEA,GAAE,WAAW6B,GAAG,EAAE7B,GAAE,WAAWC,GAAEI,GAAEH,GAAEF,GAAE,SAAS,CAAC,KAAKK,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,EAAE,CAACpE,GAAEkE,GAAE,SAASkB,EAAE,EAAE,OAAQjB,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGD,KAAII,GAAE,EAAEH,EAAC,GAAGA,GAAEpE,IAAGkE,GAAE,aAAakB,GAAGpF,GAAEoE,IAAGF,GAAE,aAAaA,GAAE,YAAYA,GAAE,aAAaA,GAAE,UAAU,CAAC,GAAGA,GAAE,cAAc6B,GAAG7F,GAAEuE,EAAE,UAAUP,GAAE,EAAEA,GAAE,aAAa6B,CAAC,EAAE7B,GAAE,WAAWA,GAAE,aAAaA,GAAE,UAAUA,GAAE,aAAaA,GAAE,aAAa,IAAIhE,GAAEuE,EAAE,UAAUP,GAAE,EAAEA,GAAE,OAAOA,GAAE,QAAQ,CAAC,EAAEA,GAAE,YAAYA,GAAE,YAAYhE,KAAIiG,EAAEjC,GAAE,EAAE,EAAMA,GAAE,KAAK,YAAX,GAAsB,OAAO0B,CAAC,CAAC,OAAO1B,GAAE,OAAO,EAAEG,IAAIQ,GAAGsB,EAAEjC,GAAE,EAAE,EAAMA,GAAE,KAAK,YAAX,EAAqBwB,EAAEY,GAAGpC,GAAE,WAAWiC,EAAEjC,GAAE,EAAE,EAAMA,GAAE,KAAK,YAAX,GAAsB0B,EAAEE,CAAC,GAAE3B,EAAEE,EAAC,EAAEO,EAAET,EAAE,KAAK,EAAE,KAAKA,EAAEE,EAAC,EAAE,GAAGC,KAAIoB,GAAGpB,KAAIgC,IAAInC,EAAE,OAAO,KAAKG,KAAIsB,GAAGtB,KAAIoB,EAAE,OAAWxB,EAAE,YAAN,IAAkBC,EAAE,WAAW,IAAI3C,EAAE,GAAG8C,KAAIwB,IAAQzB,KAAJ,EAAMI,EAAE,UAAUN,CAAC,EAAME,KAAJ,IAAQI,EAAE,iBAAiBN,EAAE,EAAE,EAAE,EAAE,EAAME,KAAJ,IAAQ+e,GAAEjf,EAAE,IAAI,EAAMA,EAAE,YAAN,IAAkBA,EAAE,SAAS,EAAEA,EAAE,YAAY,EAAEA,EAAE,OAAO,KAAKkC,EAAEnC,CAAC,EAAMA,EAAE,YAAN,GAAiB,OAAOC,EAAE,WAAW,GAAG3C,CAAC,CAAC,OAAO6C,KAAIQ,EAAErD,EAAE2C,EAAE,MAAM,EAAE,GAAOA,EAAE,OAAN,GAAYoC,EAAEpC,EAAE,IAAID,EAAE,KAAK,EAAEqC,EAAEpC,EAAED,EAAE,OAAO,EAAE,GAAG,EAAEqC,EAAEpC,EAAED,EAAE,OAAO,GAAG,GAAG,EAAEqC,EAAEpC,EAAED,EAAE,OAAO,GAAG,GAAG,EAAEqC,EAAEpC,EAAE,IAAID,EAAE,QAAQ,EAAEqC,EAAEpC,EAAED,EAAE,UAAU,EAAE,GAAG,EAAEqC,EAAEpC,EAAED,EAAE,UAAU,GAAG,GAAG,EAAEqC,EAAEpC,EAAED,EAAE,UAAU,GAAG,GAAG,IAAIyB,EAAExB,EAAED,EAAE,QAAQ,EAAE,EAAEyB,EAAExB,EAAE,MAAMD,EAAE,KAAK,GAAGmC,EAAEnC,CAAC,EAAE,EAAEC,EAAE,OAAOA,EAAE,KAAK,CAACA,EAAE,MAAUA,EAAE,UAAN,EAAc3C,EAAE,EAAE,EAAEtB,EAAE,WAAW,SAASgE,EAAE,CAAC,IAAIG,GAAE,OAAOH,GAAGA,EAAE,OAAOG,GAAEH,EAAE,MAAM,UAAUqB,GAAQlB,KAAL,IAAaA,KAAL,IAAaA,KAAL,IAAcA,KAAN,KAASA,KAAImB,GAASnB,KAAN,IAAQ+B,GAAElC,EAAEgB,CAAC,GAAGhB,EAAE,MAAM,KAAKG,KAAImB,EAAEY,GAAElC,EAAE,EAAE,EAAE1C,GAAG0D,CAAC,EAAEhF,EAAE,qBAAqB,SAASgE,EAAEG,GAAE,CAAC,IAAInE,GAAEiE,EAAEC,EAAEpE,EAAEuE,GAAED,GAAEM,GAAEH,EAAEnD,GAAE+C,GAAE,OAAgC,GAAtB,CAACH,GAAG,CAACA,EAAE,QAAuBlE,GAAGE,GAAEgE,EAAE,OAAO,QAAnB,GAA8BlE,IAAJ,GAAOE,GAAE,SAASqF,GAAGrF,GAAE,UAAU,OAAOgF,EAAE,IAAQlF,IAAJ,IAAQkE,EAAE,MAAM,EAAEA,EAAE,MAAMG,GAAE/C,GAAE,CAAC,GAAGpB,GAAE,KAAK,EAAEoB,IAAGpB,GAAE,SAAaF,IAAJ,IAAQojB,GAAEljB,GAAE,IAAI,EAAEA,GAAE,SAAS,EAAEA,GAAE,YAAY,EAAEA,GAAE,OAAO,GAAGuE,EAAE,IAAID,EAAE,KAAKtE,GAAE,MAAM,EAAEsE,EAAE,SAASC,EAAEJ,GAAE/C,GAAEpB,GAAE,OAAOA,GAAE,OAAO,CAAC,EAAEmE,GAAEI,EAAEnD,GAAEpB,GAAE,QAAQqE,GAAEL,EAAE,SAASI,GAAEJ,EAAE,QAAQU,GAAEV,EAAE,MAAMA,EAAE,SAAS5C,GAAE4C,EAAE,QAAQ,EAAEA,EAAE,MAAMG,GAAEwB,EAAE3F,EAAC,EAAEA,GAAE,WAAW6F,GAAG,CAAC,IAAI5B,EAAEjE,GAAE,SAASkE,EAAElE,GAAE,WAAW6F,EAAE,GAAG7F,GAAE,OAAOA,GAAE,OAAOA,GAAE,WAAWA,GAAE,OAAOiE,EAAE4B,EAAE,CAAC,GAAG7F,GAAE,UAAUA,GAAE,KAAKiE,EAAEjE,GAAE,MAAM,EAAEA,GAAE,KAAKA,GAAE,KAAK,EAAEA,GAAE,KAAKA,GAAE,KAAK,EAAEiE,EAAEA,IAAI,EAAEC,GAAG,CAAClE,GAAE,SAASiE,EAAEjE,GAAE,UAAU6F,EAAE,EAAEF,EAAE3F,EAAC,CAAC,CAAC,OAAOA,GAAE,UAAUA,GAAE,UAAUA,GAAE,YAAYA,GAAE,SAASA,GAAE,OAAOA,GAAE,UAAUA,GAAE,UAAU,EAAEA,GAAE,aAAaA,GAAE,YAAY6F,EAAE,EAAE7F,GAAE,gBAAgB,EAAEgE,EAAE,QAAQI,GAAEJ,EAAE,MAAMU,GAAEV,EAAE,SAASK,GAAErE,GAAE,KAAKF,EAAEwB,CAAC,EAAEtB,EAAE,YAAY,oCAAoC,EAAE,CAAC,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEmE,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,UAAU,CAAC,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,KAAK,KAAK,UAAU,EAAE,KAAK,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEA,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,SAASH,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAEC,EAAEpE,EAAEuE,EAAED,EAAEM,EAAEH,EAAEnD,EAAEuD,EAAEL,EAAEE,EAAEC,EAAEnD,EAAE0D,EAAEH,EAAEE,EAAEH,EAAEE,EAAEG,EAAEE,EAAEU,EAAEX,EAAEwB,EAAErB,EAAErF,EAAEgE,EAAE,MAAMC,EAAED,EAAE,QAAQ0C,EAAE1C,EAAE,MAAME,EAAED,GAAGD,EAAE,SAAS,GAAGlE,EAAEkE,EAAE,SAASqB,EAAErB,EAAE,OAAOK,EAAEvE,GAAGqE,EAAEH,EAAE,WAAWI,EAAEtE,GAAGkE,EAAE,UAAU,KAAKU,EAAE1E,EAAE,KAAKuE,EAAEvE,EAAE,MAAMoB,EAAEpB,EAAE,MAAM2E,EAAE3E,EAAE,MAAMsE,EAAEtE,EAAE,OAAOwE,EAAExE,EAAE,KAAKyE,EAAEzE,EAAE,KAAKsB,EAAEtB,EAAE,QAAQgF,EAAEhF,EAAE,SAAS6E,GAAG,GAAG7E,EAAE,SAAS,EAAE+E,GAAG,GAAG/E,EAAE,UAAU,EAAEgE,EAAE,EAAE,CAACS,EAAE,KAAKD,GAAGkC,EAAEzC,GAAG,GAAGQ,EAAEA,GAAG,EAAED,GAAGkC,EAAEzC,GAAG,GAAGQ,EAAEA,GAAG,GAAGG,EAAEtD,EAAEkD,EAAEK,CAAC,EAAEV,EAAE,OAAO,CAAC,GAAGK,KAAKM,EAAEF,IAAI,GAAGH,GAAGK,GAAOA,EAAEF,IAAI,GAAG,OAAd,EAAmBS,EAAEvF,GAAG,EAAE,MAAM8E,MAAM,CAAC,GAAG,EAAE,GAAGE,GAAG,CAAC,IAAO,GAAGA,IAAP,EAAU,CAACF,EAAEtD,GAAG,MAAMsD,IAAIJ,GAAG,GAAGM,GAAG,EAAE,EAAE,SAASX,CAAC,CAAC,GAAG,GAAGW,EAAE,CAAC9E,EAAE,KAAK,GAAG,MAAMgE,CAAC,CAACA,EAAE,IAAI,8BAA8BhE,EAAE,KAAK,GAAG,MAAMgE,CAAC,CAACiB,EAAE,MAAML,GAAGE,GAAG,MAAML,EAAEK,IAAIN,GAAGkC,EAAEzC,GAAG,GAAGQ,EAAEA,GAAG,GAAGQ,GAAGT,GAAG,GAAGM,GAAG,EAAEN,KAAKM,EAAEL,GAAGK,GAAGL,EAAE,KAAKD,GAAGkC,EAAEzC,GAAG,GAAGQ,EAAEA,GAAG,EAAED,GAAGkC,EAAEzC,GAAG,GAAGQ,EAAEA,GAAG,GAAGG,EAAEI,EAAER,EAAEO,CAAC,EAAE/E,EAAE,OAAO,CAAC,GAAGwE,KAAKM,EAAEF,IAAI,GAAGH,GAAGK,EAAE,EAAE,IAAIA,EAAEF,IAAI,GAAG,MAAM,CAAC,IAAO,GAAGE,IAAP,EAAU,CAACF,EAAEI,GAAG,MAAMJ,IAAIJ,GAAG,GAAGM,GAAG,EAAE,EAAE,SAAS9E,CAAC,CAACgE,EAAE,IAAI,wBAAwBhE,EAAE,KAAK,GAAG,MAAMgE,CAAC,CAAC,GAAGmB,EAAE,MAAMP,EAAEH,GAAGK,GAAG,MAAMN,GAAGkC,EAAEzC,GAAG,GAAGQ,GAAGA,GAAG,GAAGK,IAAIN,GAAGkC,EAAEzC,GAAG,GAAGQ,EAAEA,GAAG,IAAIC,GAAGS,GAAGX,GAAG,GAAGM,GAAG,GAAG,CAACd,EAAE,IAAI,gCAAgChE,EAAE,KAAK,GAAG,MAAMgE,CAAC,CAAC,GAAGQ,KAAKM,EAAEL,GAAGK,GAAGA,EAAEhF,EAAEuE,GAAGc,EAAE,CAAC,GAAG/D,GAAG0D,EAAEK,EAAEL,IAAI9E,EAAE,KAAK,CAACgE,EAAE,IAAI,gCAAgChE,EAAE,KAAK,GAAG,MAAMgE,CAAC,CAAC,GAAGkB,EAAEZ,GAAGuB,EAAE,KAAKlB,GAAG,GAAGkB,GAAGtB,EAAEO,EAAEA,EAAEG,EAAE,CAAC,IAAIA,GAAGH,EAAEO,EAAEvF,GAAG,EAAEwE,EAAEuB,GAAG,EAAE,EAAEf,GAAG,CAACe,EAAE/F,EAAEqF,EAAED,EAAEG,CAAC,UAAUV,EAAEG,GAAG,GAAGe,GAAGtB,EAAEI,EAAEG,GAAGA,GAAGH,GAAGM,EAAE,CAAC,IAAIA,GAAGH,EAAEO,EAAEvF,GAAG,EAAEwE,EAAEuB,GAAG,EAAE,EAAEf,GAAG,CAAC,GAAGe,EAAE,EAAElB,EAAEM,EAAE,CAAC,IAAIA,GAAGH,EAAEH,EAAEU,EAAEvF,GAAG,EAAEwE,EAAEuB,GAAG,EAAE,EAAEf,GAAG,CAACe,EAAE/F,EAAEqF,EAAED,EAAEG,CAAC,CAAC,UAAUQ,GAAGlB,EAAEG,EAAEA,EAAEG,EAAE,CAAC,IAAIA,GAAGH,EAAEO,EAAEvF,GAAG,EAAEwE,EAAEuB,GAAG,EAAE,EAAEf,GAAG,CAACe,EAAE/F,EAAEqF,EAAED,EAAEG,CAAC,CAAC,KAAK,EAAEJ,GAAGI,EAAEvF,GAAG,EAAEoF,EAAEW,GAAG,EAAER,EAAEvF,GAAG,EAAEoF,EAAEW,GAAG,EAAER,EAAEvF,GAAG,EAAEoF,EAAEW,GAAG,EAAEZ,GAAG,EAAEA,IAAII,EAAEvF,GAAG,EAAEoF,EAAEW,GAAG,EAAE,EAAEZ,IAAII,EAAEvF,GAAG,EAAEoF,EAAEW,GAAG,GAAG,KAAK,CAAC,IAAIA,EAAE/F,EAAEqF,EAAEE,EAAEvF,GAAG,EAAEuF,EAAEQ,GAAG,EAAER,EAAEvF,GAAG,EAAEuF,EAAEQ,GAAG,EAAER,EAAEvF,GAAG,EAAEuF,EAAEQ,GAAG,EAAE,GAAGZ,GAAG,IAAI,CAACA,IAAII,EAAEvF,GAAG,EAAEuF,EAAEQ,GAAG,EAAE,EAAEZ,IAAII,EAAEvF,GAAG,EAAEuF,EAAEQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO5B,EAAEC,GAAGpE,EAAEsE,GAAGH,GAAGgB,EAAER,GAAG,EAAED,IAAI,IAAIC,GAAGQ,GAAG,IAAI,EAAEjB,EAAE,QAAQC,EAAED,EAAE,SAASlE,EAAEkE,EAAE,SAASC,EAAEC,EAAEA,EAAED,EAAE,EAAE,GAAGA,EAAEC,GAAGF,EAAE,UAAUlE,EAAEsE,EAAEA,EAAEtE,EAAE,IAAI,KAAKA,EAAEsE,GAAGpE,EAAE,KAAKwE,EAAExE,EAAE,KAAKyE,CAAC,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEN,EAAEnE,EAAE,CAAc,IAAI4F,EAAE,EAAE,iBAAiB,EAAEJ,EAAE,EAAE,WAAW,EAAEY,EAAE,EAAE,SAAS,EAAEF,EAAE,EAAE,WAAW,EAAEX,EAAE,EAAE,YAAY,EAAE2d,EAAE,EAAE/c,EAAE,EAAEF,EAAE,EAAEI,EAAE,GAAGZ,EAAE,EAAExB,EAAE,IAAIC,EAAE,IAAI,SAAS8B,EAAEhC,EAAE,CAAC,OAAOA,IAAI,GAAG,MAAMA,IAAI,EAAE,SAAS,MAAMA,IAAI,KAAK,IAAIA,IAAI,GAAG,CAAC,SAASlE,GAAG,CAAC,KAAK,KAAK,EAAE,KAAK,KAAK,GAAG,KAAK,KAAK,EAAE,KAAK,SAAS,GAAG,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,KAAK,KAAK,SAAS,KAAK,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI8F,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,IAAIA,EAAE,MAAM,GAAG,EAAE,KAAK,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,SAASvB,EAAEL,EAAE,CAAC,IAAIG,EAAE,OAAOH,GAAGA,EAAE,OAAOG,EAAEH,EAAE,MAAMA,EAAE,SAASA,EAAE,UAAUG,EAAE,MAAM,EAAEH,EAAE,IAAI,GAAGG,EAAE,OAAOH,EAAE,MAAM,EAAEG,EAAE,MAAMA,EAAE,KAAKsB,EAAEtB,EAAE,KAAK,EAAEA,EAAE,SAAS,EAAEA,EAAE,KAAK,MAAMA,EAAE,KAAK,KAAKA,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEA,EAAE,QAAQA,EAAE,OAAO,IAAIyB,EAAE,MAAM3B,CAAC,EAAEE,EAAE,SAASA,EAAE,QAAQ,IAAIyB,EAAE,MAAM1B,CAAC,EAAEC,EAAE,KAAK,EAAEA,EAAE,KAAK,GAAG8B,GAAGI,CAAC,CAAC,SAASjC,EAAEJ,EAAE,CAAC,IAAIG,EAAE,OAAOH,GAAGA,EAAE,QAAQG,EAAEH,EAAE,OAAO,MAAM,EAAEG,EAAE,MAAM,EAAEA,EAAE,MAAM,EAAEE,EAAEL,CAAC,GAAGqC,CAAC,CAAC,SAAS3B,EAAEV,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAE,OAAOD,GAAGA,EAAE,OAAOC,EAAED,EAAE,MAAMG,EAAE,GAAGnE,EAAE,EAAEmE,EAAE,CAACA,IAAInE,EAAE,GAAGmE,GAAG,GAAGA,EAAE,KAAKA,GAAG,KAAKA,IAAIA,EAAE,GAAG,GAAGA,GAAGkC,GAAUpC,EAAE,SAAT,MAAiBA,EAAE,QAAQE,IAAIF,EAAE,OAAO,MAAMA,EAAE,KAAKjE,EAAEiE,EAAE,MAAME,EAAEC,EAAEJ,CAAC,IAAIqC,CAAC,CAAC,SAAS9B,EAAEP,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAE,OAAOD,GAAGC,EAAE,IAAInE,GAAGkE,EAAE,MAAMC,GAAG,OAAO,MAAMjE,EAAE0E,EAAEV,EAAEG,CAAC,KAAK8B,IAAIjC,EAAE,MAAM,MAAMhE,GAAGqG,CAAC,CAAC,IAAIjF,EAAEuD,EAAEL,EAAE,GAAG,SAASqB,EAAE3B,EAAE,CAAC,GAAGM,EAAE,CAAC,IAAIH,EAAE,IAAI/C,EAAE,IAAIwE,EAAE,MAAM,GAAG,EAAEjB,EAAE,IAAIiB,EAAE,MAAM,EAAE,EAAEzB,EAAE,EAAEA,EAAE,KAAKH,EAAE,KAAKG,GAAG,EAAE,EAAE,KAAKA,EAAE,KAAKH,EAAE,KAAKG,GAAG,EAAE,EAAE,KAAKA,EAAE,KAAKH,EAAE,KAAKG,GAAG,EAAE,EAAE,KAAKA,EAAE,KAAKH,EAAE,KAAKG,GAAG,EAAE,EAAE,IAAIoB,EAAE2d,EAAElf,EAAE,KAAK,EAAE,IAAI5C,EAAE,EAAE4C,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAEG,EAAE,EAAEA,EAAE,IAAIH,EAAE,KAAKG,GAAG,EAAE,EAAEoB,EAAEY,EAAEnC,EAAE,KAAK,EAAE,GAAGW,EAAE,EAAEX,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAEM,EAAE,EAAE,CAACN,EAAE,QAAQ5C,EAAE4C,EAAE,QAAQ,EAAEA,EAAE,SAASW,EAAEX,EAAE,SAAS,CAAC,CAAC,SAASkD,EAAElD,EAAEG,EAAEnE,EAAEiE,EAAE,CAAC,IAAIC,EAAEpE,EAAEkE,EAAE,MAAM,OAAclE,EAAE,SAAT,OAAkBA,EAAE,MAAM,GAAGA,EAAE,MAAMA,EAAE,MAAM,EAAEA,EAAE,MAAM,EAAEA,EAAE,OAAO,IAAI8F,EAAE,KAAK9F,EAAE,KAAK,GAAGmE,GAAGnE,EAAE,OAAO8F,EAAE,SAAS9F,EAAE,OAAOqE,EAAEnE,EAAEF,EAAE,MAAMA,EAAE,MAAM,CAAC,EAAEA,EAAE,MAAM,EAAEA,EAAE,MAAMA,EAAE,QAAQmE,GAAGC,EAAEpE,EAAE,MAAMA,EAAE,SAASoE,EAAED,GAAG2B,EAAE,SAAS9F,EAAE,OAAOqE,EAAEnE,EAAEiE,EAAEC,EAAEpE,EAAE,KAAK,GAAGmE,GAAGC,IAAI0B,EAAE,SAAS9F,EAAE,OAAOqE,EAAEnE,EAAEiE,EAAEA,EAAE,CAAC,EAAEnE,EAAE,MAAMmE,EAAEnE,EAAE,MAAMA,EAAE,QAAQA,EAAE,OAAOoE,EAAEpE,EAAE,QAAQA,EAAE,QAAQA,EAAE,MAAM,GAAGA,EAAE,MAAMA,EAAE,QAAQA,EAAE,OAAOoE,KAAK,CAAC,CAAClE,EAAE,aAAaoE,EAAEpE,EAAE,cAAc0E,EAAE1E,EAAE,iBAAiBqE,EAAErE,EAAE,YAAY,SAASgE,EAAE,CAAC,OAAOO,EAAEP,EAAE,EAAE,CAAC,EAAEhE,EAAE,aAAauE,EAAEvE,EAAE,QAAQ,SAASgE,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAEC,EAAEpE,EAAEuE,GAAED,EAAEM,GAAEH,EAAEnD,EAAEuD,EAAEL,EAAEE,EAAEC,EAAEnD,EAAE0D,GAAEH,GAAEE,GAAEH,GAAEE,GAAEG,GAAEE,EAAEU,GAAEX,GAAEwB,EAAErB,EAAE,EAAEC,EAAE,IAAIM,EAAE,KAAK,CAAC,EAAEF,GAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC1B,GAAG,CAACA,EAAE,OAAO,CAACA,EAAE,QAAQ,CAACA,EAAE,OAAWA,EAAE,WAAN,EAAe,OAAOqC,GAAQrG,EAAEgE,EAAE,OAAO,OAAjB,KAAwBhE,EAAE,KAAK,IAAIqE,GAAEL,EAAE,SAASE,EAAEF,EAAE,OAAOU,GAAEV,EAAE,UAAUlE,EAAEkE,EAAE,QAAQC,EAAED,EAAE,MAAMI,EAAEJ,EAAE,SAASO,EAAEvE,EAAE,KAAKoB,EAAEpB,EAAE,KAAK2E,EAAEP,EAAEE,EAAEI,GAAEmB,GAAEI,EAAEjC,EAAE,OAAO,OAAOhE,EAAE,KAAI,CAAE,KAAKyF,EAAE,GAAOzF,EAAE,OAAN,EAAW,CAACA,EAAE,KAAK,GAAG,KAAK,CAAC,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAG,EAAEpB,EAAE,MAAcuE,IAAR,MAAU,CAACe,EAAEtF,EAAE,MAAM,CAAC,EAAE,IAAIuE,EAAEe,EAAE,CAAC,EAAEf,IAAI,EAAE,IAAIvE,EAAE,MAAMoG,EAAEpG,EAAE,MAAMsF,EAAE,EAAE,CAAC,EAAElE,EAAEmD,EAAE,EAAEvE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAGA,EAAE,MAAM,EAAEA,EAAE,OAAOA,EAAE,KAAK,KAAK,IAAI,EAAE,EAAEA,EAAE,UAAU,IAAIuE,IAAI,IAAIA,GAAG,IAAI,GAAG,CAACP,EAAE,IAAI,yBAAyBhE,EAAE,KAAK,GAAG,KAAK,CAAC,IAAO,GAAGuE,IAAP,EAAU,CAACP,EAAE,IAAI,6BAA6BhE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAGoB,GAAG,EAAE+D,EAAE,GAAG,IAAIZ,KAAK,IAAQvE,EAAE,QAAN,EAAYA,EAAE,MAAMmF,UAAUA,EAAEnF,EAAE,MAAM,CAACgE,EAAE,IAAI,sBAAsBhE,EAAE,KAAK,GAAG,KAAK,CAACA,EAAE,KAAK,GAAGmF,EAAEnB,EAAE,MAAMhE,EAAE,MAAM,EAAEA,EAAE,KAAK,IAAIuE,EAAE,GAAG,GAAGnD,EAAEmD,EAAE,EAAE,MAAM,IAAK,GAAE,KAAKnD,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAGpB,EAAE,MAAMuE,GAAM,IAAIvE,EAAE,QAAV,EAAiB,CAACgE,EAAE,IAAI,6BAA6BhE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,MAAMA,EAAE,MAAM,CAACgE,EAAE,IAAI,2BAA2BhE,EAAE,KAAK,GAAG,KAAK,CAACA,EAAE,OAAOA,EAAE,KAAK,KAAKuE,GAAG,EAAE,GAAG,IAAIvE,EAAE,QAAQsF,EAAE,CAAC,EAAE,IAAIf,EAAEe,EAAE,CAAC,EAAEf,IAAI,EAAE,IAAIvE,EAAE,MAAMoG,EAAEpG,EAAE,MAAMsF,EAAE,EAAE,CAAC,GAAGlE,EAAEmD,EAAE,EAAEvE,EAAE,KAAK,EAAE,IAAK,GAAE,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACpB,EAAE,OAAOA,EAAE,KAAK,KAAKuE,GAAG,IAAIvE,EAAE,QAAQsF,EAAE,CAAC,EAAE,IAAIf,EAAEe,EAAE,CAAC,EAAEf,IAAI,EAAE,IAAIe,EAAE,CAAC,EAAEf,IAAI,GAAG,IAAIe,EAAE,CAAC,EAAEf,IAAI,GAAG,IAAIvE,EAAE,MAAMoG,EAAEpG,EAAE,MAAMsF,EAAE,EAAE,CAAC,GAAGlE,EAAEmD,EAAE,EAAEvE,EAAE,KAAK,EAAE,IAAK,GAAE,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACpB,EAAE,OAAOA,EAAE,KAAK,OAAO,IAAIuE,EAAEvE,EAAE,KAAK,GAAGuE,GAAG,GAAG,IAAIvE,EAAE,QAAQsF,EAAE,CAAC,EAAE,IAAIf,EAAEe,EAAE,CAAC,EAAEf,IAAI,EAAE,IAAIvE,EAAE,MAAMoG,EAAEpG,EAAE,MAAMsF,EAAE,EAAE,CAAC,GAAGlE,EAAEmD,EAAE,EAAEvE,EAAE,KAAK,EAAE,IAAK,GAAE,GAAG,KAAKA,EAAE,MAAM,CAAC,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACpB,EAAE,OAAOuE,EAAEvE,EAAE,OAAOA,EAAE,KAAK,UAAUuE,GAAG,IAAIvE,EAAE,QAAQsF,EAAE,CAAC,EAAE,IAAIf,EAAEe,EAAE,CAAC,EAAEf,IAAI,EAAE,IAAIvE,EAAE,MAAMoG,EAAEpG,EAAE,MAAMsF,EAAE,EAAE,CAAC,GAAGlE,EAAEmD,EAAE,CAAC,MAAMvE,EAAE,OAAOA,EAAE,KAAK,MAAM,MAAMA,EAAE,KAAK,EAAE,IAAK,GAAE,GAAG,KAAKA,EAAE,QAAQoE,GAAGI,EAAExE,EAAE,UAAUwE,EAAEJ,GAAGI,IAAIxE,EAAE,OAAOmF,EAAEnF,EAAE,KAAK,UAAUA,EAAE,OAAOA,EAAE,KAAK,QAAQA,EAAE,KAAK,MAAM,IAAI,MAAMA,EAAE,KAAK,SAAS,GAAG4F,EAAE,SAAS5F,EAAE,KAAK,MAAMiE,EAAEnE,EAAE0E,EAAEW,CAAC,GAAG,IAAInF,EAAE,QAAQA,EAAE,MAAMoG,EAAEpG,EAAE,MAAMiE,EAAEO,EAAE1E,CAAC,GAAGsE,GAAGI,EAAE1E,GAAG0E,EAAExE,EAAE,QAAQwE,GAAGxE,EAAE,QAAQ,MAAMgE,EAAEhE,EAAE,OAAO,EAAEA,EAAE,KAAK,EAAE,IAAK,GAAE,GAAG,KAAKA,EAAE,MAAM,CAAC,GAAOoE,IAAJ,EAAM,MAAMJ,EAAE,IAAIQ,EAAE,EAAEW,EAAElB,EAAEnE,EAAE0E,GAAG,EAAExE,EAAE,MAAMmF,GAAGnF,EAAE,OAAO,QAAQA,EAAE,KAAK,MAAM,OAAO,aAAamF,CAAC,GAAGA,GAAGX,EAAEJ,GAAG,CAAC,GAAG,IAAIpE,EAAE,QAAQA,EAAE,MAAMoG,EAAEpG,EAAE,MAAMiE,EAAEO,EAAE1E,CAAC,GAAGsE,GAAGI,EAAE1E,GAAG0E,EAAEW,EAAE,MAAMnB,CAAC,MAAMhE,EAAE,OAAOA,EAAE,KAAK,KAAK,MAAMA,EAAE,OAAO,EAAEA,EAAE,KAAK,EAAE,IAAK,GAAE,GAAG,KAAKA,EAAE,MAAM,CAAC,GAAOoE,IAAJ,EAAM,MAAMJ,EAAE,IAAIQ,EAAE,EAAEW,EAAElB,EAAEnE,EAAE0E,GAAG,EAAExE,EAAE,MAAMmF,GAAGnF,EAAE,OAAO,QAAQA,EAAE,KAAK,SAAS,OAAO,aAAamF,CAAC,GAAGA,GAAGX,EAAEJ,GAAG,CAAC,GAAG,IAAIpE,EAAE,QAAQA,EAAE,MAAMoG,EAAEpG,EAAE,MAAMiE,EAAEO,EAAE1E,CAAC,GAAGsE,GAAGI,EAAE1E,GAAG0E,EAAEW,EAAE,MAAMnB,CAAC,MAAMhE,EAAE,OAAOA,EAAE,KAAK,QAAQ,MAAMA,EAAE,KAAK,EAAE,IAAK,GAAE,GAAG,IAAIA,EAAE,MAAM,CAAC,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAGmD,KAAK,MAAMvE,EAAE,OAAO,CAACgE,EAAE,IAAI,sBAAsBhE,EAAE,KAAK,GAAG,KAAK,CAACoB,EAAEmD,EAAE,CAAC,CAACvE,EAAE,OAAOA,EAAE,KAAK,KAAKA,EAAE,OAAO,EAAE,EAAEA,EAAE,KAAK,KAAK,IAAIgE,EAAE,MAAMhE,EAAE,MAAM,EAAEA,EAAE,KAAK,GAAG,MAAM,IAAK,IAAG,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC4C,EAAE,MAAMhE,EAAE,MAAMgG,EAAEzB,CAAC,EAAEnD,EAAEmD,EAAE,EAAEvE,EAAE,KAAK,GAAG,IAAK,IAAG,GAAOA,EAAE,WAAN,EAAe,OAAOgE,EAAE,SAASK,GAAEL,EAAE,UAAUU,GAAEV,EAAE,QAAQlE,EAAEkE,EAAE,SAASI,EAAEpE,EAAE,KAAKuE,EAAEvE,EAAE,KAAKoB,EAAE,EAAE4C,EAAE,MAAMhE,EAAE,MAAM,EAAEA,EAAE,KAAK,GAAG,IAAK,IAAG,GAAOmE,IAAJ,GAAWA,IAAJ,EAAM,MAAMH,EAAE,IAAK,IAAG,GAAGhE,EAAE,KAAK,CAACuE,KAAK,EAAEnD,EAAEA,GAAG,EAAEA,EAAEpB,EAAE,KAAK,GAAG,KAAK,CAAC,KAAKoB,EAAE,GAAG,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,OAAOpB,EAAE,KAAK,EAAEuE,EAAEnD,GAAG,EAAE,GAAGmD,KAAK,GAAE,CAAE,IAAK,GAAEvE,EAAE,KAAK,GAAG,MAAM,IAAK,GAAE,GAAG2F,EAAE3F,CAAC,EAAEA,EAAE,KAAK,GAAOmE,IAAJ,EAAM,MAAMI,KAAK,EAAEnD,GAAG,EAAE,MAAM4C,EAAE,IAAK,GAAEhE,EAAE,KAAK,GAAG,MAAM,IAAK,GAAEgE,EAAE,IAAI,qBAAqBhE,EAAE,KAAK,EAAE,CAACuE,KAAK,EAAEnD,GAAG,EAAE,MAAM,IAAK,IAAG,IAAImD,KAAK,EAAEnD,EAAEA,GAAG,EAAEA,EAAEA,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,IAAI,MAAMmD,KAAKA,IAAI,GAAG,OAAO,CAACP,EAAE,IAAI,+BAA+BhE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAGA,EAAE,OAAO,MAAMuE,EAAEnD,EAAEmD,EAAE,EAAEvE,EAAE,KAAK,GAAOmE,IAAJ,EAAM,MAAMH,EAAE,IAAK,IAAGhE,EAAE,KAAK,GAAG,IAAK,IAAG,GAAGwE,EAAExE,EAAE,OAAO,CAAC,GAAGoE,EAAEI,IAAIA,EAAEJ,GAAGM,GAAEF,IAAIA,EAAEE,IAAOF,IAAJ,EAAM,MAAMR,EAAE4B,EAAE,SAAS1B,EAAED,EAAEnE,EAAE0E,EAAEH,EAAC,EAAED,GAAGI,EAAE1E,GAAG0E,EAAEE,IAAGF,EAAEH,IAAGG,EAAExE,EAAE,QAAQwE,EAAE,KAAK,CAACxE,EAAE,KAAK,GAAG,MAAM,IAAK,IAAG,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAGpB,EAAE,KAAK,KAAK,GAAGuE,GAAGA,KAAK,EAAEnD,GAAG,EAAEpB,EAAE,MAAM,GAAG,GAAGuE,GAAGA,KAAK,EAAEnD,GAAG,EAAEpB,EAAE,MAAM,GAAG,GAAGuE,GAAGA,KAAK,EAAEnD,GAAG,EAAE,IAAIpB,EAAE,MAAM,GAAGA,EAAE,MAAM,CAACgE,EAAE,IAAI,sCAAsChE,EAAE,KAAK,GAAG,KAAK,CAACA,EAAE,KAAK,EAAEA,EAAE,KAAK,GAAG,IAAK,IAAG,KAAKA,EAAE,KAAKA,EAAE,OAAO,CAAC,KAAKoB,EAAE,GAAG,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACpB,EAAE,KAAK0F,GAAE1F,EAAE,MAAM,CAAC,EAAE,EAAEuE,EAAEA,KAAK,EAAEnD,GAAG,CAAC,CAAC,KAAKpB,EAAE,KAAK,IAAIA,EAAE,KAAK0F,GAAE1F,EAAE,MAAM,CAAC,EAAE,EAAE,GAAGA,EAAE,QAAQA,EAAE,OAAOA,EAAE,QAAQ,EAAEkF,GAAE,CAAC,KAAKlF,EAAE,OAAO,EAAE6F,GAAEN,EAAE,EAAEvF,EAAE,KAAK,EAAE,GAAGA,EAAE,QAAQ,EAAEA,EAAE,KAAKkF,EAAC,EAAElF,EAAE,QAAQkF,GAAE,KAAKW,GAAE,CAAC7B,EAAE,IAAI,2BAA2BhE,EAAE,KAAK,GAAG,KAAK,CAACA,EAAE,KAAK,EAAEA,EAAE,KAAK,GAAG,IAAK,IAAG,KAAKA,EAAE,KAAKA,EAAE,KAAKA,EAAE,OAAO,CAAC,KAAK6E,IAAGQ,EAAErF,EAAE,QAAQuE,GAAG,GAAGvE,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI+E,GAAE,MAAMM,EAAE,GAAGL,GAAEK,IAAI,KAAKjE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAG2D,GAAE,GAAGR,KAAKS,GAAE5D,GAAG4D,GAAEhF,EAAE,KAAKA,EAAE,MAAM,EAAE+E,OAAM,CAAC,GAAQA,KAAL,GAAO,CAAC,IAAI2B,EAAE1B,GAAE,EAAE5D,EAAEsF,GAAG,CAAC,GAAOtC,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAGmD,KAAKS,GAAE5D,GAAG4D,GAAMhF,EAAE,OAAN,EAAW,CAACgE,EAAE,IAAI,4BAA4BhE,EAAE,KAAK,GAAG,KAAK,CAACmF,EAAEnF,EAAE,KAAKA,EAAE,KAAK,CAAC,EAAEwE,EAAE,GAAG,EAAED,GAAGA,KAAK,EAAEnD,GAAG,CAAC,SAAc2D,KAAL,GAAO,CAAC,IAAI2B,EAAE1B,GAAE,EAAE5D,EAAEsF,GAAG,CAAC,GAAOtC,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACA,GAAG4D,GAAEG,EAAE,EAAEX,EAAE,GAAG,GAAGD,KAAKS,KAAIT,KAAK,EAAEnD,GAAG,CAAC,KAAK,CAAC,IAAIsF,EAAE1B,GAAE,EAAE5D,EAAEsF,GAAG,CAAC,GAAOtC,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACA,GAAG4D,GAAEG,EAAE,EAAEX,EAAE,IAAI,KAAKD,KAAKS,KAAIT,KAAK,EAAEnD,GAAG,CAAC,CAAC,GAAGpB,EAAE,KAAKwE,EAAExE,EAAE,KAAKA,EAAE,MAAM,CAACgE,EAAE,IAAI,4BAA4BhE,EAAE,KAAK,GAAG,KAAK,CAAC,KAAKwE,KAAKxE,EAAE,KAAKA,EAAE,MAAM,EAAEmF,CAAC,CAAC,CAAC,GAAQnF,EAAE,OAAP,GAAY,MAAM,GAAOA,EAAE,KAAK,GAAG,IAAd,EAAgB,CAACgE,EAAE,IAAI,uCAAuChE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAGA,EAAE,QAAQ,EAAEkF,GAAE,CAAC,KAAKlF,EAAE,OAAO,EAAE6F,GAAEN,EAAE2d,EAAEljB,EAAE,KAAK,EAAEA,EAAE,KAAKA,EAAE,QAAQ,EAAEA,EAAE,KAAKkF,EAAC,EAAElF,EAAE,QAAQkF,GAAE,KAAKW,GAAE,CAAC7B,EAAE,IAAI,8BAA8BhE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAGA,EAAE,SAAS,EAAEA,EAAE,SAASA,EAAE,QAAQkF,GAAE,CAAC,KAAKlF,EAAE,QAAQ,EAAE6F,GAAEN,EAAEY,EAAEnG,EAAE,KAAKA,EAAE,KAAKA,EAAE,MAAMA,EAAE,SAAS,EAAEA,EAAE,KAAKkF,EAAC,EAAElF,EAAE,SAASkF,GAAE,KAAKW,GAAE,CAAC7B,EAAE,IAAI,wBAAwBhE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAGA,EAAE,KAAK,GAAOmE,IAAJ,EAAM,MAAMH,EAAE,IAAK,IAAGhE,EAAE,KAAK,GAAG,IAAK,IAAG,GAAG,GAAGoE,GAAG,KAAKM,GAAE,CAACV,EAAE,SAASK,GAAEL,EAAE,UAAUU,GAAEV,EAAE,QAAQlE,EAAEkE,EAAE,SAASI,EAAEpE,EAAE,KAAKuE,EAAEvE,EAAE,KAAKoB,EAAE8E,EAAElC,EAAEM,CAAC,EAAED,GAAEL,EAAE,SAASE,EAAEF,EAAE,OAAOU,GAAEV,EAAE,UAAUlE,EAAEkE,EAAE,QAAQC,EAAED,EAAE,MAAMI,EAAEJ,EAAE,SAASO,EAAEvE,EAAE,KAAKoB,EAAEpB,EAAE,KAAUA,EAAE,OAAP,KAAcA,EAAE,KAAK,IAAI,KAAK,CAAC,IAAIA,EAAE,KAAK,EAAE6E,IAAGQ,EAAErF,EAAE,QAAQuE,GAAG,GAAGvE,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI+E,GAAE,MAAMM,EAAE,GAAGL,GAAEK,IAAI,KAAKjE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAGyD,KAAO,IAAIA,KAAR,EAAW,CAAC,IAAID,GAAEI,GAAEF,GAAED,GAAEI,GAAEF,GAAEF,IAAGQ,EAAErF,EAAE,QAAQiF,KAAIV,GAAG,GAAGK,GAAEE,IAAG,IAAIF,GAAE,KAAK,GAAG,IAAIG,GAAE,MAAMM,EAAE,EAAET,IAAGI,GAAEK,IAAI,KAAKjE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACmD,KAAKK,GAAExD,GAAGwD,GAAE5E,EAAE,MAAM4E,EAAC,CAAC,GAAGL,KAAKS,GAAE5D,GAAG4D,GAAEhF,EAAE,MAAMgF,GAAEhF,EAAE,OAAO+E,GAAMF,KAAJ,EAAM,CAAC7E,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG6E,GAAE,CAAC7E,EAAE,KAAK,GAAGA,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG6E,GAAE,CAACb,EAAE,IAAI,8BAA8BhE,EAAE,KAAK,GAAG,KAAK,CAACA,EAAE,MAAM,GAAG6E,GAAE7E,EAAE,KAAK,GAAG,IAAK,IAAG,GAAGA,EAAE,MAAM,CAAC,IAAI0G,EAAE1G,EAAE,MAAMoB,EAAEsF,GAAG,CAAC,GAAOtC,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACpB,EAAE,QAAQuE,GAAG,GAAGvE,EAAE,OAAO,EAAEuE,KAAKvE,EAAE,MAAMoB,GAAGpB,EAAE,MAAMA,EAAE,MAAMA,EAAE,KAAK,CAACA,EAAE,IAAIA,EAAE,OAAOA,EAAE,KAAK,GAAG,IAAK,IAAG,KAAK6E,IAAGQ,EAAErF,EAAE,SAASuE,GAAG,GAAGvE,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI+E,GAAE,MAAMM,EAAE,GAAGL,GAAEK,IAAI,KAAKjE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,IAAO,IAAIyD,KAAR,EAAW,CAAC,IAAID,GAAEI,GAAEF,GAAED,GAAEI,GAAEF,GAAEF,IAAGQ,EAAErF,EAAE,SAASiF,KAAIV,GAAG,GAAGK,GAAEE,IAAG,IAAIF,GAAE,KAAK,GAAG,IAAIG,GAAE,MAAMM,EAAE,EAAET,IAAGI,GAAEK,IAAI,KAAKjE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACmD,KAAKK,GAAExD,GAAGwD,GAAE5E,EAAE,MAAM4E,EAAC,CAAC,GAAGL,KAAKS,GAAE5D,GAAG4D,GAAEhF,EAAE,MAAMgF,GAAE,GAAGH,GAAE,CAACb,EAAE,IAAI,wBAAwBhE,EAAE,KAAK,GAAG,KAAK,CAACA,EAAE,OAAO+E,GAAE/E,EAAE,MAAM,GAAG6E,GAAE7E,EAAE,KAAK,GAAG,IAAK,IAAG,GAAGA,EAAE,MAAM,CAAC,IAAI0G,EAAE1G,EAAE,MAAMoB,EAAEsF,GAAG,CAAC,GAAOtC,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAACpB,EAAE,QAAQuE,GAAG,GAAGvE,EAAE,OAAO,EAAEuE,KAAKvE,EAAE,MAAMoB,GAAGpB,EAAE,MAAMA,EAAE,MAAMA,EAAE,KAAK,CAAC,GAAGA,EAAE,OAAOA,EAAE,KAAK,CAACgE,EAAE,IAAI,gCAAgChE,EAAE,KAAK,GAAG,KAAK,CAACA,EAAE,KAAK,GAAG,IAAK,IAAG,GAAO0E,KAAJ,EAAM,MAAMV,EAAE,GAAGQ,EAAEF,EAAEI,GAAE1E,EAAE,OAAOwE,EAAE,CAAC,IAAIA,EAAExE,EAAE,OAAOwE,GAAGxE,EAAE,OAAOA,EAAE,KAAK,CAACgE,EAAE,IAAI,gCAAgChE,EAAE,KAAK,GAAG,KAAK,CAACyE,EAAED,EAAExE,EAAE,OAAOwE,GAAGxE,EAAE,MAAMA,EAAE,MAAMwE,GAAGxE,EAAE,MAAMwE,EAAEA,EAAExE,EAAE,SAASwE,EAAExE,EAAE,QAAQsB,EAAEtB,EAAE,MAAM,MAAMsB,EAAE4C,EAAEO,EAAEJ,GAAErE,EAAE,OAAOwE,EAAExE,EAAE,OAAO,IAAI0E,GAAEF,IAAIA,EAAEE,IAAGA,IAAGF,EAAExE,EAAE,QAAQwE,EAAEN,EAAEG,IAAG,EAAE/C,EAAEmD,GAAG,EAAE,EAAED,GAAG,CAAKxE,EAAE,SAAN,IAAeA,EAAE,KAAK,IAAI,MAAM,IAAK,IAAG,GAAO0E,KAAJ,EAAM,MAAMV,EAAEE,EAAEG,IAAG,EAAErE,EAAE,OAAO0E,KAAI1E,EAAE,KAAK,GAAG,MAAM,IAAK,IAAG,GAAGA,EAAE,KAAK,CAAC,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAGkD,GAAGI,GAAEV,EAAE,WAAWM,EAAEtE,EAAE,OAAOsE,EAAEA,IAAIN,EAAE,MAAMhE,EAAE,MAAMA,EAAE,MAAMoG,EAAEpG,EAAE,MAAMkE,EAAEI,EAAED,GAAEC,CAAC,EAAEkB,EAAExF,EAAE,MAAMkE,EAAEI,EAAED,GAAEC,CAAC,GAAGA,EAAEI,IAAG1E,EAAE,MAAMuE,EAAEyB,EAAEzB,CAAC,KAAKvE,EAAE,MAAM,CAACgE,EAAE,IAAI,uBAAuBhE,EAAE,KAAK,GAAG,KAAK,CAACoB,EAAEmD,EAAE,CAAC,CAACvE,EAAE,KAAK,GAAG,IAAK,IAAG,GAAGA,EAAE,MAAMA,EAAE,MAAM,CAAC,KAAKoB,EAAE,IAAI,CAAC,GAAOgD,IAAJ,EAAM,MAAMJ,EAAEI,IAAIG,GAAGN,EAAEnE,GAAG,GAAGsB,EAAEA,GAAG,CAAC,CAAC,GAAGmD,KAAK,WAAWvE,EAAE,OAAO,CAACgE,EAAE,IAAI,yBAAyBhE,EAAE,KAAK,GAAG,KAAK,CAACoB,EAAEmD,EAAE,CAAC,CAACvE,EAAE,KAAK,GAAG,IAAK,IAAG6F,GAAE,EAAE,MAAM7B,EAAE,IAAK,IAAG6B,GAAE,GAAG,MAAM7B,EAAE,IAAK,IAAG,MAAM,GAAG,IAAK,IAAG,QAAQ,OAAOqC,CAAC,CAAC,OAAOrC,EAAE,SAASK,GAAEL,EAAE,UAAUU,GAAEV,EAAE,QAAQlE,EAAEkE,EAAE,SAASI,EAAEpE,EAAE,KAAKuE,EAAEvE,EAAE,KAAKoB,GAAGpB,EAAE,OAAOsE,IAAIN,EAAE,WAAWhE,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAQmE,IAAJ,KAAS+C,EAAElD,EAAEA,EAAE,OAAOA,EAAE,SAASM,EAAEN,EAAE,SAAS,GAAGhE,EAAE,KAAK,GAAG,KAAK2E,GAAGX,EAAE,SAASM,GAAGN,EAAE,UAAUA,EAAE,UAAUW,EAAEX,EAAE,WAAWM,EAAEtE,EAAE,OAAOsE,EAAEtE,EAAE,MAAMsE,IAAIN,EAAE,MAAMhE,EAAE,MAAMA,EAAE,MAAMoG,EAAEpG,EAAE,MAAMkE,EAAEI,EAAEN,EAAE,SAASM,CAAC,EAAEkB,EAAExF,EAAE,MAAMkE,EAAEI,EAAEN,EAAE,SAASM,CAAC,GAAGN,EAAE,UAAUhE,EAAE,MAAMA,EAAE,KAAK,GAAG,IAASA,EAAE,OAAP,GAAY,IAAI,IAASA,EAAE,OAAP,IAAkBA,EAAE,OAAP,GAAY,IAAI,IAAO2E,GAAH,GAAUL,IAAJ,GAAWH,IAAJ,IAAQ0B,KAAII,IAAIJ,GAAE,IAAIA,GAAE,EAAE7F,EAAE,WAAW,SAASgE,EAAE,CAAC,GAAG,CAACA,GAAG,CAACA,EAAE,MAAM,OAAOqC,EAAE,IAAIlC,EAAEH,EAAE,MAAM,OAAOG,EAAE,SAASA,EAAE,OAAO,MAAMH,EAAE,MAAM,KAAKiC,CAAC,EAAEjG,EAAE,iBAAiB,SAASgE,EAAEG,EAAE,CAAC,IAAInE,EAAE,OAAOgE,GAAGA,EAAE,OAAU,GAAGhE,EAAEgE,EAAE,OAAO,OAAlB,EAAwBqC,IAAIrG,EAAE,KAAKmE,GAAG,KAAK,GAAG8B,GAAGI,CAAC,EAAErG,EAAE,qBAAqB,SAASgE,EAAEG,EAAE,CAAC,IAAInE,EAAEiE,EAAEE,EAAE,OAAO,OAAOH,GAAGA,EAAE,OAAWhE,EAAEgE,EAAE,OAAO,OAAhB,GAA2BhE,EAAE,OAAP,GAAYqG,EAAOrG,EAAE,OAAP,IAAawF,EAAE,EAAErB,EAAEF,EAAE,CAAC,IAAIjE,EAAE,MAAM,GAAGkH,EAAElD,EAAEG,EAAEF,EAAEA,CAAC,GAAGjE,EAAE,KAAK,GAAG,KAAKA,EAAE,SAAS,EAAEiG,GAAGI,CAAC,EAAErG,EAAE,YAAY,oCAAoC,EAAE,CAAC,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEmE,EAAEnE,EAAE,CAAc,IAAIkjB,EAAE,EAAE,iBAAiB,EAAE/c,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,EAAEF,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,EAAE,CAAC,EAAEZ,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEtB,EAAE,QAAQ,SAASH,EAAEG,EAAEnE,EAAEiE,EAAEC,EAAEpE,EAAEuE,EAAED,EAAE,CAAC,IAAIM,EAAEH,EAAEnD,EAAEuD,EAAEL,EAAEE,EAAEC,EAAEnD,EAAE0D,EAAEH,EAAET,EAAE,KAAKW,EAAE,EAAEH,EAAE,EAAEE,EAAE,EAAEG,EAAE,EAAEE,EAAE,EAAEU,EAAE,EAAEX,GAAE,EAAEwB,EAAE,EAAErB,GAAE,EAAEC,EAAE,EAAEI,EAAE,KAAKE,EAAE,EAAEJ,EAAE,IAAI0d,EAAE,MAAM,EAAE,EAAE9c,EAAE,IAAI8c,EAAE,MAAM,EAAE,EAAEhd,EAAE,KAAKX,EAAE,EAAE,IAAIR,EAAE,EAAEA,GAAG,GAAGA,IAAIS,EAAET,CAAC,EAAE,EAAE,IAAIH,EAAE,EAAEA,EAAEX,EAAEW,IAAIY,EAAErB,EAAEnE,EAAE4E,CAAC,CAAC,IAAI,IAAIO,EAAEN,EAAEI,EAAE,GAAG,GAAGA,GAAOO,EAAEP,CAAC,IAAP,EAASA,IAAI,CAAC,GAAGA,EAAEE,IAAIA,EAAEF,GAAOA,IAAJ,EAAM,OAAOf,EAAEpE,GAAG,EAAE,SAASoE,EAAEpE,GAAG,EAAE,SAASsE,EAAE,KAAK,EAAE,EAAE,IAAIU,EAAE,EAAEA,EAAEG,GAAOO,EAAEV,CAAC,IAAP,EAASA,IAAI,CAAC,IAAIK,EAAEL,IAAIK,EAAEL,GAAGC,EAAE2B,EAAE,EAAE3B,GAAG,GAAGA,IAAI,GAAG2B,IAAI,GAAGA,GAAGlB,EAAET,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE2B,IAAQ1C,IAAJ,GAAWiB,IAAJ,GAAO,MAAM,GAAG,IAAImB,EAAE,CAAC,EAAE,EAAErB,EAAE,EAAEA,EAAE,GAAGA,IAAIqB,EAAErB,EAAE,CAAC,EAAEqB,EAAErB,CAAC,EAAES,EAAET,CAAC,EAAE,IAAIH,EAAE,EAAEA,EAAEX,EAAEW,IAAQT,EAAEnE,EAAE4E,CAAC,IAAT,IAAaP,EAAE+B,EAAEjC,EAAEnE,EAAE4E,CAAC,CAAC,GAAG,EAAEA,GAAG,GAAGJ,EAAMR,IAAJ,GAAO0B,EAAEQ,EAAE7B,EAAE,IAAQL,IAAJ,GAAO0B,EAAES,EAAEP,GAAG,IAAIM,EAAED,EAAEV,GAAG,IAAI,MAAMG,EAAEW,EAAEH,EAAET,EAAE,IAAIV,EAAED,EAAER,EAAExE,EAAEoF,GAAEN,EAAEU,EAAE,EAAElE,EAAE,GAAGuD,GAAGU,GAAE,IAAIQ,EAAEV,IAAI,EAAMnB,IAAJ,GAAO,IAAIqB,IAAOrB,IAAJ,GAAO,IAAIqB,GAAE,MAAO,GAAE,OAAO,CAAC,IAAIZ,EAAEM,EAAEG,GAAEF,EAAEX,EAAEO,CAAC,EAAEJ,GAAGlD,EAAE,EAAE+C,EAAEO,CAAC,GAAGP,EAAEO,CAAC,EAAEJ,GAAGlD,EAAE4E,EAAEX,EAAElB,EAAEO,CAAC,CAAC,EAAEc,EAAEE,EAAEvB,EAAEO,CAAC,CAAC,IAAItD,EAAE,GAAG,GAAGoD,EAAE,GAAGK,EAAEG,GAAEJ,EAAEP,EAAE,GAAGsB,EAAE3B,EAAEI,GAAGgB,GAAGJ,KAAIX,GAAGG,EAAE,EAAED,GAAG,GAAGnD,GAAG,GAAG0D,EAAE,EAAMT,IAAJ,GAAO,CAAC,IAAIG,EAAE,GAAGK,EAAE,EAAEO,EAAEZ,GAAGA,IAAI,EAAE,GAAOA,IAAJ,GAAOY,GAAGZ,EAAE,EAAEY,GAAGZ,GAAGY,EAAE,EAAEV,IAAO,EAAEY,EAAET,CAAC,GAAR,EAAU,CAAC,GAAGA,IAAIE,EAAE,MAAMF,EAAEZ,EAAEnE,EAAEqE,EAAEO,CAAC,CAAC,CAAC,CAAC,GAAGO,EAAEJ,IAAIO,EAAEX,KAAKvD,EAAE,CAAC,IAAQ8D,KAAJ,IAAQA,GAAEC,GAAGb,GAAGQ,EAAE4B,EAAE,IAAIb,EAAEd,EAAEG,IAAGW,EAAEX,GAAED,GAAG,GAAGyB,GAAGlB,EAAEK,EAAEX,EAAC,IAAI,IAAIW,IAAIa,IAAI,EAAE,GAAGrB,IAAG,GAAGQ,EAAM7B,IAAJ,GAAO,IAAIqB,IAAOrB,IAAJ,GAAO,IAAIqB,GAAE,MAAO,GAAEnB,EAAE9C,EAAEkE,EAAEX,CAAC,EAAEQ,GAAG,GAAGU,GAAG,GAAGvB,EAAExE,EAAE,CAAC,CAAC,CAAC,OAAWwF,IAAJ,IAAQpB,EAAEI,EAAEgB,CAAC,EAAEP,EAAEG,IAAG,GAAG,IAAI,GAAG,GAAGd,EAAE,KAAKe,EAAE,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEhB,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,CAAC,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,KAAK,aAAa,KAAK,eAAe,KAAK,aAAa,KAAK,sBAAsB,KAAK,eAAe,KAAK,sBAAsB,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEA,EAAEnE,EAAE,CAAc,IAAIkE,EAAE,EAAE,iBAAiB,EAAEE,EAAE,EAAEM,EAAE,EAAE,SAAST,EAAED,EAAE,CAAC,QAAQG,EAAEH,EAAE,OAAO,GAAG,EAAEG,GAAGH,EAAEG,CAAC,EAAE,CAAC,CAAC,IAAIrE,EAAE,EAAEuE,EAAE,GAAGE,EAAE,IAAInD,EAAEmD,EAAE,EAAEF,EAAEM,EAAE,GAAGL,EAAE,GAAGU,EAAE,EAAE5D,EAAE,EAAEyD,EAAE,GAAGL,EAAE,GAAGC,EAAE,EAAEnD,EAAE,IAAIyD,EAAE,GAAGH,EAAE,GAAGE,EAAE,GAAGG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEX,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAEwB,EAAE,IAAI,MAAM,GAAGtF,EAAE,EAAE,EAAE6C,EAAEyC,CAAC,EAAE,IAAIrB,EAAE,IAAI,MAAM,EAAEV,CAAC,EAAEV,EAAEoB,CAAC,EAAE,IAAIC,EAAE,IAAI,MAAM,GAAG,EAAErB,EAAEqB,CAAC,EAAE,IAAII,EAAE,IAAI,MAAM,GAAG,EAAEzB,EAAEyB,CAAC,EAAE,IAAIE,EAAE,IAAI,MAAMvB,CAAC,EAAEJ,EAAE2B,CAAC,EAAE,IAAIJ,EAAEY,EAAEF,GAAEX,EAAE,IAAI,MAAMZ,CAAC,EAAE,SAASue,GAAElf,EAAEG,EAAEnE,GAAEiE,GAAEC,GAAE,CAAC,KAAK,YAAYF,EAAE,KAAK,WAAWG,EAAE,KAAK,WAAWnE,GAAE,KAAK,MAAMiE,GAAE,KAAK,WAAWC,GAAE,KAAK,UAAUF,GAAGA,EAAE,MAAM,CAAC,SAASmC,EAAEnC,EAAEG,EAAE,CAAC,KAAK,SAASH,EAAE,KAAK,SAAS,EAAE,KAAK,UAAUG,CAAC,CAAC,SAAS8B,EAAEjC,EAAE,CAAC,OAAOA,EAAE,IAAIsB,EAAEtB,CAAC,EAAEsB,EAAE,KAAKtB,IAAI,EAAE,CAAC,CAAC,SAASqC,EAAErC,EAAEG,EAAE,CAACH,EAAE,YAAYA,EAAE,SAAS,EAAE,IAAIG,EAAEH,EAAE,YAAYA,EAAE,SAAS,EAAEG,IAAI,EAAE,GAAG,CAAC,SAASsB,EAAEzB,EAAEG,EAAEnE,GAAE,CAACgE,EAAE,SAASQ,EAAExE,IAAGgE,EAAE,QAAQG,GAAGH,EAAE,SAAS,MAAMqC,EAAErC,EAAEA,EAAE,MAAM,EAAEA,EAAE,OAAOG,GAAGK,EAAER,EAAE,SAASA,EAAE,UAAUhE,GAAEwE,IAAIR,EAAE,QAAQG,GAAGH,EAAE,SAAS,MAAMA,EAAE,UAAUhE,GAAE,CAAC,SAAS,EAAEgE,EAAEG,EAAEnE,GAAE,CAACyF,EAAEzB,EAAEhE,GAAE,EAAEmE,CAAC,EAAEnE,GAAE,EAAEmE,EAAE,CAAC,CAAC,CAAC,CAAC,SAASwB,EAAE3B,EAAEG,EAAE,CAAC,QAAQnE,GAAE,EAAEA,IAAG,EAAEgE,EAAEA,KAAK,EAAEhE,KAAI,EAAE,EAAE,EAAEmE,GAAG,CAAC,OAAOnE,KAAI,CAAC,CAAC,SAASkH,EAAElD,EAAEG,EAAEnE,GAAE,CAAC,IAAIiE,GAAEC,GAAEpE,EAAE,IAAI,MAAM+E,EAAE,CAAC,EAAER,GAAE,EAAE,IAAIJ,GAAE,EAAEA,IAAGY,EAAEZ,KAAInE,EAAEmE,EAAC,EAAEI,GAAEA,GAAErE,GAAEiE,GAAE,CAAC,GAAG,EAAE,IAAIC,GAAE,EAAEA,IAAGC,EAAED,KAAI,CAAC,IAAIE,GAAEJ,EAAE,EAAEE,GAAE,CAAC,EAAME,KAAJ,IAAQJ,EAAE,EAAEE,EAAC,EAAEyB,EAAE7F,EAAEsE,EAAC,IAAIA,EAAC,EAAE,CAAC,CAAC,SAASuC,GAAE3C,EAAE,CAAC,IAAIG,EAAE,IAAIA,EAAE,EAAEA,EAAE/C,EAAE+C,IAAIH,EAAE,UAAU,EAAEG,CAAC,EAAE,EAAE,IAAIA,EAAE,EAAEA,EAAEQ,EAAER,IAAIH,EAAE,UAAU,EAAEG,CAAC,EAAE,EAAE,IAAIA,EAAE,EAAEA,EAAEG,EAAEH,IAAIH,EAAE,QAAQ,EAAEG,CAAC,EAAE,EAAEH,EAAE,UAAU,EAAE1C,CAAC,EAAE,EAAE0C,EAAE,QAAQA,EAAE,WAAW,EAAEA,EAAE,SAASA,EAAE,QAAQ,CAAC,CAAC,SAASoB,GAAEpB,EAAE,CAAC,EAAEA,EAAE,SAASqC,EAAErC,EAAEA,EAAE,MAAM,EAAE,EAAEA,EAAE,WAAWA,EAAE,YAAYA,EAAE,SAAS,EAAEA,EAAE,QAAQA,EAAE,OAAO,EAAEA,EAAE,SAAS,CAAC,CAAC,SAAS4C,GAAE5C,EAAEG,EAAEnE,GAAEiE,GAAE,CAAC,IAAIC,GAAE,EAAEC,EAAErE,EAAE,EAAEE,GAAE,OAAOgE,EAAEE,EAAC,EAAEF,EAAElE,CAAC,GAAGkE,EAAEE,EAAC,IAAIF,EAAElE,CAAC,GAAGmE,GAAEE,CAAC,GAAGF,GAAEjE,EAAC,CAAC,CAAC,SAAS6G,GAAE7C,EAAEG,EAAEnE,GAAE,CAAC,QAAQiE,GAAED,EAAE,KAAKhE,EAAC,EAAEkE,GAAElE,IAAG,EAAEkE,IAAGF,EAAE,WAAWE,GAAEF,EAAE,UAAU4C,GAAEzC,EAAEH,EAAE,KAAKE,GAAE,CAAC,EAAEF,EAAE,KAAKE,EAAC,EAAEF,EAAE,KAAK,GAAGE,KAAI,CAAC0C,GAAEzC,EAAEF,GAAED,EAAE,KAAKE,EAAC,EAAEF,EAAE,KAAK,IAAIA,EAAE,KAAKhE,EAAC,EAAEgE,EAAE,KAAKE,EAAC,EAAElE,GAAEkE,GAAEA,KAAI,EAAEF,EAAE,KAAKhE,EAAC,EAAEiE,EAAC,CAAC,SAAS8C,GAAE/C,EAAEG,EAAEnE,GAAE,CAAC,IAAIiE,GAAEC,GAAEpE,EAAEuE,GAAED,GAAE,EAAE,GAAOJ,EAAE,WAAN,EAAe,KAAKC,GAAED,EAAE,YAAYA,EAAE,MAAM,EAAEI,EAAC,GAAG,EAAEJ,EAAE,YAAYA,EAAE,MAAM,EAAEI,GAAE,CAAC,EAAEF,GAAEF,EAAE,YAAYA,EAAE,MAAMI,EAAC,EAAEA,KAAQH,KAAJ,EAAM,EAAED,EAAEE,GAAEC,CAAC,GAAG,EAAEH,GAAGlE,EAAE4F,EAAExB,EAAC,GAAGK,EAAE,EAAEJ,CAAC,GAAOE,GAAEY,EAAEnF,CAAC,KAAV,GAAc2F,EAAEzB,EAAEE,IAAG0B,EAAE9F,CAAC,EAAEuE,EAAC,EAAE,EAAEL,EAAElE,EAAEmG,EAAE,EAAEhC,EAAC,EAAEjE,EAAC,GAAOqE,GAAEc,EAAErF,CAAC,KAAV,GAAc2F,EAAEzB,EAAEC,IAAGsB,EAAEzF,CAAC,EAAEuE,EAAC,GAAGD,GAAEJ,EAAE,UAAU,CAAC,EAAEA,EAAE1C,EAAE6C,CAAC,CAAC,CAAC,SAAS6C,GAAEhD,EAAEG,EAAE,CAAC,IAAInE,GAAEiE,GAAEC,GAAEpE,EAAEqE,EAAE,SAASE,GAAEF,EAAE,UAAU,YAAYC,GAAED,EAAE,UAAU,UAAUO,GAAEP,EAAE,UAAU,MAAMI,GAAE,GAAG,IAAIP,EAAE,SAAS,EAAEA,EAAE,SAASgB,EAAEhF,GAAE,EAAEA,GAAE0E,GAAE1E,KAAQF,EAAE,EAAEE,EAAC,IAAT,GAAYgE,EAAE,KAAK,EAAEA,EAAE,QAAQ,EAAEO,GAAEvE,GAAEgE,EAAE,MAAMhE,EAAC,EAAE,GAAGF,EAAE,EAAEE,GAAE,CAAC,EAAE,EAAE,KAAKgE,EAAE,SAAS,GAAGlE,EAAE,GAAGoE,GAAEF,EAAE,KAAK,EAAEA,EAAE,QAAQ,EAAEO,GAAE,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAEP,EAAE,MAAME,EAAC,EAAE,EAAEF,EAAE,UAAUI,KAAIJ,EAAE,YAAYK,GAAE,EAAEH,GAAE,CAAC,GAAG,IAAIC,EAAE,SAASI,GAAEvE,GAAEgE,EAAE,UAAU,EAAE,GAAGhE,GAAEA,KAAI6G,GAAE7C,EAAElE,EAAEE,EAAC,EAAE,IAAIkE,GAAEQ,GAAE1E,GAAEgE,EAAE,KAAK,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAEA,EAAE,KAAKA,EAAE,UAAU,EAAE6C,GAAE7C,EAAElE,EAAE,CAAC,EAAEmE,GAAED,EAAE,KAAK,CAAC,EAAEA,EAAE,KAAK,EAAEA,EAAE,QAAQ,EAAEhE,GAAEgE,EAAE,KAAK,EAAEA,EAAE,QAAQ,EAAEC,GAAEnE,EAAE,EAAEoE,EAAC,EAAEpE,EAAE,EAAEE,EAAC,EAAEF,EAAE,EAAEmE,EAAC,EAAED,EAAE,MAAME,EAAC,GAAGF,EAAE,MAAMhE,EAAC,GAAGgE,EAAE,MAAMC,EAAC,EAAED,EAAE,MAAMhE,EAAC,EAAEgE,EAAE,MAAMC,EAAC,GAAG,EAAEnE,EAAE,EAAEE,GAAE,CAAC,EAAEF,EAAE,EAAEmE,GAAE,CAAC,EAAEC,GAAEF,EAAE,KAAK,CAAC,EAAEE,KAAI2C,GAAE7C,EAAElE,EAAE,CAAC,EAAE,GAAGkE,EAAE,UAAU,CAACA,EAAE,KAAK,EAAEA,EAAE,QAAQ,EAAEA,EAAE,KAAK,CAAC,GAAE,SAASA,GAAEG,GAAE,CAAC,IAAInE,GAAEiE,GAAEC,GAAEpE,GAAEuE,GAAED,GAAEM,GAAEP,GAAE,SAASI,GAAEJ,GAAE,SAAS/C,GAAE+C,GAAE,UAAU,YAAYQ,GAAER,GAAE,UAAU,UAAUG,GAAEH,GAAE,UAAU,WAAWK,GAAEL,GAAE,UAAU,WAAWM,GAAEN,GAAE,UAAU,WAAW7C,GAAE,EAAE,IAAIxB,GAAE,EAAEA,IAAG+E,EAAE/E,KAAIkE,GAAE,SAASlE,EAAC,EAAE,EAAE,IAAI4E,GAAE,EAAEV,GAAE,KAAKA,GAAE,QAAQ,EAAE,CAAC,EAAE,EAAEhE,GAAEgE,GAAE,SAAS,EAAEhE,GAAEgF,EAAEhF,KAAIyE,IAAG3E,GAAE4E,GAAE,EAAEA,GAAE,GAAGT,GAAED,GAAE,KAAKhE,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAKF,GAAE2E,GAAEnD,MAAKoD,GAAE,EAAET,GAAE,CAAC,EAAEnE,GAAEyE,GAAEN,KAAID,GAAE,SAASlE,EAAC,IAAIuE,GAAE,EAAEG,IAAGP,KAAII,GAAEC,GAAEL,GAAEO,EAAC,GAAGJ,GAAEM,GAAE,EAAET,EAAC,EAAED,GAAE,SAASI,IAAGtE,GAAEuE,IAAGM,KAAIX,GAAE,YAAYI,IAAGhD,GAAE,EAAE6C,GAAE,CAAC,EAAEI,MAAK,GAAO/C,KAAJ,EAAM,CAAC,EAAE,CAAC,IAAIxB,GAAE2E,GAAE,EAAMT,GAAE,SAASlE,EAAC,IAAhB,GAAmBA,KAAIkE,GAAE,SAASlE,EAAC,IAAIkE,GAAE,SAASlE,GAAE,CAAC,GAAG,EAAEkE,GAAE,SAASS,EAAC,IAAInD,IAAG,CAAC,OAAO,EAAEA,IAAG,IAAIxB,GAAE2E,GAAM3E,KAAJ,EAAMA,KAAI,IAAImE,GAAED,GAAE,SAASlE,EAAC,EAAMmE,KAAJ,GAAOM,IAAGL,GAAEF,GAAE,KAAK,EAAEhE,EAAC,KAAK0E,GAAE,EAAER,GAAE,CAAC,IAAIpE,KAAIkE,GAAE,UAAUlE,GAAE4E,GAAE,EAAER,GAAE,CAAC,GAAGQ,GAAE,EAAER,EAAC,EAAEQ,GAAE,EAAER,GAAE,CAAC,EAAEpE,IAAGmE,KAAI,CAAC,GAAED,EAAEG,CAAC,EAAE+C,EAAEpH,EAAEyE,GAAEP,EAAE,QAAQ,CAAC,CAAC,SAASiD,EAAEjD,EAAEG,EAAEnE,GAAE,CAAC,IAAIiE,GAAEC,GAAEpE,EAAE,GAAGuE,GAAEF,EAAE,CAAC,EAAEC,GAAE,EAAEM,GAAE,EAAEH,GAAE,EAAE,IAAQF,KAAJ,IAAQK,GAAE,IAAIH,GAAE,GAAGJ,EAAE,GAAGnE,GAAE,GAAG,CAAC,EAAE,MAAMiE,GAAE,EAAEA,IAAGjE,GAAEiE,KAAIC,GAAEG,GAAEA,GAAEF,EAAE,GAAGF,GAAE,GAAG,CAAC,EAAE,EAAEG,GAAEM,IAAGR,KAAIG,KAAID,GAAEG,GAAEP,EAAE,QAAQ,EAAEE,EAAC,GAAGE,GAAMF,KAAJ,GAAOA,KAAIpE,GAAGkE,EAAE,QAAQ,EAAEE,EAAC,IAAIF,EAAE,QAAQ,EAAEe,CAAC,KAAKX,IAAG,GAAGJ,EAAE,QAAQ,EAAEY,CAAC,IAAIZ,EAAE,QAAQ,EAAEc,CAAC,IAAIhF,EAAEoE,GAAEK,IAAGH,GAAE,KAAKC,IAAGK,GAAE,IAAI,GAAGR,KAAIG,IAAGK,GAAE,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,SAAS4B,GAAEtC,EAAEG,EAAEnE,GAAE,CAAC,IAAIiE,GAAEC,GAAEpE,EAAE,GAAGuE,GAAEF,EAAE,CAAC,EAAEC,GAAE,EAAEM,GAAE,EAAEH,GAAE,EAAE,IAAQF,KAAJ,IAAQK,GAAE,IAAIH,GAAE,GAAGN,GAAE,EAAEA,IAAGjE,GAAEiE,KAAI,GAAGC,GAAEG,GAAEA,GAAEF,EAAE,GAAGF,GAAE,GAAG,CAAC,EAAE,EAAE,EAAEG,GAAEM,IAAGR,KAAIG,IAAG,CAAC,GAAGD,GAAEG,GAAE,KAAK,EAAEP,EAAEE,GAAEF,EAAE,OAAO,EAAK,EAAEI,IAAL,GAAQ,MAAUF,KAAJ,GAAOA,KAAIpE,IAAI,EAAEkE,EAAEE,GAAEF,EAAE,OAAO,EAAEI,MAAK,EAAEJ,EAAEe,EAAEf,EAAE,OAAO,EAAEyB,EAAEzB,EAAEI,GAAE,EAAE,CAAC,GAAGA,IAAG,IAAI,EAAEJ,EAAEY,EAAEZ,EAAE,OAAO,EAAEyB,EAAEzB,EAAEI,GAAE,EAAE,CAAC,IAAI,EAAEJ,EAAEc,EAAEd,EAAE,OAAO,EAAEyB,EAAEzB,EAAEI,GAAE,GAAG,CAAC,GAAGtE,EAAEoE,GAAEK,IAAGH,GAAE,KAAKC,IAAGK,GAAE,IAAI,GAAGR,KAAIG,IAAGK,GAAE,EAAE,IAAIA,GAAE,EAAE,EAAE,CAAC,CAACT,EAAEsB,CAAC,EAAE,IAAIkB,GAAE,GAAG,SAASF,EAAEvC,EAAEG,EAAEnE,GAAEiE,GAAE,CAACwB,EAAEzB,GAAGlE,GAAG,IAAImE,GAAE,EAAE,GAAG,CAAC,GAAE,SAASD,GAAEG,EAAEnE,GAAEiE,GAAE,CAACmB,GAAEpB,EAAC,EAAMqC,EAAErC,GAAEhE,EAAC,EAAEqG,EAAErC,GAAE,CAAChE,EAAC,EAAGkE,EAAE,SAASF,GAAE,YAAYA,GAAE,OAAOG,EAAEnE,GAAEgE,GAAE,OAAO,EAAEA,GAAE,SAAShE,EAAC,GAAEgE,EAAEG,EAAEnE,EAAI,CAAC,CAACA,EAAE,SAAS,SAASgE,EAAE,CAACyC,MAAI,UAAU,CAAC,IAAIzC,EAAEG,GAAEnE,GAAEiE,GAAEC,EAAEpE,GAAE,IAAI,MAAM+E,EAAE,CAAC,EAAE,IAAIZ,GAAEjE,GAAE,EAAEiE,GAAEI,EAAE,EAAEJ,KAAI,IAAI2B,EAAE3B,EAAC,EAAEjE,GAAEgE,EAAE,EAAEA,EAAE,GAAGiB,EAAEhB,EAAC,EAAED,IAAI0B,EAAE1F,IAAG,EAAEiE,GAAE,IAAIyB,EAAE1F,GAAE,CAAC,EAAEiE,GAAEA,GAAEC,EAAE,EAAED,GAAE,GAAGA,KAAI,IAAIsB,EAAEtB,EAAC,EAAEC,EAAEF,EAAE,EAAEA,EAAE,GAAGmB,EAAElB,EAAC,EAAED,IAAIsB,EAAEpB,GAAG,EAAED,GAAE,IAAIC,IAAI,EAAED,GAAEU,EAAEV,KAAI,IAAIsB,EAAEtB,EAAC,EAAEC,GAAG,EAAEF,EAAE,EAAEA,EAAE,GAAGmB,EAAElB,EAAC,EAAE,EAAED,IAAIsB,EAAE,IAAIpB,GAAG,EAAED,GAAE,IAAIE,GAAE,EAAEA,IAAGU,EAAEV,KAAIrE,GAAEqE,EAAC,EAAE,EAAE,IAAIH,EAAE,EAAEA,GAAG,KAAK0C,EAAE,EAAE1C,EAAE,CAAC,EAAE,EAAEA,IAAIlE,GAAE,CAAC,IAAI,KAAKkE,GAAG,KAAK0C,EAAE,EAAE1C,EAAE,CAAC,EAAE,EAAEA,IAAIlE,GAAE,CAAC,IAAI,KAAKkE,GAAG,KAAK0C,EAAE,EAAE1C,EAAE,CAAC,EAAE,EAAEA,IAAIlE,GAAE,CAAC,IAAI,KAAKkE,GAAG,KAAK0C,EAAE,EAAE1C,EAAE,CAAC,EAAE,EAAEA,IAAIlE,GAAE,CAAC,IAAI,IAAIoH,EAAER,EAAEtF,EAAE,EAAEtB,EAAC,EAAEkE,EAAE,EAAEA,EAAEW,EAAEX,IAAIqB,EAAE,EAAErB,EAAE,CAAC,EAAE,EAAEqB,EAAE,EAAErB,CAAC,EAAE2B,EAAE3B,EAAE,CAAC,EAAEwB,EAAE,IAAI0d,GAAExc,EAAEzB,EAAEV,EAAE,EAAEnD,EAAEyD,CAAC,EAAEuB,EAAE,IAAI8c,GAAE7d,EAAEF,EAAE,EAAER,EAAEE,CAAC,EAAEqB,GAAE,IAAIgd,GAAE,IAAI,MAAM,CAAC,EAAErd,EAAE,EAAEvB,EAAEG,CAAC,CAAC,KAAIgC,GAAE,IAAIzC,EAAE,OAAO,IAAImC,EAAEnC,EAAE,UAAUwB,CAAC,EAAExB,EAAE,OAAO,IAAImC,EAAEnC,EAAE,UAAUoC,CAAC,EAAEpC,EAAE,QAAQ,IAAImC,EAAEnC,EAAE,QAAQkC,EAAC,EAAElC,EAAE,OAAO,EAAEA,EAAE,SAAS,EAAE2C,GAAE3C,CAAC,CAAC,EAAEhE,EAAE,iBAAiBuG,EAAEvG,EAAE,gBAAgB,SAASgE,EAAEG,EAAEnE,GAAEiE,GAAE,CAAC,IAAIC,GAAEpE,EAAEuE,GAAE,EAAE,EAAEL,EAAE,OAAWA,EAAE,KAAK,YAAX,IAAuBA,EAAE,KAAK,WAAU,SAASA,GAAE,CAAC,IAAIG,GAAEnE,GAAE,WAAW,IAAImE,GAAE,EAAEA,IAAG,GAAGA,KAAInE,MAAK,EAAE,GAAG,EAAEA,IAAOgE,GAAE,UAAU,EAAEG,EAAC,IAAnB,EAAqB,OAAOC,EAAE,GAAOJ,GAAE,UAAU,EAAE,IAAlB,GAAyBA,GAAE,UAAU,EAAE,IAAlB,GAAyBA,GAAE,UAAU,EAAE,IAAlB,EAAoB,OAAOU,EAAE,IAAIP,GAAE,GAAGA,GAAEI,EAAEJ,KAAI,GAAOH,GAAE,UAAU,EAAEG,EAAC,IAAnB,EAAqB,OAAOO,EAAE,OAAON,CAAC,GAAEJ,CAAC,GAAGgD,GAAEhD,EAAEA,EAAE,MAAM,EAAEgD,GAAEhD,EAAEA,EAAE,MAAM,EAAEK,IAAE,SAASL,GAAE,CAAC,IAAIG,GAAE,IAAI8C,EAAEjD,GAAEA,GAAE,UAAUA,GAAE,OAAO,QAAQ,EAAEiD,EAAEjD,GAAEA,GAAE,UAAUA,GAAE,OAAO,QAAQ,EAAEgD,GAAEhD,GAAEA,GAAE,OAAO,EAAEG,GAAEG,EAAE,EAAE,GAAGH,IAAOH,GAAE,QAAQ,EAAEkB,EAAEf,EAAC,EAAE,CAAC,IAAtB,EAAwBA,KAAI,CAAC,OAAOH,GAAE,SAAS,GAAGG,GAAE,GAAG,EAAE,EAAE,EAAEA,EAAC,GAAEH,CAAC,EAAEE,GAAEF,EAAE,QAAQ,EAAE,IAAI,GAAGlE,EAAEkE,EAAE,WAAW,EAAE,IAAI,IAAIE,KAAIA,GAAEpE,IAAIoE,GAAEpE,EAAEE,GAAE,EAAEA,GAAE,GAAGkE,IAAQC,IAAL,GAAOoC,EAAEvC,EAAEG,EAAEnE,GAAEiE,EAAC,EAAMD,EAAE,WAAN,GAAgBlE,IAAIoE,IAAGuB,EAAEzB,EAAE,GAAGC,GAAE,EAAE,GAAG,CAAC,EAAE8C,GAAE/C,EAAE0C,EAAErB,CAAC,IAAII,EAAEzB,EAAE,GAAGC,GAAE,EAAE,GAAG,CAAC,GAAE,SAASD,GAAEG,GAAEnE,GAAEiE,GAAE,CAAC,IAAIC,GAAE,IAAIuB,EAAEzB,GAAEG,GAAE,IAAI,CAAC,EAAEsB,EAAEzB,GAAEhE,GAAE,EAAE,CAAC,EAAEyF,EAAEzB,GAAEC,GAAE,EAAE,CAAC,EAAEC,GAAE,EAAEA,GAAED,GAAEC,KAAIuB,EAAEzB,GAAEA,GAAE,QAAQ,EAAEkB,EAAEhB,EAAC,EAAE,CAAC,EAAE,CAAC,EAAEoC,GAAEtC,GAAEA,GAAE,UAAUG,GAAE,CAAC,EAAEmC,GAAEtC,GAAEA,GAAE,UAAUhE,GAAE,CAAC,CAAC,GAAEgE,EAAEA,EAAE,OAAO,SAAS,EAAEA,EAAE,OAAO,SAAS,EAAEK,GAAE,CAAC,EAAE0C,GAAE/C,EAAEA,EAAE,UAAUA,EAAE,SAAS,GAAG2C,GAAE3C,CAAC,EAAEC,IAAGmB,GAAEpB,CAAC,CAAC,EAAEhE,EAAE,UAAU,SAASgE,EAAEG,EAAEnE,GAAE,CAAC,OAAOgE,EAAE,YAAYA,EAAE,MAAM,EAAEA,EAAE,QAAQ,EAAEG,IAAI,EAAE,IAAIH,EAAE,YAAYA,EAAE,MAAM,EAAEA,EAAE,SAAS,CAAC,EAAE,IAAIG,EAAEH,EAAE,YAAYA,EAAE,MAAMA,EAAE,QAAQ,EAAE,IAAIhE,GAAEgE,EAAE,WAAeG,IAAJ,EAAMH,EAAE,UAAU,EAAEhE,EAAC,KAAKgE,EAAE,UAAUG,IAAIH,EAAE,UAAU,GAAG0B,EAAE1F,EAAC,EAAEuE,EAAE,EAAE,IAAIP,EAAE,UAAU,EAAEiC,EAAE9B,CAAC,CAAC,KAAKH,EAAE,WAAWA,EAAE,YAAY,CAAC,EAAEhE,EAAE,UAAU,SAASgE,EAAE,CAACyB,EAAEzB,EAAE,EAAE,CAAC,EAAE,EAAEA,EAAE1C,EAAEoF,CAAC,GAAE,SAAS1C,EAAE,CAAMA,EAAE,WAAP,IAAiBqC,EAAErC,EAAEA,EAAE,MAAM,EAAEA,EAAE,OAAO,EAAEA,EAAE,SAAS,GAAG,GAAGA,EAAE,WAAWA,EAAE,YAAYA,EAAE,SAAS,EAAE,IAAIA,EAAE,OAAOA,EAAE,SAAS,EAAEA,EAAE,UAAU,EAAE,GAAEA,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAEG,EAAEnE,EAAE,CAAcmE,EAAE,QAAQ,UAAU,CAAC,KAAK,MAAM,KAAK,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,KAAK,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,KAAK,UAAU,EAAE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,SAAS,EAAEA,EAAEnE,EAAE,EAAE,SAASgE,EAAE,EAAE,SAAShE,EAAEiE,EAAE,CAAc,GAAG,CAACjE,EAAE,aAAa,CAAC,IAAIkE,EAAEpE,EAAEqE,EAAEE,EAAED,EAAE,EAAEM,EAAE,GAAGH,EAAE,GAAGnD,EAAEpB,EAAE,SAASgE,EAAE,OAAO,gBAAgB,OAAO,eAAehE,CAAC,EAAEgE,EAAEA,GAAGA,EAAE,WAAWA,EAAEhE,EAAEkE,EAAuB,GAAG,SAAS,KAAKlE,EAAE,OAAO,IAA/C,mBAAiD,SAASgE,EAAE,CAAC,QAAQ,SAAS,UAAU,CAACM,EAAEN,CAAC,CAAC,CAAC,CAAC,GAAE,UAAU,CAAC,GAAGhE,EAAE,aAAa,CAACA,EAAE,cAAc,CAAC,IAAIgE,EAAE,GAAGG,EAAEnE,EAAE,UAAU,OAAOA,EAAE,UAAU,UAAU,CAACgE,EAAE,EAAE,EAAEhE,EAAE,YAAY,GAAG,GAAG,EAAEA,EAAE,UAAUmE,EAAEH,CAAC,CAAC,GAAC,GAAIK,EAAE,gBAAgB,KAAK,OAAM,EAAG,IAAIrE,EAAE,iBAAiBA,EAAE,iBAAiB,UAAUwE,EAAE,EAAE,EAAExE,EAAE,YAAY,YAAYwE,CAAC,EAAE,SAASR,EAAE,CAAChE,EAAE,YAAYqE,EAAEL,EAAE,GAAG,CAAC,GAAGhE,EAAE,iBAAiBmE,EAAE,IAAI,gBAAgB,MAAM,UAAU,SAASH,EAAE,CAACM,EAAEN,EAAE,IAAI,CAAC,EAAE,SAASA,EAAE,CAACG,EAAE,MAAM,YAAYH,CAAC,CAAC,GAAG5C,GAAG,uBAAuBA,EAAE,cAAc,QAAQ,GAAGtB,EAAEsB,EAAE,gBAAgB,SAAS4C,EAAE,CAAC,IAAIG,EAAE/C,EAAE,cAAc,QAAQ,EAAE+C,EAAE,mBAAmB,UAAU,CAACG,EAAEN,CAAC,EAAEG,EAAE,mBAAmB,KAAKrE,EAAE,YAAYqE,CAAC,EAAEA,EAAE,IAAI,EAAErE,EAAE,YAAYqE,CAAC,CAAC,GAAG,SAASH,EAAE,CAAC,WAAWM,EAAE,EAAEN,CAAC,CAAC,EAAEA,EAAE,aAAa,SAASA,EAAE,CAAa,OAAOA,GAAnB,aAAuBA,EAAE,IAAI,SAAS,GAAGA,CAAC,GAAG,QAAQG,EAAE,IAAI,MAAM,UAAU,OAAO,CAAC,EAAEnE,EAAE,EAAEA,EAAEmE,EAAE,OAAOnE,IAAImE,EAAEnE,CAAC,EAAE,UAAUA,EAAE,CAAC,EAAE,IAAIiE,EAAE,CAAC,SAASD,EAAE,KAAKG,CAAC,EAAE,OAAOO,EAAEN,CAAC,EAAEH,EAAEC,EAAEE,CAAC,EAAEA,GAAG,EAAEJ,EAAE,eAAeW,CAAC,CAAC,SAASA,EAAEX,EAAE,CAAC,OAAOU,EAAEV,CAAC,CAAC,CAAC,SAASM,EAAEN,EAAE,CAAC,GAAGO,EAAE,WAAWD,EAAE,EAAEN,CAAC,MAAM,CAAC,IAAIG,EAAEO,EAAEV,CAAC,EAAE,GAAGG,EAAE,CAACI,EAAE,GAAG,GAAG,EAAE,SAASP,EAAE,CAAC,IAAIG,EAAEH,EAAE,SAAShE,EAAEgE,EAAE,KAAK,OAAOhE,EAAE,OAAM,CAAE,IAAK,GAAEmE,EAAC,EAAG,MAAM,IAAK,GAAEA,EAAEnE,EAAE,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEmE,EAAEnE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,MAAM,IAAK,GAAEmE,EAAEnE,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,MAAM,QAAQmE,EAAE,MAAMF,EAAEjE,CAAC,CAAC,CAAC,GAAEmE,CAAC,CAAC,QAAC,CAAQQ,EAAEX,CAAC,EAAEO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAASC,EAAER,EAAE,CAACA,EAAE,SAAShE,GAAa,OAAOgE,EAAE,MAAnB,UAA6BA,EAAE,KAAK,QAAQK,CAAC,IAApB,GAAuBC,EAAE,CAACN,EAAE,KAAK,MAAMK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAe,OAAO,KAApB,IAAkCL,IAAT,OAAW,KAAKA,EAAE,IAAI,CAAC,GAAG,KAAK,KAAkB,OAAOqhI,GAApB,IAA2BA,GAAoB,OAAO,KAApB,IAAyB,KAAkB,OAAO,OAApB,IAA2B,OAAO,CAAA,CAAE,CAAC,EAAE,CAAA,CAAE,CAAC,EAAE,CAAA,EAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,8DCZ599F,IAAIqgB,EAAWp8H,GAAA,EACXq8H,EAAQj7H,GAAA,EAEZk7H,GAAA,gBAA0BC,EAC1BD,GAAA,UAAoBE,EACpBF,GAAA,SAAmBG,EAEnB,SAASF,EAAgBrC,EAAa,CAClC,OAAOmC,EAAM,UAAUnC,CAAW,EAAE,KAAK,SAASwC,EAAS,CACvD,SAASC,EAAO3/H,EAAM,CAClB,OAAO0/H,EAAQ,KAAK1/H,CAAI,IAAM,IAC1C,CAEQ,SAAS4/H,EAAK5/H,EAAM2gE,EAAU,CAC1B,OAAO++D,EAAQ,KAAK1/H,CAAI,EAAE,MAAM,YAAY,EAAE,KAAK,SAAS6qB,EAAO,CAC/D,GAAI81C,IAAa,SACb,OAAOy+D,EAAS,cAAcv0G,CAAK,EAChC,GAAI81C,EAAU,CACjB,IAAI7kF,EAAU,IAAI,YAAY6kF,CAAQ,EACtC,OAAO7kF,EAAQ,OAAO+uC,CAAK,CAC/C,KACoB,QAAOA,CAE3B,CAAa,CACb,CAEQ,SAASg1G,EAAM7/H,EAAMonC,EAAU,CAC3Bs4F,EAAQ,KAAK1/H,EAAMonC,CAAQ,CACvC,CAEQ,SAAS04F,GAAgB,CACrB,OAAOJ,EAAQ,cAAc,CAAC,KAAM,aAAa,CAAC,CAC9D,CAEQ,MAAO,CACH,OAAQC,EACR,KAAMC,EACN,MAAOC,EACP,cAAeC,EAE3B,CAAK,CACL,CAEA,SAASN,EAAUp+H,EAAM,CACrB,IAAI0L,EAAY1L,EAAK,YAAY,GAAG,EACpC,OAAI0L,IAAc,GACP,CAAC,QAAS,GAAI,SAAU1L,CAAI,EAE5B,CACH,QAASA,EAAK,UAAU,EAAG0L,CAAS,EACpC,SAAU1L,EAAK,UAAU0L,EAAY,CAAC,EAGlD,CAEA,SAAS2yH,GAAW,CAChB,IAAIM,EAAgB,MAAM,UAAU,OAAO,KAAK,UAAW,SAAS3+H,EAAM,CACtE,OAAOA,CACf,CAAK,EAEG4+H,EAAgB,CAAA,EAEpB,OAAAD,EAAc,QAAQ,SAAS3+H,EAAM,CAC7B,MAAM,KAAKA,CAAI,EACf4+H,EAAgB,CAAC5+H,CAAI,EAErB4+H,EAAc,KAAK5+H,CAAI,CAEnC,CAAK,EAEM4+H,EAAc,KAAK,GAAG,CACjC,uECvEA,IAAIthJ,EAAIskB,GAGR4J,GAAA,QAAkBqzH,EAClBrzH,GAAA,QAAkB,SAAS5M,EAAMkkB,EAAYwkB,EAAU,CACnD,OAAO,IAAIu3F,EAAQjgI,EAAMkkB,EAAYwkB,CAAQ,CACjD,EACA97B,GAAA,KAAe,SAAS3wB,EAAO,CAC3B,MAAO,CACH,KAAM,OACN,MAAOA,EAEf,EAGA,IAAIikJ,EAAetzH,GAAA,aAAuB,CACtC,MAAO,UAAW,CACd,OAAO,IACf,EACI,aAAc,UAAW,CACrB,OAAOszH,CACf,EACI,WAAY,CAAA,EACZ,SAAU,CAAA,GAGd,SAASD,EAAQjgI,EAAMkkB,EAAYwkB,EAAU,CACzC,KAAK,KAAO,UACZ,KAAK,KAAO1oC,EACZ,KAAK,WAAakkB,GAAc,CAAA,EAChC,KAAK,SAAWwkB,GAAY,CAAA,CAChC,CAEAu3F,EAAQ,UAAU,MAAQ,SAASjgI,EAAM,CACrC,OAAOthB,EAAE,KAAK,KAAK,SAAU,SAAS8kC,EAAO,CACzC,OAAOA,EAAM,OAASxjB,CAC9B,CAAK,CACL,EAEAigI,EAAQ,UAAU,aAAe,SAASjgI,EAAM,CAC5C,OAAO,KAAK,MAAMA,CAAI,GAAKkgI,CAC/B,EAEAD,EAAQ,UAAU,qBAAuB,SAASjgI,EAAM,CACpD,IAAIyjF,EAAW/kG,EAAE,OAAO,KAAK,SAAU,SAAS8kC,EAAO,CACnD,OAAOA,EAAM,OAASxjB,CAC9B,CAAK,EACD,OAAOmgI,EAAc18C,CAAQ,CACjC,EAEAw8C,EAAQ,UAAU,KAAO,UAAW,CAChC,GAAI,KAAK,SAAS,SAAW,EACzB,MAAO,GACJ,GAAI,KAAK,SAAS,SAAW,GAAK,KAAK,SAAS,CAAC,EAAE,OAAS,OAC/D,MAAM,IAAI,MAAM,iBAAiB,EAErC,OAAO,KAAK,SAAS,CAAC,EAAE,KAC5B,EAEA,IAAIG,EAAuB,CACvB,qBAAsB,SAASpgI,EAAM,CACjC,OAAOmgI,EAAczhJ,EAAE,QAAQ,KAAK,IAAI,SAASklC,EAAS,CACtD,OAAOA,EAAQ,qBAAqB5jB,CAAI,CACpD,EAAW,EAAI,CAAC,CAAC,CACjB,GAGA,SAASmgI,EAAct1G,EAAO,CAC1B,OAAOnsC,EAAE,OAAOmsC,EAAOu1G,CAAoB,CAC/C,mFCpDA,SAASvlB,EAAK77G,EAAM66G,EAAWr+G,EAAI,CAIlC,GAHIA,IAAO,SACVA,EAAK,MAAM,WAERwD,GAAQ,OAAOxD,EAAG,MAAS,WAC9B,OAAOA,EAAG,KAAK,KAAKwD,EAAM66G,CAAS,EAEpC,QAASj8H,EAAI,EAAGA,EAAIohB,EAAK,OAAQphB,IAChC,GAAI,OAAO,UAAU,eAAe,KAAKohB,EAAMphB,CAAC,EAAG,CAClD,IAAIgzB,EAAO5R,EAAKphB,CAAC,EACjB,GAAIi8H,EAAU,KAAK,OAAWjpG,EAAMhzB,EAAGohB,CAAI,EAC1C,OAAO4R,CAEX,CAEA,CAiBA,SAASyvH,EAAOnuB,EAAQ72G,EAAI,CAC3B,OAAIA,IAAO,SACVA,EAAK,QAECA,GAAM,OAAOA,EAAG,QAAW,WAAaA,EAAG,OAAO62G,CAAM,EAAIA,CACpE,CAeA,SAASouB,EAAOrjI,EAAQ0L,EAAQ,CAC/B,GAAI1L,IAAW,MAAQ,OAAOA,GAAW,SACxC,MAAM,IAAI,UAAU,yBAAyB,EAE9C,QAASoC,KAAOsJ,EACX,OAAO,UAAU,eAAe,KAAKA,EAAQtJ,CAAG,IACnDpC,EAAOoC,CAAG,EAAIsJ,EAAOtJ,CAAG,GAG1B,OAAOpC,CACR,CASA,IAAIsjI,EAAYF,EAAO,CAUtB,KAAM,YAYN,OAAQ,SAAUpkJ,EAAO,CACxB,OAAOA,IAAUskJ,EAAU,IAC7B,EASC,gBAAiB,kBASjB,SAAU,WAUV,sBAAuB,wBASvB,cAAe,gBACf,EAOGC,EAAYH,EAAO,CAMtB,KAAM,+BASN,OAAQ,SAAUI,EAAK,CACtB,OAAOA,IAAQD,EAAU,IAC3B,EAOC,IAAK,6BAOL,IAAK,uCAOL,MAAO,gCACP,EAKGE,EAAgB,mJAChBC,EAAW,IAAI,OAAO,aAAaD,EAAc,OAAO,MAAM,EAAE,EAAE,EAAE,wCAAwC,EAC5GE,EAAiB,IAAI,OAAO,IAAIF,EAAc,OAAOC,EAAS,OAAO,QAASD,EAAc,OAAOC,EAAS,OAAO,MAAM,EAG7H,OAAAE,GAAA,OAAiBP,EACjBO,GAAA,KAAehmB,EACfgmB,GAAA,OAAiBR,EACjBQ,GAAA,UAAoBN,EACpBM,GAAA,UAAoBL,EACpBK,GAAA,cAAwBH,EACxBG,GAAA,SAAmBF,EACnBE,GAAA,eAAyBD,+CCrNzB,IAAIC,EAAc79H,GAAA,EAEd63G,EAAOgmB,EAAY,KACnBL,EAAYK,EAAY,UACxBD,EAAiBC,EAAY,eAOjC,SAASC,EAAgBlkJ,EAAO,CAC/B,OAAOA,IAAU,EAClB,CAQA,SAASmkJ,EAAuBnkJ,EAAO,CAEtC,OAAOA,EAAQA,EAAM,MAAM,cAAc,EAAE,OAAOkkJ,CAAc,EAAI,CAAA,CACrE,CASA,SAASE,EAAmB51E,EAASxnC,EAAS,CAC7C,OAAKwnC,EAAQ,eAAexnC,CAAO,IAClCwnC,EAAQxnC,CAAO,EAAI,IAEbwnC,CACR,CAOA,SAAS61E,EAAarkJ,EAAO,CAC5B,GAAI,CAACA,EAAO,MAAO,CAAA,EACnB,IAAIoiB,EAAO+hI,EAAuBnkJ,CAAK,EACvC,OAAO,OAAO,KAAKoiB,EAAK,OAAOgiI,EAAmB,CAAA,CAAE,CAAC,CACtD,CASA,SAASE,EAAeliI,EAAM,CAC7B,OAAO,SAAS4kB,EAAS,CACxB,OAAO5kB,GAAQA,EAAK,QAAQ4kB,CAAO,IAAM,EAC3C,CACA,CAEA,SAAS/jB,EAAK+K,EAAI0W,EAAK,CACtB,QAAQnjC,KAAKysB,EACR,OAAO,UAAU,eAAe,KAAKA,EAAKzsB,CAAC,IAC9CmjC,EAAKnjC,CAAC,EAAIysB,EAAIzsB,CAAC,EAGlB,CAMA,SAASgjJ,EAASC,EAAMC,EAAM,CAC7B,IAAIt8I,EAAKq8I,EAAM,UACf,GAAG,EAAEr8I,aAAcs8I,GAAO,CACzB,IAASxjJ,GAAT,UAAY,CAAA,EACZA,GAAE,UAAYwjJ,EAAM,UACpBxjJ,GAAI,IAAIA,GACRgiB,EAAK9a,EAAGlH,EAAC,EACTujJ,EAAM,UAAYr8I,EAAKlH,EACzB,CACIkH,EAAG,aAAeq8I,IACjB,OAAOA,GAAS,YAClB,QAAQ,MAAM,iBAAiBA,CAAK,EAErCr8I,EAAG,YAAcq8I,EAEnB,CAGA,IAAIE,EAAW,CAAA,EACXC,EAA8BD,EAAS,aAA8B,EACrEE,EAA8BF,EAAS,eAA8B,EACrEG,EAA8BH,EAAS,UAA8B,EACrEI,EAA8BJ,EAAS,mBAA8B,EACrEK,EAA8BL,EAAS,sBAA8B,EACrEM,EAA8BN,EAAS,YAA8B,EACrEO,EAA8BP,EAAS,4BAA8B,EACrEQ,EAA8BR,EAAS,aAA8B,EACrES,EAA8BT,EAAS,cAA8B,EACrEU,EAA8BV,EAAS,mBAA8B,GACrEW,EAA8BX,EAAS,uBAA8B,GACrEY,EAA8BZ,EAAS,cAA8B,GAGrEa,EAAgB,CAAA,EAChBC,EAAmB,CAAA,EACWD,EAAc,gBAAgCC,EAAiB,CAAC,EAAE,mBAAoB,GACtFD,EAAc,oBAAgCC,EAAiB,CAAC,EAAE,uBAAwB,GAC5H,IAAIC,EAA8BF,EAAc,uBAAgCC,EAAiB,CAAC,EAAE,0BAA2B,GAC7FD,EAAc,oBAAgCC,EAAiB,CAAC,EAAE,iBAAkB,GACtH,IAAIE,EAA8BH,EAAc,uBAAgCC,EAAiB,CAAC,EAAE,oBAAqB,GACvFD,EAAc,qBAAgCC,EAAiB,CAAC,EAAE,kBAAmB,GACrFD,EAAc,6BAAgCC,EAAiB,CAAC,EAAE,0BAA2B,GAC/H,IAAIG,EAA8BJ,EAAc,eAAgCC,EAAiB,CAAC,EAAE,YAAa,GAC/ED,EAAc,mBAAgCC,EAAiB,CAAC,EAAE,gBAAiB,GACrH,IAAII,EAA8BL,EAAc,qBAAgCC,EAAiB,EAAE,EAAE,mBAAoB,IAErHK,EAA4BN,EAAc,mBAA8BC,EAAiB,EAAE,EAAE,gBAAiB,IAClFD,EAAc,YAA8BC,EAAiB,EAAE,EAAE,eAAgB,IACjFD,EAAc,0BAA8BC,EAAiB,EAAE,EAAE,uBAAwB,IACzFD,EAAc,eAA6BC,EAAiB,EAAE,EAAE,oBAAqB,IACrFD,EAAc,oBAA6BC,EAAiB,EAAE,EAAE,iBAAkB,IAQlH,SAASM,EAAazmH,EAAMhU,EAAS,CACpC,GAAGA,aAAmB,MACrB,IAAI7qB,EAAQ6qB,OAEZ7qB,EAAQ,KACR,MAAM,KAAK,KAAMglJ,EAAiBnmH,CAAI,CAAC,EACvC,KAAK,QAAUmmH,EAAiBnmH,CAAI,EACjC,MAAM,mBAAmB,MAAM,kBAAkB,KAAMymH,CAAY,EAEvE,OAAAtlJ,EAAM,KAAO6+B,EACVhU,IAAS,KAAK,QAAU,KAAK,QAAU,KAAOA,GAC1C7qB,CACR,CACAslJ,EAAa,UAAY,MAAM,UAC/B7iI,EAAKsiI,EAAcO,CAAY,EAO/B,SAASC,GAAW,CACpB,CACAA,EAAS,UAAY,CAKpB,OAAO,EASP,KAAM,SAAS7iI,EAAO,CACrB,OAAOA,GAAS,GAAKA,EAAQ,KAAK,OAAS,KAAKA,CAAK,EAAI,IAC3D,EACC,SAAS,SAAS8iI,EAAOC,EAAWlmJ,EAAQ,CAE3C,QADImmJ,GAAoB,CAAC,CAACnmJ,GAAW,CAAC,CAACA,EAAQ,kBACvC6tB,GAAM,CAAA,EAAI5sB,GAAI,EAAEA,GAAE,KAAK,OAAOA,KACrCmlJ,GAAkB,KAAKnlJ,EAAC,EAAE4sB,GAAIo4H,EAAOC,EAAW,KAAKC,EAAiB,EAEvE,OAAOt4H,GAAI,KAAK,EAAE,CACpB,EAMC,OAAQ,SAAUqvG,EAAW,CAC5B,OAAO,MAAM,UAAU,OAAO,KAAK,KAAMA,CAAS,CACpD,EAMC,QAAS,SAAUjpG,EAAM,CACxB,OAAO,MAAM,UAAU,QAAQ,KAAK,KAAMA,CAAI,CAChD,GAGA,SAASoyH,EAAaltH,EAAKmtH,EAAQ,CAClC,KAAK,MAAQntH,EACb,KAAK,SAAWmtH,EAChBC,GAAgB,IAAI,CACrB,CACA,SAASA,GAAgBlkI,EAAK,CAC7B,IAAImkI,EAAMnkI,EAAK,MAAM,MAAQA,EAAK,MAAM,cAAc,KACtD,GAAIA,EAAK,OAASmkI,EAAK,CACtB,IAAI1tI,EAAKuJ,EAAK,SAASA,EAAK,KAAK,EAEjC,GADAokI,GAAQpkI,EAAK,SAASvJ,EAAG,MAAM,EAC3B,CAACuJ,EAAK,UAAYvJ,EAAG,OAASuJ,EAAK,SACtC,QAASphB,GAAI6X,EAAG,OAAQ7X,MAAKohB,EAAMphB,KAC9B,OAAO,UAAU,eAAe,KAAKohB,EAAMphB,EAAC,GAC/C,OAAOohB,EAAKphB,EAAC,EAIhBiiB,EAAKpK,EAAGuJ,CAAI,EACZA,EAAK,KAAOmkI,CACd,CACA,CACAH,EAAa,UAAU,KAAO,SAASplJ,EAAE,CACxC,OAAAslJ,GAAgB,IAAI,EACb,KAAKtlJ,CAAC,GAAK,IACnB,EAEAujJ,EAAS6B,EAAaL,CAAQ,EAa9B,SAASU,GAAe,CAOvB,KAAK,WAAa,OAAO,OAAO,IAAI,CACrC,CAEA,SAASC,GAAetkI,EAAK8W,EAAK,CAEjC,QADIl4B,EAAIohB,EAAK,OACPphB,KACL,GAAGohB,EAAKphB,CAAC,IAAMk4B,EAAM,OAAOl4B,CAE9B,CAEA,SAAS2lJ,EAAavkI,EAAMwkI,EAAM,CACjCxkI,EAAK,WAAWwkI,EAAK,QAAQ,EAAIA,CAClC,CACA,SAASC,EAAgBzkI,EAAMwkI,EAAM,CAGhCxkI,EAAK,WAAWwkI,EAAK,QAAQ,IAAMA,GACtC,OAAOxkI,EAAK,WAAWwkI,EAAK,QAAQ,CAEtC,CAEA,SAASE,EAAc/4H,EAAG3L,EAAK2kI,EAAQC,GAAQ,CAU9C,GATGA,IACF5kI,EAAKskI,GAAetkI,EAAK4kI,EAAO,CAAC,EAAID,EAGrCF,EAAgBzkI,EAAM4kI,EAAO,GAE7B5kI,EAAKA,EAAK,QAAQ,EAAI2kI,EAEvBJ,EAAavkI,EAAM2kI,CAAO,EACvBh5H,EAAG,CACLg5H,EAAQ,aAAeh5H,EACvB,IAAIk5H,GAAMl5H,EAAG,cACVk5H,KACFD,IAAWE,GAAmBD,GAAIl5H,EAAGi5H,EAAO,EAC5CG,GAAgBF,GAAIl5H,EAAGg5H,CAAO,EAEjC,CACA,CACA,SAASK,EAAiBr5H,EAAG3L,EAAKwkI,EAAK,CAEtC,IAAI5lJ,GAAI0lJ,GAAetkI,EAAKwkI,CAAI,EAChC,GAAG5lJ,IAAG,EAAE,CAEP,QADIkvB,GAAY9N,EAAK,OAAO,EACtBphB,GAAEkvB,IACP9N,EAAKphB,EAAC,EAAIohB,EAAK,EAAEphB,EAAC,EAInB,GAFAohB,EAAK,OAAS8N,GACd22H,EAAgBzkI,EAAMwkI,CAAI,EACvB74H,EAAG,CACL,IAAIk5H,GAAMl5H,EAAG,cACVk5H,KACFC,GAAmBD,GAAIl5H,EAAG64H,CAAI,EAC9BA,EAAK,aAAe,KAExB,CACA,KACE,OAAM,IAAId,EAAaH,EAAc,IAAI,MAAM53H,EAAG,QAAQ,IAAI64H,CAAI,CAAC,CAErE,CACAH,EAAa,UAAY,CACxB,OAAO,EACP,KAAKV,EAAS,UAAU,KACxB,aAAc,SAAStjI,EAAK,CAM3B,QADIzhB,EAAI,KAAK,OACPA,KAAI,CACT,IAAI4lJ,EAAO,KAAK5lJ,CAAC,EAEjB,GAAG4lJ,EAAK,UAAYnkI,EACnB,OAAOmkI,CAEX,CACA,EACC,aAAc,SAASA,EAAM,CAC5B,IAAI74H,EAAK64H,EAAK,aACd,GAAG74H,GAAMA,GAAI,KAAK,cACjB,MAAM,IAAI+3H,EAAaF,CAAmB,EAM3C,IAAIoB,EAAU,KAAK,WAAWJ,EAAK,QAAQ,EAC3C,OAAAE,EAAc,KAAK,cAAc,KAAKF,EAAKI,CAAO,EAC3CA,CACT,EAEC,eAAgB,SAASJ,EAAM,CAC9B,IAAI74H,EAAK64H,EAAK,aAAcI,EAC5B,GAAGj5H,GAAMA,GAAI,KAAK,cACjB,MAAM,IAAI+3H,EAAaF,CAAmB,EAE3C,OAAAoB,EAAU,KAAK,eAAeJ,EAAK,aAAaA,EAAK,SAAS,EAC9DE,EAAc,KAAK,cAAc,KAAKF,EAAKI,CAAO,EAC3CA,CACT,EAGC,gBAAiB,SAASvkI,EAAK,CAC9B,IAAImkI,EAAO,KAAK,aAAankI,CAAG,EAChC,OAAA2kI,EAAiB,KAAK,cAAc,KAAKR,CAAI,EACtCA,CAGT,EAGC,kBAAkB,SAASS,EAAaC,EAAU,CACjD,IAAIV,EAAO,KAAK,eAAeS,EAAaC,CAAS,EACrD,OAAAF,EAAiB,KAAK,cAAc,KAAKR,CAAI,EACtCA,CACT,EACC,eAAgB,SAASS,EAAcC,EAAW,CAEjD,QADItmJ,EAAI,KAAK,OACPA,KAAI,CACT,IAAIk4B,GAAO,KAAKl4B,CAAC,EACjB,GAAGk4B,GAAK,WAAaouH,GAAapuH,GAAK,cAAgBmuH,EACtD,OAAOnuH,EAEX,CACE,OAAO,IACT,GAkBA,SAASquH,GAAoB,CAC7B,CAEAA,EAAkB,UAAY,CAgB7B,WAAY,SAASC,EAAShiI,EAAS,CACrC,MAAO,EACV,EAuBC,eAAgB,SAAS6hI,EAAeI,EAAeC,EAAQ,CAC9D,IAAIT,GAAM,IAAI7H,GAOd,GANA6H,GAAI,eAAiB,KACrBA,GAAI,WAAa,IAAIlB,EACrBkB,GAAI,QAAUS,GAAW,KACrBA,GACHT,GAAI,YAAYS,CAAO,EAEpBD,EAAc,CACjB,IAAI7/G,GAAOq/G,GAAI,gBAAgBI,EAAcI,CAAa,EAC1DR,GAAI,YAAYr/G,EAAI,CACvB,CACE,OAAOq/G,EACT,EAqCC,mBAAoB,SAASQ,EAAeE,EAAUC,EAAS,CAC9D,IAAI1uH,GAAO,IAAI2uH,GACf,OAAA3uH,GAAK,KAAOuuH,EACZvuH,GAAK,SAAWuuH,EAChBvuH,GAAK,SAAWyuH,GAAY,GAC5BzuH,GAAK,SAAW0uH,GAAY,GAErB1uH,EACT,GAQA,SAAS4uH,GAAO,CAChB,CAEAA,EAAK,UAAY,CAChB,WAAa,KACb,UAAY,KACZ,gBAAkB,KAClB,YAAc,KACd,WAAa,KACb,WAAa,KACb,WAAa,KACb,cAAgB,KAChB,UAAY,KACZ,aAAe,KACf,OAAS,KACT,UAAY,KAEZ,aAAa,SAASC,EAAUC,EAAS,CACxC,OAAOC,GAAc,KAAKF,EAASC,CAAQ,CAC7C,EACC,aAAa,SAASD,EAAUG,EAAS,CACxCD,GAAc,KAAMF,EAASG,EAAUC,EAAsC,EAC1ED,GACF,KAAK,YAAYA,CAAQ,CAE5B,EACC,YAAY,SAASA,EAAS,CAC7B,OAAOE,EAAa,KAAKF,CAAQ,CACnC,EACC,YAAY,SAASH,EAAS,CAC7B,OAAO,KAAK,aAAaA,EAAS,IAAI,CACxC,EACC,cAAc,UAAU,CACvB,OAAO,KAAK,YAAc,IAC5B,EACC,UAAU,SAASM,EAAK,CACvB,OAAOC,GAAU,KAAK,eAAe,KAAK,KAAKD,CAAI,CACrD,EAoBC,UAAW,UAAY,CACtBE,GAAQ,KAAM,KAAM,CACnB,MAAO,SAAUrvH,EAAM,CAKtB,QADI0N,EAAQ1N,EAAK,WACV0N,GAAO,CACb,IAAI5oC,EAAO4oC,EAAM,YACjB,GAAI5oC,IAAS,MAAQA,EAAK,WAAa6mJ,GAAaj+G,EAAM,WAAai+G,EAAW,CAWjF,QAFI2D,GAAO,CAAA,EACPC,GAAUzqJ,EACPyqJ,KAAY,MAAQA,GAAQ,WAAa5D,GAC/C2D,GAAK,KAAKC,GAAQ,IAAI,EACtBA,GAAUA,GAAQ,YAInB,QADIC,GAAU9hH,EAAM,YACb8hH,KAAYD,IAAS,CAC3B,IAAIE,GAAYD,GAAQ,YACxBA,GAAQ,WAAa,KACrBA,GAAQ,gBAAkB,KAC1BA,GAAQ,YAAc,KACtBA,GAAUC,EACjB,CACM/hH,EAAM,YAAc6hH,GAChBA,KAAY,KACfA,GAAQ,gBAAkB7hH,EAE1B1N,EAAK,UAAY0N,EAElBA,EAAM,WAAW4hH,GAAK,KAAK,EAAE,CAAC,EAC9BI,GAAe1vH,EAAK,cAAeA,CAAI,EACvC0N,EAAQ6hH,EACd,MACM7hH,EAAQ5oC,CAEd,CACI,MAAO,EACX,CACA,CAAG,CACH,EAEC,YAAY,SAASwpJ,EAAShiI,EAAQ,CACrC,OAAO,KAAK,cAAc,eAAe,WAAWgiI,EAAQhiI,CAAO,CACrE,EAEI,cAAc,UAAU,CACvB,OAAO,KAAK,WAAW,OAAO,CACnC,EAeI,aAAa,SAAS6hI,EAAa,CAElC,QADIt5H,EAAK,KACHA,GAAG,CACR,IAAI0tB,EAAM1tB,EAAG,OAEb,GAAG0tB,GACF,QAAQ16C,MAAK06C,EACd,GAAI,OAAO,UAAU,eAAe,KAAKA,EAAK16C,EAAC,GAAK06C,EAAI16C,EAAC,IAAMsmJ,EAC9D,OAAOtmJ,GAIRgtB,EAAKA,EAAG,UAAY62H,EAAe72H,EAAG,cAAgBA,EAAG,UAC/D,CACK,OAAO,IACZ,EAEI,mBAAmB,SAAS8B,EAAO,CAElC,QADI9B,EAAK,KACHA,GAAG,CACR,IAAI0tB,EAAM1tB,EAAG,OAEb,GAAG0tB,GACC,OAAO,UAAU,eAAe,KAAKA,EAAK5rB,CAAM,EAClD,OAAO4rB,EAAI5rB,CAAM,EAGnB9B,EAAKA,EAAG,UAAY62H,EAAe72H,EAAG,cAAgBA,EAAG,UAC/D,CACK,OAAO,IACZ,EAEI,mBAAmB,SAASs5H,EAAa,CACxC,IAAIx3H,EAAS,KAAK,aAAaw3H,CAAY,EAC3C,OAAOx3H,GAAU,IACtB,GAIA,SAASg5H,EAAYznJ,EAAE,CACtB,OAAOA,GAAK,KAAO,QACXA,GAAK,KAAO,QACZA,GAAK,KAAO,SACZA,GAAK,KAAO,UACZ,KAAKA,EAAE,aAAa,GAC7B,CAGA6hB,EAAKyhI,EAASoD,CAAI,EAClB7kI,EAAKyhI,EAASoD,EAAK,SAAS,EAS5B,SAASgB,GAAW5vH,EAAMic,EAAU,CACnC,OAAOozG,GAAQrvH,EAAM,KAAM,CAAE,MAAO,SAAUn4B,EAAG,CAAE,OAAOo0C,EAASp0C,CAAC,EAAIwnJ,GAAQ,KAAO,EAAK,CAAE,CAAE,IAAMA,GAAQ,IAC/G,CAkCA,SAASA,GAAQrvH,EAAMyyB,EAAS1W,EAAW,CAK1C,QADI9M,GAAQ,CAAC,CAAE,KAAMjP,EAAM,QAASyyB,EAAS,MAAO48F,GAAQ,MAAO,EAC5DpgH,GAAM,OAAS,GAAG,CACxB,IAAI6tF,GAAQ7tF,GAAM,IAAG,EACrB,GAAI6tF,GAAM,QAAUuyB,GAAQ,MAAO,CAClC,IAAIQ,GAAe9zG,EAAU,MAAM+gF,GAAM,KAAMA,GAAM,OAAO,EAC5D,GAAI+yB,KAAiBR,GAAQ,KAC5B,OAAOA,GAAQ,KAIhB,GADApgH,GAAM,KAAK,CAAE,KAAM6tF,GAAM,KAAM,QAAS+yB,GAAc,MAAOR,GAAQ,IAAI,CAAE,EACvEQ,IAAiB,KACpB,SAMD,QAHIniH,GAAQovF,GAAM,KAAK,UAGhBpvF,IACNuB,GAAM,KAAK,CAAE,KAAMvB,GAAO,QAASmiH,GAAc,MAAOR,GAAQ,MAAO,EACvE3hH,GAAQA,GAAM,eAElB,MAEOqO,EAAU,MACbA,EAAU,KAAK+gF,GAAM,KAAMA,GAAM,OAAO,CAG5C,CACA,CAQAuyB,GAAQ,KAAO,OAAO,cAAc,EAOpCA,GAAQ,MAAQ,EAOhBA,GAAQ,KAAO,EAEf,SAASnJ,IAAU,CAClB,KAAK,cAAgB,IACtB,CAEA,SAAS+H,GAAgBF,EAAIl5H,EAAGg5H,EAAQ,CACvCE,GAAOA,EAAI,OACX,IAAI7uI,GAAK2uI,EAAQ,aACd3uI,KAAOwrI,EAAU,QAEnB71H,EAAG,OAAOg5H,EAAQ,OAAOA,EAAQ,UAAU,EAAE,EAAIA,EAAQ,MAE3D,CAEA,SAASG,GAAmBD,EAAIl5H,EAAGg5H,EAAQttF,GAAO,CACjDwtF,GAAOA,EAAI,OACX,IAAI7uI,GAAK2uI,EAAQ,aACd3uI,KAAOwrI,EAAU,OAEnB,OAAO71H,EAAG,OAAOg5H,EAAQ,OAAOA,EAAQ,UAAU,EAAE,CAEtD,CAcA,SAAS6B,GAAgB3B,EAAKl5H,EAAIg6H,EAAU,CAC3C,GAAGd,GAAOA,EAAI,KAAK,CAClBA,EAAI,OAEJ,IAAIruI,GAAKmV,EAAG,WACZ,GAAIg6H,EACHnvI,GAAGA,GAAG,QAAQ,EAAImvI,MACZ,CAGN,QAFInhH,GAAQ7Y,EAAG,WACX/sB,GAAI,EACD4lC,IACNhuB,GAAG5X,IAAG,EAAI4lC,GACVA,GAAQA,GAAM,YAEfhuB,GAAG,OAAS5X,GACZ,OAAO4X,GAAGA,GAAG,MAAM,CACtB,CACA,CACA,CAcA,SAASwvI,EAAcY,EAAYpiH,EAAO,CACzC,IAAIstB,EAAWttB,EAAM,gBACjB5oC,GAAO4oC,EAAM,YACjB,OAAIstB,EACHA,EAAS,YAAcl2D,GAEvBgrJ,EAAW,WAAahrJ,GAErBA,GACHA,GAAK,gBAAkBk2D,EAEvB80F,EAAW,UAAY90F,EAExBttB,EAAM,WAAa,KACnBA,EAAM,gBAAkB,KACxBA,EAAM,YAAc,KACpBgiH,GAAeI,EAAW,cAAeA,CAAU,EAC5CpiH,CACR,CAOA,SAASqiH,GAAuB/vH,EAAM,CACrC,OACCA,IACCA,EAAK,WAAa4uH,EAAK,eAAiB5uH,EAAK,WAAa4uH,EAAK,wBAA0B5uH,EAAK,WAAa4uH,EAAK,aAEnH,CAOA,SAASoB,GAAsBhwH,EAAM,CACpC,OACCA,IACCiwH,EAAcjwH,CAAI,GAClBkwH,EAAWlwH,CAAI,GACfmwH,EAAcnwH,CAAI,GAClBA,EAAK,WAAa4uH,EAAK,wBACvB5uH,EAAK,WAAa4uH,EAAK,cACvB5uH,EAAK,WAAa4uH,EAAK,4BAE1B,CAOA,SAASuB,EAAcnwH,EAAM,CAC5B,OAAOA,GAAQA,EAAK,WAAa4uH,EAAK,kBACvC,CAOA,SAASqB,EAAcjwH,EAAM,CAC5B,OAAOA,GAAQA,EAAK,WAAa4uH,EAAK,YACvC,CAMA,SAASsB,EAAWlwH,EAAM,CACzB,OAAOA,GAAQA,EAAK,WAAa4uH,EAAK,SACvC,CAYA,SAASwB,GAA2BrC,EAAKrgH,EAAO,CAC/C,IAAI2iH,EAAmBtC,EAAI,YAAc,CAAA,EACzC,GAAIhpB,EAAKsrB,EAAkBJ,CAAa,GAAKE,EAAcziH,CAAK,EAC/D,MAAO,GAER,IAAI4iH,GAAcvrB,EAAKsrB,EAAkBF,CAAa,EACtD,MAAO,EAAEziH,GAAS4iH,IAAeD,EAAiB,QAAQC,EAAW,EAAID,EAAiB,QAAQ3iH,CAAK,EACxG,CAYA,SAAS6iH,GAA6BxC,EAAKrgH,EAAO,CACjD,IAAI2iH,EAAmBtC,EAAI,YAAc,CAAA,EAEzC,SAASyC,GAA8BxwH,GAAM,CAC5C,OAAOiwH,EAAcjwH,EAAI,GAAKA,KAAS0N,CACzC,CAEC,GAAIq3F,EAAKsrB,EAAkBG,EAA6B,EACvD,MAAO,GAER,IAAIF,GAAcvrB,EAAKsrB,EAAkBF,CAAa,EACtD,MAAO,EAAEziH,GAAS4iH,IAAeD,EAAiB,QAAQC,EAAW,EAAID,EAAiB,QAAQ3iH,CAAK,EACxG,CAeA,SAAS+iH,GAA+BvhH,EAAQlP,EAAM0N,EAAO,CAE5D,GAAI,CAACqiH,GAAuB7gH,CAAM,EACjC,MAAM,IAAI09G,EAAaL,EAAuB,+BAAiCr9G,EAAO,QAAQ,EAK/F,GAAIxB,GAASA,EAAM,aAAewB,EACjC,MAAM,IAAI09G,EAAaH,EAAe,qBAAqB,EAE5D,GAEC,CAACuD,GAAsBhwH,CAAI,GAK1BmwH,EAAcnwH,CAAI,GAAKkP,EAAO,WAAa0/G,EAAK,cAEjD,MAAM,IAAIhC,EACTL,EACA,wBAA0BvsH,EAAK,SAAW,yBAA2BkP,EAAO,SAG/E,CAeA,SAASwhH,EAAqCxhH,EAAQlP,EAAM0N,EAAO,CAClE,IAAI2iH,GAAmBnhH,EAAO,YAAc,CAAA,EACxCyhH,GAAiB3wH,EAAK,YAAc,CAAA,EAGxC,GAAIA,EAAK,WAAa4uH,EAAK,uBAAwB,CAClD,IAAIgC,GAAoBD,GAAe,OAAOV,CAAa,EAE3D,GAAIW,GAAkB,OAAS,GAAK7rB,EAAK4rB,GAAgBT,CAAU,EAClE,MAAM,IAAItD,EAAaL,EAAuB,2CAA2C,EAI1F,GAAIqE,GAAkB,SAAW,GAAK,CAACR,GAA2BlhH,EAAQxB,CAAK,EAC9E,MAAM,IAAIk/G,EAAaL,EAAuB,wDAAwD,CAEzG,CAEC,GAAI0D,EAAcjwH,CAAI,GAGjB,CAACowH,GAA2BlhH,EAAQxB,CAAK,EAC5C,MAAM,IAAIk/G,EAAaL,EAAuB,sDAAsD,EAItG,GAAI4D,EAAcnwH,CAAI,EAAG,CAExB,GAAI+kG,EAAKsrB,GAAkBF,CAAa,EACvC,MAAM,IAAIvD,EAAaL,EAAuB,6BAA6B,EAE5E,IAAIsE,GAAqB9rB,EAAKsrB,GAAkBJ,CAAa,EAE7D,GAAIviH,GAAS2iH,GAAiB,QAAQQ,EAAkB,EAAIR,GAAiB,QAAQ3iH,CAAK,EACzF,MAAM,IAAIk/G,EAAaL,EAAuB,gDAAgD,EAG/F,GAAI,CAAC7+G,GAASmjH,GACb,MAAM,IAAIjE,EAAaL,EAAuB,sDAAsD,CAEvG,CACA,CAeA,SAAS0C,GAAuC//G,EAAQlP,EAAM0N,EAAO,CACpE,IAAI2iH,GAAmBnhH,EAAO,YAAc,CAAA,EACxCyhH,GAAiB3wH,EAAK,YAAc,CAAA,EAGxC,GAAIA,EAAK,WAAa4uH,EAAK,uBAAwB,CAClD,IAAIgC,GAAoBD,GAAe,OAAOV,CAAa,EAE3D,GAAIW,GAAkB,OAAS,GAAK7rB,EAAK4rB,GAAgBT,CAAU,EAClE,MAAM,IAAItD,EAAaL,EAAuB,2CAA2C,EAG1F,GAAIqE,GAAkB,SAAW,GAAK,CAACL,GAA6BrhH,EAAQxB,CAAK,EAChF,MAAM,IAAIk/G,EAAaL,EAAuB,wDAAwD,CAEzG,CAEC,GAAI0D,EAAcjwH,CAAI,GAEjB,CAACuwH,GAA6BrhH,EAAQxB,CAAK,EAC9C,MAAM,IAAIk/G,EAAaL,EAAuB,sDAAsD,EAItG,GAAI4D,EAAcnwH,CAAI,EAAG,CAMxB,GAAI+kG,EAAKsrB,GALT,SAAuCrwH,GAAM,CAC5C,OAAOmwH,EAAcnwH,EAAI,GAAKA,KAAS0N,CAC1C,CAG0D,EACvD,MAAM,IAAIk/G,EAAaL,EAAuB,6BAA6B,EAE5E,IAAIsE,GAAqB9rB,EAAKsrB,GAAkBJ,CAAa,EAE7D,GAAIviH,GAAS2iH,GAAiB,QAAQQ,EAAkB,EAAIR,GAAiB,QAAQ3iH,CAAK,EACzF,MAAM,IAAIk/G,EAAaL,EAAuB,gDAAgD,CAEjG,CACA,CAYA,SAASwC,GAAc7/G,EAAQlP,EAAM0N,EAAOojH,GAAsB,CAEjEL,GAA+BvhH,EAAQlP,EAAM0N,CAAK,EAI9CwB,EAAO,WAAa0/G,EAAK,gBAC3BkC,IAAwBJ,GAAsCxhH,EAAQlP,EAAM0N,CAAK,EAGnF,IAAIqjH,GAAK/wH,EAAK,WAId,GAHG+wH,IACFA,GAAG,YAAY/wH,CAAI,EAEjBA,EAAK,WAAamsH,EAAuB,CAC3C,IAAI6E,GAAWhxH,EAAK,WACpB,GAAIgxH,IAAY,KACf,OAAOhxH,EAER,IAAIixH,GAAUjxH,EAAK,SACrB,MACEgxH,GAAWC,GAAUjxH,EAEtB,IAAIkxH,GAAMxjH,EAAQA,EAAM,gBAAkBwB,EAAO,UAEjD8hH,GAAS,gBAAkBE,GAC3BD,GAAQ,YAAcvjH,EAGnBwjH,GACFA,GAAI,YAAcF,GAElB9hH,EAAO,WAAa8hH,GAElBtjH,GAAS,KACXwB,EAAO,UAAY+hH,GAEnBvjH,EAAM,gBAAkBujH,GAEzB,EAAE,CACDD,GAAS,WAAa9hH,EAEtB,IAAIiiH,GAAYjiH,EAAO,eAAiBA,EACxCkiH,GAAqBJ,GAAUG,EAAS,CAC1C,OAAQH,KAAaC,KAAYD,GAAUA,GAAS,cACnD,OAAAtB,GAAexgH,EAAO,eAAeA,EAAQA,CAAM,EAE/ClP,EAAK,UAAYmsH,IACpBnsH,EAAK,WAAaA,EAAK,UAAY,MAE7BA,CACR,CAQA,SAASoxH,GAAqBpxH,EAAMqxH,EAAkB,CACrD,GAAIrxH,EAAK,gBAAkBqxH,EAO3B,IAHArxH,EAAK,cAAgBqxH,EAGjBrxH,EAAK,WAAayrH,GAAgBzrH,EAAK,WAC1C,QAASl4B,EAAI,EAAGA,EAAIk4B,EAAK,WAAW,OAAQl4B,IAAK,CAChD,IAAI4lJ,GAAO1tH,EAAK,WAAW,KAAKl4B,CAAC,EAC7B4lJ,KACHA,GAAK,cAAgB2D,EAEzB,CAKC,QADI3jH,GAAQ1N,EAAK,WACV0N,IACN0jH,GAAqB1jH,GAAO2jH,CAAgB,EAC5C3jH,GAAQA,GAAM,YAEhB,CAaA,SAAS4jH,GAAoBxB,EAAYjB,EAAU,CAC9CA,EAAS,YACZA,EAAS,WAAW,YAAYA,CAAQ,EAEzCA,EAAS,WAAaiB,EACtBjB,EAAS,gBAAkBiB,EAAW,UACtCjB,EAAS,YAAc,KACnBA,EAAS,gBACZA,EAAS,gBAAgB,YAAcA,EAEvCiB,EAAW,WAAajB,EAEzBiB,EAAW,UAAYjB,EACvBa,GAAeI,EAAW,cAAeA,EAAYjB,CAAQ,EAG7D,IAAIsC,EAAYrB,EAAW,eAAiBA,EAC5C,OAAAsB,GAAqBvC,EAAUsC,CAAS,EAEjCtC,CACR,CAEA3I,GAAS,UAAY,CAEpB,SAAY,YACZ,SAAY+F,EAOZ,QAAW,KACX,gBAAmB,KACnB,KAAO,EAEP,aAAgB,SAAS4C,EAAUC,EAAS,CAC3C,GAAGD,EAAS,UAAY1C,EAAuB,CAE9C,QADIz+G,EAAQmhH,EAAS,WACfnhH,GAAM,CACX,IAAI5oC,GAAO4oC,EAAM,YACjB,KAAK,aAAaA,EAAMohH,CAAQ,EAChCphH,EAAQ5oC,EACZ,CACG,OAAO+pJ,CACV,CACE,OAAAE,GAAc,KAAMF,EAAUC,CAAQ,EACtCsC,GAAqBvC,EAAU,IAAI,EAC/B,KAAK,kBAAoB,MAAQA,EAAS,WAAapD,IAC1D,KAAK,gBAAkBoD,GAGjBA,CACT,EACC,YAAe,SAASG,EAAS,CAChC,OAAG,KAAK,iBAAmBA,IAC1B,KAAK,gBAAkB,MAEjBE,EAAa,KAAKF,CAAQ,CACnC,EACC,aAAc,SAAUH,EAAUG,EAAU,CAE3CD,GAAc,KAAMF,EAAUG,EAAUC,EAAsC,EAC9EmC,GAAqBvC,EAAU,IAAI,EAC/BG,GACH,KAAK,YAAYA,CAAQ,EAEtBiB,EAAcpB,CAAQ,IACzB,KAAK,gBAAkBA,EAE1B,EAEC,WAAa,SAAS0C,EAAapC,EAAK,CACvC,OAAOqC,GAAW,KAAKD,EAAapC,CAAI,CAC1C,EAEC,eAAiB,SAAS9iI,EAAG,CAC5B,IAAIolI,EAAM,KACV,OAAA7B,GAAW,KAAK,gBAAgB,SAAS5vH,EAAK,CAC7C,GAAGA,EAAK,UAAYyrH,GAChBzrH,EAAK,aAAa,IAAI,GAAK3T,EAC7B,OAAAolI,EAAMzxH,EACC,EAGZ,CAAG,EACMyxH,CACT,EAmBC,uBAAwB,SAASC,EAAY,CAC5C,IAAIC,EAAgBxG,EAAauG,CAAU,EAC3C,OAAO,IAAIxE,EAAa,KAAM,SAASt2H,EAAM,CAC5C,IAAIjX,GAAK,CAAA,EACT,OAAIgyI,EAAc,OAAS,GAC1B/B,GAAWh5H,EAAK,gBAAiB,SAASoJ,GAAM,CAC/C,GAAGA,KAASpJ,GAAQoJ,GAAK,WAAayrH,EAAc,CACnD,IAAImG,GAAiB5xH,GAAK,aAAa,OAAO,EAE9C,GAAI4xH,GAAgB,CAEnB,IAAIzgH,GAAUugH,IAAeE,GAC7B,GAAI,CAACzgH,GAAS,CACb,IAAI0gH,GAAoB1G,EAAayG,EAAc,EACnDzgH,GAAUwgH,EAAc,MAAMvG,EAAcyG,EAAiB,CAAC,CACtE,CACU1gH,IACFxxB,GAAG,KAAKqgB,EAAI,CAEpB,CACA,CACA,CAAK,EAEKrgB,EACV,CAAG,CACH,EAGC,cAAgB,SAASmyI,EAAQ,CAChC,IAAI9xH,EAAO,IAAImqH,GACfnqH,EAAK,cAAgB,KACrBA,EAAK,SAAW8xH,EAChB9xH,EAAK,QAAU8xH,EACf9xH,EAAK,UAAY8xH,EACjB9xH,EAAK,WAAa,IAAI6sH,EACtB,IAAIxwB,EAAQr8F,EAAK,WAAa,IAAIutH,EAClC,OAAAlxB,EAAM,cAAgBr8F,EACfA,CACT,EACC,uBAAyB,UAAU,CAClC,IAAIA,EAAO,IAAI+xH,GACf,OAAA/xH,EAAK,cAAgB,KACrBA,EAAK,WAAa,IAAI6sH,EACf7sH,CACT,EACC,eAAiB,SAASx5B,EAAK,CAC9B,IAAIw5B,EAAO,IAAIumH,GACf,OAAAvmH,EAAK,cAAgB,KACrBA,EAAK,WAAWx5B,CAAI,EACbw5B,CACT,EACC,cAAgB,SAASx5B,EAAK,CAC7B,IAAIw5B,EAAO,IAAIqqB,GACf,OAAArqB,EAAK,cAAgB,KACrBA,EAAK,WAAWx5B,CAAI,EACbw5B,CACT,EAaC,mBAAqB,SAASx5B,EAAK,CAClC,GAAIA,EAAK,QAAQ,KAAK,IAAM,GAC3B,MAAM,IAAIomJ,EAAaJ,EAAuB,qBAAqB,EAEpE,IAAIxsH,EAAO,IAAIgyH,GACf,OAAAhyH,EAAK,cAAgB,KACrBA,EAAK,WAAWx5B,CAAI,EACbw5B,CACT,EAoBC,4BAA8B,SAAS7Y,EAAO3gB,EAAK,CAClD,IAAIw5B,EAAO,IAAIiyH,GACf,OAAAjyH,EAAK,cAAgB,KACrBA,EAAK,QAAUA,EAAK,SAAWA,EAAK,OAAS7Y,EAC7C6Y,EAAK,UAAYA,EAAK,KAAOx5B,EACtBw5B,CACT,EACC,gBAAkB,SAAS9V,EAAK,CAC/B,IAAI8V,EAAO,IAAIkyH,GACf,OAAAlyH,EAAK,cAAgB,KACrBA,EAAK,KAAO9V,EACZ8V,EAAK,SAAW9V,EAChB8V,EAAK,UAAY9V,EACjB8V,EAAK,UAAY,GACVA,CACT,EAkBC,sBAAwB,SAAS9V,EAAK,CACrC,GAAI,CAAC4gI,EAAe,KAAK5gI,CAAI,EAC5B,MAAM,IAAI0iI,EAAaJ,EAAuB,yBAA2BtiI,EAAO,GAAG,EAEpF,IAAI8V,EAAO,IAAImyH,GACf,OAAAnyH,EAAK,cAAgB,KACrBA,EAAK,SAAW9V,EACT8V,CACT,EAEC,gBAAkB,SAASmuH,EAAaI,EAAc,CACrD,IAAIvuH,EAAO,IAAImqH,GACXiI,GAAK7D,EAAc,MAAM,GAAG,EAC5BlyB,GAAQr8F,EAAK,WAAa,IAAIutH,EAClC,OAAAvtH,EAAK,WAAa,IAAI6sH,EACtB7sH,EAAK,cAAgB,KACrBA,EAAK,SAAWuuH,EAChBvuH,EAAK,QAAUuuH,EACfvuH,EAAK,aAAemuH,EACjBiE,GAAG,QAAU,GACfpyH,EAAK,OAASoyH,GAAG,CAAC,EAClBpyH,EAAK,UAAYoyH,GAAG,CAAC,GAGrBpyH,EAAK,UAAYuuH,EAElBlyB,GAAM,cAAgBr8F,EACfA,CACT,EAEC,kBAAoB,SAASmuH,EAAaI,EAAc,CACvD,IAAIvuH,EAAO,IAAIkyH,GACXE,GAAK7D,EAAc,MAAM,GAAG,EAChC,OAAAvuH,EAAK,cAAgB,KACrBA,EAAK,SAAWuuH,EAChBvuH,EAAK,KAAOuuH,EACZvuH,EAAK,aAAemuH,EACpBnuH,EAAK,UAAY,GACdoyH,GAAG,QAAU,GACfpyH,EAAK,OAASoyH,GAAG,CAAC,EAClBpyH,EAAK,UAAYoyH,GAAG,CAAC,GAGrBpyH,EAAK,UAAYuuH,EAEXvuH,CACT,GAEAqrH,EAASnF,GAAS0I,CAAI,EAGtB,SAASzE,IAAU,CAClB,KAAK,OAAS,CAAA,CACf,CACAA,GAAQ,UAAY,CACnB,SAAWsB,EACX,aAAe,SAASvhI,EAAK,CAC5B,OAAO,KAAK,iBAAiBA,CAAI,GAAG,IACtC,EACC,aAAe,SAASA,EAAK,CAC5B,IAAIwjI,EAAO,KAAK,iBAAiBxjI,CAAI,EACrC,OAAOwjI,GAAQA,EAAK,OAAS,EAC/B,EACC,iBAAmB,SAASxjI,EAAK,CAChC,OAAO,KAAK,WAAW,aAAaA,CAAI,CAC1C,EACC,aAAe,SAASA,EAAM/jB,EAAM,CACnC,IAAIunJ,EAAO,KAAK,cAAc,gBAAgBxjI,CAAI,EAClDwjI,EAAK,MAAQA,EAAK,UAAY,GAAKvnJ,EACnC,KAAK,iBAAiBunJ,CAAI,CAC5B,EACC,gBAAkB,SAASxjI,EAAK,CAC/B,IAAIwjI,EAAO,KAAK,iBAAiBxjI,CAAI,EACrCwjI,GAAQ,KAAK,oBAAoBA,CAAI,CACvC,EAGC,YAAY,SAASmB,EAAS,CAC7B,OAAGA,EAAS,WAAa1C,EACjB,KAAK,aAAa0C,EAAS,IAAI,EAE/ByC,GAAmB,KAAKzC,CAAQ,CAE1C,EACC,iBAAmB,SAAShB,EAAQ,CACnC,OAAO,KAAK,WAAW,aAAaA,CAAO,CAC7C,EACC,mBAAqB,SAASA,EAAQ,CACrC,OAAO,KAAK,WAAW,eAAeA,CAAO,CAC/C,EACC,oBAAsB,SAASC,EAAQ,CAEtC,OAAO,KAAK,WAAW,gBAAgBA,EAAQ,QAAQ,CACzD,EAEC,kBAAoB,SAASK,EAAcC,EAAU,CACpD,IAAI7tE,EAAM,KAAK,mBAAmB4tE,EAAcC,CAAS,EACzD7tE,GAAO,KAAK,oBAAoBA,CAAG,CACrC,EAEC,eAAiB,SAAS4tE,EAAcC,EAAU,CACjD,OAAO,KAAK,mBAAmBD,EAAcC,CAAS,GAAG,IAC3D,EACC,eAAiB,SAASD,EAAcC,EAAU,CACjD,IAAIV,EAAO,KAAK,mBAAmBS,EAAcC,CAAS,EAC1D,OAAOV,GAAQA,EAAK,OAAS,EAC/B,EACC,eAAiB,SAASS,EAAcI,EAAepoJ,EAAM,CAC5D,IAAIunJ,GAAO,KAAK,cAAc,kBAAkBS,EAAcI,CAAa,EAC3Eb,GAAK,MAAQA,GAAK,UAAY,GAAKvnJ,EACnC,KAAK,iBAAiBunJ,EAAI,CAC5B,EACC,mBAAqB,SAASS,EAAcC,EAAU,CACrD,OAAO,KAAK,WAAW,eAAeD,EAAcC,CAAS,CAC/D,EAEC,qBAAuB,SAAS0D,EAAQ,CACvC,OAAO,IAAI5E,EAAa,KAAK,SAASt2H,EAAK,CAC1C,IAAIjX,EAAK,CAAA,EACT,OAAAiwI,GAAWh5H,EAAK,SAASoJ,GAAK,CAC1BA,KAASpJ,GAAQoJ,GAAK,UAAYyrH,IAAiBqG,IAAY,KAAO9xH,GAAK,SAAW8xH,IACxFnyI,EAAG,KAAKqgB,EAAI,CAEjB,CAAI,EACMrgB,CACV,CAAG,CACH,EACC,uBAAyB,SAASwuI,EAAcC,EAAU,CACzD,OAAO,IAAIlB,EAAa,KAAK,SAASt2H,EAAK,CAC1C,IAAIjX,GAAK,CAAA,EACT,OAAAiwI,GAAWh5H,EAAK,SAASoJ,GAAK,CAC1BA,KAASpJ,GAAQoJ,GAAK,WAAayrH,IAAiB0C,IAAiB,KAAOnuH,GAAK,eAAiBmuH,KAAkBC,IAAc,KAAOpuH,GAAK,WAAaouH,IAC7JzuI,GAAG,KAAKqgB,EAAI,CAEjB,CAAI,EACMrgB,EAEV,CAAG,CACH,GAEAumI,GAAS,UAAU,qBAAuBiE,GAAQ,UAAU,qBAC5DjE,GAAS,UAAU,uBAAyBiE,GAAQ,UAAU,uBAG9DkB,EAASlB,GAAQyE,CAAI,EACrB,SAASsD,IAAO,CAChB,CACAA,GAAK,UAAU,SAAWxG,EAC1BL,EAAS6G,GAAKtD,CAAI,EAGlB,SAASyD,IAAgB,CACzB,CACAA,GAAc,UAAY,CACzB,KAAO,GACP,cAAgB,SAASjyF,EAAQsmB,EAAO,CACvC,OAAO,KAAK,KAAK,UAAUtmB,EAAQA,EAAOsmB,CAAK,CACjD,EACC,WAAY,SAASn/E,EAAM,CAC1BA,EAAO,KAAK,KAAKA,EACjB,KAAK,UAAY,KAAK,KAAOA,EAC7B,KAAK,OAASA,EAAK,MACrB,EACC,WAAY,SAAS64D,EAAO74D,EAAM,CACjC,KAAK,YAAY64D,EAAO,EAAE74D,CAAI,CAEhC,EACC,YAAY,SAASsnJ,EAAS,CAC7B,MAAM,IAAI,MAAMvC,EAAiBC,CAAqB,CAAC,CACzD,EACC,WAAY,SAASnsF,EAAQsmB,EAAO,CACnC,KAAK,YAAYtmB,EAAOsmB,EAAM,EAAE,CAClC,EACC,YAAa,SAAStmB,EAAQsmB,EAAOn/E,EAAM,CAC1C,IAAI6tC,GAAQ,KAAK,KAAK,UAAU,EAAEgrB,CAAM,EACpC/qB,GAAM,KAAK,KAAK,UAAU+qB,EAAOsmB,CAAK,EAC1Cn/E,EAAO6tC,GAAQ7tC,EAAO8tC,GACtB,KAAK,UAAY,KAAK,KAAO9tC,EAC7B,KAAK,OAASA,EAAK,MACrB,CACA,EACA8jJ,EAASgH,GAAczD,CAAI,EAC3B,SAASrI,IAAO,CAChB,CACAA,GAAK,UAAY,CAChB,SAAW,QACX,SAAWoF,EACX,UAAY,SAASvrF,EAAQ,CAC5B,IAAI74D,EAAO,KAAK,KACZyuG,EAAUzuG,EAAK,UAAU64D,CAAM,EACnC74D,EAAOA,EAAK,UAAU,EAAG64D,CAAM,EAC/B,KAAK,KAAO,KAAK,UAAY74D,EAC7B,KAAK,OAASA,EAAK,OACnB,IAAI+qJ,GAAU,KAAK,cAAc,eAAet8C,CAAO,EACvD,OAAG,KAAK,YACP,KAAK,WAAW,aAAas8C,GAAS,KAAK,WAAW,EAEhDA,EACT,CACA,EACAjH,EAAS9E,GAAK8L,EAAa,EAC3B,SAAShoG,IAAU,CACnB,CACAA,GAAQ,UAAY,CACnB,SAAW,WACX,SAAW2hG,CACZ,EACAX,EAAShhG,GAAQgoG,EAAa,EAE9B,SAASL,IAAe,CACxB,CACAA,GAAa,UAAY,CACxB,SAAW,iBACX,SAAWpG,CACZ,EACAP,EAAS2G,GAAaK,EAAa,EAiBnC,SAAS1D,IAAe,CACxB,CACAA,GAAa,UAAU,SAAWzC,EAClCb,EAASsD,GAAaC,CAAI,EAE1B,SAAS2D,IAAW,CACpB,CACAA,GAAS,UAAU,SAAWnG,EAC9Bf,EAASkH,GAAS3D,CAAI,EAEtB,SAAS4D,IAAS,CAClB,CACAA,GAAO,UAAU,SAAW1G,EAC5BT,EAASmH,GAAO5D,CAAI,EAgBpB,SAASuD,IAAkB,CAC3B,CACAA,GAAgB,UAAU,SAAWtG,EACrCR,EAAS8G,GAAgBvD,CAAI,EAE7B,SAASmD,IAAmB,CAC5B,CACAA,GAAiB,UAAU,SAAW,qBACtCA,GAAiB,UAAU,SAAW5F,EACtCd,EAAS0G,GAAiBnD,CAAI,EAG9B,SAASqD,IAAwB,CACjC,CACAA,GAAsB,UAAU,SAAWlG,EAC3CV,EAAS4G,GAAsBrD,CAAI,EACnC,SAAS6D,IAAe,CAAA,CA2CxBA,GAAc,UAAU,kBAAoB,SAASzyH,EAAK0yH,EAAO3F,EAAWlmJ,GAAQ,CACnF,OAAO8rJ,GAAsB,KAAK3yH,EAAK0yH,EAAO3F,EAAWlmJ,EAAO,CACjE,EACA+nJ,EAAK,UAAU,SAAW+D,GAC1B,SAASA,GAAsBD,EAAO3F,EAAWlmJ,EAAQ,CACxD,IAAImmJ,GAAoB,CAAC,CAACnmJ,GAAW,CAAC,CAACA,EAAQ,kBAC3C6tB,GAAM,CAAA,EACNk+H,GAAU,KAAK,UAAY,GAAK,KAAK,iBAAmB,KACxDj8H,GAASi8H,GAAQ,OACjBjI,GAAMiI,GAAQ,aAElB,GAAGjI,IAAOh0H,IAAU,KAAK,CAExB,IAAIA,GAASi8H,GAAQ,aAAajI,EAAG,EACrC,GAAGh0H,IAAU,KAEZ,IAAIk8H,GAAkB,CACtB,CAAC,UAAUlI,GAAI,OAAO,IAAI,CAE7B,CAEA,CACC,OAAAsC,GAAkB,KAAKv4H,GAAIg+H,EAAO3F,EAAW8F,GAAkB7F,EAAiB,EAEzEt4H,GAAI,KAAK,EAAE,CACnB,CAEA,SAASo+H,GAAoB9yH,EAAM8sH,EAAQ+F,EAAmB,CAC7D,IAAIl8H,GAASqJ,EAAK,QAAU,GACxB2qH,GAAM3qH,EAAK,aAWf,GAHI,CAAC2qH,IAGDh0H,KAAW,OAASg0H,KAAQD,EAAU,KAAOC,KAAQD,EAAU,MAClE,MAAO,GAIR,QADI5iJ,GAAI+qJ,EAAkB,OACnB/qJ,MAAK,CACX,IAAIoX,GAAK2zI,EAAkB/qJ,EAAC,EAE5B,GAAIoX,GAAG,SAAWyX,GACjB,OAAOzX,GAAG,YAAcyrI,EAE3B,CACC,MAAO,EACR,CAcA,SAASoI,GAAuBr+H,EAAK65H,EAAepoJ,EAAO6mJ,GAAmB,CAC7E,GAAIA,IAAqB,CAAClC,EAAe,KAAKyD,CAAa,EAC1D,MAAM,IAAI3B,EAAaD,EAAmB,uBAAyB4B,EAAgB,4BAA4B,EAEhH75H,EAAI,KAAK,IAAK65H,EAAe,KAAMpoJ,EAAM,QAAQ,gBAAiBwpJ,CAAW,EAAG,GAAG,CACpF,CAEA,SAAS1C,GAAkBjtH,EAAMtL,EAAKo4H,EAAQC,GAAY8F,GAAmB7F,GAAmB,CAC1F6F,KACJA,GAAoB,CAAA,GAErBxD,GAAQrvH,EAAM,CAAE,GAAI6yH,GAAmB,OAAQ/F,GAAU,CACxD,MAAO,SAAUjlJ,GAAGysB,GAAK,CACxB,IAAIpV,GAAKoV,GAAI,GACTuI,GAAOvI,GAAI,OAEf,GAAIy4H,GAEH,GADAllJ,GAAIklJ,GAAWllJ,EAAC,EACZA,IACH,GAAI,OAAOA,IAAK,SACf,OAAA6sB,EAAI,KAAK7sB,EAAC,EACH,SAGR,QAAO,KAIT,OAAQA,GAAE,SAAQ,CACjB,KAAK4jJ,EACJ,IAAIpvB,GAAQx0H,GAAE,WACV2gB,GAAM6zG,GAAM,OACZ22B,GAAWnrJ,GAAE,QAEjBg1B,GAAO6tH,EAAU,OAAO7iJ,GAAE,YAAY,GAAKg1B,GAE3C,IAAIo2H,GAAmBD,GACvB,GAAI,CAACn2H,IAAQ,CAACh1B,GAAE,QAAUA,GAAE,aAAc,CAGzC,QAFIqrJ,GAEKt6I,GAAK,EAAGA,GAAKyjH,GAAM,OAAQzjH,KACnC,GAAIyjH,GAAM,KAAKzjH,EAAE,EAAE,OAAS,QAAS,CACpCs6I,GAAY72B,GAAM,KAAKzjH,EAAE,EAAE,MAC3B,KACR,CAEM,GAAI,CAACs6I,GAEJ,QAASC,GAAMj0I,GAAG,OAAS,EAAGi0I,IAAO,EAAGA,KAAO,CAC9C,IAAIC,GAAUl0I,GAAGi0I,EAAG,EACpB,GAAIC,GAAQ,SAAW,IAAMA,GAAQ,YAAcvrJ,GAAE,aAAc,CAClEqrJ,GAAYE,GAAQ,UACpB,KACT,CACA,CAEM,GAAIF,KAAcrrJ,GAAE,aACnB,QAASsrJ,GAAMj0I,GAAG,OAAS,EAAGi0I,IAAO,EAAGA,KAAO,CAC9C,IAAIC,GAAUl0I,GAAGi0I,EAAG,EACpB,GAAIC,GAAQ,YAAcvrJ,GAAE,aAAc,CACrCurJ,GAAQ,SACXH,GAAmBG,GAAQ,OAAS,IAAMJ,IAE3C,KACT,CACA,CAEA,CAEK,GAAIhG,IAAqB,CAAClC,EAAe,KAAKmI,EAAgB,EAC7D,MAAM,IAAIrG,EAAaD,EAAmB,qBAAuBsG,GAAmB,4BAA4B,EAEjHv+H,EAAI,KAAK,IAAKu+H,EAAgB,EAK9B,QADII,GAAUn0I,GAAG,MAAK,EACbpX,GAAI,EAAGA,GAAI0gB,GAAK1gB,KAAK,CAC7B,IAAI4lJ,GAAOrxB,GAAM,KAAKv0H,EAAC,EACnB4lJ,GAAK,QAAU,QAClB2F,GAAQ,KAAK,CAAE,OAAQ3F,GAAK,UAAW,UAAWA,GAAK,MAAO,EACpDA,GAAK,UAAY,SAC3B2F,GAAQ,KAAK,CAAE,OAAQ,GAAI,UAAW3F,GAAK,MAAO,CAEzD,CAEK,QAAS5lJ,GAAI,EAAGA,GAAI0gB,GAAK1gB,KAAK,CAC7B,IAAI4lJ,GAAOrxB,GAAM,KAAKv0H,EAAC,EACvB,GAAIgrJ,GAAoBpF,GAAM7wH,GAAMw2H,EAAO,EAAG,CAC7C,IAAIC,GAAa5F,GAAK,QAAU,GAC5B/C,GAAM+C,GAAK,aACfqF,GAAuBr+H,EAAK4+H,GAAa,SAAWA,GAAa,QAAS3I,GAAKqC,EAAiB,EAChGqG,GAAQ,KAAK,CAAE,OAAQC,GAAY,UAAW3I,GAAK,CAC1D,CAEM,IAAI4I,GAAexG,GAAaA,GAAWW,EAAI,EAAIA,GAC/C6F,KACC,OAAOA,IAAiB,SAC3B7+H,EAAI,KAAK6+H,EAAY,EAErBR,GAAuBr+H,EAAK6+H,GAAa,KAAMA,GAAa,MAAOvG,EAAiB,EAG5F,CAGK,GAAIgG,KAAaC,IAAoBH,GAAoBjrJ,GAAGg1B,GAAMw2H,EAAO,EAAG,CAC3E,IAAIG,GAAa3rJ,GAAE,QAAU,GACzB8iJ,GAAM9iJ,GAAE,aACZkrJ,GAAuBr+H,EAAK8+H,GAAa,SAAWA,GAAa,QAAS7I,GAAKqC,EAAiB,EAChGqG,GAAQ,KAAK,CAAE,OAAQG,GAAY,UAAW7I,GAAK,CACzD,CAEK,IAAIj9G,GAAQ7lC,GAAE,WACd,GAAI6lC,IAAS7Q,IAAQ,CAAC,mCAAmC,KAAKm2H,EAAQ,EAAG,CAExE,GADAt+H,EAAI,KAAK,GAAG,EACRmI,IAAQ,YAAY,KAAKm2H,EAAQ,EAAG,CAEvC,KAAOtlH,IACFA,GAAM,KACThZ,EAAI,KAAKgZ,GAAM,IAAI,EAEnBu/G,GAAkBv/G,GAAOhZ,EAAKmI,GAAMkwH,GAAYsG,GAAQ,MAAK,EAAIrG,EAAiB,EAEnFt/G,GAAQA,GAAM,YAEf,OAAAhZ,EAAI,KAAK,KAAMs+H,GAAU,GAAG,EACrB,IACd,CAEM,MAAO,CAAE,GAAIK,GAAS,OAAQx2H,GAAM,IAAKo2H,EAAgB,CAC/D,KACM,QAAAv+H,EAAI,KAAK,IAAI,EACN,KAGT,KAAKu3H,EACL,KAAKE,EAEJ,MAAO,CAAE,GAAIjtI,GAAG,MAAK,EAAI,OAAQ2d,GAAM,IAAK,IAAI,EAEjD,KAAK6uH,EACJ,OAAAqH,GAAuBr+H,EAAK7sB,GAAE,KAAMA,GAAE,MAAOmlJ,EAAiB,EACvD,KAER,KAAKrB,EAiBJ,OAAAj3H,EAAI,KAAK7sB,GAAE,KAAK,QAAQ,SAAU8nJ,CAAW,CAAC,EACvC,KAER,KAAK/D,EACJ,GAAIoB,IAAqBnlJ,GAAE,KAAK,QAAQ,KAAK,IAAM,GAClD,MAAM,IAAI+kJ,EAAaD,EAAmB,sCAAsC,EAEjF,OAAAj4H,EAAI,KAAK,YAAa7sB,GAAE,KAAK,QAAQ,OAAQ,iBAAiB,EAAG,KAAK,EAC/D,KAER,KAAKmkJ,EACJ,GAAIgB,IAAqBnlJ,GAAE,KAAK,QAAQ,KAAK,IAAM,GAClD,MAAM,IAAI+kJ,EAAaD,EAAmB,sCAAsC,EAEjF,OAAAj4H,EAAI,KAAK,OAAQ7sB,GAAE,KAAM,KAAK,EACvB,KAER,KAAKqkJ,EACJ,GAAIc,GAAmB,CACtB,GAAI,CAAClC,EAAe,KAAKjjJ,GAAE,IAAI,EAC9B,MAAM,IAAI+kJ,EAAaD,EAAmB,qBAAuB9kJ,GAAE,KAAO,2BAA2B,EAEtG,GAAIA,GAAE,UAAY,CAAC,+FAA+F,KAAKA,GAAE,QAAQ,EAChI,MAAM,IAAI+kJ,EAAaD,EAAmB,mDAAmD,EAE9F,GAAI9kJ,GAAE,UAAY,CAAC,sBAAsB,KAAKA,GAAE,QAAQ,EACvD,MAAM,IAAI+kJ,EAAaD,EAAmB,oDAAoD,EAE/F,GAAI9kJ,GAAE,gBAAkBA,GAAE,eAAe,QAAQ,IAAI,IAAM,GAC1D,MAAM,IAAI+kJ,EAAaD,EAAmB,2CAA2C,CAE5F,CACK,IAAI8G,GAAQ5rJ,GAAE,SACV6rJ,GAAQ7rJ,GAAE,SAEd,GADA6sB,EAAI,KAAK,aAAc7sB,GAAE,IAAI,EACzB4rJ,GACH/+H,EAAI,KAAK,WAAY++H,EAAK,EACtBC,IAASA,IAAS,KACrBh/H,EAAI,KAAK,IAAKg/H,EAAK,EAEpBh/H,EAAI,KAAK,GAAG,UACFg/H,IAASA,IAAS,IAC5Bh/H,EAAI,KAAK,WAAYg/H,GAAO,GAAG,MACzB,CACN,IAAIC,GAAM9rJ,GAAE,eACR8rJ,IACHj/H,EAAI,KAAK,KAAMi/H,GAAK,GAAG,EAExBj/H,EAAI,KAAK,GAAG,CAClB,CACK,OAAO,KAER,KAAKq3H,EACJ,GAAIiB,GAAmB,CACtB,GAAI,CAAClC,EAAe,KAAKjjJ,GAAE,MAAM,GAAKA,GAAE,OAAO,QAAQ,GAAG,IAAM,IAAMA,GAAE,OAAO,YAAW,IAAO,MAChG,MAAM,IAAI+kJ,EACTD,EACA,sCAAwC9kJ,GAAE,OAAS,8CAGrD,GAAIA,GAAE,KAAK,QAAQ,IAAI,IAAM,GAC5B,MAAM,IAAI+kJ,EAAaD,EAAmB,8CAA8C,CAE/F,CACK,OAAAj4H,EAAI,KAAK,KAAM7sB,GAAE,OAAQ,IAAKA,GAAE,KAAM,IAAI,EACnC,KAER,KAAKgkJ,EACJ,GAAImB,IAAqB,CAAClC,EAAe,KAAKjjJ,GAAE,QAAQ,EACvD,MAAM,IAAI+kJ,EACTD,EACA,8BAAgC9kJ,GAAE,SAAW,6BAG/C,OAAA6sB,EAAI,KAAK,IAAK7sB,GAAE,SAAU,GAAG,EACtB,KAIR,QACC,OAAA6sB,EAAI,KAAK,KAAM7sB,GAAE,QAAQ,EAClB,IACZ,CACA,EACE,KAAM,SAAUA,GAAG+rJ,GAAU,CACxBA,IAAYA,GAAS,KACxBl/H,EAAI,KAAK,KAAMk/H,GAAS,IAAK,GAAG,CAEpC,CACA,CAAE,CACF,CAkBA,SAASpC,GAAWzD,EAAK/tH,EAAMmvH,EAAM,CACpC,IAAI0E,GACJ,OAAAxE,GAAQrvH,EAAM,KAAM,CACnB,MAAO,SAAU8zH,GAASC,GAAY,CAErC,IAAIC,GAAWF,GAAQ,UAAU,EAAK,EACtCE,GAAS,cAAgBjG,EACzBiG,GAAS,WAAa,KAElBD,KAAe,KAClBF,GAAWG,GAEXD,GAAW,YAAYC,EAAQ,EAGhC,IAAIC,GAAaH,GAAQ,WAAapI,GAAkByD,EACxD,OAAO8E,GAAaD,GAAW,IAClC,CACA,CAAE,EACMH,EACR,CAIA,SAASzE,GAAUrB,EAAK/tH,EAAMmvH,EAAM,CACnC,IAAI0E,GACJ,OAAAxE,GAAQrvH,EAAM,KAAM,CACnB,MAAO,SAAU8zH,GAASC,GAAY,CAErC,IAAIC,GAAW,IAAIF,GAAQ,YAC3B,QAASjsJ,MAAKisJ,GACb,GAAI,OAAO,UAAU,eAAe,KAAKA,GAASjsJ,EAAC,EAAG,CACrD,IAAIW,GAAIsrJ,GAAQjsJ,EAAC,EACb,OAAOW,IAAK,UACXA,IAAKwrJ,GAASnsJ,EAAC,IAClBmsJ,GAASnsJ,EAAC,EAAIW,GAGrB,CAEOsrJ,GAAQ,aACXE,GAAS,WAAa,IAAInH,GAE3BmH,GAAS,cAAgBjG,EAKzB,IAAIkG,GAAa9E,EACjB,OAAQ6E,GAAS,SAAQ,CACxB,KAAKvI,EACJ,IAAIpvB,GAAQy3B,GAAQ,WAChBI,GAAUF,GAAS,WAAa,IAAIzG,EACpC/kI,GAAM6zG,GAAM,OAChB63B,GAAO,cAAgBF,GACvB,QAASlsJ,GAAI,EAAGA,GAAI0gB,GAAK1gB,KACxBksJ,GAAS,iBAAiB5E,GAAUrB,EAAK1xB,GAAM,KAAKv0H,EAAC,EAAG,EAAI,CAAC,EAE9D,MACD,KAAK4jJ,EACJuI,GAAa,EAClB,CAEG,OAAIF,KAAe,KAClBA,GAAW,YAAYC,EAAQ,EAE/BH,GAAWG,GAILC,GAAaD,GAAW,IAClC,CACA,CAAE,EACMH,EACR,CAEA,SAASvG,GAAQlxB,EAAO7yG,EAAIpjB,EAAM,CACjCi2H,EAAO7yG,CAAG,EAAIpjB,CACf,CAEA,GAAG,CACC,OAAO,iBACT,OAAO,eAAe+mJ,EAAa,UAAU,SAAS,CACrD,IAAI,UAAU,CACb,OAAAE,GAAgB,IAAI,EACb,KAAK,QAChB,CACA,CAAG,EAWD,OAAO,eAAewB,EAAK,UAAW,cAAe,CACpD,IAAK,UAAY,CAChB,GAAI,KAAK,WAAanD,GAAgB,KAAK,WAAaU,EAAwB,CAC/E,IAAIz3H,EAAM,CAAA,EACV,OAAA26H,GAAQ,KAAM,KAAM,CACnB,MAAO,SAAUxnJ,EAAG,CACnB,GAAIA,EAAE,WAAa4jJ,GAAgB5jJ,EAAE,WAAaskJ,EACjD,MAAO,GAER,GAAItkJ,EAAE,WAAakkJ,GAA+BlkJ,EAAE,WAAamkJ,EAChE,OAAO,KAERt3H,EAAI,KAAK7sB,EAAE,SAAS,CAC3B,CACA,CAAM,EACM6sB,EAAI,KAAK,EAAE,CACvB,CACI,OAAO,KAAK,SAChB,EAEG,IAAK,SAAUluB,EAAM,CACpB,OAAQ,KAAK,SAAQ,CACpB,KAAKilJ,EACL,KAAKU,EACJ,KAAO,KAAK,YACX,KAAK,YAAY,KAAK,UAAU,GAE7B3lJ,GAAQ,OAAOA,CAAI,IACtB,KAAK,YAAY,KAAK,cAAc,eAAeA,CAAI,CAAC,EAEzD,MAED,QACC,KAAK,KAAOA,EACZ,KAAK,MAAQA,EACb,KAAK,UAAYA,CACvB,CACA,EACG,EAED8mJ,GAAU,SAASlxB,EAAO7yG,EAAIpjB,EAAM,CAEnCi2H,EAAO,KAAK7yG,CAAG,EAAIpjB,CACtB,EAEA,MAAS,CACT,CAGC,OAAAguJ,GAAA,aAAuBxF,GACvBwF,GAAA,aAAuBvH,EACvBuH,GAAA,kBAA4B9F,EAC5B8F,GAAA,QAAkBhK,GAClBgK,GAAA,KAAevF,EACfuF,GAAA,SAAmBtH,EACnBsH,GAAA,QAAkB9E,GAClB8E,GAAA,cAAwB1B,qECttEzB,IAAIlI,EAASr9H,GAAA,EAAyB,OAStCknI,EAAA,aAAuB7J,EAAO,CAC7B,IAAK,IACL,KAAM,IACN,GAAI,IACJ,GAAI,IACJ,KAAM,GACP,CAAC,EAgBD6J,EAAA,cAAwB7J,EAAO,CAC9B,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,GAAI,IACJ,IAAK,IACL,IAAK,KACL,MAAO,IACP,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,MAAO,IACP,MAAO,IACP,GAAI,IACJ,IAAK,KACL,IAAK,KACL,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,OAAQ,IACR,KAAM,IACN,SAAU,IACV,KAAM,IACN,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,MAAO,IACP,QAAS,IACT,SAAU,IACV,OAAQ,IACR,MAAO,IACP,QAAS,IACT,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,GAAI,IACJ,OAAQ,IACR,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,cAAe,IACf,OAAQ,IACR,SAAU,IACV,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,OAAQ,IACR,IAAK,IACL,MAAO,IACP,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,SAAU,IACV,MAAO,IACP,SAAU,IACV,YAAa,IACb,UAAW,IACX,QAAS,IACT,UAAW,IACX,UAAW,IACX,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,KAAM,IACN,SAAU,IACV,MAAO,IACP,IAAK,IACL,IAAK,IACL,MAAO,IACP,OAAQ,IACR,QAAS,IACT,QAAS,IACT,QAAS,IACT,MAAO,IACP,OAAQ,IACR,WAAY,IACZ,KAAM,IACN,KAAM,IACN,KAAM,IACN,QAAS,IACT,IAAK,KACL,IAAK,KACL,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,QAAS,IACT,SAAU,IACV,UAAW,IACX,SAAU,IACV,QAAS,IACT,gBAAiB,IACjB,cAAe,IACf,SAAU,IACV,OAAQ,IACR,SAAU,IACV,OAAQ,IACR,aAAc,IACd,YAAa,IACb,cAAe,IACf,kBAAmB,IACnB,kBAAmB,IACnB,mBAAoB,IACpB,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,IAAK,KACL,QAAS,KACT,KAAM,IACN,KAAM,IACN,KAAM,KACN,KAAM,KACN,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,SAAU,IACV,QAAS,IACT,SAAU,IACV,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,OAAQ,IACR,MAAO,IACP,MAAO,IACP,OAAQ,IACR,KAAM,IACN,KAAM,KACN,MAAO,IACP,KAAM,IACN,MAAO,IACP,KAAM,KACN,MAAO,IACP,SAAU,IACV,KAAM,IACN,OAAQ,IACR,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,IACL,OAAQ,IACR,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,qBAAsB,IACtB,KAAM,KACN,MAAO,IACP,MAAO,IACP,QAAS,IACT,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,QAAS,IACT,MAAO,IACP,QAAS,IACT,KAAM,IACN,KAAM,IACN,MAAO,IACP,QAAS,IACT,QAAS,IACT,KAAM,IACN,UAAW,IACX,UAAW,IACX,IAAK,IACL,IAAK,KACL,KAAM,IACN,KAAM,IACN,MAAO,IACP,UAAW,IACX,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,OAAQ,IACR,gBAAiB,IACjB,iBAAkB,IAClB,WAAY,IACZ,YAAa,IACb,YAAa,IACb,UAAW,IACX,SAAU,IACV,SAAU,IACV,YAAa,IACb,WAAY,IACZ,YAAa,IACb,KAAM,IACN,KAAM,IACN,SAAU,IACV,OAAQ,IACR,QAAS,IACT,yBAA0B,IAC1B,sBAAuB,IACvB,gBAAiB,IACjB,MAAO,IACP,SAAU,IACV,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,MAAO,IACP,OAAQ,IACR,KAAM,IACN,OAAQ,IACR,WAAY,IACZ,UAAW,IACX,KAAM,IACN,QAAS,IACT,UAAW,IACX,OAAQ,IACR,OAAQ,IACR,gBAAiB,IACjB,KAAM,IACN,KAAM,KACN,OAAQ,IACR,UAAW,IACX,KAAM,IACN,KAAM,IACN,OAAQ,IACR,gCAAiC,IACjC,MAAO,IACP,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,KAAM,IACN,MAAO,IACP,KAAM,IACN,MAAO,IACP,MAAO,IACP,QAAS,IACT,QAAS,IACT,MAAO,IACP,MAAO,IACP,OAAQ,IACR,QAAS,IACT,IAAK,IACL,IAAK,IACL,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,KAAM,KACN,OAAQ,IACR,QAAS,IACT,YAAa,IACb,YAAa,IACb,SAAU,IACV,WAAY,IACZ,OAAQ,IACR,eAAgB,IAChB,gBAAiB,IACjB,MAAO,IACP,MAAO,IACP,SAAU,IACV,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,QAAS,IACT,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,IACL,GAAI,IACJ,GAAI,IACJ,QAAS,IACT,MAAO,IACP,SAAU,IACV,QAAS,IACT,IAAK,IACL,IAAK,IACL,MAAO,IACP,MAAO,IACP,QAAS,IACT,OAAQ,IACR,IAAK,KACL,IAAK,KACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,iBAAkB,IAClB,eAAgB,IAChB,uBAAwB,IACxB,iBAAkB,IAClB,iBAAkB,IAClB,KAAM,IACN,QAAS,IACT,QAAS,IACT,YAAa,IACb,MAAO,IACP,IAAK,IACL,cAAe,IACf,QAAS,IACT,MAAO,IACP,IAAK,IACL,OAAQ,IACR,cAAe,IACf,OAAQ,IACR,KAAM,IACN,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,KACN,KAAM,KACN,IAAK,IACL,IAAK,IACL,OAAQ,IACR,MAAO,IACP,SAAU,IACV,SAAU,IACV,SAAU,IACV,QAAS,IACT,UAAW,IACX,eAAgB,IAChB,sBAAuB,IACvB,UAAW,IACX,gBAAiB,IACjB,gBAAiB,IACjB,qBAAsB,IACtB,cAAe,IACf,oBAAqB,IACrB,yBAA0B,IAC1B,qBAAsB,IACtB,iBAAkB,IAClB,eAAgB,IAChB,cAAe,IACf,kBAAmB,IACnB,kBAAmB,IACnB,UAAW,IACX,UAAW,IACX,UAAW,IACX,aAAc,IACd,iBAAkB,IAClB,UAAW,IACX,eAAgB,IAChB,gBAAiB,IACjB,iBAAkB,IAClB,oBAAqB,IACrB,kBAAmB,IACnB,eAAgB,IAChB,kBAAmB,IACnB,mBAAoB,IACpB,gBAAiB,IACjB,mBAAoB,IACpB,QAAS,IACT,aAAc,IACd,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,KAAM,KACN,KAAM,KACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,KAAM,IACN,MAAO,IACP,MAAO,IACP,MAAO,IACP,QAAS,IACT,KAAM,IACN,KAAM,IACN,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,IAAK,IACL,IAAK,IACL,MAAO,IACP,KAAM,IACN,KAAM,IACN,KAAM,IACN,GAAI,IACJ,MAAO,IACP,IAAK,KACL,IAAK,KACL,GAAI,IACJ,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,OAAQ,IACR,GAAI,IACJ,QAAS,IACT,SAAU,IACV,IAAK,IACL,IAAK,IACL,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,SAAU,IACV,iBAAkB,IAClB,OAAQ,IACR,qBAAsB,IACtB,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,KAAM,IACN,OAAQ,IACR,MAAO,IACP,KAAM,IACN,QAAS,IACT,QAAS,IACT,MAAO,IACP,OAAQ,IACR,QAAS,IACT,MAAO,IACP,WAAY,IACZ,YAAa,IACb,MAAO,IACP,OAAQ,IACR,WAAY,IACZ,OAAQ,IACR,YAAa,IACb,MAAO,IACP,QAAS,IACT,SAAU,IACV,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,IACN,MAAO,IACP,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,MAAO,IACP,OAAQ,IACR,YAAa,IACb,aAAc,IACd,aAAc,IACd,cAAe,IACf,IAAK,IACL,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,IAAK,KACL,IAAK,KACL,MAAO,IACP,kBAAmB,IACnB,sBAAuB,IACvB,MAAO,KACP,KAAM,IACN,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,KACN,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,MAAO,IACP,WAAY,IACZ,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,KACN,OAAQ,IACR,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,GAAI,IACJ,GAAI,IACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,SAAU,IACV,IAAK,IACL,MAAO,IACP,OAAQ,IACR,QAAS,IACT,SAAU,IACV,KAAM,KACN,OAAQ,IACR,IAAK,KACL,IAAK,KACL,GAAI,IACJ,GAAI,IACJ,IAAK,IACL,MAAO,IACP,KAAM,IACN,KAAM,IACN,GAAI,IACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,SAAU,IACV,IAAK,IACL,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,MAAO,IACP,aAAc,IACd,iBAAkB,IAClB,iBAAkB,IAClB,eAAgB,IAChB,YAAa,IACb,kBAAmB,IACnB,aAAc,IACd,KAAM,KACN,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,QAAS,IACT,UAAW,IACX,OAAQ,IACR,OAAQ,IACR,UAAW,IACX,WAAY,IACZ,QAAS,IACT,OAAQ,IACR,UAAW,KACX,KAAM,KACN,MAAO,IACP,OAAQ,IACR,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,QAAS,IACT,MAAO,IACP,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,KACL,aAAc,IACd,SAAU,IACV,SAAU,IACV,MAAO,IACP,OAAQ,IACR,cAAe,IACf,eAAgB,IAChB,KAAM,IACN,KAAM,KACN,OAAQ,IACR,eAAgB,IAChB,KAAM,IACN,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,aAAc,IACd,UAAW,IACX,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,GAAI,IACJ,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IACN,MAAO,IACP,IAAK,IACL,IAAK,IACL,IAAK,KACL,OAAQ,IACR,OAAQ,IACR,GAAI,IACJ,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,GAAI,IACJ,MAAO,IACP,MAAO,IACP,MAAO,IACP,WAAY,IACZ,SAAU,IACV,SAAU,IACV,MAAO,IACP,KAAM,IACN,MAAO,IACP,QAAS,IACT,GAAI,IACJ,OAAQ,IACR,MAAO,IACP,SAAU,IACV,OAAQ,IACR,IAAK,IACL,IAAK,IACL,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,aAAc,IACd,SAAU,IACV,QAAS,IACT,eAAgB,IAChB,eAAgB,IAChB,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,KAAM,IACN,KAAM,IACN,MAAO,IACP,OAAQ,IACR,KAAM,IACN,KAAM,KACN,KAAM,IACN,QAAS,IACT,MAAO,IACP,MAAO,IACP,OAAQ,IACR,MAAO,IACP,GAAI,IACJ,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,MAAO,IACP,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,OAAQ,IACR,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,MAAO,IACP,OAAQ,IACR,IAAK,IACL,WAAY,IACZ,MAAO,IACP,KAAM,IACN,KAAM,IACN,KAAM,IACN,MAAO,IACP,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,MAAO,KACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,QAAS,IACT,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,KAAM,IACN,IAAK,IACL,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,QAAS,IACT,SAAU,IACV,KAAM,IACN,GAAI,IACJ,GAAI,IACJ,iBAAkB,IAClB,UAAW,IACX,UAAW,IACX,UAAW,IACX,aAAc,IACd,oBAAqB,IACrB,cAAe,IACf,YAAa,IACb,kBAAmB,IACnB,kBAAmB,IACnB,eAAgB,IAChB,kBAAmB,IACnB,UAAW,IACX,gBAAiB,IACjB,cAAe,IACf,eAAgB,IAChB,eAAgB,IAChB,eAAgB,IAChB,eAAgB,IAChB,gBAAiB,IACjB,kBAAmB,IACnB,oBAAqB,IACrB,gBAAiB,IACjB,QAAS,IACT,aAAc,IACd,cAAe,IACf,eAAgB,IAChB,aAAc,IACd,gBAAiB,IACjB,kBAAmB,IACnB,iBAAkB,IAClB,gBAAiB,IACjB,aAAc,IACd,gBAAiB,IACjB,WAAY,IACZ,cAAe,IACf,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,SAAU,IACV,IAAK,IACL,MAAO,IACP,OAAQ,IACR,QAAS,IACT,SAAU,IACV,KAAM,KACN,OAAQ,IACR,WAAY,IACZ,QAAS,IACT,UAAW,IACX,WAAY,IACZ,iBAAkB,IAClB,cAAe,IACf,YAAa,IACb,QAAS,IACT,SAAU,IACV,QAAS,IACT,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,OAAQ,IACR,IAAK,KACL,IAAK,KACL,GAAI,IACJ,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,MAAO,IACP,KAAM,IACN,KAAM,IACN,GAAI,IACJ,GAAI,IACJ,MAAO,IACP,SAAU,IACV,WAAY,IACZ,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,WAAY,IACZ,KAAM,IACN,SAAU,IACV,IAAK,IACL,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,cAAe,IACf,cAAe,IACf,cAAe,IACf,mBAAoB,IACpB,mBAAoB,IACpB,mBAAoB,IACpB,WAAY,IACZ,eAAgB,IAChB,eAAgB,IAChB,eAAgB,IAChB,cAAe,IACf,eAAgB,IAChB,MAAO,IACP,KAAM,KACN,KAAM,KACN,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,eAAgB,IAChB,gBAAiB,IACjB,IAAK,IACL,QAAS,IACT,KAAM,IACN,KAAM,IACN,OAAQ,IACR,MAAO,IACP,SAAU,IACV,MAAO,IACP,OAAQ,IACR,IAAK,IACL,MAAO,IACP,OAAQ,IACR,KAAM,IACN,KAAM,KACN,IAAK,IACL,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,SAAU,IACV,QAAS,IACT,UAAW,KACX,KAAM,KACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,QAAS,IACT,IAAK,IACL,IAAK,IACL,OAAQ,IACR,WAAY,IACZ,WAAY,IACZ,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,IACL,MAAO,IACP,MAAO,IACP,cAAe,IACf,YAAa,IACb,UAAW,IACX,IAAK,KACL,IAAK,KACL,IAAK,IACL,MAAO,IACP,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,UAAW,IACX,KAAM,IACN,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,KAAM,KACN,KAAM,KACN,GAAI,IACJ,KAAM,IACN,KAAM,KACN,OAAQ,IACR,GAAI,IACJ,GAAI,IACJ,SAAU,IACV,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,KAAM,KACN,IAAK,IACL,KAAM,KACN,MAAO,KACP,MAAO,IACP,QAAS,IACT,MAAO,IACP,QAAS,IACT,SAAU,IACV,KAAM,IACN,MAAO,KACP,OAAQ,KACR,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,SAAU,KACV,KAAM,IACN,IAAK,IACL,IAAK,IACL,MAAO,IACP,GAAI,IACJ,OAAQ,IACR,MAAO,IACP,MAAO,IACP,QAAS,IACT,MAAO,KACP,oBAAqB,IACrB,mBAAoB,IACpB,kBAAmB,IACnB,sBAAuB,IACvB,OAAQ,IACR,OAAQ,IACR,MAAO,KACP,qBAAsB,IACtB,eAAgB,IAChB,QAAS;AAAA,EACT,OAAQ,IACR,QAAS,IACT,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,KAAM,IACN,MAAO,KACP,UAAW,KACX,KAAM,KACN,IAAK,KACL,MAAO,IACP,IAAK,KACL,IAAK,IACL,KAAM,IACN,KAAM,KACN,MAAO,IACP,MAAO,IACP,MAAO,IACP,GAAI,IACJ,IAAK,IACL,KAAM,IACN,IAAK,IACL,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,KAAM,IACN,IAAK,KACL,IAAK,IACL,WAAY,IACZ,WAAY,IACZ,gBAAiB,IACjB,gBAAiB,IACjB,KAAM,IACN,MAAO,KACP,UAAW,KACX,KAAM,KACN,MAAO,IACP,IAAK,KACL,MAAO,IACP,IAAK,KACL,IAAK,IACL,MAAO,IACP,OAAQ,IACR,KAAM,KACN,KAAM,IACN,QAAS,IACT,iBAAkB,IAClB,KAAM,IACN,KAAM,KACN,IAAK,IACL,IAAK,IACL,aAAc,IACd,UAAW,IACX,qBAAsB,IACtB,WAAY,IACZ,SAAU,IACV,cAAe,KACf,UAAW,IACX,WAAY,IACZ,gBAAiB,IACjB,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,IAChB,qBAAsB,KACtB,gBAAiB,IACjB,gBAAiB,KACjB,aAAc,KACd,MAAO,IACP,SAAU,KACV,OAAQ,KACR,QAAS,IACT,QAAS,IACT,QAAS,IACT,gBAAiB,IACjB,mBAAoB,KACpB,qBAAsB,IACtB,QAAS,IACT,aAAc,IACd,eAAgB,IAChB,YAAa,KACb,kBAAmB,KACnB,aAAc,IACd,wBAAyB,KACzB,kBAAmB,KACnB,MAAO,IACP,QAAS,IACT,QAAS,IACT,QAAS,IACT,YAAa,IACb,iBAAkB,KAClB,sBAAuB,IACvB,kBAAmB,IACnB,iBAAkB,IAClB,oBAAqB,KACrB,sBAAuB,IACvB,gBAAiB,KACjB,qBAAsB,IACtB,kBAAmB,KACnB,uBAAwB,IACxB,UAAW,KACX,eAAgB,IAChB,YAAa,IACb,iBAAkB,KAClB,sBAAuB,IACvB,iBAAkB,KAClB,YAAa,KACb,iBAAkB,IAClB,SAAU,IACV,cAAe,IACf,kBAAmB,IACnB,cAAe,IACf,eAAgB,IAChB,KAAM,IACN,UAAW,IACX,OAAQ,KACR,MAAO,KACP,QAAS,IACT,IAAK,IACL,OAAQ,IACR,KAAM,KACN,MAAO,IACP,QAAS,KACT,MAAO,IACP,MAAO,IACP,OAAQ,KACR,OAAQ,KACR,YAAa,IACb,YAAa,IACb,MAAO,IACP,OAAQ,IACR,IAAK,IACL,OAAQ,IACR,KAAM,KACN,KAAM,KACN,KAAM,KACN,UAAW,IACX,eAAgB,IAChB,KAAM,IACN,MAAO,IACP,OAAQ,IACR,MAAO,IACP,MAAO,IACP,QAAS,IACT,QAAS,IACT,KAAM,IACN,MAAO,KACP,MAAO,IACP,QAAS,KACT,UAAW,IACX,WAAY,KACZ,MAAO,IACP,QAAS,KACT,KAAM,IACN,MAAO,KACP,MAAO,IACP,QAAS,KACT,UAAW,IACX,WAAY,KACZ,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,cAAe,IACf,gBAAiB,IACjB,eAAgB,IAChB,iBAAkB,IAClB,GAAI,IACJ,GAAI,IACJ,IAAK,IACL,OAAQ,IACR,MAAO,IACP,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,KACN,KAAM,KACN,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,KAAM,KACN,KAAM,KACN,QAAS,KACT,OAAQ,IACR,QAAS,KACT,MAAO,KACP,OAAQ,IACR,MAAO,IACP,MAAO,IACP,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,IAAK,KACL,IAAK,KACL,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,MAAO,IACP,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,QAAS,IACT,MAAO,IACP,IAAK,IACL,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,QAAS,IACT,QAAS,IACT,KAAM,IACN,OAAQ,IACR,KAAM,KACN,KAAM,KACN,KAAM,IACN,qBAAsB,IACtB,eAAgB,IAChB,MAAO,IACP,MAAO,IACP,GAAI,IACJ,GAAI,IACJ,MAAO,IACP,IAAK,IACL,MAAO,IACP,QAAS,IACT,KAAM,IACN,KAAM,IACN,OAAQ,IACR,KAAM,IACN,QAAS,IACT,IAAK,IACL,GAAI,IACJ,KAAM,KACN,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,KAAM,IACN,KAAM,IACN,MAAO,IACP,QAAS,IACT,UAAW,IACX,YAAa,IACb,gBAAiB,IACjB,IAAK,IACL,KAAM,IACN,SAAU,IACV,OAAQ,IACR,MAAO,IACP,KAAM,IACN,SAAU,IACV,IAAK,IACL,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,QAAS,IACT,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,OAAQ,IACR,MAAO,IACP,GAAI,IACJ,GAAI,IACJ,UAAW,IACX,IAAK,IACL,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,KAAM,IACN,SAAU,IACV,MAAO,IACP,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,UAAW,IACX,OAAQ,IACR,QAAS,IACT,QAAS,IACT,GAAI,IACJ,cAAe,IACf,SAAU,IACV,KAAM,IACN,KAAM,KACN,MAAO,IACP,GAAI,IACJ,GAAI,IACJ,KAAM,IACN,MAAO,IACP,IAAK,IACL,IAAK,IACL,KAAM,IACN,WAAY,IACZ,YAAa,IACb,SAAU,IACV,cAAe,IACf,mBAAoB,IACpB,cAAe,IACf,OAAQ,IACR,YAAa,IACb,SAAU,IACV,SAAU,IACV,QAAS,IACT,MAAO,IACP,MAAO,IACP,OAAQ,IACR,MAAO,IACP,KAAM,IACN,OAAQ,IACR,KAAM,IACN,QAAS,IACT,SAAU,IACV,SAAU,IACV,SAAU,IACV,KAAM,IACN,WAAY,IACZ,aAAc,IACd,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,KAAM,KACN,KAAM,KACN,IAAK,IACL,IAAK,IACL,OAAQ,IACR,IAAK,KACL,IAAK,KACL,KAAM,IACN,KAAM,IACN,KAAM,KACN,OAAQ,IACR,KAAM,KACN,KAAM,KACN,YAAa,IACb,QAAS,IACT,MAAO,IACP,QAAS,IACT,KAAM,IACN,KAAM,IACN,MAAO,IACP,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,SAAU,IACV,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,MAAO,IACP,KAAM,IACN,KAAM,IACN,KAAM,IACN,OAAQ,IACR,MAAO,IACP,QAAS,IACT,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,UAAW,IACX,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,QAAS,IACT,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,KAAM,IACN,IAAK,IACL,IAAK,IACL,KAAM,IACN,QAAS,IACT,MAAO,IACP,OAAQ,IACR,KAAM,IACN,GAAI,IACJ,KAAM,IACN,QAAS,IACT,SAAU,IACV,MAAO,IACP,KAAM,IACN,IAAK,IACL,IAAK,IACL,eAAgB,IAChB,mBAAoB,IACpB,qBAAsB,IACtB,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,KACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,IAAK,IACL,IAAK,IACL,KAAM,IACN,kBAAmB,IACnB,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,cAAe,IACf,oBAAqB,IACrB,eAAgB,IAChB,aAAc,IACd,mBAAoB,IACpB,mBAAoB,IACpB,gBAAiB,IACjB,mBAAoB,IACpB,WAAY,IACZ,iBAAkB,IAClB,eAAgB,IAChB,gBAAiB,IACjB,kBAAmB,IACnB,iBAAkB,IAClB,gBAAiB,IACjB,SAAU,IACV,cAAe,IACf,eAAgB,IAChB,gBAAiB,IACjB,cAAe,IACf,iBAAkB,IAClB,mBAAoB,IACpB,kBAAmB,IACnB,iBAAkB,IAClB,cAAe,IACf,iBAAkB,IAClB,YAAa,IACb,eAAgB,IAChB,KAAM,IACN,aAAc,IACd,MAAO,IACP,MAAO,IACP,IAAK,IACL,OAAQ,IACR,WAAY,IACZ,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,KACN,OAAQ,IACR,QAAS,IACT,aAAc,IACd,KAAM,IACN,OAAQ,IACR,SAAU,IACV,MAAO,IACP,YAAa,IACb,OAAQ,IACR,KAAM,IACN,KAAM,KACN,IAAK,IACL,IAAK,IACL,KAAM,IACN,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,MAAO,IACP,MAAO,IACP,SAAU,IACV,YAAa,IACb,QAAS,IACT,GAAI,IACJ,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,GAAI,IACJ,GAAI,IACJ,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,IAAK,IACL,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,KAAM,IACN,OAAQ,IACR,SAAU,IACV,MAAO,IACP,IAAK,IACL,IAAK,IACL,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,MAAO,IACP,MAAO,IACP,QAAS,IACT,KAAM,IACN,KAAM,IACN,OAAQ,IACR,SAAU,IACV,MAAO,IACP,KAAM,IACN,IAAK,KACL,IAAK,KACL,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,eAAgB,IAChB,eAAgB,IAChB,SAAU,IACV,cAAe,IACf,gBAAiB,IACjB,aAAc,IACd,IAAK,IACL,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,OAAQ,IACR,KAAM,IACN,MAAO,IACP,KAAM,IACN,MAAO,IACP,KAAM,IACN,MAAO,IACP,MAAO,IACP,QAAS,IACT,QAAS,IACT,MAAO,IACP,YAAa,IACb,cAAe,IACf,OAAQ,IACR,SAAU,IACV,KAAM,IACN,MAAO,IACP,IAAK,IACL,KAAM,IACN,MAAO,KACP,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,KAAM,IACN,OAAQ,IACR,KAAM,KACN,KAAM,KACN,OAAQ,IACR,UAAW,IACX,KAAM,IACN,MAAO,IACP,OAAQ,KACR,MAAO,IACP,OAAQ,KACR,KAAM,IACN,MAAO,IACP,OAAQ,IACR,SAAU,IACV,WAAY,IACZ,MAAO,IACP,OAAQ,IACR,SAAU,IACV,WAAY,IACZ,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,mBAAoB,IACpB,aAAc,IACd,kBAAmB,IACnB,eAAgB,IAChB,oBAAqB,IACrB,YAAa,IACb,OAAQ,IACR,KAAM,IACN,MAAO,IACP,KAAM,KACN,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,MAAO,IACP,gBAAiB,IACjB,YAAa,IACb,MAAO,IACP,IAAK,IACL,IAAK,IACL,OAAQ,IACR,KAAM,IACN,KAAM,IACN,QAAS,IACT,QAAS,IACT,MAAO,IACP,MAAO,IACP,QAAS,IACT,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,UAAW,IACX,YAAa,IACb,UAAW,IACX,WAAY,IACZ,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,WAAY,IACZ,YAAa,IACb,SAAU,IACV,cAAe,IACf,mBAAoB,IACpB,cAAe,IACf,OAAQ,IACR,YAAa,IACb,SAAU,IACV,SAAU,IACV,QAAS,IACT,SAAU,IACV,IAAK,IACL,IAAK,IACL,KAAM,IACN,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IACN,OAAQ,IACR,QAAS,IACT,KAAM,IACN,KAAM,IACN,QAAS,IACT,SAAU,IACV,cAAe,IACf,QAAS,IACT,QAAS,IACT,QAAS,IACT,QAAS,IACT,MAAO,IACP,MAAO,IACP,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,QAAS,IACT,OAAQ,IACR,MAAO,IACP,IAAK,IACL,OAAQ,IACR,IAAK,IACL,IAAK,IACL,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,IACL,KAAM,IACN,OAAQ,IACR,IAAK,KACL,IAAK,KACL,OAAQ,IACR,UAAW,IACX,UAAW,IACX,MAAO,IACP,MAAO,IACP,SAAU,IACV,OAAQ,IACR,YAAa,IACb,SAAU,IACV,WAAY,KACZ,OAAQ,IACR,UAAW,IACX,MAAO,IACP,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,WAAY,IACZ,eAAgB,IAChB,WAAY,IACZ,MAAO,IACP,OAAQ,IACR,SAAU,IACV,OAAQ,IACR,KAAM,IACN,KAAM,IACN,IAAK,IACL,OAAQ,IACR,OAAQ,IACR,KAAM,KACN,KAAM,KACN,QAAS,IACT,KAAM,IACN,OAAQ,IACR,MAAO,IACP,MAAO,IACP,SAAU,IACV,aAAc,IACd,aAAc,IACd,eAAgB,IAChB,UAAW,IACX,cAAe,IACf,gBAAiB,IACjB,OAAQ,IACR,KAAM,IACN,SAAU,IACV,UAAW,IACX,QAAS,IACT,MAAO,IACP,QAAS,IACT,SAAU,IACV,KAAM,KACN,KAAM,KACN,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,iBAAkB,IAClB,kBAAmB,IACnB,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,KAAM,IACN,SAAU,IACV,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,IAAK,KACL,IAAK,KACL,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,MAAO,IACP,MAAO,IACP,MAAO,IACP,OAAQ,IACR,SAAU,IACV,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,IAAK,IACL,SAAU,IACV,WAAY,IACZ,aAAc,IACd,iBAAkB,IAClB,MAAO,IACP,UAAW,IACX,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,QAAS,IACT,QAAS,IACT,QAAS,IACT,WAAY,IACZ,iBAAkB,IAClB,YAAa,IACb,YAAa,IACb,YAAa,IACb,cAAe,IACf,cAAe,IACf,eAAgB,IAChB,MAAO,IACP,eAAgB,IAChB,gBAAiB,IACjB,KAAM,IACN,KAAM,IACN,MAAO,IACP,QAAS,IACT,QAAS,IACT,MAAO,IACP,WAAY,IACZ,WAAY,IACZ,OAAQ,IACR,SAAU,IACV,OAAQ,IACR,MAAO,IACP,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,IACN,QAAS,IACT,OAAQ,IACR,WAAY,IACZ,SAAU,IACV,WAAY,IACZ,OAAQ,IACR,MAAO,IACP,UAAW,IACX,KAAM,IACN,KAAM,IACN,OAAQ,IACR,SAAU,IACV,aAAc,KACd,cAAe,KACf,aAAc,KACd,cAAe,KACf,SAAU,IACV,gBAAiB,IACjB,iBAAkB,IAClB,KAAM,IACN,KAAM,IACN,MAAO,IACP,IAAK,IACL,IAAK,IACL,MAAO,IACP,MAAO,IACP,MAAO,IACP,MAAO,IACP,OAAQ,IACR,IAAK,IACL,IAAK,IACL,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,YAAa,IACb,aAAc,IACd,kBAAmB,IACnB,cAAe,IACf,cAAe,IACf,IAAK,KACL,IAAK,KACL,MAAO,IACP,MAAO,KACP,MAAO,KACP,KAAM,KACN,KAAM,KACN,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,IACR,QAAS,IACT,MAAO,IACP,MAAO,IACP,OAAQ,IACR,MAAO,IACP,MAAO,IACP,OAAQ,IACR,OAAQ,IACR,IAAK,KACL,IAAK,KACL,KAAM,KACN,KAAM,KACN,GAAI,IACJ,GAAI,IACJ,OAAQ,IACR,KAAM,KACN,KAAM,KACN,KAAM,IACN,MAAO,IACP,KAAM,IACN,MAAO,IACP,IAAK,KACL,IAAK,KACL,MAAO,IACP,MAAO,IACP,GAAI,IACJ,GAAI,IACJ,MAAO,IACP,MAAO,IACP,KAAM,IACN,KAAM,IACN,MAAO,IACP,KAAM,KACN,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,MAAO,IACP,KAAM,KACN,KAAM,KACN,OAAQ,IACR,OAAQ,IACR,MAAO,IACP,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,KAAM,IACN,KAAM,IACN,MAAO,IACP,MAAO,IACP,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,KAAM,IACN,KAAM,IACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,OAAQ,IACR,eAAgB,IAChB,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,KACL,KAAM,IACN,KAAM,IACN,QAAS,IACT,KAAM,IACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,IAAK,IACL,KAAM,GACP,CAAC,EAMD6J,EAAA,UAAoBA,EAAQ,wECrnE5B,IAAI1J,EAAYx9H,GAAA,EAAyB,UACrC49H,EAAiB59H,GAAA,EAAyB,eAM1CmnI,EAAQ,EACRC,EAAS,EACTC,EAAa,EACbC,EAAO,EACPC,EAAsB,EACtBC,EAAa,EACbC,EAAc,EACdC,EAAc,EASlB,SAASC,EAAW1iI,EAAS2iI,EAAS,CACrC,KAAK,QAAU3iI,EACf,KAAK,QAAU2iI,EACZ,MAAM,mBAAmB,MAAM,kBAAkB,KAAMD,CAAU,CACrE,CACAA,EAAW,UAAY,IAAI,MAC3BA,EAAW,UAAU,KAAOA,EAAW,KAEvC,SAASE,GAAW,CAEpB,CAEAA,EAAU,UAAY,CACrB,MAAM,SAASliI,EAAOmiI,EAAaC,EAAU,CAC5C,IAAIC,EAAa,KAAK,WACtBA,EAAW,cAAa,EACxBC,EAAMH,EAAcA,EAAe,CAAA,CAAE,EACrCI,EAAMviI,EAAOmiI,EAAaC,EACxBC,EAAW,KAAK,YAAY,EAC9BA,EAAW,YAAW,CACxB,CACA,EACA,SAASE,EAAMviI,EAAOwiI,EAAiBJ,EAAUC,EAAWI,EAAa,CACxE,SAASC,EAAkBpvH,EAAM,CAGhC,GAAIA,EAAO,MAAQ,CAClBA,GAAQ,MACR,IAAIqvH,GAAa,OAAUrvH,GAAQ,IAChCsvH,GAAa,OAAUtvH,EAAO,MAEjC,OAAO,OAAO,aAAaqvH,GAAYC,EAAU,CACpD,KACG,QAAO,OAAO,aAAatvH,CAAI,CAElC,CACC,SAASuvH,EAAeztJ,EAAE,CACzB,IAAIc,GAAId,EAAE,MAAM,EAAE,EAAE,EACpB,OAAI,OAAO,eAAe,KAAKgtJ,EAAWlsJ,EAAC,EACnCksJ,EAAUlsJ,EAAC,EACVA,GAAE,OAAO,CAAC,IAAM,IACjBwsJ,EAAkB,SAASxsJ,GAAE,OAAO,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,GAEhEusJ,EAAa,MAAM,oBAAoBrtJ,CAAC,EACjCA,EAEV,CACC,SAAS0tJ,EAAWtgH,EAAI,CACvB,GAAGA,EAAID,EAAM,CACZ,IAAI9kC,GAAKuiB,EAAO,UAAUuiB,EAAMC,CAAG,EAAE,QAAQ,WAAWqgH,CAAc,EACtEZ,GAAS3rI,EAASisB,CAAK,EACvB8/G,EAAW,WAAW5kJ,GAAG,EAAE+kC,EAAID,CAAK,EACpCA,EAAQC,CACX,CACA,CACC,SAASlsB,EAAS9gB,EAAEnD,GAAE,CACrB,KAAMmD,GAAGutJ,IAAY1wJ,GAAI2wJ,GAAY,KAAKhjI,CAAM,IAC/CijI,EAAY5wJ,GAAE,MACd0wJ,EAAUE,EAAY5wJ,GAAE,CAAC,EAAE,OAC3B4vJ,EAAQ,aAGTA,EAAQ,aAAezsJ,EAAEytJ,EAAU,CACrC,CASC,QARIA,EAAY,EACZF,EAAU,EACVC,GAAc,sBACdf,EAAUI,EAAW,QAErBa,GAAa,CAAC,CAAC,aAAaV,CAAgB,CAAC,EAC7CW,EAAW,CAAA,EACX5gH,EAAQ,IACD,CACV,GAAG,CACF,IAAI6gH,EAAWpjI,EAAO,QAAQ,IAAIuiB,CAAK,EACvC,GAAG6gH,EAAS,EAAE,CACb,GAAG,CAACpjI,EAAO,OAAOuiB,CAAK,EAAE,MAAM,OAAO,EAAE,CACvC,IAAI24G,EAAMmH,EAAW,IACd3tJ,EAAOwmJ,EAAI,eAAel7H,EAAO,OAAOuiB,CAAK,CAAC,EAClD24G,EAAI,YAAYxmJ,CAAI,EACpB2tJ,EAAW,eAAiB3tJ,CACpC,CACI,MACJ,CAIG,OAHG0uJ,EAAS7gH,GACXugH,EAAWM,CAAQ,EAEbpjI,EAAO,OAAOojI,EAAS,CAAC,EAAC,CAChC,IAAK,IACJ,IAAI5gH,EAAMxiB,EAAO,QAAQ,IAAIojI,EAAS,CAAC,EAOnCnE,EAAUj/H,EAAO,UAAUojI,EAAW,EAAG5gH,CAAG,EAAE,QAAQ,oCAAqC,IAAI,EAC/F5nB,EAASsoI,GAAW,IAAG,EACxB1gH,EAAI,GAEAy8G,EAAUj/H,EAAO,UAAUojI,EAAS,CAAC,EAAE,QAAQ,UAAU,EAAE,EAC3DX,EAAa,MAAM,iBAAiBxD,EAAQ,oBAAoBrkI,EAAO,OAAO,EAC9E4nB,EAAM4gH,EAAS,EAAEnE,EAAQ,QACjBA,EAAQ,MAAM,KAAK,GAC3BA,EAAUA,EAAQ,QAAQ,UAAU,EAAE,EACtCwD,EAAa,MAAM,iBAAiBxD,EAAQ,qBAAqB,EACjEz8G,EAAM4gH,EAAS,EAAEnE,EAAQ,QACvB,YAAY,KAAKA,CAAO,GAAKhH,EAAe,KAAKgH,EAAQ,MAAM,WAAW,EAAE,CAAC,CAAC,GAOtFwD,EAAa,MAAM,iEAAiExD,EAAQ,GAAG,EAEhG,IAAIoE,GAAazoI,EAAO,WACpB0oI,GAAW1oI,EAAO,SAAWqkI,EAC7BsE,GAAoBD,IAAY1oI,EAAO,SAASA,EAAO,QAAQ,eAAiBqkI,EAAQ,YAAW,EACjG,GAAGsE,GAAkB,CAE1B,GADMlB,EAAW,WAAWznI,EAAO,IAAIA,EAAO,UAAUqkI,CAAO,EAC5DoE,GACF,QAASv/H,MAAUu/H,GACd,OAAO,UAAU,eAAe,KAAKA,GAAYv/H,EAAM,GAC1Du+H,EAAW,iBAAiBv+H,EAAM,EAIjCw/H,IACMb,EAAa,WAAW,iBAAiBxD,EAAQ,2CAA2CrkI,EAAO,QAElH,MACWsoI,GAAW,KAAKtoI,CAAM,EAG7B4nB,IACA,MAED,IAAK,IACJy/G,GAAS3rI,EAAS8sI,CAAQ,EAC1B5gH,EAAMghH,EAAiBxjI,EAAOojI,EAASf,CAAU,EACjD,MACD,IAAK,IACJJ,GAAS3rI,EAAS8sI,CAAQ,EAC1B5gH,EAAMihH,EAASzjI,EAAOojI,EAASf,EAAWI,CAAY,EACtD,MACD,QACCR,GAAS3rI,EAAS8sI,CAAQ,EAC1B,IAAIphI,GAAK,IAAI0hI,EACTC,GAAeT,GAAWA,GAAW,OAAO,CAAC,EAAE,aAE/C1gH,EAAMohH,EAAsB5jI,EAAOojI,EAASphI,GAAG2hI,GAAad,EAAeJ,CAAY,EACvF9sI,GAAMqM,GAAG,OASb,GANG,CAACA,GAAG,QAAU6hI,EAAc7jI,EAAOwiB,EAAIxgB,GAAG,QAAQmhI,CAAQ,IAC5DnhI,GAAG,OAAS,GACRogI,EAAU,MACbK,EAAa,QAAQ,wBAAwB,GAG5CR,GAAWtsI,GAAI,CAGjB,QAFImuI,GAAWC,EAAY9B,EAAQ,EAAE,EAE7BhtJ,EAAI,EAAEA,EAAE0gB,GAAI1gB,IAAI,CACvB,IAAIG,EAAI4sB,GAAG/sB,CAAC,EACZqhB,EAASlhB,EAAE,MAAM,EACjBA,EAAE,QAAU2uJ,EAAY9B,EAAQ,CAAA,CAAE,CACxC,CACKI,EAAW,QAAUyB,GAClBE,EAAchiI,GAAGqgI,EAAWsB,EAAY,GAC1CT,GAAW,KAAKlhI,EAAE,EAEnBqgI,EAAW,QAAUJ,CAC1B,MACQ+B,EAAchiI,GAAGqgI,EAAWsB,EAAY,GAC1CT,GAAW,KAAKlhI,EAAE,EAIhB61H,EAAU,OAAO71H,GAAG,GAAG,GAAK,CAACA,GAAG,OACnCwgB,EAAMyhH,EAAwBjkI,EAAOwiB,EAAIxgB,GAAG,QAAQ6gI,EAAeR,CAAU,EAE7E7/G,GAEL,CACA,OAASztC,EAAE,CACR,GAAIA,aAAaitJ,EAChB,MAAMjtJ,EAEP0tJ,EAAa,MAAM,wBAAwB1tJ,CAAC,EAC5CytC,EAAM,EACT,CACKA,EAAID,EACNA,EAAQC,EAGRsgH,EAAW,KAAK,IAAIM,EAAS7gH,CAAK,EAAE,CAAC,CAExC,CACA,CACA,SAASwhH,EAAYruJ,EAAER,EAAE,CACxB,OAAAA,EAAE,WAAaQ,EAAE,WACjBR,EAAE,aAAeQ,EAAE,aACZR,CACR,CAMA,SAAS0uJ,EAAsB5jI,EAAOuiB,EAAMvgB,EAAG2hI,EAAad,EAAeJ,EAAa,CAOvF,SAASyB,EAAaC,EAAO7wJ,GAAOuzH,EAAY,CAC3C7kG,EAAG,eAAe,eAAemiI,CAAK,GACzC1B,EAAa,WAAW,aAAe0B,EAAQ,YAAY,EAE5DniI,EAAG,SACFmiI,EAKA7wJ,GAAM,QAAQ,YAAa,GAAG,EAAE,QAAQ,WAAYuvJ,CAAc,EAClEh8B,CACH,CACA,CAKC,QAJIu9B,EACA9wJ,EACAkC,EAAI,EAAE+sC,EACN1xC,EAAI2wJ,IACG,CACV,IAAInsJ,GAAI2qB,EAAO,OAAOxqB,CAAC,EACvB,GAAI3E,IAAM2wJ,GAASnsJ,KAAM,IAOxB,MAAM,IAAI,MAAM,6BAA+B2qB,EAAO,MAAMuiB,EAAO/sC,CAAC,CAAC,EAEtE,OAAOH,GAAC,CACR,IAAK,IACJ,GAAGxE,IAAM4wJ,EACR2C,EAAWpkI,EAAO,MAAMuiB,EAAM/sC,CAAC,EAC/B3E,EAAI8wJ,UACI9wJ,IAAM6wJ,EACd7wJ,EAAI8wJ,MAGJ,OAAM,IAAI,MAAM,qCAAqC,EAEtD,MACD,IAAK,IACL,IAAK,IACJ,GAAG9wJ,IAAM8wJ,GAAQ9wJ,IAAM4wJ,EAQtB,GANG5wJ,IAAM4wJ,IACRgB,EAAa,QAAQ,gCAAgC,EACrD2B,EAAWpkI,EAAO,MAAMuiB,EAAM/sC,CAAC,GAEhC+sC,EAAQ/sC,EAAE,EACVA,EAAIwqB,EAAO,QAAQ3qB,GAAEktC,CAAK,EACvB/sC,EAAE,EACJlC,EAAQ0sB,EAAO,MAAMuiB,EAAO/sC,CAAC,EAC7B0uJ,EAAaE,EAAU9wJ,EAAOivC,EAAM,CAAC,EACrC1xC,EAAIgxJ,MAGJ,OAAM,IAAI,MAAM,2BAA4BxsJ,GAAE,SAAU,UAEjDxE,GAAK+wJ,EACbtuJ,EAAQ0sB,EAAO,MAAMuiB,EAAO/sC,CAAC,EAC7B0uJ,EAAaE,EAAU9wJ,EAAOivC,CAAK,EACnCkgH,EAAa,QAAQ,cAAc2B,EAAS,uBAAuB/uJ,GAAE,KAAK,EAC1EktC,EAAQ/sC,EAAE,EACV3E,EAAIgxJ,MAGJ,OAAM,IAAI,MAAM,gCAAgC,EAEjD,MACD,IAAK,IACJ,OAAOhxJ,EAAC,CACR,KAAK2wJ,EACJx/H,EAAG,WAAWhC,EAAO,MAAMuiB,EAAM/sC,CAAC,CAAC,EACpC,KAAKqsJ,EACL,KAAKC,EACL,KAAKC,EACJlxJ,EAAGkxJ,EACH//H,EAAG,OAAS,GACb,KAAK4/H,EACL,KAAKH,EACJ,MACA,KAAKC,EACJ1/H,EAAG,OAAS,GACb,MAED,QACC,MAAM,IAAI,MAAM,mCAAmC,CACvD,CACG,MACD,IAAK,GACJ,OAAAygI,EAAa,MAAM,yBAAyB,EACzC5xJ,GAAK2wJ,GACPx/H,EAAG,WAAWhC,EAAO,MAAMuiB,EAAM/sC,CAAC,CAAC,EAE7BA,EACR,IAAK,IACJ,OAAO3E,EAAC,CACR,KAAK2wJ,EACJx/H,EAAG,WAAWhC,EAAO,MAAMuiB,EAAM/sC,CAAC,CAAC,EACpC,KAAKqsJ,EACL,KAAKC,EACL,KAAKC,EACJ,MACD,KAAKH,EACL,KAAKH,EACJnuJ,EAAQ0sB,EAAO,MAAMuiB,EAAM/sC,CAAC,EACzBlC,EAAM,MAAM,EAAE,IAAM,MACtB0uB,EAAG,OAAU,GACb1uB,EAAQA,EAAM,MAAM,EAAE,EAAE,GAE1B,KAAKouJ,EACD7wJ,IAAM6wJ,IACRpuJ,EAAQ8wJ,GAENvzJ,GAAK+wJ,GACPa,EAAa,QAAQ,cAAcnvJ,EAAM,mBAAmB,EAC5D4wJ,EAAaE,EAAU9wJ,EAAOivC,CAAK,KAEhC,CAACs1G,EAAU,OAAO8L,EAAa,EAAE,CAAC,GAAK,CAACrwJ,EAAM,MAAM,kCAAkC,IACxFmvJ,EAAa,QAAQ,cAAcnvJ,EAAM,qBAAqBA,EAAM,aAAa,EAElF4wJ,EAAa5wJ,EAAOA,EAAOivC,CAAK,GAEjC,MACD,KAAKo/G,EACJ,MAAM,IAAI,MAAM,0BAA0B,CAC9C,CAEG,OAAOnsJ,EAER,IAAK,IACJH,GAAI,IACL,QACC,GAAGA,IAAI,IACN,OAAOxE,EAAC,CACR,KAAK2wJ,EACJx/H,EAAG,WAAWhC,EAAO,MAAMuiB,EAAM/sC,CAAC,CAAC,EACnC3E,EAAIixJ,EACJ,MACD,KAAKL,EACJ2C,EAAWpkI,EAAO,MAAMuiB,EAAM/sC,CAAC,EAC/B3E,EAAI6wJ,EACJ,MACD,KAAKE,EACJ,IAAItuJ,EAAQ0sB,EAAO,MAAMuiB,EAAO/sC,CAAC,EACjCitJ,EAAa,QAAQ,cAAcnvJ,EAAM,oBAAoB,EAC7D4wJ,EAAaE,EAAU9wJ,EAAOivC,CAAK,EACpC,KAAKs/G,EACJhxJ,EAAIixJ,EACJ,KAOL,KAII,QAAOjxJ,EAAC,CAIR,KAAK6wJ,EACW1/H,EAAG,SACd,CAAC61H,EAAU,OAAO8L,EAAa,EAAE,CAAC,GAAK,CAACS,EAAS,MAAM,kCAAkC,IAC5F3B,EAAa,QAAQ,cAAc2B,EAAS,qBAAqBA,EAAS,cAAc,EAEzFF,EAAaE,EAAUA,EAAU7hH,CAAK,EACtCA,EAAQ/sC,EACR3E,EAAI4wJ,EACJ,MACD,KAAKI,EACJY,EAAa,QAAQ,+BAA+B2B,EAAS,KAAK,EACnE,KAAKtC,EACJjxJ,EAAI4wJ,EACJl/G,EAAQ/sC,EACR,MACD,KAAKmsJ,EACJ9wJ,EAAI+wJ,EACJr/G,EAAQ/sC,EACR,MACD,KAAKusJ,EACJ,MAAM,IAAI,MAAM,4DAA4D,CACjF,EAIEvsJ,GACF,CACA,CAIA,SAASwuJ,EAAchiI,EAAGqgI,EAAWsB,EAAa,CAKjD,QAJI1E,EAAUj9H,EAAG,QACbqhI,EAAa,KAEbpuJ,GAAI+sB,EAAG,OACL/sB,MAAI,CACT,IAAIG,EAAI4sB,EAAG/sB,EAAC,EACRovJ,EAAQjvJ,EAAE,MACV9B,EAAQ8B,EAAE,MACVkvJ,EAAMD,EAAM,QAAQ,GAAG,EAC3B,GAAGC,EAAI,EACN,IAAIxgI,EAAS1uB,EAAE,OAASivJ,EAAM,MAAM,EAAEC,CAAG,EACrC/I,EAAY8I,EAAM,MAAMC,EAAI,CAAC,EAC7BC,EAAWzgI,IAAW,SAAWy3H,OAErCA,EAAY8I,EACZvgI,EAAS,KACTygI,EAAWF,IAAU,SAAW,GAGjCjvJ,EAAE,UAAYmmJ,EAEXgJ,IAAa,KACZlB,GAAc,OAChBA,EAAa,CAAA,EAObM,EAAe,OAAO,OAAOA,CAAY,GAE1CA,EAAaY,CAAQ,EAAIlB,EAAWkB,CAAQ,EAAIjxJ,EAChD8B,EAAE,IAAMyiJ,EAAU,MAClBwK,EAAW,mBAAmBkC,EAAUjxJ,CAAK,EAEhD,CAEC,QADI2B,GAAI+sB,EAAG,OACL/sB,MAAI,CACTG,EAAI4sB,EAAG/sB,EAAC,EACR,IAAI6uB,EAAS1uB,EAAE,OACZ0uB,IACCA,IAAW,QACb1uB,EAAE,IAAMyiJ,EAAU,KACf/zH,IAAW,UACd1uB,EAAE,IAAMuuJ,EAAa7/H,GAAU,EAAE,GAKrC,CACC,IAAIwgI,EAAMrF,EAAQ,QAAQ,GAAG,EAC1BqF,EAAI,GACNxgI,EAAS9B,EAAG,OAASi9H,EAAQ,MAAM,EAAEqF,CAAG,EACxC/I,EAAYv5H,EAAG,UAAYi9H,EAAQ,MAAMqF,EAAI,CAAC,IAE9CxgI,EAAS,KACTy3H,EAAYv5H,EAAG,UAAYi9H,GAG5B,IAAI5yI,GAAK2V,EAAG,IAAM2hI,EAAa7/H,GAAU,EAAE,EAI3C,GAHAu+H,EAAW,aAAah2I,GAAGkvI,EAAU0D,EAAQj9H,CAAE,EAG5CA,EAAG,QAEL,GADAqgI,EAAW,WAAWh2I,GAAGkvI,EAAU0D,CAAO,EACvCoE,EACF,IAAKv/H,KAAUu/H,EACV,OAAO,UAAU,eAAe,KAAKA,EAAYv/H,CAAM,GAC1Du+H,EAAW,iBAAiBv+H,CAAM,MAKrC,QAAA9B,EAAG,aAAe2hI,EAClB3hI,EAAG,WAAaqhI,EAET,EAET,CACA,SAASY,EAAwBjkI,EAAOwkI,EAAWvF,EAAQ4D,EAAeR,EAAW,CACpF,GAAG,yBAAyB,KAAKpD,CAAO,EAAE,CACzC,IAAIwF,EAAczkI,EAAO,QAAQ,KAAKi/H,EAAQ,IAAIuF,CAAU,EACxD9vJ,EAAOsrB,EAAO,UAAUwkI,EAAW,EAAEC,CAAU,EACnD,GAAG,OAAO,KAAK/vJ,CAAI,EAClB,MAAG,YAAY,KAAKuqJ,CAAO,GAGzBoD,EAAW,WAAW3tJ,EAAK,EAAEA,EAAK,MAAM,EAEjC+vJ,IAGR/vJ,EAAOA,EAAK,QAAQ,WAAWmuJ,CAAc,EAC7CR,EAAW,WAAW3tJ,EAAK,EAAEA,EAAK,MAAM,EACjC+vJ,EAIX,CACC,OAAOD,EAAW,CACnB,CACA,SAASX,EAAc7jI,EAAOwkI,EAAWvF,EAAQkE,EAAS,CAEzD,IAAItuH,EAAMsuH,EAASlE,CAAO,EAC1B,OAAGpqH,GAAO,OAETA,EAAO7U,EAAO,YAAY,KAAKi/H,EAAQ,GAAG,EACvCpqH,EAAI2vH,IACN3vH,EAAM7U,EAAO,YAAY,KAAKi/H,CAAO,GAEtCkE,EAASlE,CAAO,EAAGpqH,GAEbA,EAAI2vH,CAEZ,CAEA,SAASlC,EAAOtiI,EAAQ1L,EAAQ,CAC/B,QAAStf,KAAKgrB,EACT,OAAO,UAAU,eAAe,KAAKA,EAAQhrB,CAAC,IACjDsf,EAAOtf,CAAC,EAAIgrB,EAAOhrB,CAAC,EAGvB,CAEA,SAASyuJ,EAASzjI,EAAOuiB,EAAM8/G,EAAWI,EAAa,CACtD,IAAIxwJ,EAAM+tB,EAAO,OAAOuiB,EAAM,CAAC,EAC/B,OAAOtwC,EAAI,CACX,IAAK,IACJ,GAAG+tB,EAAO,OAAOuiB,EAAQ,CAAC,IAAM,IAAI,CACnC,IAAIC,EAAMxiB,EAAO,QAAQ,MAAMuiB,EAAM,CAAC,EAEtC,OAAGC,EAAID,GACN8/G,EAAW,QAAQriI,EAAOuiB,EAAM,EAAEC,EAAID,EAAM,CAAC,EACtCC,EAAI,IAEXigH,EAAa,MAAM,kBAAkB,EAC9B,GAEX,KAEG,OAAO,GAET,QACC,GAAGziI,EAAO,OAAOuiB,EAAM,EAAE,CAAC,GAAK,SAAS,CACvC,IAAIC,EAAMxiB,EAAO,QAAQ,MAAMuiB,EAAM,CAAC,EACtC,OAAA8/G,EAAW,WAAU,EACrBA,EAAW,WAAWriI,EAAOuiB,EAAM,EAAEC,EAAID,EAAM,CAAC,EAChD8/G,EAAW,SAAQ,EACZ7/G,EAAI,CACd,CAGE,IAAIkiH,EAASC,EAAM3kI,EAAOuiB,CAAK,EAC3B5sB,EAAM+uI,EAAO,OACjB,GAAG/uI,EAAI,GAAK,YAAY,KAAK+uI,EAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAC1C,IAAIrtI,EAAOqtI,EAAO,CAAC,EAAE,CAAC,EAClB9D,EAAQ,GACRC,EAAQ,GACTlrI,EAAI,IACH,YAAY,KAAK+uI,EAAO,CAAC,EAAE,CAAC,CAAC,GAC/B9D,EAAQ8D,EAAO,CAAC,EAAE,CAAC,EACnB7D,EAAQlrI,EAAI,GAAK+uI,EAAO,CAAC,EAAE,CAAC,GACpB,YAAY,KAAKA,EAAO,CAAC,EAAE,CAAC,CAAC,IACrC7D,EAAQ6D,EAAO,CAAC,EAAE,CAAC,IAGrB,IAAIE,GAAYF,EAAO/uI,EAAI,CAAC,EAC5B,OAAA0sI,EAAW,SAAShrI,EAAMupI,EAAOC,CAAK,EACtCwB,EAAW,OAAM,EAEVuC,GAAU,MAAMA,GAAU,CAAC,EAAE,MACvC,CACA,CACC,MAAO,EACR,CAIA,SAASpB,EAAiBxjI,EAAOuiB,EAAM8/G,EAAW,CACjD,IAAI7/G,EAAMxiB,EAAO,QAAQ,KAAKuiB,CAAK,EACnC,GAAGC,EAAI,CACN,IAAIpe,EAAQpE,EAAO,UAAUuiB,EAAMC,CAAG,EAAE,MAAM,yBAAyB,EACvE,OAAGpe,GACQA,EAAM,CAAC,EAAE,OACnBi+H,EAAW,sBAAsBj+H,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EAC5Coe,EAAI,GAEJ,EAEV,CACC,MAAO,EACR,CAEA,SAASkhH,GAAmB,CAC3B,KAAK,eAAiB,CAAA,CACvB,CACAA,EAAkB,UAAY,CAC7B,WAAW,SAASzE,EAAQ,CAC3B,GAAG,CAAChH,EAAe,KAAKgH,CAAO,EAC9B,MAAM,IAAI,MAAM,mBAAmBA,CAAO,EAE3C,KAAK,QAAUA,CACjB,EACC,SAAS,SAASoF,EAAO/wJ,EAAOi6D,EAAQ,CACvC,GAAG,CAAC0qF,EAAe,KAAKoM,CAAK,EAC5B,MAAM,IAAI,MAAM,qBAAqBA,CAAK,EAE3C,KAAK,eAAeA,CAAK,EAAI,KAAK,OAClC,KAAK,KAAK,QAAQ,EAAI,CAAC,MAAMA,EAAM,MAAM/wJ,EAAM,OAAOi6D,CAAM,CAC9D,EACC,OAAO,EACP,aAAa,SAASt4D,EAAE,CAAC,OAAO,KAAKA,CAAC,EAAE,SAAS,EACjD,WAAW,SAASA,EAAE,CAAC,OAAO,KAAKA,CAAC,EAAE,OAAO,EAC7C,SAAS,SAASA,EAAE,CAAC,OAAO,KAAKA,CAAC,EAAE,KAAK,EACzC,OAAO,SAASA,EAAE,CAAC,OAAO,KAAKA,CAAC,EAAE,GAAG,EACrC,SAAS,SAASA,EAAE,CAAC,OAAO,KAAKA,CAAC,EAAE,KAAK,CAW1C,EAIA,SAAS0vJ,EAAM3kI,EAAOuiB,EAAM,CAC3B,IAAIne,EACAvC,EAAM,CAAA,EACNgjI,EAAM,6CAGV,IAFAA,EAAI,UAAYtiH,EAChBsiH,EAAI,KAAK7kI,CAAM,EACToE,EAAQygI,EAAI,KAAK7kI,CAAM,GAE5B,GADA6B,EAAI,KAAKuC,CAAK,EACXA,EAAM,CAAC,EAAE,OAAOvC,CAErB,CAEA,OAAAijI,GAAA,UAAoB5C,EACpB4C,GAAA,WAAqB9C,+CC1qBrB,IAAI9J,EAAc79H,GAAA,EACdinI,EAAM7lI,GAAA,EACNspI,EAAWppI,GAAA,EACXmpI,EAAMjpI,GAAA,EAEN2/H,EAAoB8F,EAAI,kBAExBzJ,EAAYK,EAAY,UAExB8J,EAAa8C,EAAI,WACjB5C,EAAY4C,EAAI,UAuBpB,SAASE,EAAqB/wJ,EAAO,CACpC,OAAOA,EACL,QAAQ,gBAAiB;AAAA,CAAI,EAC7B,QAAQ,oBAAqB;AAAA,CAAI,CACpC,CAiCA,SAASgxJ,EAAUjxJ,EAAQ,CAC1B,KAAK,QAAUA,GAAU,CAAC,QAAQ,CAAA,CAAE,CACrC,CAEAixJ,EAAU,UAAU,gBAAkB,SAASjlI,EAAOklI,EAAS,CAC9D,IAAIlxJ,EAAU,KAAK,QACf8wJ,EAAO,IAAI5C,EACXG,EAAaruJ,EAAQ,YAAc,IAAImxJ,EACvC1C,EAAezuJ,EAAQ,aACvBiuJ,EAAUjuJ,EAAQ,QAClBmuJ,EAAenuJ,EAAQ,OAAO,CAAA,EAC9BimJ,EAAS,aAAa,KAAKiL,CAAQ,EACjC9C,EAAYnI,EAAS8K,EAAS,cAAgBA,EAAS,aAC1D9C,GACFI,EAAW,mBAAmBJ,CAAO,EAGtC6C,EAAI,aAAeM,EAAkB3C,EAAaJ,EAAWJ,CAAO,EACpE6C,EAAI,WAAa9wJ,EAAQ,YAAcquJ,EACpCpI,IACFkI,EAAa,EAAE,EAAItK,EAAU,MAE9BsK,EAAa,IAAMA,EAAa,KAAOtK,EAAU,IACjD,IAAIwN,EAAYrxJ,EAAQ,sBAAwBgxJ,EAChD,OAAIhlI,GAAU,OAAOA,GAAW,SAC/B8kI,EAAI,MACHO,EAAUrlI,CAAM,EAChBmiI,EACAC,CACH,EAEE0C,EAAI,aAAa,MAAM,oBAAoB,EAErCzC,EAAW,GACnB,EACA,SAAS+C,EAAkBE,EAAUjD,EAAWJ,EAAQ,CACvD,GAAG,CAACqD,EAAU,CACb,GAAGjD,aAAsB8C,EACxB,OAAO9C,EAERiD,EAAYjD,CACd,CACC,IAAII,EAAe,CAAA,EACf8C,EAAaD,aAAqB,SACtCrD,EAAUA,GAAS,CAAA,EACnB,SAAS1iI,EAAM7I,EAAI,CAClB,IAAIhX,EAAK4lJ,EAAU5uI,CAAG,EACnB,CAAChX,GAAM6lJ,IACT7lJ,EAAK4lJ,EAAU,QAAU,EAAE,SAAStzH,EAAI,CAACszH,EAAU5uI,EAAIsb,CAAG,CAAC,EAAEszH,GAE9D7C,EAAa/rI,CAAG,EAAIhX,GAAM,SAASsyB,EAAI,CACtCtyB,EAAG,WAAWgX,EAAI,KAAMsb,EAAIwzH,EAASvD,CAAO,CAAC,CAChD,GAAK,UAAU,CAAA,CACf,CACC,OAAA1iI,EAAM,SAAS,EACfA,EAAM,OAAO,EACbA,EAAM,YAAY,EACXkjI,CACR,CAYA,SAAS0C,GAAa,CAClB,KAAK,MAAQ,EACjB,CACA,SAAS7uI,EAAS2rI,EAAQ90H,EAAK,CAC9BA,EAAK,WAAa80H,EAAQ,WAC1B90H,EAAK,aAAe80H,EAAQ,YAC7B,CAKAkD,EAAW,UAAY,CACtB,cAAgB,UAAW,CACvB,KAAK,IAAM,IAAI3J,EAAiB,EAAG,eAAe,KAAM,KAAM,IAAI,EAC9D,KAAK,UACL,KAAK,IAAI,YAAc,KAAK,QAAQ,SAE7C,EACC,aAAa,SAASF,EAAcC,EAAW8I,EAAO76B,EAAO,CAC5D,IAAI0xB,EAAM,KAAK,IACRl5H,EAAKk5H,EAAI,gBAAgBI,EAAc+I,GAAO9I,CAAS,EACvD5lI,EAAM6zG,EAAM,OAChBw6B,EAAc,KAAMhiI,CAAE,EACtB,KAAK,eAAiBA,EAEzB,KAAK,SAAW1L,EAAS,KAAK,QAAQ0L,CAAE,EACrC,QAAS/sB,EAAI,EAAIA,EAAI0gB,EAAK1gB,IAAK,CAC3B,IAAIqmJ,EAAe9xB,EAAM,OAAOv0H,CAAC,EAC7B3B,EAAQk2H,EAAM,SAASv0H,CAAC,EACxBovJ,EAAQ76B,EAAM,SAASv0H,CAAC,EAC9B4lJ,EAAOK,EAAI,kBAAkBI,EAAc+I,CAAK,EACpD,KAAK,SAAU/tI,EAASkzG,EAAM,WAAWv0H,CAAC,EAAE4lJ,CAAI,EAChDA,EAAK,MAAQA,EAAK,UAAYvnJ,EAC9B0uB,EAAG,iBAAiB64H,CAAI,CAC3B,CACA,EACC,WAAW,SAASS,EAAcC,EAAW8I,EAAO,CACnD,IAAI5hF,EAAU,KAAK,eACLA,EAAQ,QACtB,KAAK,eAAiBA,EAAQ,UAChC,EACC,mBAAmB,SAAS3+C,EAAQg0H,EAAK,CAC1C,EACC,iBAAiB,SAASh0H,EAAQ,CACnC,EACC,sBAAsB,SAASxP,EAAQ3gB,EAAM,CACzC,IAAI8xJ,EAAM,KAAK,IAAI,4BAA4BnxI,EAAQ3gB,CAAI,EAC3D,KAAK,SAAW2iB,EAAS,KAAK,QAAQmvI,CAAG,EACzCzB,EAAc,KAAMyB,CAAG,CAC5B,EACC,oBAAoB,SAASC,EAAInjH,EAAOvO,EAAQ,CACjD,EACC,WAAW,SAAS08C,EAAOnuC,EAAOvO,EAAQ,CAGzC,GAFA08C,EAAQi1E,EAAU,MAAM,KAAK,SAAS,EAEnCj1E,EAAM,CACR,GAAI,KAAK,MACR,IAAIk1E,EAAW,KAAK,IAAI,mBAAmBl1E,CAAK,MAEhD,KAAIk1E,EAAW,KAAK,IAAI,eAAel1E,CAAK,EAE1C,KAAK,eACP,KAAK,eAAe,YAAYk1E,CAAQ,EAChC,QAAQ,KAAKl1E,CAAK,GAC1B,KAAK,IAAI,YAAYk1E,CAAQ,EAG9B,KAAK,SAAWtvI,EAAS,KAAK,QAAQsvI,CAAQ,CACjD,CACA,EACC,cAAc,SAASvuI,EAAM,CAC9B,EACC,YAAY,UAAW,CACtB,KAAK,IAAI,UAAS,CACpB,EACC,mBAAmB,SAAU4qI,EAAS,EAC/B,KAAK,QAAUA,KACjBA,EAAQ,WAAa,EAE3B,EAEC,QAAQ,SAASvxE,EAAOnuC,EAAOvO,EAAQ,CACtC08C,EAAQi1E,EAAU,MAAM,KAAK,SAAS,EACnC,IAAIE,EAAO,KAAK,IAAI,cAAcn1E,CAAK,EACvC,KAAK,SAAWp6D,EAAS,KAAK,QAAQuvI,CAAI,EAC1C7B,EAAc,KAAM6B,CAAI,CAC7B,EAEC,WAAW,UAAW,CAElB,KAAK,MAAQ,EAClB,EACC,SAAS,UAAW,CAChB,KAAK,MAAQ,EAClB,EAEC,SAAS,SAASxuI,EAAMukI,EAAUC,EAAU,CAC3C,IAAIiK,EAAO,KAAK,IAAI,eACjB,GAAIA,GAAQA,EAAK,mBAAoB,CACjC,IAAI3pJ,EAAK2pJ,EAAK,mBAAmBzuI,EAAMukI,EAAUC,CAAQ,EACzD,KAAK,SAAWvlI,EAAS,KAAK,QAAQna,CAAE,EACxC6nJ,EAAc,KAAM7nJ,CAAE,EAC1B,KAAK,IAAI,QAAUA,CACxB,CACA,EAKC,QAAQ,SAAS1H,EAAO,CACvB,QAAQ,KAAK,oBAAqBA,EAAM+wJ,EAAS,KAAK,OAAO,CAAC,CAChE,EACC,MAAM,SAAS/wJ,EAAO,CACrB,QAAQ,MAAM,kBAAmBA,EAAM+wJ,EAAS,KAAK,OAAO,CAAC,CAC/D,EACC,WAAW,SAAS/wJ,EAAO,CAC1B,MAAM,IAAIutJ,EAAWvtJ,EAAO,KAAK,OAAO,CAC1C,CACA,EACA,SAAS+wJ,EAASrzJ,EAAE,CACnB,GAAGA,EACF,MAAO;AAAA,IAAOA,EAAE,UAAW,IAAI,UAAUA,EAAE,WAAW,QAAQA,EAAE,aAAa,GAE/E,CACA,SAASwzJ,EAAUj1E,EAAMnuC,EAAMvO,EAAO,CACrC,OAAG,OAAO08C,GAAS,SACXA,EAAM,OAAOnuC,EAAMvO,CAAM,EAE7B08C,EAAM,QAAUnuC,EAAMvO,GAAUuO,EAC3B,IAAI,KAAK,KAAK,OAAOmuC,EAAMnuC,EAAMvO,CAAM,EAAE,GAE1C08C,CAET,CAiCA,+JAA+J,QAAQ,OAAO,SAASh6D,EAAI,CAC1LyuI,EAAW,UAAUzuI,CAAG,EAAI,UAAU,CAAC,OAAO,IAAI,CACnD,CAAC,EAGD,SAASstI,EAAe+B,EAAO54H,EAAM,CAC5B44H,EAAO,eAGRA,EAAO,eAAe,YAAY54H,CAAI,EAFtC44H,EAAO,IAAI,YAAY54H,CAAI,CAInC,CAEA,OAAA64H,GAAA,aAAuBb,EACvBa,GAAA,qBAA+BhB,EAC/BgB,GAAA,UAAoBf,+CCjUpB,IAAI3D,EAAMjnI,GAAA,EACV4rI,OAAAA,GAAA,kBAA4B3E,EAAI,kBAChC2E,GAAA,cAAwB3E,EAAI,cAC5B2E,GAAA,UAAoBxqI,KAAwB,uDCH5C,IAAIyqI,EAAS7rI,GAAA,EACTinI,EAAM7lI,GAAA,EAEV,SAAS0qI,EAAgBv4B,EAAQ,CAC7B,IAAIn5H,EAAQ,KAERuxJ,EAAY,IAAIE,EAAO,UAAU,CACjC,aAAc,SAASx7H,EAAOpL,EAAS,CACnC7qB,EAAQ,CAAC,MAAOi2B,EAAO,QAASpL,CAAO,CACnD,CACA,CAAK,EAEG8mI,EAAWJ,EAAU,gBAAgBp4B,CAAM,EAE/C,GAAIn5H,IAAU,KACV,OAAO2xJ,EAEP,MAAM,IAAI,MAAM3xJ,EAAM,MAAQ,KAAOA,EAAM,OAAO,CAE1D,CAEA4xJ,OAAAA,GAAA,gBAA0BF,EAC1BE,GAAA,KAAe/E,EAAI,kDCtBnB,IAAI/uG,EAAWl4B,GAAA,EACXtkB,EAAI0lB,GAEJyqI,EAASvqI,GAAA,EACTsI,EAAQpI,GAAA,EACRy7H,EAAUrzH,EAAM,QAEpB/wB,GAAA,WAAqBozJ,EAErB,IAAIvK,EAAOmK,EAAO,KAElB,SAASI,EAAWC,EAAWC,EAAc,CACzCA,EAAeA,GAAgB,CAAA,EAE/B,GAAI,CACA,IAAIJ,EAAWF,EAAO,gBAAgBK,EAAW,UAAU,CACnE,OAAa9xJ,EAAO,CACZ,OAAO89C,EAAS,OAAO99C,CAAK,CACpC,CAEI,GAAI2xJ,EAAS,gBAAgB,UAAY,cACrC,OAAO7zG,EAAS,QAAQ,IAAI,MAAM6zG,EAAS,gBAAgB,WAAW,CAAC,EAG3E,SAASK,EAAYt5H,EAAM,CACvB,OAAQA,EAAK,SAAQ,CACrB,KAAK4uH,EAAK,aACN,OAAO2K,EAAev5H,CAAI,EAC9B,KAAK4uH,EAAK,UACN,OAAO93H,EAAM,KAAKkJ,EAAK,SAAS,CAC5C,CACA,CAEI,SAASu5H,EAAezrH,EAAS,CAC7B,IAAI0rH,EAAgBC,EAAY3rH,CAAO,EAEnC4rH,EAAoB,CAAA,EACxB9wJ,EAAE,QAAQklC,EAAQ,WAAY,SAAS6rH,EAAW,CAC9C,IAAIC,EAAgBN,EAAYK,CAAS,EACrCC,GACAF,EAAkB,KAAKE,CAAa,CAEpD,CAAS,EAED,IAAIC,EAAsB,CAAA,EAC1B,OAAAjxJ,EAAE,QAAQklC,EAAQ,WAAY,SAASgsH,EAAW,CAC9CD,EAAoBJ,EAAYK,CAAS,CAAC,EAAIA,EAAU,KACpE,CAAS,EAEM,IAAI3P,EAAQqP,EAAeK,EAAqBH,CAAiB,CAChF,CAEI,SAASD,EAAYz5H,EAAM,CACvB,GAAIA,EAAK,aAAc,CACnB,IAAI+5H,EAAeV,EAAar5H,EAAK,YAAY,EAC7CrJ,EACJ,OAAIojI,EACApjI,EAASojI,EAAe,IAExBpjI,EAAS,IAAMqJ,EAAK,aAAe,IAEhCrJ,EAASqJ,EAAK,SACjC,KACY,QAAOA,EAAK,SAExB,CAEI,OAAOolB,EAAS,QAAQk0G,EAAYL,EAAS,eAAe,CAAC,CACjE,oECnEC,UAAW,CACV,IAAIzO,EAAQv9C,EAAU8tB,EAAS3zC,EAASozC,EAAYb,EAAUqgC,EAC5DrhC,EAAQ,CAAA,EAAG,MACX4Q,EAAU,CAAA,EAAG,eAEfihB,EAAS,UAAW,CAClB,IAAI1iJ,EAAGyhB,EAAKf,EAAKqK,EAAQonI,EAAS9yI,EAElC,GADAA,EAAS,UAAU,CAAC,EAAG8yI,EAAU,GAAK,UAAU,OAASthC,EAAM,KAAK,UAAW,CAAC,EAAI,CAAA,EAChF6B,EAAW,OAAO,MAAM,EAC1B,OAAO,OAAO,MAAM,KAAM,SAAS,MAEnC,KAAK1yH,EAAI,EAAG0gB,EAAMyxI,EAAQ,OAAQnyJ,EAAI0gB,EAAK1gB,IAEzC,GADA+qB,EAASonI,EAAQnyJ,CAAC,EACd+qB,GAAU,KACZ,IAAKtJ,KAAOsJ,EACL02G,EAAQ,KAAK12G,EAAQtJ,CAAG,IAC7BpC,EAAOoC,CAAG,EAAIsJ,EAAOtJ,CAAG,GAKhC,OAAOpC,CACX,EAEEqzG,EAAa,SAASviE,EAAK,CACzB,MAAO,CAAC,CAACA,GAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,mBAC5D,EAEE0hE,EAAW,SAAS1hE,EAAK,CACvB,IAAIkjC,EACJ,MAAO,CAAC,CAACljC,KAASkjC,EAAM,OAAOljC,IAAS,YAAckjC,IAAQ,SAClE,EAEE4/B,EAAU,SAAS9iE,EAAK,CACtB,OAAIuiE,EAAW,MAAM,OAAO,EACnB,MAAM,QAAQviE,CAAG,EAEjB,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,gBAErD,EAEEmvB,EAAU,SAASnvB,EAAK,CACtB,IAAI1uC,EACJ,GAAIwxG,EAAQ9iE,CAAG,EACb,MAAO,CAACA,EAAI,OAEZ,IAAK1uC,KAAO0uC,EACV,GAAKsxE,EAAQ,KAAKtxE,EAAK1uC,CAAG,EAC1B,MAAO,GAET,MAAO,EAEb,EAEEywI,EAAgB,SAAS/hG,EAAK,CAC5B,IAAIwmE,EAAM18E,EACV,OAAO43E,EAAS1hE,CAAG,IAAMlW,EAAQ,OAAO,eAAekW,CAAG,KAAOwmE,EAAO18E,EAAM,cAAiB,OAAO08E,GAAS,YAAgBA,aAAgBA,GAAU,SAAS,UAAU,SAAS,KAAKA,CAAI,IAAM,SAAS,UAAU,SAAS,KAAK,MAAM,CAC/O,EAEExxB,EAAW,SAASnnE,EAAK,CACvB,OAAI00F,EAAW10F,EAAI,OAAO,EACjBA,EAAI,QAAO,EAEXA,CAEb,EAEEo0H,GAAA,OAAwB1P,EAExB0P,GAAA,WAA4B1/B,EAE5B0/B,GAAA,SAA0BvgC,EAE1BugC,GAAA,QAAyBn/B,EAEzBm/B,GAAA,QAAyB9yE,EAEzB8yE,GAAA,cAA+BF,EAE/BE,GAAA,SAA0BjtD,CAE5B,GAAG,KAAKh/E,EAAI,2HCjFX,UAAW,CAGVksI,GAAA,SAAiC,UAAW,CAC1C,SAASC,EAAalrH,EAAQhlB,EAAM/jB,EAAO,CAIzC,GAHA,KAAK,QAAU+oC,EAAO,QACtB,KAAK,UAAYA,EAAO,UACxB,KAAK,OAASA,EACVhlB,GAAQ,KACV,MAAM,IAAI,MAAM,2BAA6B,KAAK,UAAUA,CAAI,CAAC,EAEnE,GAAI/jB,GAAS,KACX,MAAM,IAAI,MAAM,4BAA8B,KAAK,UAAU+jB,CAAI,CAAC,EAEpE,KAAK,KAAO,KAAK,UAAU,QAAQA,CAAI,EACvC,KAAK,MAAQ,KAAK,UAAU,SAAS/jB,CAAK,CAChD,CAEI,OAAAi0J,EAAa,UAAU,MAAQ,UAAW,CACxC,OAAO,OAAO,OAAO,IAAI,CAC/B,EAEIA,EAAa,UAAU,SAAW,SAASvzJ,EAAS,CAClD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,UAAU,IAAI,CAC5D,EAEIuzJ,EAAa,UAAU,UAAY,SAASlwI,EAAM,CAEhD,OADAA,EAAOA,GAAQ,KAAK,KAChBA,GAAQ,KACH,YAAc,KAAK,OAAO,KAAO,IAEjC,eAAiBA,EAAO,eAAiB,KAAK,OAAO,KAAO,GAE3E,EAEWkwI,CAEX,GAAG,CAEH,GAAG,KAAKnsI,EAAI,mECvCX,UAAW,CACV,IAAImsI,EAA0BC,EAASptD,EAAUutB,EAAYb,EAAUx+B,EACrE2jC,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEfpuC,EAAMjuE,GAAA,EAAsBysG,EAAWx+B,EAAI,SAAUq/B,EAAar/B,EAAI,WAAY8R,EAAW9R,EAAI,SAEjGk/D,EAAU/rI,GAAA,EAEV8rI,EAAe5rI,GAAA,EAEf8rI,YAA+B,SAASC,EAAY,CAClDz7B,EAAO07B,EAAYD,CAAU,EAE7B,SAASC,EAAWtrH,EAAQhlB,EAAMkkB,EAAY,CAE5C,GADAosH,EAAW,UAAU,YAAY,KAAK,KAAMtrH,CAAM,EAC9ChlB,GAAQ,KACV,MAAM,IAAI,MAAM,yBAA2B,KAAK,UAAS,CAAE,EAE7D,KAAK,KAAO,KAAK,UAAU,QAAQA,CAAI,EACvC,KAAK,WAAa,CAAA,EACdkkB,GAAc,MAChB,KAAK,UAAUA,CAAU,EAEvBc,EAAO,aACT,KAAK,OAAS,GACd,KAAK,eAAiBA,EACtBA,EAAO,WAAa,KAE5B,CAEI,OAAAsrH,EAAW,UAAU,MAAQ,UAAW,CACtC,IAAIC,EAAKC,EAASC,EAAYC,EAC9BD,EAAa,OAAO,OAAO,IAAI,EAC3BA,EAAW,SACbA,EAAW,eAAiB,MAE9BA,EAAW,WAAa,CAAA,EACxBC,EAAO,KAAK,WACZ,IAAKF,KAAWE,EACTrxB,EAAQ,KAAKqxB,EAAMF,CAAO,IAC/BD,EAAMG,EAAKF,CAAO,EAClBC,EAAW,WAAWD,CAAO,EAAID,EAAI,MAAK,GAE5C,OAAAE,EAAW,SAAW,CAAA,EACtB,KAAK,SAAS,QAAQ,SAASjtH,EAAO,CACpC,IAAImtH,EACJ,OAAAA,EAAcntH,EAAM,MAAK,EACzBmtH,EAAY,OAASF,EACdA,EAAW,SAAS,KAAKE,CAAW,CACnD,CAAO,EACMF,CACb,EAEIH,EAAW,UAAU,UAAY,SAAStwI,EAAM/jB,EAAO,CACrD,IAAIu0J,EAASI,EAIb,GAHI5wI,GAAQ,OACVA,EAAO+iF,EAAS/iF,CAAI,GAElByvG,EAASzvG,CAAI,EACf,IAAKwwI,KAAWxwI,EACTq/G,EAAQ,KAAKr/G,EAAMwwI,CAAO,IAC/BI,EAAW5wI,EAAKwwI,CAAO,EACvB,KAAK,UAAUA,EAASI,CAAQ,QAG9BtgC,EAAWr0H,CAAK,IAClBA,EAAQA,EAAM,MAAK,IAEjB,CAAC,KAAK,QAAQ,oBAAuBA,GAAS,QAChD,KAAK,WAAW+jB,CAAI,EAAI,IAAIkwI,EAAa,KAAMlwI,EAAM/jB,CAAK,GAG9D,OAAO,IACb,EAEIq0J,EAAW,UAAU,gBAAkB,SAAStwI,EAAM,CACpD,IAAIwwI,EAAS5yJ,EAAG0gB,EAChB,GAAI0B,GAAQ,KACV,MAAM,IAAI,MAAM,2BAA6B,KAAK,UAAS,CAAE,EAG/D,GADAA,EAAO+iF,EAAS/iF,CAAI,EAChB,MAAM,QAAQA,CAAI,EACpB,IAAKpiB,EAAI,EAAG0gB,EAAM0B,EAAK,OAAQpiB,EAAI0gB,EAAK1gB,IACtC4yJ,EAAUxwI,EAAKpiB,CAAC,EAChB,OAAO,KAAK,WAAW4yJ,CAAO,OAGhC,OAAO,KAAK,WAAWxwI,CAAI,EAE7B,OAAO,IACb,EAEIswI,EAAW,UAAU,SAAW,SAAS3zJ,EAAS,CAChD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,QAAQ,IAAI,CAC1D,EAEI2zJ,EAAW,UAAU,IAAM,SAAStwI,EAAM/jB,EAAO,CAC/C,OAAO,KAAK,UAAU+jB,EAAM/jB,CAAK,CACvC,EAEIq0J,EAAW,UAAU,EAAI,SAAStwI,EAAM/jB,EAAO,CAC7C,OAAO,KAAK,UAAU+jB,EAAM/jB,CAAK,CACvC,EAEWq0J,CAEX,GAAKH,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFC7GX,UAAW,CACV,IAAcosI,EACZv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEV6tI,YAA6B,SAASR,EAAY,CAChDz7B,EAAOk8B,EAAUT,CAAU,EAE3B,SAASS,EAAS9rH,EAAQ3nC,EAAM,CAE9B,GADAyzJ,EAAS,UAAU,YAAY,KAAK,KAAM9rH,CAAM,EAC5C3nC,GAAQ,KACV,MAAM,IAAI,MAAM,uBAAyB,KAAK,UAAS,CAAE,EAE3D,KAAK,KAAO,KAAK,UAAU,MAAMA,CAAI,CAC3C,CAEI,OAAAyzJ,EAAS,UAAU,MAAQ,UAAW,CACpC,OAAO,OAAO,OAAO,IAAI,CAC/B,EAEIA,EAAS,UAAU,SAAW,SAASn0J,EAAS,CAC9C,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,MAAM,IAAI,CACxD,EAEWm0J,CAEX,GAAKX,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFC9BX,UAAW,CACV,IAAgBosI,EACdv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEV+tI,YAA+B,SAASV,EAAY,CAClDz7B,EAAOo8B,EAAYX,CAAU,EAE7B,SAASW,EAAWhsH,EAAQ3nC,EAAM,CAEhC,GADA2zJ,EAAW,UAAU,YAAY,KAAK,KAAMhsH,CAAM,EAC9C3nC,GAAQ,KACV,MAAM,IAAI,MAAM,yBAA2B,KAAK,UAAS,CAAE,EAE7D,KAAK,KAAO,KAAK,UAAU,QAAQA,CAAI,CAC7C,CAEI,OAAA2zJ,EAAW,UAAU,MAAQ,UAAW,CACtC,OAAO,OAAO,OAAO,IAAI,CAC/B,EAEIA,EAAW,UAAU,SAAW,SAASr0J,EAAS,CAChD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,QAAQ,IAAI,CAC1D,EAEWq0J,CAEX,GAAKb,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFC9BX,UAAW,CACV,IAAoBosI,EAAS1gC,EAC3BmF,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf5P,EAAWzsG,GAAA,EAAqB,SAEhCmtI,EAAU/rI,GAAA,EAEV6sI,YAAmC,SAASZ,EAAY,CACtDz7B,EAAOs8B,EAAgBb,CAAU,EAEjC,SAASa,EAAelsH,EAAQ5iB,EAASu+D,EAAUwwE,EAAY,CAC7D,IAAIlgE,EACJigE,EAAe,UAAU,YAAY,KAAK,KAAMlsH,CAAM,EAClDyqF,EAASrtG,CAAO,IAClB6uE,EAAM7uE,EAASA,EAAU6uE,EAAI,QAAStQ,EAAWsQ,EAAI,SAAUkgE,EAAalgE,EAAI,YAE7E7uE,IACHA,EAAU,OAEZ,KAAK,QAAU,KAAK,UAAU,WAAWA,CAAO,EAC5Cu+D,GAAY,OACd,KAAK,SAAW,KAAK,UAAU,YAAYA,CAAQ,GAEjDwwE,GAAc,OAChB,KAAK,WAAa,KAAK,UAAU,cAAcA,CAAU,EAEjE,CAEI,OAAAD,EAAe,UAAU,SAAW,SAASv0J,EAAS,CACpD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,YAAY,IAAI,CAC9D,EAEWu0J,CAEX,GAAKf,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mGCtCX,UAAW,CACV,IAAmBosI,EACjBv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEVouI,YAAkC,SAASf,EAAY,CACrDz7B,EAAOy8B,EAAehB,CAAU,EAEhC,SAASgB,EAAcrsH,EAAQssH,EAAaC,EAAeC,EAAeC,EAAkB7jG,EAAc,CAExG,GADAyjG,EAAc,UAAU,YAAY,KAAK,KAAMrsH,CAAM,EACjDssH,GAAe,KACjB,MAAM,IAAI,MAAM,6BAA+B,KAAK,UAAS,CAAE,EAEjE,GAAIC,GAAiB,KACnB,MAAM,IAAI,MAAM,+BAAiC,KAAK,UAAUD,CAAW,CAAC,EAE9E,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,+BAAiC,KAAK,UAAUF,CAAW,CAAC,EAE9E,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,kCAAoC,KAAK,UAAUH,CAAW,CAAC,EAKjF,GAHIG,EAAiB,QAAQ,GAAG,IAAM,IACpCA,EAAmB,IAAMA,GAEvB,CAACA,EAAiB,MAAM,wCAAwC,EAClE,MAAM,IAAI,MAAM,kFAAoF,KAAK,UAAUH,CAAW,CAAC,EAEjI,GAAI1jG,GAAgB,CAAC6jG,EAAiB,MAAM,qBAAqB,EAC/D,MAAM,IAAI,MAAM,qDAAuD,KAAK,UAAUH,CAAW,CAAC,EAEpG,KAAK,YAAc,KAAK,UAAU,QAAQA,CAAW,EACrD,KAAK,cAAgB,KAAK,UAAU,QAAQC,CAAa,EACzD,KAAK,cAAgB,KAAK,UAAU,WAAWC,CAAa,EAC5D,KAAK,aAAe,KAAK,UAAU,cAAc5jG,CAAY,EAC7D,KAAK,iBAAmB6jG,CAC9B,CAEI,OAAAJ,EAAc,UAAU,SAAW,SAAS10J,EAAS,CACnD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,WAAW,IAAI,CAC7D,EAEW00J,CAEX,GAAKlB,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFChDX,UAAW,CACV,IAAkBosI,EAAS1gC,EACzBmF,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf5P,EAAWzsG,GAAA,EAAqB,SAEhCmtI,EAAU/rI,GAAA,EAEVstI,YAAiC,SAASrB,EAAY,CACpDz7B,EAAO+8B,EAActB,CAAU,EAE/B,SAASsB,EAAa3sH,EAAQvjC,EAAIue,EAAM/jB,EAAO,CAE7C,GADA01J,EAAa,UAAU,YAAY,KAAK,KAAM3sH,CAAM,EAChDhlB,GAAQ,KACV,MAAM,IAAI,MAAM,4BAA8B,KAAK,UAAUA,CAAI,CAAC,EAEpE,GAAI/jB,GAAS,KACX,MAAM,IAAI,MAAM,6BAA+B,KAAK,UAAU+jB,CAAI,CAAC,EAIrE,GAFA,KAAK,GAAK,CAAC,CAACve,EACZ,KAAK,KAAO,KAAK,UAAU,QAAQue,CAAI,EACnC,CAACyvG,EAASxzH,CAAK,EACjB,KAAK,MAAQ,KAAK,UAAU,eAAeA,CAAK,MAC3C,CACL,GAAI,CAACA,EAAM,OAAS,CAACA,EAAM,MACzB,MAAM,IAAI,MAAM,yEAA2E,KAAK,UAAU+jB,CAAI,CAAC,EAEjH,GAAI/jB,EAAM,OAAS,CAACA,EAAM,MACxB,MAAM,IAAI,MAAM,+DAAiE,KAAK,UAAU+jB,CAAI,CAAC,EAWvG,GATI/jB,EAAM,OAAS,OACjB,KAAK,MAAQ,KAAK,UAAU,SAASA,EAAM,KAAK,GAE9CA,EAAM,OAAS,OACjB,KAAK,MAAQ,KAAK,UAAU,SAASA,EAAM,KAAK,GAE9CA,EAAM,OAAS,OACjB,KAAK,MAAQ,KAAK,UAAU,SAASA,EAAM,KAAK,GAE9C,KAAK,IAAM,KAAK,MAClB,MAAM,IAAI,MAAM,8DAAgE,KAAK,UAAU+jB,CAAI,CAAC,CAE9G,CACA,CAEI,OAAA2xI,EAAa,UAAU,SAAW,SAASh1J,EAAS,CAClD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,UAAU,IAAI,CAC5D,EAEWg1J,CAEX,GAAKxB,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFCtDX,UAAW,CACV,IAAmBosI,EACjBv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEV4uI,YAAkC,SAASvB,EAAY,CACrDz7B,EAAOi9B,EAAexB,CAAU,EAEhC,SAASwB,EAAc7sH,EAAQhlB,EAAM/jB,EAAO,CAE1C,GADA41J,EAAc,UAAU,YAAY,KAAK,KAAM7sH,CAAM,EACjDhlB,GAAQ,KACV,MAAM,IAAI,MAAM,6BAA+B,KAAK,UAAS,CAAE,EAE5D/jB,IACHA,EAAQ,aAEN,MAAM,QAAQA,CAAK,IACrBA,EAAQ,IAAMA,EAAM,KAAK,GAAG,EAAI,KAElC,KAAK,KAAO,KAAK,UAAU,QAAQ+jB,CAAI,EACvC,KAAK,MAAQ,KAAK,UAAU,gBAAgB/jB,CAAK,CACvD,CAEI,OAAA41J,EAAc,UAAU,SAAW,SAASl1J,EAAS,CACnD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,WAAW,IAAI,CAC7D,EAEWk1J,CAEX,GAAK1B,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFCjCX,UAAW,CACV,IAAoBosI,EAClBv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEV8uI,YAAmC,SAASzB,EAAY,CACtDz7B,EAAOm9B,EAAgB1B,CAAU,EAEjC,SAAS0B,EAAe/sH,EAAQhlB,EAAM/jB,EAAO,CAE3C,GADA81J,EAAe,UAAU,YAAY,KAAK,KAAM/sH,CAAM,EAClDhlB,GAAQ,KACV,MAAM,IAAI,MAAM,8BAAgC,KAAK,UAAUA,CAAI,CAAC,EAEtE,GAAI,CAAC/jB,EAAM,OAAS,CAACA,EAAM,MACzB,MAAM,IAAI,MAAM,qEAAuE,KAAK,UAAU+jB,CAAI,CAAC,EAE7G,KAAK,KAAO,KAAK,UAAU,QAAQA,CAAI,EACnC/jB,EAAM,OAAS,OACjB,KAAK,MAAQ,KAAK,UAAU,SAASA,EAAM,KAAK,GAE9CA,EAAM,OAAS,OACjB,KAAK,MAAQ,KAAK,UAAU,SAASA,EAAM,KAAK,EAExD,CAEI,OAAA81J,EAAe,UAAU,SAAW,SAASp1J,EAAS,CACpD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,YAAY,IAAI,CAC9D,EAEWo1J,CAEX,GAAK5B,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mECnCX,UAAW,CACV,IAAIstI,EAAeQ,EAAeF,EAAcI,EAA4B5B,EAAS1gC,EACnFmF,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf5P,EAAWzsG,GAAA,EAAqB,SAEhCmtI,EAAU/rI,GAAA,EAEVitI,EAAgB/sI,GAAA,EAEhBqtI,EAAentI,GAAA,EAEfqtI,EAAgB/Y,GAAA,EAEhBiZ,EAAiBhZ,GAAA,EAEjBiZ,YAA+B,SAAS3B,EAAY,CAClDz7B,EAAOq9B,EAAY5B,CAAU,EAE7B,SAAS4B,EAAWjtH,EAAQktH,EAAOC,EAAO,CACxC,IAAIlhE,EAAKy/D,EACTuB,EAAW,UAAU,YAAY,KAAK,KAAMjtH,CAAM,EAClD,KAAK,KAAO,WACZ,KAAK,eAAiBA,EAClByqF,EAASyiC,CAAK,IAChBjhE,EAAMihE,EAAOA,EAAQjhE,EAAI,MAAOkhE,EAAQlhE,EAAI,OAE1CkhE,GAAS,OACXzB,EAAO,CAACwB,EAAOC,CAAK,EAAGA,EAAQzB,EAAK,CAAC,EAAGwB,EAAQxB,EAAK,CAAC,GAEpDwB,GAAS,OACX,KAAK,MAAQ,KAAK,UAAU,SAASA,CAAK,GAExCC,GAAS,OACX,KAAK,MAAQ,KAAK,UAAU,SAASA,CAAK,EAElD,CAEI,OAAAF,EAAW,UAAU,QAAU,SAASjyI,EAAM/jB,EAAO,CACnD,IAAIunC,EACJ,OAAAA,EAAQ,IAAIquH,EAAc,KAAM7xI,EAAM/jB,CAAK,EAC3C,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEIyuH,EAAW,UAAU,QAAU,SAASX,EAAaC,EAAeC,EAAeC,EAAkB7jG,EAAc,CACjH,IAAIpqB,EACJ,OAAAA,EAAQ,IAAI6tH,EAAc,KAAMC,EAAaC,EAAeC,EAAeC,EAAkB7jG,CAAY,EACzG,KAAK,SAAS,KAAKpqB,CAAK,EACjB,IACb,EAEIyuH,EAAW,UAAU,OAAS,SAASjyI,EAAM/jB,EAAO,CAClD,IAAIunC,EACJ,OAAAA,EAAQ,IAAImuH,EAAa,KAAM,GAAO3xI,EAAM/jB,CAAK,EACjD,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEIyuH,EAAW,UAAU,QAAU,SAASjyI,EAAM/jB,EAAO,CACnD,IAAIunC,EACJ,OAAAA,EAAQ,IAAImuH,EAAa,KAAM,GAAM3xI,EAAM/jB,CAAK,EAChD,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEIyuH,EAAW,UAAU,SAAW,SAASjyI,EAAM/jB,EAAO,CACpD,IAAIunC,EACJ,OAAAA,EAAQ,IAAIuuH,EAAe,KAAM/xI,EAAM/jB,CAAK,EAC5C,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEIyuH,EAAW,UAAU,SAAW,SAASt1J,EAAS,CAChD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,QAAQ,IAAI,CAC1D,EAEIs1J,EAAW,UAAU,IAAM,SAASjyI,EAAM/jB,EAAO,CAC/C,OAAO,KAAK,QAAQ+jB,EAAM/jB,CAAK,CACrC,EAEIg2J,EAAW,UAAU,IAAM,SAASX,EAAaC,EAAeC,EAAeC,EAAkB7jG,EAAc,CAC7G,OAAO,KAAK,QAAQ0jG,EAAaC,EAAeC,EAAeC,EAAkB7jG,CAAY,CACnG,EAEIqkG,EAAW,UAAU,IAAM,SAASjyI,EAAM/jB,EAAO,CAC/C,OAAO,KAAK,OAAO+jB,EAAM/jB,CAAK,CACpC,EAEIg2J,EAAW,UAAU,KAAO,SAASjyI,EAAM/jB,EAAO,CAChD,OAAO,KAAK,QAAQ+jB,EAAM/jB,CAAK,CACrC,EAEIg2J,EAAW,UAAU,IAAM,SAASjyI,EAAM/jB,EAAO,CAC/C,OAAO,KAAK,SAAS+jB,EAAM/jB,CAAK,CACtC,EAEIg2J,EAAW,UAAU,GAAK,UAAW,CACnC,OAAO,KAAK,QAAU,KAAK,cACjC,EAEWA,CAEX,GAAK9B,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFC1GX,UAAW,CACV,IAAIosI,EACFv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEVovI,YAA2B,SAAS/B,EAAY,CAC9Cz7B,EAAOy9B,EAAQhC,CAAU,EAEzB,SAASgC,EAAOrtH,EAAQ3nC,EAAM,CAE5B,GADAg1J,EAAO,UAAU,YAAY,KAAK,KAAMrtH,CAAM,EAC1C3nC,GAAQ,KACV,MAAM,IAAI,MAAM,qBAAuB,KAAK,UAAS,CAAE,EAEzD,KAAK,MAAQ,KAAK,UAAU,IAAIA,CAAI,CAC1C,CAEI,OAAAg1J,EAAO,UAAU,MAAQ,UAAW,CAClC,OAAO,OAAO,OAAO,IAAI,CAC/B,EAEIA,EAAO,UAAU,SAAW,SAAS11J,EAAS,CAC5C,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,IAAI,IAAI,CACtD,EAEW01J,CAEX,GAAKlC,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFC9BX,UAAW,CACV,IAAIosI,EACFv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEVsvI,YAA4B,SAASjC,EAAY,CAC/Cz7B,EAAO29B,EAASlC,CAAU,EAE1B,SAASkC,EAAQvtH,EAAQ3nC,EAAM,CAE7B,GADAk1J,EAAQ,UAAU,YAAY,KAAK,KAAMvtH,CAAM,EAC3C3nC,GAAQ,KACV,MAAM,IAAI,MAAM,yBAA2B,KAAK,UAAS,CAAE,EAE7D,KAAK,MAAQ,KAAK,UAAU,QAAQA,CAAI,CAC9C,CAEI,OAAAk1J,EAAQ,UAAU,MAAQ,UAAW,CACnC,OAAO,OAAO,OAAO,IAAI,CAC/B,EAEIA,EAAQ,UAAU,SAAW,SAAS51J,EAAS,CAC7C,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,KAAK,IAAI,CACvD,EAEW41J,CAEX,GAAKpC,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFC9BX,UAAW,CACV,IAAIosI,EACFv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEVwvI,YAA6C,SAASnC,EAAY,CAChEz7B,EAAO69B,EAA0BpC,CAAU,EAE3C,SAASoC,EAAyBztH,EAAQ/nB,EAAQhhB,EAAO,CAEvD,GADAw2J,EAAyB,UAAU,YAAY,KAAK,KAAMztH,CAAM,EAC5D/nB,GAAU,KACZ,MAAM,IAAI,MAAM,+BAAiC,KAAK,UAAS,CAAE,EAEnE,KAAK,OAAS,KAAK,UAAU,UAAUA,CAAM,EACzChhB,IACF,KAAK,MAAQ,KAAK,UAAU,SAASA,CAAK,EAElD,CAEI,OAAAw2J,EAAyB,UAAU,MAAQ,UAAW,CACpD,OAAO,OAAO,OAAO,IAAI,CAC/B,EAEIA,EAAyB,UAAU,SAAW,SAAS91J,EAAS,CAC9D,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,sBAAsB,IAAI,CACxE,EAEW81J,CAEX,GAAKtC,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFCjCX,UAAW,CACV,IAAcosI,EACZv7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf8wB,EAAUntI,GAAA,EAEV0vI,YAA6B,SAASrC,EAAY,CAChDz7B,EAAO+9B,EAAUtC,CAAU,EAE3B,SAASsC,EAAS3tH,EAAQ,CACxB2tH,EAAS,UAAU,YAAY,KAAK,KAAM3tH,CAAM,EAChD,KAAK,QAAU,EACrB,CAEI,OAAA2tH,EAAS,UAAU,MAAQ,UAAW,CACpC,OAAO,OAAO,OAAO,IAAI,CAC/B,EAEIA,EAAS,UAAU,SAAW,SAASh2J,EAAS,CAC9C,MAAO,EACb,EAEWg2J,CAEX,GAAKxC,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mEC3BX,UAAW,CACV,IAAI+sI,EAAUE,EAAYE,EAAgBe,EAAYU,EAAUrC,EAAqBmC,EAA0BJ,EAAQE,EAASxvD,EAAU7lB,EAASozC,EAAYb,EAAUx+B,EACvKouC,EAAU,CAAA,EAAG,eAEfpuC,EAAMjuE,GAAA,EAAsBysG,EAAWx+B,EAAI,SAAUq/B,EAAar/B,EAAI,WAAY/T,EAAU+T,EAAI,QAAS8R,EAAW9R,EAAI,SAExHq/D,EAAa,KAEbQ,EAAW,KAEXE,EAAa,KAEbE,EAAiB,KAEjBe,EAAa,KAEbI,EAAS,KAETE,EAAU,KAEVE,EAA2B,KAE3BE,EAAW,KAEXC,GAAA,SAA4B,UAAW,CACrC,SAASzC,EAAQnrH,EAAQ,CACvB,KAAK,OAASA,EACV,KAAK,SACP,KAAK,QAAU,KAAK,OAAO,QAC3B,KAAK,UAAY,KAAK,OAAO,WAE/B,KAAK,SAAW,CAAA,EACXsrH,IACHA,EAAalsI,GAAA,EACb0sI,EAAWxsI,GAAA,EACX0sI,EAAaxsI,GAAA,EACb0sI,EAAiBpY,GAAA,EACjBmZ,EAAalZ,GAAA,EACbsZ,EAASrZ,GAAA,EACTuZ,EAAUtZ,GAAA,EACVwZ,EAA2BvZ,GAAA,EAC3ByZ,EAAWxZ,GAAA,EAEnB,CAEI,OAAAgX,EAAQ,UAAU,QAAU,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CAC3D,IAAIoyJ,EAAW7+H,EAAMvxB,EAAGR,EAAGwgB,EAAKwzI,EAAWv0I,EAAKw0I,EAAMpC,EAAMqC,EAAMhlG,EAelE,GAdA8kG,EAAY,KACR3uH,IAAe,MAAS7mC,GAAQ,OAClCqzJ,EAAO,CAAC,CAAA,EAAI,IAAI,EAAGxsH,EAAawsH,EAAK,CAAC,EAAGrzJ,EAAOqzJ,EAAK,CAAC,GAEpDxsH,GAAc,OAChBA,EAAa,CAAA,GAEfA,EAAa6+D,EAAS7+D,CAAU,EAC3BurF,EAASvrF,CAAU,IACtB6uH,EAAO,CAAC7uH,EAAY7mC,CAAI,EAAGA,EAAO01J,EAAK,CAAC,EAAG7uH,EAAa6uH,EAAK,CAAC,GAE5D/yI,GAAQ,OACVA,EAAO+iF,EAAS/iF,CAAI,GAElB,MAAM,QAAQA,CAAI,EACpB,IAAK3gB,EAAI,EAAGif,EAAM0B,EAAK,OAAQ3gB,EAAIif,EAAKjf,IACtCuxB,EAAO5Q,EAAK3gB,CAAC,EACbwzJ,EAAY,KAAK,QAAQjiI,CAAI,UAEtB0/F,EAAWtwG,CAAI,EACxB6yI,EAAY,KAAK,QAAQ7yI,EAAK,MAAK,CAAE,UAC5ByvG,EAASzvG,CAAI,GACtB,IAAKX,KAAOW,EACV,GAAKq/G,EAAQ,KAAKr/G,EAAMX,CAAG,EAQ3B,GAPA0uC,EAAM/tC,EAAKX,CAAG,EACVixG,EAAWviE,CAAG,IAChBA,EAAMA,EAAI,MAAK,GAEZ0hE,EAAS1hE,CAAG,GAAOmvB,EAAQnvB,CAAG,IACjCA,EAAM,MAEJ,CAAC,KAAK,QAAQ,kBAAoB,KAAK,UAAU,eAAiB1uC,EAAI,QAAQ,KAAK,UAAU,aAAa,IAAM,EAClHwzI,EAAY,KAAK,UAAUxzI,EAAI,OAAO,KAAK,UAAU,cAAc,MAAM,EAAG0uC,CAAG,UACtE,CAAC,KAAK,QAAQ,oBAAsB,MAAM,QAAQA,CAAG,EAC9D,IAAKlvD,EAAI,EAAGi0J,EAAO/kG,EAAI,OAAQlvD,EAAIi0J,EAAMj0J,IACvC+xB,EAAOm9B,EAAIlvD,CAAC,EACZ4wJ,EAAY,CAAA,EACZA,EAAUpwI,CAAG,EAAIuR,EACjBiiI,EAAY,KAAK,QAAQpD,CAAS,OAE3BhgC,EAAS1hE,CAAG,GACrB8kG,EAAY,KAAK,QAAQxzI,CAAG,EAC5BwzI,EAAU,QAAQ9kG,CAAG,GAErB8kG,EAAY,KAAK,QAAQxzI,EAAK0uC,CAAG,OAG5B,KAAK,QAAQ,eAAiB1wD,IAAS,KAChDw1J,EAAY,KAAK,MAAK,EAElB,CAAC,KAAK,QAAQ,kBAAoB,KAAK,UAAU,gBAAkB7yI,EAAK,QAAQ,KAAK,UAAU,cAAc,IAAM,EACrH6yI,EAAY,KAAK,KAAKx1J,CAAI,EACjB,CAAC,KAAK,QAAQ,kBAAoB,KAAK,UAAU,iBAAmB2iB,EAAK,QAAQ,KAAK,UAAU,eAAe,IAAM,EAC9H6yI,EAAY,KAAK,MAAMx1J,CAAI,EAClB,CAAC,KAAK,QAAQ,kBAAoB,KAAK,UAAU,mBAAqB2iB,EAAK,QAAQ,KAAK,UAAU,iBAAiB,IAAM,EAClI6yI,EAAY,KAAK,QAAQx1J,CAAI,EACpB,CAAC,KAAK,QAAQ,kBAAoB,KAAK,UAAU,eAAiB2iB,EAAK,QAAQ,KAAK,UAAU,aAAa,IAAM,EAC1H6yI,EAAY,KAAK,IAAIx1J,CAAI,EAChB,CAAC,KAAK,QAAQ,kBAAoB,KAAK,UAAU,cAAgB2iB,EAAK,QAAQ,KAAK,UAAU,YAAY,IAAM,EACxH6yI,EAAY,KAAK,YAAY7yI,EAAK,OAAO,KAAK,UAAU,aAAa,MAAM,EAAG3iB,CAAI,EAElFw1J,EAAY,KAAK,KAAK7yI,EAAMkkB,EAAY7mC,CAAI,EAGhD,GAAIw1J,GAAa,KACf,MAAM,IAAI,MAAM,uCAAyC7yI,EAAO,KAAO,KAAK,WAAW,EAEzF,OAAO6yI,CACb,EAEI1C,EAAQ,UAAU,aAAe,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CAChE,IAAImmC,EAAO5lC,EAAG0nJ,EACd,GAAI,KAAK,OACP,MAAM,IAAI,MAAM,yCAA2C,KAAK,UAAUtlI,CAAI,CAAC,EAEjF,OAAApiB,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EACrC0nJ,EAAU,KAAK,OAAO,SAAS,OAAO1nJ,CAAC,EACvC4lC,EAAQ,KAAK,OAAO,QAAQxjB,EAAMkkB,EAAY7mC,CAAI,EAClD,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,SAAUioJ,CAAO,EACjD9hH,CACb,EAEI2sH,EAAQ,UAAU,YAAc,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CAC/D,IAAImmC,EAAO5lC,EAAG0nJ,EACd,GAAI,KAAK,OACP,MAAM,IAAI,MAAM,yCAA2C,KAAK,UAAUtlI,CAAI,CAAC,EAEjF,OAAApiB,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EACrC0nJ,EAAU,KAAK,OAAO,SAAS,OAAO1nJ,EAAI,CAAC,EAC3C4lC,EAAQ,KAAK,OAAO,QAAQxjB,EAAMkkB,EAAY7mC,CAAI,EAClD,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,SAAUioJ,CAAO,EACjD9hH,CACb,EAEI2sH,EAAQ,UAAU,OAAS,UAAW,CACpC,IAAIvyJ,EACJ,GAAI,KAAK,OACP,MAAM,IAAI,MAAM,mCAAqC,KAAK,UAAS,CAAE,EAEvE,OAAAA,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EACrC,CAAA,EAAG,OAAO,MAAM,KAAK,OAAO,SAAU,CAACA,EAAGA,EAAIA,EAAI,CAAC,EAAE,OAAc,CAAA,CAAE,CAAC,EAC/D,KAAK,MAClB,EAEIuyJ,EAAQ,UAAU,KAAO,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CACxD,IAAImmC,EAAOktH,EACX,OAAI1wI,GAAQ,OACVA,EAAO+iF,EAAS/iF,CAAI,GAEtBkkB,IAAeA,EAAa,IAC5BA,EAAa6+D,EAAS7+D,CAAU,EAC3BurF,EAASvrF,CAAU,IACtBwsH,EAAO,CAACxsH,EAAY7mC,CAAI,EAAGA,EAAOqzJ,EAAK,CAAC,EAAGxsH,EAAawsH,EAAK,CAAC,GAEhEltH,EAAQ,IAAI8sH,EAAW,KAAMtwI,EAAMkkB,CAAU,EACzC7mC,GAAQ,MACVmmC,EAAM,KAAKnmC,CAAI,EAEjB,KAAK,SAAS,KAAKmmC,CAAK,EACjBA,CACb,EAEI2sH,EAAQ,UAAU,KAAO,SAASl0J,EAAO,CACvC,IAAIunC,EACJ,OAAAA,EAAQ,IAAI+uH,EAAQ,KAAMt2J,CAAK,EAC/B,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEI2sH,EAAQ,UAAU,MAAQ,SAASl0J,EAAO,CACxC,IAAIunC,EACJ,OAAAA,EAAQ,IAAIstH,EAAS,KAAM70J,CAAK,EAChC,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEI2sH,EAAQ,UAAU,QAAU,SAASl0J,EAAO,CAC1C,IAAIunC,EACJ,OAAAA,EAAQ,IAAIwtH,EAAW,KAAM/0J,CAAK,EAClC,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEI2sH,EAAQ,UAAU,cAAgB,SAASl0J,EAAO,CAChD,IAAW2B,EAAG0nJ,EACd,OAAA1nJ,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EACrC0nJ,EAAU,KAAK,OAAO,SAAS,OAAO1nJ,CAAC,EAC/B,KAAK,OAAO,QAAQ3B,CAAK,EACjC,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,SAAUqpJ,CAAO,EACjD,IACb,EAEI6K,EAAQ,UAAU,aAAe,SAASl0J,EAAO,CAC/C,IAAW2B,EAAG0nJ,EACd,OAAA1nJ,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EACrC0nJ,EAAU,KAAK,OAAO,SAAS,OAAO1nJ,EAAI,CAAC,EACnC,KAAK,OAAO,QAAQ3B,CAAK,EACjC,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,SAAUqpJ,CAAO,EACjD,IACb,EAEI6K,EAAQ,UAAU,IAAM,SAASl0J,EAAO,CACtC,IAAIunC,EACJ,OAAAA,EAAQ,IAAI6uH,EAAO,KAAMp2J,CAAK,EAC9B,KAAK,SAAS,KAAKunC,CAAK,EACjB,IACb,EAEI2sH,EAAQ,UAAU,MAAQ,UAAW,CACnC,IAAI3sH,EACJ,OAAAA,EAAQ,IAAImvH,EAAS,IAAI,EACzB,KAAK,SAAS,KAAKnvH,CAAK,EACjBA,CACb,EAEI2sH,EAAQ,UAAU,YAAc,SAASlzI,EAAQhhB,EAAO,CACtD,IAAI+2J,EAAWC,EAAUC,EAAa7zJ,EAAGif,EAOzC,GANIrB,GAAU,OACZA,EAAS8lF,EAAS9lF,CAAM,GAEtBhhB,GAAS,OACXA,EAAQ8mG,EAAS9mG,CAAK,GAEpB,MAAM,QAAQghB,CAAM,EACtB,IAAK5d,EAAI,EAAGif,EAAMrB,EAAO,OAAQ5d,EAAIif,EAAKjf,IACxC2zJ,EAAY/1I,EAAO5d,CAAC,EACpB,KAAK,YAAY2zJ,CAAS,UAEnBvjC,EAASxyG,CAAM,EACxB,IAAK+1I,KAAa/1I,EACXoiH,EAAQ,KAAKpiH,EAAQ+1I,CAAS,IACnCC,EAAWh2I,EAAO+1I,CAAS,EAC3B,KAAK,YAAYA,EAAWC,CAAQ,QAGlC3iC,EAAWr0H,CAAK,IAClBA,EAAQA,EAAM,MAAK,GAErBi3J,EAAc,IAAIT,EAAyB,KAAMx1I,EAAQhhB,CAAK,EAC9D,KAAK,SAAS,KAAKi3J,CAAW,EAEhC,OAAO,IACb,EAEI/C,EAAQ,UAAU,kBAAoB,SAASlzI,EAAQhhB,EAAO,CAC5D,IAAW2B,EAAG0nJ,EACd,OAAA1nJ,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EACrC0nJ,EAAU,KAAK,OAAO,SAAS,OAAO1nJ,CAAC,EAC/B,KAAK,OAAO,YAAYqf,EAAQhhB,CAAK,EAC7C,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,SAAUqpJ,CAAO,EACjD,IACb,EAEI6K,EAAQ,UAAU,iBAAmB,SAASlzI,EAAQhhB,EAAO,CAC3D,IAAW2B,EAAG0nJ,EACd,OAAA1nJ,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EACrC0nJ,EAAU,KAAK,OAAO,SAAS,OAAO1nJ,EAAI,CAAC,EACnC,KAAK,OAAO,YAAYqf,EAAQhhB,CAAK,EAC7C,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,SAAUqpJ,CAAO,EACjD,IACb,EAEI6K,EAAQ,UAAU,YAAc,SAAS/tI,EAASu+D,EAAUwwE,EAAY,CACtE,IAAItN,EAAKsP,EACT,OAAAtP,EAAM,KAAK,SAAQ,EACnBsP,EAAS,IAAIjC,EAAerN,EAAKzhI,EAASu+D,EAAUwwE,CAAU,EAC1DtN,EAAI,SAAS,CAAC,YAAaqN,EAC7BrN,EAAI,SAAS,CAAC,EAAIsP,EAElBtP,EAAI,SAAS,QAAQsP,CAAM,EAEtBtP,EAAI,KAAI,GAAMA,CAC3B,EAEIsM,EAAQ,UAAU,QAAU,SAAS+B,EAAOC,EAAO,CACjD,IAAI3uH,EAAOqgH,EAAKS,EAAS1mJ,EAAGyB,EAAGR,EAAGyf,EAAKw0I,EAAMpC,EAAMqC,EAInD,IAHAlP,EAAM,KAAK,SAAQ,EACnBS,EAAU,IAAI2N,EAAWpO,EAAKqO,EAAOC,CAAK,EAC1CzB,EAAO7M,EAAI,SACNjmJ,EAAIyB,EAAI,EAAGif,EAAMoyI,EAAK,OAAQrxJ,EAAIif,EAAK1gB,EAAI,EAAEyB,EAEhD,GADAmkC,EAAQktH,EAAK9yJ,CAAC,EACV4lC,aAAiByuH,EACnB,OAAApO,EAAI,SAASjmJ,CAAC,EAAI0mJ,EACXA,EAIX,IADAyO,EAAOlP,EAAI,SACNjmJ,EAAIiB,EAAI,EAAGi0J,EAAOC,EAAK,OAAQl0J,EAAIi0J,EAAMl1J,EAAI,EAAEiB,EAElD,GADA2kC,EAAQuvH,EAAKn1J,CAAC,EACV4lC,EAAM,OACR,OAAAqgH,EAAI,SAAS,OAAOjmJ,EAAG,EAAG0mJ,CAAO,EAC1BA,EAGX,OAAAT,EAAI,SAAS,KAAKS,CAAO,EAClBA,CACb,EAEI6L,EAAQ,UAAU,GAAK,UAAW,CAChC,GAAI,KAAK,OACP,MAAM,IAAI,MAAM,gFAAgF,EAElG,OAAO,KAAK,MAClB,EAEIA,EAAQ,UAAU,KAAO,UAAW,CAClC,IAAIr6H,EAEJ,IADAA,EAAO,KACAA,GAAM,CACX,GAAIA,EAAK,WACP,OAAOA,EAAK,WACP,GAAIA,EAAK,OACd,OAAOA,EAEPA,EAAOA,EAAK,MAEtB,CACA,EAEIq6H,EAAQ,UAAU,SAAW,UAAW,CACtC,IAAIr6H,EAEJ,IADAA,EAAO,KACAA,GAAM,CACX,GAAIA,EAAK,WACP,OAAOA,EAEPA,EAAOA,EAAK,MAEtB,CACA,EAEIq6H,EAAQ,UAAU,IAAM,SAASxzJ,EAAS,CACxC,OAAO,KAAK,WAAW,IAAIA,CAAO,CACxC,EAEIwzJ,EAAQ,UAAU,KAAO,UAAW,CAClC,IAAIvyJ,EAEJ,IADAA,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EAC9BA,EAAI,GAAK,KAAK,OAAO,SAASA,EAAI,CAAC,EAAE,SAC1CA,EAAIA,EAAI,EAEV,GAAIA,EAAI,EACN,MAAM,IAAI,MAAM,8BAAgC,KAAK,UAAS,CAAE,EAElE,OAAO,KAAK,OAAO,SAASA,EAAI,CAAC,CACvC,EAEIuyJ,EAAQ,UAAU,KAAO,UAAW,CAClC,IAAIvyJ,EAEJ,IADAA,EAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,EAC9BA,EAAI,KAAK,OAAO,SAAS,OAAS,GAAK,KAAK,OAAO,SAASA,EAAI,CAAC,EAAE,SACxEA,EAAIA,EAAI,EAEV,GAAIA,IAAM,IAAMA,IAAM,KAAK,OAAO,SAAS,OAAS,EAClD,MAAM,IAAI,MAAM,6BAA+B,KAAK,UAAS,CAAE,EAEjE,OAAO,KAAK,OAAO,SAASA,EAAI,CAAC,CACvC,EAEIuyJ,EAAQ,UAAU,eAAiB,SAAStM,EAAK,CAC/C,IAAIuP,EACJ,OAAAA,EAAavP,EAAI,KAAI,EAAG,MAAK,EAC7BuP,EAAW,OAAS,KACpBA,EAAW,OAAS,GACpB,KAAK,SAAS,KAAKA,CAAU,EACtB,IACb,EAEIjD,EAAQ,UAAU,UAAY,SAASnwI,EAAM,CAC3C,IAAI0wI,EAAMqC,EAEV,OADA/yI,EAAOA,GAAQ,KAAK,KACfA,GAAQ,MAAS,GAAG0wI,EAAO,KAAK,SAAW,MAAOA,EAAK,MACnD,GACE1wI,GAAQ,KACV,YAAc,KAAK,OAAO,KAAO,KAC5B+yI,EAAO,KAAK,SAAW,MAAOA,EAAK,KAGxC,UAAY/yI,EAAO,eAAiB,KAAK,OAAO,KAAO,IAFvD,UAAYA,EAAO,GAIlC,EAEImwI,EAAQ,UAAU,IAAM,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CACvD,OAAO,KAAK,QAAQ2iB,EAAMkkB,EAAY7mC,CAAI,CAChD,EAEI8yJ,EAAQ,UAAU,IAAM,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CACvD,OAAO,KAAK,KAAK2iB,EAAMkkB,EAAY7mC,CAAI,CAC7C,EAEI8yJ,EAAQ,UAAU,IAAM,SAASl0J,EAAO,CACtC,OAAO,KAAK,KAAKA,CAAK,CAC5B,EAEIk0J,EAAQ,UAAU,IAAM,SAASl0J,EAAO,CACtC,OAAO,KAAK,MAAMA,CAAK,CAC7B,EAEIk0J,EAAQ,UAAU,IAAM,SAASl0J,EAAO,CACtC,OAAO,KAAK,QAAQA,CAAK,CAC/B,EAEIk0J,EAAQ,UAAU,IAAM,SAASlzI,EAAQhhB,EAAO,CAC9C,OAAO,KAAK,YAAYghB,EAAQhhB,CAAK,CAC3C,EAEIk0J,EAAQ,UAAU,IAAM,UAAW,CACjC,OAAO,KAAK,SAAQ,CAC1B,EAEIA,EAAQ,UAAU,IAAM,SAAS/tI,EAASu+D,EAAUwwE,EAAY,CAC9D,OAAO,KAAK,YAAY/uI,EAASu+D,EAAUwwE,CAAU,CAC3D,EAEIhB,EAAQ,UAAU,IAAM,SAAS+B,EAAOC,EAAO,CAC7C,OAAO,KAAK,QAAQD,EAAOC,CAAK,CACtC,EAEIhC,EAAQ,UAAU,EAAI,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CACrD,OAAO,KAAK,QAAQ2iB,EAAMkkB,EAAY7mC,CAAI,CAChD,EAEI8yJ,EAAQ,UAAU,EAAI,SAASnwI,EAAMkkB,EAAY7mC,EAAM,CACrD,OAAO,KAAK,KAAK2iB,EAAMkkB,EAAY7mC,CAAI,CAC7C,EAEI8yJ,EAAQ,UAAU,EAAI,SAASl0J,EAAO,CACpC,OAAO,KAAK,KAAKA,CAAK,CAC5B,EAEIk0J,EAAQ,UAAU,EAAI,SAASl0J,EAAO,CACpC,OAAO,KAAK,MAAMA,CAAK,CAC7B,EAEIk0J,EAAQ,UAAU,EAAI,SAASl0J,EAAO,CACpC,OAAO,KAAK,QAAQA,CAAK,CAC/B,EAEIk0J,EAAQ,UAAU,EAAI,SAASl0J,EAAO,CACpC,OAAO,KAAK,IAAIA,CAAK,CAC3B,EAEIk0J,EAAQ,UAAU,EAAI,SAASlzI,EAAQhhB,EAAO,CAC5C,OAAO,KAAK,YAAYghB,EAAQhhB,CAAK,CAC3C,EAEIk0J,EAAQ,UAAU,EAAI,UAAW,CAC/B,OAAO,KAAK,GAAE,CACpB,EAEIA,EAAQ,UAAU,iBAAmB,SAAStM,EAAK,CACjD,OAAO,KAAK,eAAeA,CAAG,CACpC,EAEWsM,CAEX,GAAG,CAEH,GAAG,KAAKpsI,EAAI,mFCjdX,UAAW,KAER40G,EAAO,SAAStwH,EAAItG,EAAG,CAAE,OAAO,UAAU,CAAE,OAAOsG,EAAG,MAAMtG,EAAI,SAAS,CAAE,CAAG,EAC9Es9H,EAAU,CAAA,EAAG,eAEfg0B,GAAA,SAAmC,UAAW,CAC5C,SAASC,EAAe32J,EAAS,CAC/B,KAAK,gBAAkBg8H,EAAK,KAAK,gBAAiB,IAAI,EACtD,IAAIt5G,EAAK4xE,EAAKh1F,EACdU,IAAYA,EAAU,IACtB,KAAK,iBAAmBA,EAAQ,iBAChCs0F,EAAMt0F,EAAQ,WAAa,CAAA,EAC3B,IAAK0iB,KAAO4xE,EACLouC,EAAQ,KAAKpuC,EAAK5xE,CAAG,IAC1BpjB,EAAQg1F,EAAI5xE,CAAG,EACf,KAAKA,CAAG,EAAIpjB,EAEpB,CAEI,OAAAq3J,EAAe,UAAU,QAAU,SAASvlG,EAAK,CAC/C,OAAAA,EAAM,GAAKA,GAAO,GACX,KAAK,gBAAgBA,CAAG,CACrC,EAEIulG,EAAe,UAAU,QAAU,SAASvlG,EAAK,CAC/C,OAAAA,EAAM,GAAKA,GAAO,GACX,KAAK,gBAAgB,KAAK,SAASA,CAAG,CAAC,CACpD,EAEIulG,EAAe,UAAU,MAAQ,SAASvlG,EAAK,CAC7C,OAAAA,EAAM,GAAKA,GAAO,GAClBA,EAAMA,EAAI,QAAQ,MAAO,iBAAiB,EACnC,KAAK,gBAAgBA,CAAG,CACrC,EAEIulG,EAAe,UAAU,QAAU,SAASvlG,EAAK,CAE/C,GADAA,EAAM,GAAKA,GAAO,GACdA,EAAI,MAAM,IAAI,EAChB,MAAM,IAAI,MAAM,6CAA+CA,CAAG,EAEpE,OAAO,KAAK,gBAAgBA,CAAG,CACrC,EAEIulG,EAAe,UAAU,IAAM,SAASvlG,EAAK,CAC3C,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,QAAU,SAASvlG,EAAK,CAC/C,OAAOA,EAAM,GAAKA,GAAO,EAC/B,EAEIulG,EAAe,UAAU,SAAW,SAASvlG,EAAK,CAChD,OAAAA,EAAM,GAAKA,GAAO,GACX,KAAK,UAAUA,CAAG,CAC/B,EAEIulG,EAAe,UAAU,UAAY,SAASvlG,EAAK,CACjD,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,SAAW,SAASvlG,EAAK,CAEhD,GADAA,EAAM,GAAKA,GAAO,GACdA,EAAI,MAAM,KAAK,EACjB,MAAM,IAAI,MAAM,yCAA2CA,CAAG,EAEhE,OAAOA,CACb,EAEIulG,EAAe,UAAU,WAAa,SAASvlG,EAAK,CAElD,GADAA,EAAM,GAAKA,GAAO,GACd,CAACA,EAAI,MAAM,WAAW,EACxB,MAAM,IAAI,MAAM,2BAA6BA,CAAG,EAElD,OAAOA,CACb,EAEIulG,EAAe,UAAU,YAAc,SAASvlG,EAAK,CAEnD,GADAA,EAAM,GAAKA,GAAO,GACd,CAACA,EAAI,MAAM,+BAA+B,EAC5C,MAAM,IAAI,MAAM,qBAAuBA,CAAG,EAE5C,OAAOA,CACb,EAEIulG,EAAe,UAAU,cAAgB,SAASvlG,EAAK,CACrD,OAAIA,EACK,MAEA,IAEf,EAEIulG,EAAe,UAAU,SAAW,SAASvlG,EAAK,CAChD,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,SAAW,SAASvlG,EAAK,CAChD,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,gBAAkB,SAASvlG,EAAK,CACvD,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,WAAa,SAASvlG,EAAK,CAClD,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,cAAgB,SAASvlG,EAAK,CACrD,OAAIA,GAAO,KACF,GAAKA,GAAO,GAEZA,CAEf,EAEIulG,EAAe,UAAU,eAAiB,SAASvlG,EAAK,CACtD,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,SAAW,SAASvlG,EAAK,CAChD,MAAO,GAAKA,GAAO,EACzB,EAEIulG,EAAe,UAAU,cAAgB,IAEzCA,EAAe,UAAU,aAAe,IAExCA,EAAe,UAAU,eAAiB,QAE1CA,EAAe,UAAU,gBAAkB,SAE3CA,EAAe,UAAU,kBAAoB,WAE7CA,EAAe,UAAU,cAAgB,OAEzCA,EAAe,UAAU,gBAAkB,SAAS53H,EAAK,CACvD,IAAIF,EAEJ,GADAA,EAAME,EAAI,MAAM,2FAA2F,EACvGF,EACF,MAAM,IAAI,MAAM,gCAAkCE,EAAM,aAAeF,EAAI,KAAK,EAElF,OAAOE,CACb,EAEI43H,EAAe,UAAU,SAAW,SAAS53H,EAAK,CAChD,IAAI63H,EACJ,OAAAA,EAAW,KAAK,iBAAmB,cAAgB,KAC5C73H,EAAI,QAAQ63H,EAAU,OAAO,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,MAAO,OAAO,CAC9G,EAEID,EAAe,UAAU,UAAY,SAAS53H,EAAK,CACjD,IAAI63H,EACJ,OAAAA,EAAW,KAAK,iBAAmB,cAAgB,KAC5C73H,EAAI,QAAQ63H,EAAU,OAAO,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,QAAQ,EAAE,QAAQ,MAAO,OAAO,EAAE,QAAQ,MAAO,OAAO,EAAE,QAAQ,MAAO,OAAO,CAChK,EAEWD,CAEX,GAAG,CAEH,GAAG,KAAKvvI,EAAI,mGCjKX,UAAW,KAERs7G,EAAU,CAAA,EAAG,eAEfm0B,GAAA,SAAkC,UAAW,CAC3C,SAASC,EAAc92J,EAAS,CAC9B,IAAI0iB,EAAK4xE,EAAKy/D,EAAMqC,EAAMW,EAAMC,EAAMC,EAAMC,EAAM53J,EAClDU,IAAYA,EAAU,IACtB,KAAK,OAASA,EAAQ,QAAU,GAChC,KAAK,YAAcs0F,EAAMt0F,EAAQ,aAAe,KAAOs0F,EAAM,GACzD,KAAK,QACP,KAAK,QAAUy/D,EAAO/zJ,EAAQ,SAAW,KAAO+zJ,EAAO,KACvD,KAAK,SAAWqC,EAAOp2J,EAAQ,UAAY,KAAOo2J,EAAO;AAAA,EACzD,KAAK,QAAUW,EAAO/2J,EAAQ,SAAW,KAAO+2J,EAAO,EACvD,KAAK,qBAAuBC,EAAOh3J,EAAQ,sBAAwB,KAAOg3J,EAAO,IAEjF,KAAK,OAAS,GACd,KAAK,QAAU,GACf,KAAK,OAAS,EACd,KAAK,oBAAsB,GAE7B,KAAK,kBAAoBC,EAAOj3J,EAAQ,mBAAqB,KAAOi3J,EAAO,GACvE,KAAK,mBAAqB,KAC5B,KAAK,iBAAmB,KAE1B,KAAK,eAAiB,KAAK,QAC3B,KAAK,cAAgB,KAAK,OAC1BC,EAAOl3J,EAAQ,QAAU,CAAA,EACzB,IAAK0iB,KAAOw0I,EACLx0B,EAAQ,KAAKw0B,EAAMx0I,CAAG,IAC3BpjB,EAAQ43J,EAAKx0I,CAAG,EAChB,KAAKA,CAAG,EAAIpjB,EAEpB,CAEI,OAAAw3J,EAAc,UAAU,IAAM,SAAS92J,EAAS,CAC9C,IAAI0iB,EAAK4xE,EAAKh1F,EACdU,IAAYA,EAAU,IAClB,WAAYA,IACd,KAAK,OAASA,EAAQ,QAEpB,eAAgBA,IAClB,KAAK,WAAaA,EAAQ,YAExB,KAAK,QACP,KAAK,OAAS,WAAYA,EAAUA,EAAQ,OAAS,KACrD,KAAK,QAAU,YAAaA,EAAUA,EAAQ,QAAU;AAAA,EACxD,KAAK,OAAS,WAAYA,EAAUA,EAAQ,OAAS,EACrD,KAAK,oBAAsB,wBAAyBA,EAAUA,EAAQ,oBAAsB,IAE5F,KAAK,OAAS,GACd,KAAK,QAAU,GACf,KAAK,OAAS,EACd,KAAK,oBAAsB,GAE7B,KAAK,iBAAmB,qBAAsBA,EAAUA,EAAQ,iBAAmB,GAC/E,KAAK,mBAAqB,KAC5B,KAAK,iBAAmB,KAE1B,KAAK,eAAiB,KAAK,QAC3B,KAAK,cAAgB,KAAK,OAC1Bs0F,EAAMt0F,EAAQ,QAAU,CAAA,EACxB,IAAK0iB,KAAO4xE,EACLouC,EAAQ,KAAKpuC,EAAK5xE,CAAG,IAC1BpjB,EAAQg1F,EAAI5xE,CAAG,EACf,KAAKA,CAAG,EAAIpjB,GAEd,OAAO,IACb,EAEIw3J,EAAc,UAAU,MAAQ,SAASpgI,EAAO,CAC9C,IAAIixG,EACJ,OAAI,KAAK,QACPA,GAAUjxG,GAAS,GAAK,KAAK,OAAS,EAClCixG,EAAS,EACJ,IAAI,MAAMA,CAAM,EAAE,KAAK,KAAK,MAAM,EAElC,IAGF,EAEf,EAEWmvB,CAEX,GAAG,CAEH,GAAG,KAAK1vI,EAAI,mECxFX,UAAW,CACV,IAAI+sI,EAAUE,EAAYK,EAAeQ,EAAeF,EAAcI,EAAgBb,EAAgBe,EAAYU,EAAUrC,EAAYmC,EAA0BJ,EAAyBE,EAASkB,EAClM7+B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf6xB,EAAiBluI,GAAA,EAEjBivI,EAAa7tI,GAAA,EAEb0sI,EAAWxsI,GAAA,EAEX0sI,EAAaxsI,GAAA,EAEb8rI,EAAaxX,GAAA,EAEbuZ,EAAStZ,GAAA,EAETwZ,EAAUvZ,GAAA,EAEVyZ,EAA2BxZ,GAAA,EAE3B0Z,EAAWzZ,GAAA,EAEXmY,EAAgBlY,GAAA,EAEhB0Y,EAAgBzY,GAAA,EAEhBuY,EAAetX,GAAA,EAEf0X,EAAiBzX,GAAA,EAEjBmZ,EAAgBlZ,GAAA,EAEhBuZ,YAAoC,SAASzD,EAAY,CACvDz7B,EAAOm/B,EAAiB1D,CAAU,EAElC,SAAS0D,EAAgBp3J,EAAS,CAChCo3J,EAAgB,UAAU,YAAY,KAAK,KAAMp3J,CAAO,CAC9D,CAEI,OAAAo3J,EAAgB,UAAU,SAAW,SAASlQ,EAAK,CACjD,IAAIrgH,EAAO5lC,EAAG0gB,EAAK5kB,EAAGu3F,EAItB,IAHA,KAAK,cAAgB,GACrBv3F,EAAI,GACJu3F,EAAM4yD,EAAI,SACLjmJ,EAAI,EAAG0gB,EAAM2yE,EAAI,OAAQrzF,EAAI0gB,EAAK1gB,IACrC4lC,EAAQytD,EAAIrzF,CAAC,EACT,EAAA4lC,aAAiBmvH,KAGrBj5J,IAAM,UAAW,CACf,OAAQ,GAAK,CACX,IAAK,EAAE8pC,aAAiB0tH,GACtB,OAAO,KAAK,YAAY1tH,CAAK,EAC/B,IAAK,EAAEA,aAAiByuH,GACtB,OAAO,KAAK,QAAQzuH,CAAK,EAC3B,IAAK,EAAEA,aAAiBwtH,GACtB,OAAO,KAAK,QAAQxtH,CAAK,EAC3B,IAAK,EAAEA,aAAiBivH,GACtB,OAAO,KAAK,sBAAsBjvH,CAAK,EACzC,QACE,OAAO,KAAK,QAAQA,EAAO,CAAC,CAC1C,CACA,GAAW,KAAK,IAAI,GAEd,OAAI,KAAK,QAAU9pC,EAAE,MAAM,CAAC,KAAK,QAAQ,MAAM,IAAM,KAAK,UACxDA,EAAIA,EAAE,MAAM,EAAG,CAAC,KAAK,QAAQ,MAAM,GAE9BA,CACb,EAEIq6J,EAAgB,UAAU,UAAY,SAASxD,EAAK,CAClD,MAAO,IAAMA,EAAI,KAAO,KAAOA,EAAI,MAAQ,GACjD,EAEIwD,EAAgB,UAAU,MAAQ,SAASj+H,EAAMzC,EAAO,CACtD,OAAO,KAAK,MAAMA,CAAK,EAAI,YAAcyC,EAAK,KAAO,MAAQ,KAAK,OACxE,EAEIi+H,EAAgB,UAAU,QAAU,SAASj+H,EAAMzC,EAAO,CACxD,OAAO,KAAK,MAAMA,CAAK,EAAI,QAAUyC,EAAK,KAAO,OAAS,KAAK,OACrE,EAEIi+H,EAAgB,UAAU,YAAc,SAASj+H,EAAMzC,EAAO,CAC5D,IAAI35B,EACJ,OAAAA,EAAI,KAAK,MAAM25B,CAAK,EACpB35B,GAAK,kBAAoBo8B,EAAK,QAAU,IACpCA,EAAK,UAAY,OACnBp8B,GAAK,cAAgBo8B,EAAK,SAAW,KAEnCA,EAAK,YAAc,OACrBp8B,GAAK,gBAAkBo8B,EAAK,WAAa,KAE3Cp8B,GAAK,KAAK,iBAAmB,KAC7BA,GAAK,KAAK,QACHA,CACb,EAEIq6J,EAAgB,UAAU,QAAU,SAASj+H,EAAMzC,EAAO,CACxD,IAAImQ,EAAO5lC,EAAG0gB,EAAK5kB,EAAGu3F,EAStB,GARA59D,IAAUA,EAAQ,GAClB35B,EAAI,KAAK,MAAM25B,CAAK,EACpB35B,GAAK,aAAeo8B,EAAK,KAAI,EAAG,KAC5BA,EAAK,OAASA,EAAK,MACrBp8B,GAAK,YAAco8B,EAAK,MAAQ,MAAQA,EAAK,MAAQ,IAC5CA,EAAK,QACdp8B,GAAK,YAAco8B,EAAK,MAAQ,KAE9BA,EAAK,SAAS,OAAS,EAAG,CAI5B,IAHAp8B,GAAK,KACLA,GAAK,KAAK,QACVu3F,EAAMn7D,EAAK,SACNl4B,EAAI,EAAG0gB,EAAM2yE,EAAI,OAAQrzF,EAAI0gB,EAAK1gB,IACrC4lC,EAAQytD,EAAIrzF,CAAC,EACblE,IAAM,UAAW,CACf,OAAQ,GAAK,CACX,IAAK,EAAE8pC,aAAiB6tH,GACtB,OAAO,KAAK,WAAW7tH,EAAOnQ,EAAQ,CAAC,EACzC,IAAK,EAAEmQ,aAAiBquH,GACtB,OAAO,KAAK,WAAWruH,EAAOnQ,EAAQ,CAAC,EACzC,IAAK,EAAEmQ,aAAiBmuH,GACtB,OAAO,KAAK,UAAUnuH,EAAOnQ,EAAQ,CAAC,EACxC,IAAK,EAAEmQ,aAAiBuuH,GACtB,OAAO,KAAK,YAAYvuH,EAAOnQ,EAAQ,CAAC,EAC1C,IAAK,EAAEmQ,aAAiBstH,GACtB,OAAO,KAAK,MAAMttH,EAAOnQ,EAAQ,CAAC,EACpC,IAAK,EAAEmQ,aAAiBwtH,GACtB,OAAO,KAAK,QAAQxtH,EAAOnQ,EAAQ,CAAC,EACtC,IAAK,EAAEmQ,aAAiBivH,GACtB,OAAO,KAAK,sBAAsBjvH,EAAOnQ,EAAQ,CAAC,EACpD,QACE,MAAM,IAAI,MAAM,0BAA4BmQ,EAAM,YAAY,IAAI,CAClF,CACA,GAAa,KAAK,IAAI,EAEd9pC,GAAK,GACb,CACM,OAAAA,GAAK,KAAK,iBAAmB,IAC7BA,GAAK,KAAK,QACHA,CACb,EAEIq6J,EAAgB,UAAU,QAAU,SAASj+H,EAAMzC,EAAO,CACxD,IAAIk9H,EAAK/sH,EAAO5lC,EAAGyB,EAAGif,EAAKw0I,EAAM9yI,EAAMtmB,EAAGu3F,EAAKy/D,EAAMqC,EAAMiB,EAAOC,EAClE5gI,IAAUA,EAAQ,GAClB4gI,EAAsB,GAClB,KAAK,eACP,KAAK,QAAU,GACf,KAAK,OAAS,KAEd,KAAK,QAAU,KAAK,eACpB,KAAK,OAAS,KAAK,eAErBD,EAAQ,KAAK,MAAM3gI,CAAK,EACxB35B,EAAI,GACJA,GAAKs6J,EAAQ,IAAMl+H,EAAK,KACxBm7D,EAAMn7D,EAAK,WACX,IAAK9V,KAAQixE,EACNouC,EAAQ,KAAKpuC,EAAKjxE,CAAI,IAC3BuwI,EAAMt/D,EAAIjxE,CAAI,EACdtmB,GAAK,KAAK,UAAU62J,CAAG,GAEzB,GAAIz6H,EAAK,SAAS,SAAW,GAAKA,EAAK,SAAS,MAAM,SAASp4B,EAAG,CAChE,OAAOA,EAAE,QAAU,EAC3B,CAAO,EACK,KAAK,WACPhE,GAAK,MAAQo8B,EAAK,KAAO,IAAM,KAAK,QAEpCp8B,GAAK,KAAK,iBAAmB,KAAO,KAAK,gBAElC,KAAK,QAAUo8B,EAAK,SAAS,SAAW,GAAMA,EAAK,SAAS,CAAC,EAAE,OAAS,KACjFp8B,GAAK,IACLA,GAAKo8B,EAAK,SAAS,CAAC,EAAE,MACtBp8B,GAAK,KAAOo8B,EAAK,KAAO,IAAM,KAAK,YAC9B,CACL,GAAI,KAAK,qBAEP,IADA46H,EAAO56H,EAAK,SACPl4B,EAAI,EAAG0gB,EAAMoyI,EAAK,OAAQ9yJ,EAAI0gB,EAAK1gB,IAEtC,GADA4lC,EAAQktH,EAAK9yJ,CAAC,EACV4lC,EAAM,OAAS,KAAM,CACvB,KAAK,gBACLywH,EAAsB,GACtB,KACd,EAUQ,IAPI,KAAK,gBACP,KAAK,QAAU,GACf,KAAK,OAAS,GACdD,EAAQ,KAAK,MAAM3gI,CAAK,GAE1B35B,GAAK,IAAM,KAAK,QAChBq5J,EAAOj9H,EAAK,SACPz2B,EAAI,EAAGyzJ,EAAOC,EAAK,OAAQ1zJ,EAAIyzJ,EAAMzzJ,IACxCmkC,EAAQuvH,EAAK1zJ,CAAC,EACd3F,IAAM,UAAW,CACf,OAAQ,GAAK,CACX,IAAK,EAAE8pC,aAAiBstH,GACtB,OAAO,KAAK,MAAMttH,EAAOnQ,EAAQ,CAAC,EACpC,IAAK,EAAEmQ,aAAiBwtH,GACtB,OAAO,KAAK,QAAQxtH,EAAOnQ,EAAQ,CAAC,EACtC,IAAK,EAAEmQ,aAAiB8sH,GACtB,OAAO,KAAK,QAAQ9sH,EAAOnQ,EAAQ,CAAC,EACtC,IAAK,EAAEmQ,aAAiB6uH,GACtB,OAAO,KAAK,IAAI7uH,EAAOnQ,EAAQ,CAAC,EAClC,IAAK,EAAEmQ,aAAiB+uH,GACtB,OAAO,KAAK,KAAK/uH,EAAOnQ,EAAQ,CAAC,EACnC,IAAK,EAAEmQ,aAAiBivH,GACtB,OAAO,KAAK,sBAAsBjvH,EAAOnQ,EAAQ,CAAC,EACpD,IAAK,EAAEmQ,aAAiBmvH,GACtB,MAAO,GACT,QACE,MAAM,IAAI,MAAM,0BAA4BnvH,EAAM,YAAY,IAAI,CAClF,CACA,GAAa,KAAK,IAAI,EAEVywH,GACF,KAAK,gBAEF,KAAK,gBACR,KAAK,QAAU,KAAK,eACpB,KAAK,OAAS,KAAK,eAErBv6J,GAAKs6J,EAAQ,KAAOl+H,EAAK,KAAO,IAAM,KAAK,OACnD,CACM,OAAOp8B,CACb,EAEIq6J,EAAgB,UAAU,sBAAwB,SAASj+H,EAAMzC,EAAO,CACtE,IAAI35B,EACJ,OAAAA,EAAI,KAAK,MAAM25B,CAAK,EAAI,KAAOyC,EAAK,OAChCA,EAAK,QACPp8B,GAAK,IAAMo8B,EAAK,OAElBp8B,GAAK,KAAK,iBAAmB,KAAO,KAAK,QAClCA,CACb,EAEIq6J,EAAgB,UAAU,IAAM,SAASj+H,EAAMzC,EAAO,CACpD,OAAO,KAAK,MAAMA,CAAK,EAAIyC,EAAK,MAAQ,KAAK,OACnD,EAEIi+H,EAAgB,UAAU,KAAO,SAASj+H,EAAMzC,EAAO,CACrD,OAAO,KAAK,MAAMA,CAAK,EAAIyC,EAAK,MAAQ,KAAK,OACnD,EAEIi+H,EAAgB,UAAU,WAAa,SAASj+H,EAAMzC,EAAO,CAC3D,IAAI35B,EACJ,OAAAA,EAAI,KAAK,MAAM25B,CAAK,EAAI,aAAeyC,EAAK,YAAc,IAAMA,EAAK,cAAgB,IAAMA,EAAK,cAC5FA,EAAK,mBAAqB,aAC5Bp8B,GAAK,IAAMo8B,EAAK,kBAEdA,EAAK,eACPp8B,GAAK,KAAOo8B,EAAK,aAAe,KAElCp8B,GAAK,KAAK,iBAAmB,IAAM,KAAK,QACjCA,CACb,EAEIq6J,EAAgB,UAAU,WAAa,SAASj+H,EAAMzC,EAAO,CAC3D,OAAO,KAAK,MAAMA,CAAK,EAAI,aAAeyC,EAAK,KAAO,IAAMA,EAAK,MAAQ,KAAK,iBAAmB,IAAM,KAAK,OAClH,EAEIi+H,EAAgB,UAAU,UAAY,SAASj+H,EAAMzC,EAAO,CAC1D,IAAI35B,EACJ,OAAAA,EAAI,KAAK,MAAM25B,CAAK,EAAI,WACpByC,EAAK,KACPp8B,GAAK,MAEPA,GAAK,IAAMo8B,EAAK,KACZA,EAAK,MACPp8B,GAAK,KAAOo8B,EAAK,MAAQ,KAErBA,EAAK,OAASA,EAAK,MACrBp8B,GAAK,YAAco8B,EAAK,MAAQ,MAAQA,EAAK,MAAQ,IAC5CA,EAAK,QACdp8B,GAAK,YAAco8B,EAAK,MAAQ,KAE9BA,EAAK,QACPp8B,GAAK,UAAYo8B,EAAK,QAG1Bp8B,GAAK,KAAK,iBAAmB,IAAM,KAAK,QACjCA,CACb,EAEIq6J,EAAgB,UAAU,YAAc,SAASj+H,EAAMzC,EAAO,CAC5D,IAAI35B,EACJ,OAAAA,EAAI,KAAK,MAAM25B,CAAK,EAAI,cAAgByC,EAAK,KACzCA,EAAK,OAASA,EAAK,MACrBp8B,GAAK,YAAco8B,EAAK,MAAQ,MAAQA,EAAK,MAAQ,IAC5CA,EAAK,MACdp8B,GAAK,YAAco8B,EAAK,MAAQ,IACvBA,EAAK,QACdp8B,GAAK,YAAco8B,EAAK,MAAQ,KAElCp8B,GAAK,KAAK,iBAAmB,IAAM,KAAK,QACjCA,CACb,EAEIq6J,EAAgB,UAAU,SAAW,SAASj+H,EAAMzC,EAAO,CACzD,IAAIk9H,EAAKvwI,EAAMtmB,EAAGu3F,EAElB,GADA59D,IAAUA,EAAQ,GACdyC,aAAgBw6H,EAAY,CAC9B52J,EAAI,KAAK,MAAM25B,CAAK,EAAI,IAAMyC,EAAK,KACnCm7D,EAAMn7D,EAAK,WACX,IAAK9V,KAAQixE,EACNouC,EAAQ,KAAKpuC,EAAKjxE,CAAI,IAC3BuwI,EAAMt/D,EAAIjxE,CAAI,EACdtmB,GAAK,KAAK,UAAU62J,CAAG,GAEzB,OAAA72J,IAAMo8B,EAAK,SAAW,IAAM,MAAQ,KAAK,QAClCp8B,CACf,KACQ,QAAAA,EAAI,KAAK,MAAM25B,CAAK,EAAI,aAAeyC,EAAK,aACxCA,EAAK,OAASA,EAAK,MACrBp8B,GAAK,YAAco8B,EAAK,MAAQ,MAAQA,EAAK,MAAQ,IAC5CA,EAAK,QACdp8B,GAAK,YAAco8B,EAAK,MAAQ,KAElCp8B,IAAMo8B,EAAK,SAAW,KAAO,KAAO,KAAK,QAClCp8B,CAEf,EAEIq6J,EAAgB,UAAU,UAAY,SAASj+H,EAAMzC,EAAO,CAE1D,OADAA,IAAUA,EAAQ,GACV,GAAK,CACX,IAAK,EAAEyC,aAAgBw6H,GACrB,OAAO,KAAK,MAAMj9H,CAAK,EAAI,KAAOyC,EAAK,KAAO,IAAM,KAAK,QAC3D,IAAK,EAAEA,aAAgBm8H,GACrB,OAAO,KAAK,MAAM5+H,CAAK,EAAI,KAAO,KAAK,OACjD,CACA,EAEW0gI,CAEX,GAAKN,CAAa,CAElB,GAAG,KAAK1vI,EAAI,mECnVX,UAAW,CACV,IAAiBosI,EAAS4D,EAAiBT,EAAgBxD,EACzDl7B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEfywB,EAAgB9sI,GAAA,EAAqB,cAErCmtI,EAAU/rI,GAAA,EAEVkvI,EAAiBhvI,GAAA,EAEjByvI,EAAkBvvI,GAAA,EAElB0vI,YAAgC,SAAS7D,EAAY,CACnDz7B,EAAOu/B,EAAa9D,CAAU,EAE9B,SAAS8D,EAAYx3J,EAAS,CAC5Bw3J,EAAY,UAAU,YAAY,KAAK,KAAM,IAAI,EACjD,KAAK,KAAO,OACZx3J,IAAYA,EAAU,IACjBA,EAAQ,SACXA,EAAQ,OAAS,IAAIo3J,GAEvB,KAAK,QAAUp3J,EACf,KAAK,UAAY,IAAI22J,EAAe32J,CAAO,EAC3C,KAAK,WAAa,EACxB,CAEI,OAAAw3J,EAAY,UAAU,IAAM,SAASn2C,EAAQ,CAC3C,IAAIo2C,EACJ,OAAKp2C,EAEM8xC,EAAc9xC,CAAM,IAC7Bo2C,EAAgBp2C,EAChBA,EAAS,KAAK,QAAQ,OAAO,IAAIo2C,CAAa,GAH9Cp2C,EAAS,KAAK,QAAQ,OAKjBA,EAAO,SAAS,IAAI,CACjC,EAEIm2C,EAAY,UAAU,SAAW,SAASx3J,EAAS,CACjD,OAAO,KAAK,QAAQ,OAAO,IAAIA,CAAO,EAAE,SAAS,IAAI,CAC3D,EAEWw3J,CAEX,GAAKhE,CAAO,CAEZ,GAAG,KAAKpsI,EAAI,mFC/CX,UAAW,KACNmsI,EAAcY,EAAUE,EAAYK,EAAeQ,EAAeF,EAAcI,EAAgBb,EAAgBe,EAA2B3B,EAAYmC,EAA0BJ,EAAQ0B,EAAiBT,EAAgBf,EAASxvD,EAAUutB,EAAYb,EAAUqgC,EAAe7+D,EACpRouC,EAAU,CAAA,EAAG,eAEfpuC,EAAMjuE,GAAA,EAAsBysG,EAAWx+B,EAAI,SAAUq/B,EAAar/B,EAAI,WAAY6+D,EAAgB7+D,EAAI,cAAe8R,EAAW9R,EAAI,SAEpIq/D,EAAalsI,GAAA,EAEb0sI,EAAWxsI,GAAA,EAEX0sI,EAAaxsI,GAAA,EAEb6tI,EAASvZ,GAAA,EAETyZ,EAAUxZ,GAAA,EAEV0Z,EAA2BzZ,GAAA,EAE3BkY,EAAiBjY,GAAA,EAEjBgZ,EAAa/Y,GAAA,EAEbmY,EAAgBlY,GAAA,EAEhBwY,EAAevY,GAAA,EAEfyY,EAAgBxX,GAAA,EAEhB0X,EAAiBzX,GAAA,EAEjB4V,EAAe3V,GAAA,EAEf+Y,EAAiB9Y,GAAA,EAEjBuZ,EAAkBtZ,GAAA,EAElB4Z,GAAA,SAAkC,UAAW,CAC3C,SAASC,EAAc33J,EAAS43J,EAAQC,EAAO,CAC7C,IAAIJ,EACJ,KAAK,KAAO,OACZz3J,IAAYA,EAAU,IACjBA,EAAQ,OAEFmzJ,EAAcnzJ,EAAQ,MAAM,IACrCy3J,EAAgBz3J,EAAQ,OACxBA,EAAQ,OAAS,IAAIo3J,EAAgBK,CAAa,GAHlDz3J,EAAQ,OAAS,IAAIo3J,EAAgBp3J,CAAO,EAK9C,KAAK,QAAUA,EACf,KAAK,OAASA,EAAQ,OACtB,KAAK,UAAY,IAAI22J,EAAe32J,CAAO,EAC3C,KAAK,eAAiB43J,GAAU,UAAW,CAAA,EAC3C,KAAK,cAAgBC,GAAS,UAAW,CAAA,EACzC,KAAK,YAAc,KACnB,KAAK,aAAe,GACpB,KAAK,SAAW,CAAA,EAChB,KAAK,gBAAkB,GACvB,KAAK,kBAAoB,GACzB,KAAK,KAAO,IAClB,CAEI,OAAAF,EAAc,UAAU,KAAO,SAASt0I,EAAMkkB,EAAY7mC,EAAM,CAC9D,IAAIqzJ,EAAMqC,EACV,GAAI/yI,GAAQ,KACV,MAAM,IAAI,MAAM,oBAAoB,EAEtC,GAAI,KAAK,MAAQ,KAAK,eAAiB,GACrC,MAAM,IAAI,MAAM,yCAA2C,KAAK,UAAUA,CAAI,CAAC,EAEjF,YAAK,YAAW,EAChBA,EAAO+iF,EAAS/iF,CAAI,EAChBkkB,IAAe,MAAS7mC,GAAQ,OAClCqzJ,EAAO,CAAC,CAAA,EAAI,IAAI,EAAGxsH,EAAawsH,EAAK,CAAC,EAAGrzJ,EAAOqzJ,EAAK,CAAC,GAEpDxsH,GAAc,OAChBA,EAAa,CAAA,GAEfA,EAAa6+D,EAAS7+D,CAAU,EAC3BurF,EAASvrF,CAAU,IACtB6uH,EAAO,CAAC7uH,EAAY7mC,CAAI,EAAGA,EAAO01J,EAAK,CAAC,EAAG7uH,EAAa6uH,EAAK,CAAC,GAEhE,KAAK,YAAc,IAAIzC,EAAW,KAAMtwI,EAAMkkB,CAAU,EACxD,KAAK,YAAY,SAAW,GAC5B,KAAK,eACL,KAAK,SAAS,KAAK,YAAY,EAAI,KAAK,YACpC7mC,GAAQ,MACV,KAAK,KAAKA,CAAI,EAET,IACb,EAEIi3J,EAAc,UAAU,QAAU,SAASt0I,EAAMkkB,EAAY7mC,EAAM,CACjE,OAAI,KAAK,aAAe,KAAK,uBAAuB40J,EAC3C,KAAK,WAAW,MAAM,KAAM,SAAS,EAErC,KAAK,KAAKjyI,EAAMkkB,EAAY7mC,CAAI,CAE/C,EAEIi3J,EAAc,UAAU,UAAY,SAASt0I,EAAM/jB,EAAO,CACxD,IAAIu0J,EAASI,EACb,GAAI,CAAC,KAAK,aAAe,KAAK,YAAY,SACxC,MAAM,IAAI,MAAM,4EAA8E,KAAK,UAAU5wI,CAAI,CAAC,EAKpH,GAHIA,GAAQ,OACVA,EAAO+iF,EAAS/iF,CAAI,GAElByvG,EAASzvG,CAAI,EACf,IAAKwwI,KAAWxwI,EACTq/G,EAAQ,KAAKr/G,EAAMwwI,CAAO,IAC/BI,EAAW5wI,EAAKwwI,CAAO,EACvB,KAAK,UAAUA,EAASI,CAAQ,QAG9BtgC,EAAWr0H,CAAK,IAClBA,EAAQA,EAAM,MAAK,IAEjB,CAAC,KAAK,QAAQ,oBAAuBA,GAAS,QAChD,KAAK,YAAY,WAAW+jB,CAAI,EAAI,IAAIkwI,EAAa,KAAMlwI,EAAM/jB,CAAK,GAG1E,OAAO,IACb,EAEIq4J,EAAc,UAAU,KAAO,SAASr4J,EAAO,CAC7C,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAIy8H,EAAQ,KAAMt2J,CAAK,EAC9B,KAAK,OAAO,KAAK,OAAO,KAAK65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EACzE,IACb,EAEIw+H,EAAc,UAAU,MAAQ,SAASr4J,EAAO,CAC9C,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAIg7H,EAAS,KAAM70J,CAAK,EAC/B,KAAK,OAAO,KAAK,OAAO,MAAM65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAC1E,IACb,EAEIw+H,EAAc,UAAU,QAAU,SAASr4J,EAAO,CAChD,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAIk7H,EAAW,KAAM/0J,CAAK,EACjC,KAAK,OAAO,KAAK,OAAO,QAAQ65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAC5E,IACb,EAEIw+H,EAAc,UAAU,IAAM,SAASr4J,EAAO,CAC5C,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAIu8H,EAAO,KAAMp2J,CAAK,EAC7B,KAAK,OAAO,KAAK,OAAO,IAAI65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EACxE,IACb,EAEIw+H,EAAc,UAAU,YAAc,SAASr3I,EAAQhhB,EAAO,CAC5D,IAAI2B,EAAGo1J,EAAWC,EAAU30I,EAAKwX,EAQjC,GAPA,KAAK,YAAW,EACZ7Y,GAAU,OACZA,EAAS8lF,EAAS9lF,CAAM,GAEtBhhB,GAAS,OACXA,EAAQ8mG,EAAS9mG,CAAK,GAEpB,MAAM,QAAQghB,CAAM,EACtB,IAAKrf,EAAI,EAAG0gB,EAAMrB,EAAO,OAAQrf,EAAI0gB,EAAK1gB,IACxCo1J,EAAY/1I,EAAOrf,CAAC,EACpB,KAAK,YAAYo1J,CAAS,UAEnBvjC,EAASxyG,CAAM,EACxB,IAAK+1I,KAAa/1I,EACXoiH,EAAQ,KAAKpiH,EAAQ+1I,CAAS,IACnCC,EAAWh2I,EAAO+1I,CAAS,EAC3B,KAAK,YAAYA,EAAWC,CAAQ,QAGlC3iC,EAAWr0H,CAAK,IAClBA,EAAQA,EAAM,MAAK,GAErB65B,EAAO,IAAI28H,EAAyB,KAAMx1I,EAAQhhB,CAAK,EACvD,KAAK,OAAO,KAAK,OAAO,sBAAsB65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAEnG,OAAO,IACb,EAEIw+H,EAAc,UAAU,YAAc,SAASlyI,EAASu+D,EAAUwwE,EAAY,CAC5E,IAAIr7H,EAEJ,GADA,KAAK,YAAW,EACZ,KAAK,gBACP,MAAM,IAAI,MAAM,uCAAuC,EAEzD,OAAAA,EAAO,IAAIo7H,EAAe,KAAM9uI,EAASu+D,EAAUwwE,CAAU,EAC7D,KAAK,OAAO,KAAK,OAAO,YAAYr7H,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAChF,IACb,EAEIw+H,EAAc,UAAU,QAAU,SAAS9vH,EAAM0tH,EAAOC,EAAO,CAE7D,GADA,KAAK,YAAW,EACZ3tH,GAAQ,KACV,MAAM,IAAI,MAAM,yBAAyB,EAE3C,GAAI,KAAK,KACP,MAAM,IAAI,MAAM,uCAAuC,EAEzD,YAAK,YAAc,IAAIytH,EAAW,KAAMC,EAAOC,CAAK,EACpD,KAAK,YAAY,aAAe3tH,EAChC,KAAK,YAAY,SAAW,GAC5B,KAAK,eACL,KAAK,SAAS,KAAK,YAAY,EAAI,KAAK,YACjC,IACb,EAEI8vH,EAAc,UAAU,WAAa,SAASt0I,EAAM/jB,EAAO,CACzD,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAI+7H,EAAc,KAAM7xI,EAAM/jB,CAAK,EAC1C,KAAK,OAAO,KAAK,OAAO,WAAW65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAC/E,IACb,EAEIw+H,EAAc,UAAU,QAAU,SAAShD,EAAaC,EAAeC,EAAeC,EAAkB7jG,EAAc,CACpH,IAAI93B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAIu7H,EAAc,KAAMC,EAAaC,EAAeC,EAAeC,EAAkB7jG,CAAY,EACxG,KAAK,OAAO,KAAK,OAAO,WAAW93B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAC/E,IACb,EAEIw+H,EAAc,UAAU,OAAS,SAASt0I,EAAM/jB,EAAO,CACrD,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAI67H,EAAa,KAAM,GAAO3xI,EAAM/jB,CAAK,EAChD,KAAK,OAAO,KAAK,OAAO,UAAU65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAC9E,IACb,EAEIw+H,EAAc,UAAU,QAAU,SAASt0I,EAAM/jB,EAAO,CACtD,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAI67H,EAAa,KAAM,GAAM3xI,EAAM/jB,CAAK,EAC/C,KAAK,OAAO,KAAK,OAAO,UAAU65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAC9E,IACb,EAEIw+H,EAAc,UAAU,SAAW,SAASt0I,EAAM/jB,EAAO,CACvD,IAAI65B,EACJ,YAAK,YAAW,EAChBA,EAAO,IAAIi8H,EAAe,KAAM/xI,EAAM/jB,CAAK,EAC3C,KAAK,OAAO,KAAK,OAAO,YAAY65B,EAAM,KAAK,aAAe,CAAC,EAAG,KAAK,aAAe,CAAC,EAChF,IACb,EAEIw+H,EAAc,UAAU,GAAK,UAAW,CACtC,GAAI,KAAK,aAAe,EACtB,MAAM,IAAI,MAAM,kCAAkC,EAEpD,OAAI,KAAK,aACH,KAAK,YAAY,SACnB,KAAK,UAAU,KAAK,WAAW,EAE/B,KAAK,SAAS,KAAK,WAAW,EAEhC,KAAK,YAAc,MAEnB,KAAK,UAAU,KAAK,SAAS,KAAK,YAAY,CAAC,EAEjD,OAAO,KAAK,SAAS,KAAK,YAAY,EACtC,KAAK,eACE,IACb,EAEIA,EAAc,UAAU,IAAM,UAAW,CACvC,KAAO,KAAK,cAAgB,GAC1B,KAAK,GAAE,EAET,OAAO,KAAK,MAAK,CACvB,EAEIA,EAAc,UAAU,YAAc,UAAW,CAC/C,GAAI,KAAK,YACP,YAAK,YAAY,SAAW,GACrB,KAAK,SAAS,KAAK,WAAW,CAE7C,EAEIA,EAAc,UAAU,SAAW,SAASx+H,EAAM,CAChD,GAAI,CAACA,EAAK,OACR,MAAI,CAAC,KAAK,MAAQ,KAAK,eAAiB,GAAKA,aAAgBw6H,IAC3D,KAAK,KAAOx6H,GAEd,KAAK,OAAO,KAAK,OAAO,SAASA,EAAM,KAAK,YAAY,EAAG,KAAK,YAAY,EACrEA,EAAK,OAAS,EAE7B,EAEIw+H,EAAc,UAAU,UAAY,SAASx+H,EAAM,CACjD,GAAI,CAACA,EAAK,SACR,YAAK,OAAO,KAAK,OAAO,UAAUA,EAAM,KAAK,YAAY,EAAG,KAAK,YAAY,EACtEA,EAAK,SAAW,EAE/B,EAEIw+H,EAAc,UAAU,OAAS,SAASl5J,EAAOi4B,EAAO,CACtD,YAAK,gBAAkB,GAChB,KAAK,eAAej4B,EAAOi4B,EAAQ,CAAC,CACjD,EAEIihI,EAAc,UAAU,MAAQ,UAAW,CACzC,YAAK,kBAAoB,GAClB,KAAK,cAAa,CAC/B,EAEIA,EAAc,UAAU,UAAY,SAASt0I,EAAM,CACjD,OAAIA,GAAQ,KACH,GAEA,UAAYA,EAAO,GAElC,EAEIs0I,EAAc,UAAU,IAAM,UAAW,CACvC,OAAO,KAAK,QAAQ,MAAM,KAAM,SAAS,CAC/C,EAEIA,EAAc,UAAU,IAAM,SAASt0I,EAAMkkB,EAAY7mC,EAAM,CAC7D,OAAO,KAAK,KAAK2iB,EAAMkkB,EAAY7mC,CAAI,CAC7C,EAEIi3J,EAAc,UAAU,IAAM,SAASr4J,EAAO,CAC5C,OAAO,KAAK,KAAKA,CAAK,CAC5B,EAEIq4J,EAAc,UAAU,IAAM,SAASr4J,EAAO,CAC5C,OAAO,KAAK,MAAMA,CAAK,CAC7B,EAEIq4J,EAAc,UAAU,IAAM,SAASr4J,EAAO,CAC5C,OAAO,KAAK,QAAQA,CAAK,CAC/B,EAEIq4J,EAAc,UAAU,IAAM,SAASr3I,EAAQhhB,EAAO,CACpD,OAAO,KAAK,YAAYghB,EAAQhhB,CAAK,CAC3C,EAEIq4J,EAAc,UAAU,IAAM,SAASlyI,EAASu+D,EAAUwwE,EAAY,CACpE,OAAO,KAAK,YAAY/uI,EAASu+D,EAAUwwE,CAAU,CAC3D,EAEImD,EAAc,UAAU,IAAM,SAAS9vH,EAAM0tH,EAAOC,EAAO,CACzD,OAAO,KAAK,QAAQ3tH,EAAM0tH,EAAOC,CAAK,CAC5C,EAEImC,EAAc,UAAU,EAAI,SAASt0I,EAAMkkB,EAAY7mC,EAAM,CAC3D,OAAO,KAAK,QAAQ2iB,EAAMkkB,EAAY7mC,CAAI,CAChD,EAEIi3J,EAAc,UAAU,EAAI,SAASt0I,EAAMkkB,EAAY7mC,EAAM,CAC3D,OAAO,KAAK,KAAK2iB,EAAMkkB,EAAY7mC,CAAI,CAC7C,EAEIi3J,EAAc,UAAU,EAAI,SAASr4J,EAAO,CAC1C,OAAO,KAAK,KAAKA,CAAK,CAC5B,EAEIq4J,EAAc,UAAU,EAAI,SAASr4J,EAAO,CAC1C,OAAO,KAAK,MAAMA,CAAK,CAC7B,EAEIq4J,EAAc,UAAU,EAAI,SAASr4J,EAAO,CAC1C,OAAO,KAAK,QAAQA,CAAK,CAC/B,EAEIq4J,EAAc,UAAU,EAAI,SAASr4J,EAAO,CAC1C,OAAO,KAAK,IAAIA,CAAK,CAC3B,EAEIq4J,EAAc,UAAU,EAAI,SAASr3I,EAAQhhB,EAAO,CAClD,OAAO,KAAK,YAAYghB,EAAQhhB,CAAK,CAC3C,EAEIq4J,EAAc,UAAU,IAAM,UAAW,CACvC,OAAI,KAAK,aAAe,KAAK,uBAAuBrC,EAC3C,KAAK,QAAQ,MAAM,KAAM,SAAS,EAElC,KAAK,UAAU,MAAM,KAAM,SAAS,CAEnD,EAEIqC,EAAc,UAAU,EAAI,UAAW,CACrC,OAAI,KAAK,aAAe,KAAK,uBAAuBrC,EAC3C,KAAK,QAAQ,MAAM,KAAM,SAAS,EAElC,KAAK,UAAU,MAAM,KAAM,SAAS,CAEnD,EAEIqC,EAAc,UAAU,IAAM,SAASt0I,EAAM/jB,EAAO,CAClD,OAAO,KAAK,OAAO+jB,EAAM/jB,CAAK,CACpC,EAEIq4J,EAAc,UAAU,KAAO,SAASt0I,EAAM/jB,EAAO,CACnD,OAAO,KAAK,QAAQ+jB,EAAM/jB,CAAK,CACrC,EAEIq4J,EAAc,UAAU,IAAM,SAASt0I,EAAM/jB,EAAO,CAClD,OAAO,KAAK,SAAS+jB,EAAM/jB,CAAK,CACtC,EAEWq4J,CAEX,GAAG,CAEH,GAAG,KAAKvwI,EAAI,mFC5ZX,UAAW,CACV,IAAI+sI,EAAUE,EAAYK,EAAeQ,EAAeF,EAAcI,EAAgBb,EAAgBe,EAAYU,EAAUrC,EAAYmC,EAA0BJ,EAAyBE,EAASkB,EAClM7+B,EAAS,SAASpxF,EAAOwB,EAAQ,CAAE,QAAS3lB,KAAO2lB,EAAcq6F,EAAQ,KAAKr6F,EAAQ3lB,CAAG,IAAGmkB,EAAMnkB,CAAG,EAAI2lB,EAAO3lB,CAAG,GAAK,SAASk1G,GAAO,CAAE,KAAK,YAAc/wF,CAAM,CAAG,OAAA+wF,EAAK,UAAYvvF,EAAO,UAAWxB,EAAM,UAAY,IAAI+wF,EAAQ/wF,EAAM,UAAYwB,EAAO,UAAkBxB,CAAM,EACxR67F,EAAU,CAAA,EAAG,eAEf6xB,EAAiBluI,GAAA,EAEjBivI,EAAa7tI,GAAA,EAEb0sI,EAAWxsI,GAAA,EAEX0sI,EAAaxsI,GAAA,EAEb8rI,EAAaxX,GAAA,EAEbuZ,EAAStZ,GAAA,EAETwZ,EAAUvZ,GAAA,EAEVyZ,EAA2BxZ,GAAA,EAE3B0Z,EAAWzZ,GAAA,EAEXmY,EAAgBlY,GAAA,EAEhB0Y,EAAgBzY,GAAA,EAEhBuY,EAAetX,GAAA,EAEf0X,EAAiBzX,GAAA,EAEjBmZ,EAAgBlZ,GAAA,EAEhBka,YAAoC,SAASpE,EAAY,CACvDz7B,EAAO8/B,EAAiBrE,CAAU,EAElC,SAASqE,EAAgBjsI,EAAQ9rB,EAAS,CACxC+3J,EAAgB,UAAU,YAAY,KAAK,KAAM/3J,CAAO,EACxD,KAAK,OAAS8rB,CACpB,CAEI,OAAAisI,EAAgB,UAAU,SAAW,SAAS7Q,EAAK,CACjD,IAAIrgH,EAAO5lC,EAAGyB,EAAGif,EAAKw0I,EAAM7hE,EAAKy/D,EAAMpnI,EAEvC,IADA2nE,EAAM4yD,EAAI,SACLjmJ,EAAI,EAAG0gB,EAAM2yE,EAAI,OAAQrzF,EAAI0gB,EAAK1gB,IACrC4lC,EAAQytD,EAAIrzF,CAAC,EACb4lC,EAAM,eAAiB,GAKzB,IAHAqgH,EAAI,SAASA,EAAI,SAAS,OAAS,CAAC,EAAE,eAAiB,GACvD6M,EAAO7M,EAAI,SACXv6H,EAAU,CAAA,EACLjqB,EAAI,EAAGyzJ,EAAOpC,EAAK,OAAQrxJ,EAAIyzJ,EAAMzzJ,IAExC,GADAmkC,EAAQktH,EAAKrxJ,CAAC,EACV,EAAAmkC,aAAiBmvH,GAGrB,OAAQ,GAAK,CACX,IAAK,EAAEnvH,aAAiB0tH,GACtB5nI,EAAQ,KAAK,KAAK,YAAYka,CAAK,CAAC,EACpC,MACF,IAAK,EAAEA,aAAiByuH,GACtB3oI,EAAQ,KAAK,KAAK,QAAQka,CAAK,CAAC,EAChC,MACF,IAAK,EAAEA,aAAiBwtH,GACtB1nI,EAAQ,KAAK,KAAK,QAAQka,CAAK,CAAC,EAChC,MACF,IAAK,EAAEA,aAAiBivH,GACtBnpI,EAAQ,KAAK,KAAK,sBAAsBka,CAAK,CAAC,EAC9C,MACF,QACEla,EAAQ,KAAK,KAAK,QAAQka,CAAK,CAAC,CAC5C,CAEM,OAAOla,CACb,EAEIorI,EAAgB,UAAU,UAAY,SAASnE,EAAK,CAClD,OAAO,KAAK,OAAO,MAAM,IAAMA,EAAI,KAAO,KAAOA,EAAI,MAAQ,GAAG,CACtE,EAEImE,EAAgB,UAAU,MAAQ,SAAS5+H,EAAMzC,EAAO,CACtD,OAAO,KAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAI,YAAcyC,EAAK,KAAO,MAAQ,KAAK,QAAQA,CAAI,CAAC,CACvG,EAEI4+H,EAAgB,UAAU,QAAU,SAAS5+H,EAAMzC,EAAO,CACxD,OAAO,KAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAI,QAAUyC,EAAK,KAAO,OAAS,KAAK,QAAQA,CAAI,CAAC,CACpG,EAEI4+H,EAAgB,UAAU,YAAc,SAAS5+H,EAAMzC,EAAO,CAC5D,YAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,CAAC,EACnC,KAAK,OAAO,MAAM,kBAAoByC,EAAK,QAAU,GAAG,EACpDA,EAAK,UAAY,MACnB,KAAK,OAAO,MAAM,cAAgBA,EAAK,SAAW,GAAG,EAEnDA,EAAK,YAAc,MACrB,KAAK,OAAO,MAAM,gBAAkBA,EAAK,WAAa,GAAG,EAE3D,KAAK,OAAO,MAAM,KAAK,iBAAmB,IAAI,EACvC,KAAK,OAAO,MAAM,KAAK,QAAQA,CAAI,CAAC,CACjD,EAEI4+H,EAAgB,UAAU,QAAU,SAAS5+H,EAAMzC,EAAO,CACxD,IAAImQ,EAAO5lC,EAAG0gB,EAAK2yE,EASnB,GARA59D,IAAUA,EAAQ,GAClB,KAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,CAAC,EACnC,KAAK,OAAO,MAAM,aAAeyC,EAAK,KAAI,EAAG,IAAI,EAC7CA,EAAK,OAASA,EAAK,MACrB,KAAK,OAAO,MAAM,YAAcA,EAAK,MAAQ,MAAQA,EAAK,MAAQ,GAAG,EAC5DA,EAAK,OACd,KAAK,OAAO,MAAM,YAAcA,EAAK,MAAQ,GAAG,EAE9CA,EAAK,SAAS,OAAS,EAAG,CAI5B,IAHA,KAAK,OAAO,MAAM,IAAI,EACtB,KAAK,OAAO,MAAM,KAAK,QAAQA,CAAI,CAAC,EACpCm7D,EAAMn7D,EAAK,SACNl4B,EAAI,EAAG0gB,EAAM2yE,EAAI,OAAQrzF,EAAI0gB,EAAK1gB,IAErC,OADA4lC,EAAQytD,EAAIrzF,CAAC,EACL,GAAK,CACX,IAAK,EAAE4lC,aAAiB6tH,GACtB,KAAK,WAAW7tH,EAAOnQ,EAAQ,CAAC,EAChC,MACF,IAAK,EAAEmQ,aAAiBquH,GACtB,KAAK,WAAWruH,EAAOnQ,EAAQ,CAAC,EAChC,MACF,IAAK,EAAEmQ,aAAiBmuH,GACtB,KAAK,UAAUnuH,EAAOnQ,EAAQ,CAAC,EAC/B,MACF,IAAK,EAAEmQ,aAAiBuuH,GACtB,KAAK,YAAYvuH,EAAOnQ,EAAQ,CAAC,EACjC,MACF,IAAK,EAAEmQ,aAAiBstH,GACtB,KAAK,MAAMttH,EAAOnQ,EAAQ,CAAC,EAC3B,MACF,IAAK,EAAEmQ,aAAiBwtH,GACtB,KAAK,QAAQxtH,EAAOnQ,EAAQ,CAAC,EAC7B,MACF,IAAK,EAAEmQ,aAAiBivH,GACtB,KAAK,sBAAsBjvH,EAAOnQ,EAAQ,CAAC,EAC3C,MACF,QACE,MAAM,IAAI,MAAM,0BAA4BmQ,EAAM,YAAY,IAAI,CAChF,CAEQ,KAAK,OAAO,MAAM,GAAG,CAC7B,CACM,YAAK,OAAO,MAAM,KAAK,iBAAmB,GAAG,EACtC,KAAK,OAAO,MAAM,KAAK,QAAQ1N,CAAI,CAAC,CACjD,EAEI4+H,EAAgB,UAAU,QAAU,SAAS5+H,EAAMzC,EAAO,CACxD,IAAIk9H,EAAK/sH,EAAO5lC,EAAG0gB,EAAK0B,EAAMixE,EAAKy/D,EAAMsD,EACzC3gI,IAAUA,EAAQ,GAClB2gI,EAAQ,KAAK,MAAM3gI,CAAK,EACxB,KAAK,OAAO,MAAM2gI,EAAQ,IAAMl+H,EAAK,IAAI,EACzCm7D,EAAMn7D,EAAK,WACX,IAAK9V,KAAQixE,EACNouC,EAAQ,KAAKpuC,EAAKjxE,CAAI,IAC3BuwI,EAAMt/D,EAAIjxE,CAAI,EACd,KAAK,UAAUuwI,CAAG,GAEpB,GAAIz6H,EAAK,SAAS,SAAW,GAAKA,EAAK,SAAS,MAAM,SAASp4B,EAAG,CAChE,OAAOA,EAAE,QAAU,EAC3B,CAAO,EACK,KAAK,WACP,KAAK,OAAO,MAAM,MAAQo4B,EAAK,KAAO,GAAG,EAEzC,KAAK,OAAO,MAAM,KAAK,iBAAmB,IAAI,UAEvC,KAAK,QAAUA,EAAK,SAAS,SAAW,GAAMA,EAAK,SAAS,CAAC,EAAE,OAAS,KACjF,KAAK,OAAO,MAAM,GAAG,EACrB,KAAK,OAAO,MAAMA,EAAK,SAAS,CAAC,EAAE,KAAK,EACxC,KAAK,OAAO,MAAM,KAAOA,EAAK,KAAO,GAAG,MACnC,CAGL,IAFA,KAAK,OAAO,MAAM,IAAM,KAAK,OAAO,EACpC46H,EAAO56H,EAAK,SACPl4B,EAAI,EAAG0gB,EAAMoyI,EAAK,OAAQ9yJ,EAAI0gB,EAAK1gB,IAEtC,OADA4lC,EAAQktH,EAAK9yJ,CAAC,EACN,GAAK,CACX,IAAK,EAAE4lC,aAAiBstH,GACtB,KAAK,MAAMttH,EAAOnQ,EAAQ,CAAC,EAC3B,MACF,IAAK,EAAEmQ,aAAiBwtH,GACtB,KAAK,QAAQxtH,EAAOnQ,EAAQ,CAAC,EAC7B,MACF,IAAK,EAAEmQ,aAAiB8sH,GACtB,KAAK,QAAQ9sH,EAAOnQ,EAAQ,CAAC,EAC7B,MACF,IAAK,EAAEmQ,aAAiB6uH,GACtB,KAAK,IAAI7uH,EAAOnQ,EAAQ,CAAC,EACzB,MACF,IAAK,EAAEmQ,aAAiB+uH,GACtB,KAAK,KAAK/uH,EAAOnQ,EAAQ,CAAC,EAC1B,MACF,IAAK,EAAEmQ,aAAiBivH,GACtB,KAAK,sBAAsBjvH,EAAOnQ,EAAQ,CAAC,EAC3C,MACF,IAAK,EAAEmQ,aAAiBmvH,GAEtB,MACF,QACE,MAAM,IAAI,MAAM,0BAA4BnvH,EAAM,YAAY,IAAI,CAChF,CAEQ,KAAK,OAAO,MAAMwwH,EAAQ,KAAOl+H,EAAK,KAAO,GAAG,CACxD,CACM,OAAO,KAAK,OAAO,MAAM,KAAK,QAAQA,CAAI,CAAC,CACjD,EAEI4+H,EAAgB,UAAU,sBAAwB,SAAS5+H,EAAMzC,EAAO,CACtE,YAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAI,KAAOyC,EAAK,MAAM,EACpDA,EAAK,OACP,KAAK,OAAO,MAAM,IAAMA,EAAK,KAAK,EAE7B,KAAK,OAAO,MAAM,KAAK,iBAAmB,KAAO,KAAK,QAAQA,CAAI,CAAC,CAChF,EAEI4+H,EAAgB,UAAU,IAAM,SAAS5+H,EAAMzC,EAAO,CACpD,OAAO,KAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAIyC,EAAK,MAAQ,KAAK,QAAQA,CAAI,CAAC,CAClF,EAEI4+H,EAAgB,UAAU,KAAO,SAAS5+H,EAAMzC,EAAO,CACrD,OAAO,KAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAIyC,EAAK,MAAQ,KAAK,QAAQA,CAAI,CAAC,CAClF,EAEI4+H,EAAgB,UAAU,WAAa,SAAS5+H,EAAMzC,EAAO,CAC3D,YAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAI,aAAeyC,EAAK,YAAc,IAAMA,EAAK,cAAgB,IAAMA,EAAK,aAAa,EACvHA,EAAK,mBAAqB,YAC5B,KAAK,OAAO,MAAM,IAAMA,EAAK,gBAAgB,EAE3CA,EAAK,cACP,KAAK,OAAO,MAAM,KAAOA,EAAK,aAAe,GAAG,EAE3C,KAAK,OAAO,MAAM,KAAK,iBAAmB,IAAM,KAAK,QAAQA,CAAI,CAAC,CAC/E,EAEI4+H,EAAgB,UAAU,WAAa,SAAS5+H,EAAMzC,EAAO,CAC3D,YAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAI,aAAeyC,EAAK,KAAO,IAAMA,EAAK,KAAK,EAC1E,KAAK,OAAO,MAAM,KAAK,iBAAmB,IAAM,KAAK,QAAQA,CAAI,CAAC,CAC/E,EAEI4+H,EAAgB,UAAU,UAAY,SAAS5+H,EAAMzC,EAAO,CAC1D,YAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAI,UAAU,EAC5CyC,EAAK,IACP,KAAK,OAAO,MAAM,IAAI,EAExB,KAAK,OAAO,MAAM,IAAMA,EAAK,IAAI,EAC7BA,EAAK,MACP,KAAK,OAAO,MAAM,KAAOA,EAAK,MAAQ,GAAG,GAErCA,EAAK,OAASA,EAAK,MACrB,KAAK,OAAO,MAAM,YAAcA,EAAK,MAAQ,MAAQA,EAAK,MAAQ,GAAG,EAC5DA,EAAK,OACd,KAAK,OAAO,MAAM,YAAcA,EAAK,MAAQ,GAAG,EAE9CA,EAAK,OACP,KAAK,OAAO,MAAM,UAAYA,EAAK,KAAK,GAGrC,KAAK,OAAO,MAAM,KAAK,iBAAmB,IAAM,KAAK,QAAQA,CAAI,CAAC,CAC/E,EAEI4+H,EAAgB,UAAU,YAAc,SAAS5+H,EAAMzC,EAAO,CAC5D,YAAK,OAAO,MAAM,KAAK,MAAMA,CAAK,EAAI,cAAgByC,EAAK,IAAI,EAC3DA,EAAK,OAASA,EAAK,MACrB,KAAK,OAAO,MAAM,YAAcA,EAAK,MAAQ,MAAQA,EAAK,MAAQ,GAAG,EAC5DA,EAAK,MACd,KAAK,OAAO,MAAM,YAAcA,EAAK,MAAQ,GAAG,EACvCA,EAAK,OACd,KAAK,OAAO,MAAM,YAAcA,EAAK,MAAQ,GAAG,EAE3C,KAAK,OAAO,MAAM,KAAK,iBAAmB,IAAM,KAAK,QAAQA,CAAI,CAAC,CAC/E,EAEI4+H,EAAgB,UAAU,QAAU,SAAS5+H,EAAM,CACjD,OAAKA,EAAK,eAGD,GAFA,KAAK,OAIpB,EAEW4+H,CAEX,GAAKjB,CAAa,CAElB,GAAG,KAAK1vI,EAAI,qDC7RX,UAAW,CACV,IAAIowI,EAAaG,EAAeI,EAAiBX,EAAiBzT,EAAQhwB,EAAYr/B,EAEtFA,EAAMjuE,GAAA,EAAsBs9H,EAASrvD,EAAI,OAAQq/B,EAAar/B,EAAI,WAElEkjE,EAAc/vI,GAAA,EAEdkwI,EAAgBhwI,GAAA,EAEhByvI,EAAkBvvI,GAAA,EAElBkwI,EAAkB5b,GAAA,EAElB8V,GAAA,OAAwB,SAAS5uI,EAAMmzI,EAAQ7O,EAAS3nJ,EAAS,CAC/D,IAAIknJ,EAAKr/G,EACT,GAAIxkB,GAAQ,KACV,MAAM,IAAI,MAAM,4BAA4B,EAE9C,OAAArjB,EAAU2jJ,EAAO,CAAA,EAAI6S,EAAQ7O,EAAS3nJ,CAAO,EAC7CknJ,EAAM,IAAIsQ,EAAYx3J,CAAO,EAC7B6nC,EAAOq/G,EAAI,QAAQ7jI,CAAI,EAClBrjB,EAAQ,WACXknJ,EAAI,YAAYlnJ,CAAO,GAClBA,EAAQ,OAAS,MAAUA,EAAQ,OAAS,OAC/CknJ,EAAI,QAAQlnJ,CAAO,GAGhB6nC,CACX,EAEEoqH,GAAA,MAAuB,SAASjyJ,EAAS43J,EAAQC,EAAO,CACtD,IAAI9D,EAKJ,OAJIpgC,EAAW3zH,CAAO,IACpB+zJ,EAAO,CAAC/zJ,EAAS43J,CAAM,EAAGA,EAAS7D,EAAK,CAAC,EAAG8D,EAAQ9D,EAAK,CAAC,EAC1D/zJ,EAAU,CAAA,GAER43J,EACK,IAAID,EAAc33J,EAAS43J,EAAQC,CAAK,EAExC,IAAIL,EAAYx3J,CAAO,CAEpC,EAEEiyJ,GAAA,aAA8B,SAASjyJ,EAAS,CAC9C,OAAO,IAAIo3J,EAAgBp3J,CAAO,CACtC,EAEEiyJ,gBAA8B,SAASnmI,EAAQ9rB,EAAS,CACtD,OAAO,IAAI+3J,EAAgBjsI,EAAQ9rB,CAAO,CAC9C,CAEA,GAAG,KAAKonB,EAAI,gDCpDZ,IAAIrlB,EAAIskB,GACJ2xI,EAAavwI,GAAA,EAGjB45F,GAAA,YAAsB42C,EAGtB,SAASA,EAAYpwH,EAAMqwH,EAAY,CACnC,IAAIC,EAAcp2J,EAAE,OAAOm2J,CAAU,EAEjCE,EAAc,CACd,QAASC,EACT,KAAMC,GAGV,SAASC,EAAUC,EAASr/H,EAAM,CAC9B,OAAOi/H,EAAYj/H,EAAK,IAAI,EAAEq/H,EAASr/H,CAAI,CACnD,CAEI,SAASk/H,EAAaG,EAASvxH,EAAS,CACpC,IAAIwxH,EAAiBD,EAAQ,QAAQE,EAAezxH,EAAQ,IAAI,EAAGA,EAAQ,UAAU,EACrFA,EAAQ,SAAS,QAAQ,SAASJ,EAAO,CACrC0xH,EAAUE,EAAgB5xH,CAAK,CAC3C,CAAS,CACT,CAEI,SAAS6xH,EAAer1I,EAAM,CAC1B,IAAIs1I,EAAgB,iBAAiB,KAAKt1I,CAAI,EAC9C,GAAIs1I,EAAe,CACf,IAAI7oI,EAASqoI,EAAYQ,EAAc,CAAC,CAAC,EACzC,OAAO7oI,GAAUA,IAAW,GAAK,GAAK,KAAO6oI,EAAc,CAAC,CACxE,KACY,QAAOt1I,CAEnB,CAEI,SAASu1I,EAAc/wH,EAAM,CACzB,IAAI2wH,EAAUR,EACT,OAAOU,EAAe7wH,EAAK,IAAI,EAAG,CAC/B,QAAS,MACT,SAAU,QACV,WAAY,EAC5B,CAAa,EAEL,OAAA9lC,EAAE,QAAQm2J,EAAY,SAASpU,EAAKh0H,EAAQ,CACxC,IAAIpN,EAAM,SAAWoN,IAAW,GAAK,GAAK,IAAMA,GAChD0oI,EAAQ,UAAU91I,EAAKohI,CAAG,CACtC,CAAS,EAEDj8G,EAAK,SAAS,QAAQ,SAAShB,EAAO,CAClC0xH,EAAUC,EAAS3xH,CAAK,CACpC,CAAS,EACM2xH,EAAQ,IAAG,CAC1B,CAEI,OAAOI,EAAc/wH,CAAI,CAC7B,CAEA,SAASywH,EAAcE,EAASr/H,EAAM,CAClCq/H,EAAQ,KAAKr/H,EAAK,KAAK,CAC3B,qDC5DA,IAAIlJ,EAAQ5J,GAAA,EAEZ,OAAAwyI,GAAA,QAAkB5oI,EAAM,QACxB4oI,GAAA,QAAkB5oI,EAAM,QACxB4oI,GAAA,aAAuB5oI,EAAM,aAC7B4oI,GAAA,KAAe5oI,EAAM,KACrB4oI,GAAA,WAAqBpxI,GAAA,EAAoB,WACzCoxI,GAAA,YAAsBlxI,GAAA,EAAoB,yDCP1C,IAAI5lB,EAAIskB,GAEJk4B,EAAW92B,GAAA,EACXoxI,EAAMlxI,GAAA,EAGVmxI,GAAA,KAAe7V,EACf6V,GAAA,mBAA6BC,EAE7B,IAAIC,EAAkB,CAElB,+DAAgE,IAChE,sEAAuE,IACvE,yEAA0E,KAC1E,wDAAyD,IACzD,2DAA4D,MAG5D,mDAAoD,IACpD,0DAA2D,IAC3D,6DAA8D,KAC9D,4CAA6C,IAC7C,+CAAgD,MAGhD,+DAAgE,gBAChE,+DAAgE,gBAChE,8DAA+D,KAC/D,gCAAiC,IACjC,wCAAyC,cAIzC,uDAAwD,UAI5D,SAAS/V,EAAKsP,EAAW,CACrB,OAAOsG,EAAI,WAAWtG,EAAWyG,CAAe,EAC3C,KAAK,SAAS5G,EAAU,CACrB,OAAO6G,EAAyB7G,CAAQ,EAAE,CAAC,CACvD,CAAS,CACT,CAGA,SAAS2G,EAAmBG,EAAUz0I,EAAM,CACxC,OAAIy0I,EAAS,OAAOz0I,CAAI,EACby0I,EAAS,KAAKz0I,EAAM,OAAO,EAC7B,KAAK00I,CAAY,EACjB,KAAKlW,CAAI,EAEP1kG,EAAS,QAAQ,IAAI,CAEpC,CAGA,SAAS46G,EAAa5G,EAAW,CAC7B,OAAOA,EAAU,QAAQ,WAAY,EAAE,CAC3C,CAGA,SAAS0G,EAAyB9/H,EAAM,CACpC,OAAIA,EAAK,OAAS,UACVA,EAAK,OAAS,sBACPA,EAAK,aAAa,aAAa,EAAE,UAExCA,EAAK,SAAWp3B,EAAE,QAAQo3B,EAAK,SAAS,IAAI8/H,EAA0B,EAAI,CAAC,EACpE,CAAC9/H,CAAI,GAGT,CAACA,CAAI,CAEpB,uECvEA,OAAO,eAAeigI,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,IAAIC,EAAW,CACX,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAC/G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAK,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACrH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAI,EACjH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACrH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACrH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACpH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACrH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACxH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cA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,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACtH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAA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,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAI,EACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAM,EACxH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAM,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB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cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAO,EAC5H,CAAE,gBAAiB,cAAe,cAAe,M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","x_google_ignoreList":[4,5,6,7,8,9,16,17,18,19,20,21,22,23,24,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323]}