This repository has been archived by the owner on Aug 30, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathChannel.js.map
1 lines (1 loc) · 432 KB
/
Channel.js.map
1
{"version":3,"file":"Channel.js","sources":["../src/smart-components/Conversation/dux/actionTypes.js","../src/smart-components/Conversation/types.js","../src/smart-components/Conversation/utils.js","../src/smart-components/Conversation/dux/initialState.js","../src/smart-components/Conversation/dux/reducers.js","../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../src/smart-components/Conversation/hooks/useGetChannel.js","../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../src/smart-components/Conversation/hooks/useHandleReconnect.js","../src/smart-components/Conversation/hooks/useScrollCallback.js","../src/smart-components/Conversation/hooks/useScrollDownCallback.js","../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../src/smart-components/Conversation/hooks/useSetReadStatus.js","../src/ui/ReactionButton/index.jsx","../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../src/ui/MessageStatus/index.jsx","../src/ui/ReactionBadge/index.jsx","../src/ui/Tooltip/index.jsx","../src/ui/TooltipWrapper/index.jsx","../src/ui/EmojiReactions/index.jsx","../src/ui/Message/memoizedMessageText.jsx","../src/hooks/onMouseHover.jsx","../src/ui/Message/index.jsx","../src/ui/AdminMessage/index.jsx","../src/ui/ThumbnailMessage/util.js","../src/ui/ThumbnailMessage/index.jsx","../src/ui/FileMessage/index.jsx","../src/smart-components/Conversation/components/RemoveMessage.jsx","../src/ui/UnknownMessage/utils.js","../src/ui/UnknownMessage/index.jsx","../src/ui/OGMessage/utils.js","../src/ui/OGMessage/const.js","../src/ui/OGMessage/memoizedMessageText.jsx","../src/ui/OGMessage/index.jsx","../src/smart-components/Conversation/components/MessageHOC.jsx","../src/smart-components/Conversation/components/ConversationScroll.jsx","../src/smart-components/Conversation/components/Notification.jsx","../src/smart-components/Conversation/components/FrozenNotification.tsx","../src/smart-components/Conversation/components/TypingIndicator.jsx","../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../src/ui/ConnectionStatus/index.jsx","../src/ui/ChatHeader/utils.js","../src/ui/ChatHeader/index.jsx","../src/smart-components/Conversation/index.jsx"],"sourcesContent":["export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\nexport const GET_NEXT_MESSAGES_SUCESS = 'GET_NEXT_MESSAGES_SUCESS';\nexport const GET_NEXT_MESSAGES_FAILURE = 'GET_NEXT_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const UPDATE_UNREAD_COUNT = 'UPDATE_UNREAD_COUNT';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n\nexport const MESSAGE_LIST_PARAMS_CHANGED = 'MESSAGE_LIST_PARAMS_CHANGED';\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const scrollDOM = document.querySelector('.sendbird-conversation__scroll-container');\n // eslint-disable-next-line no-multi-assign\n scrollDOM.scrollTop = scrollDOM.scrollHeight;\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast();\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast();\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const hasOwnProperty = (property) => (payload) => {\n // eslint-disable-next-line no-prototype-builtins\n if (payload && payload.hasOwnProperty && payload.hasOwnProperty(property)) {\n return true;\n }\n return false;\n};\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport const pxToNumber = (px) => {\n if (typeof px === 'number') {\n return px;\n }\n if (typeof px === 'string') {\n const parsed = Number.parseFloat(px);\n if (!Number.isNaN(parsed)) {\n return parsed;\n }\n }\n return null;\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n // for scrollup\n hasMore: false,\n lastMessageTimeStamp: 0,\n // for scroll down\n // onScrollDownCallback is added for navigation to different timestamps on messageSearch\n // hasMoreToBottom, onScrollDownCallback -> scroll down\n // hasMore, onScrollCallback -> scroll up(default behavior)\n hasMoreToBottom: false,\n latestFetchedMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n messageListParams: null,\n};\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages, hasOwnProperty } from '../utils';\nimport { SendingMessageStatus } from '../types';\nimport { filterMessageListParams } from '../../../utils';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n\n const hasHasMoreToBottom = hasOwnProperty('hasMoreToBottom')(action.payload);\n const hasLatestFetchedMessageTimeStamp = hasOwnProperty('latestFetchedMessageTimeStamp')(action.payload);\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n // if present change else, keep\n ...(hasHasMoreToBottom && {\n hasMoreToBottom: action.payload.hasMoreToBottom,\n }),\n ...(hasLatestFetchedMessageTimeStamp && {\n latestFetchedMessageTimeStamp: action.payload.latestFetchedMessageTimeStamp,\n }),\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.GET_NEXT_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n hasMoreToBottom: action.payload.hasMoreToBottom,\n latestFetchedMessageTimeStamp: action.payload.latestFetchedMessageTimeStamp,\n allMessages: [\n ...filteredAllMessages,\n ...receivedMessages,\n ],\n };\n }\n case actionTypes.GET_NEXT_MESSAGES_FAILURE: {\n return { ...state };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.UPDATE_UNREAD_COUNT: {\n const { channel } = action.payload;\n const { currentGroupChannel = {}, unreadCount } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n return {\n ...state,\n unreadSince: unreadCount + 1,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message, scrollToEnd } = action.payload;\n let unreadCount = 0;\n const { currentGroupChannel = {}, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n\n if (!compareIds(channel.url, currentGroupChannelUrl)\n || (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0))\n // Excluded overlapping messages\n || (state.messageListParams && !filterMessageListParams(state.messageListParams, message))\n // Filter by userFilledQuery\n ) {\n return state;\n }\n\n unreadCount = state.unreadCount + 1;\n // reset unreadCount if have to scrollToEnd\n if (scrollToEnd) {\n unreadCount = 0;\n }\n\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount,\n unreadSince: (unreadCount === 1)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const { message } = action.payload;\n if (state.messageListParams && !filterMessageListParams(state.messageListParams, message)) {\n // Delete the message if it doesn't match to the params anymore\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.message.messageId)\n ? action.payload.message\n : m\n )),\n };\n }\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n case actionTypes.MESSAGE_LIST_PARAMS_CHANGED: {\n return {\n ...state,\n messageListParams: action.payload,\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\nimport { scrollIntoLast } from '../utils';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit, hasMoreToBottom }, {\n messagesDispatcher,\n sdk,\n logger,\n scrollRef,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n // donot update if hasMoreToBottom\n if (compareIds(channel.url, currentGroupChannel.url) && !hasMoreToBottom) {\n let scrollToEnd = false;\n try {\n const { current } = scrollRef;\n scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight;\n } catch (error) {\n //\n }\n\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message, scrollToEnd },\n });\n\n if (scrollToEnd) {\n try {\n setTimeout(() => {\n currentGroupChannel.markAsRead();\n scrollIntoLast();\n });\n } catch (error) {\n logger.warning('Channel | onMessageReceived | scroll to end failed');\n }\n }\n }\n if (compareIds(channel.url, currentGroupChannel.url) && hasMoreToBottom) {\n messagesDispatcher({\n type: messageActions.UPDATE_UNREAD_COUNT,\n payload: { channel },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nconst PREV_RESULT_SIZE = 30;\nconst NEXT_RESULT_SIZE = 10;\n\nconst getLatestMessageTimeStamp = (messages = []) => {\n const latestMessage = messages[messages.length - 1];\n return (latestMessage && latestMessage.createdAt) || null;\n};\n\nfunction useInitialMessagesFetch({\n currentGroupChannel,\n userFilledMessageListQuery,\n intialTimeStamp,\n}, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByTimestamp) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = PREV_RESULT_SIZE;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);\n messagesDispatcher({\n type: messageActionTypes.MESSAGE_LIST_PARAMS_CHANGED,\n payload: messageListParams,\n });\n }\n\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n if (intialTimeStamp) {\n messageListParams.nextResultSize = NEXT_RESULT_SIZE;\n currentGroupChannel.getMessagesByTimestamp(\n intialTimeStamp,\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n const latestFetchedMessageTimeStamp = getLatestMessageTimeStamp(messages);\n // to make sure there are no more messages below\n const nextMessageListParams = new sdk.MessageListParams();\n nextMessageListParams.nextResultSize = NEXT_RESULT_SIZE;\n currentGroupChannel.getMessagesByTimestamp(\n latestFetchedMessageTimeStamp || new Date().getTime(),\n nextMessageListParams,\n ).then((nextMessages) => {\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n latestFetchedMessageTimeStamp,\n hasMoreToBottom: nextMessages && nextMessages.length > 0,\n },\n });\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n if (!intialTimeStamp) {\n setTimeout(() => utils.scrollIntoLast());\n }\n currentGroupChannel.markAsRead();\n });\n } else {\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n const latestFetchedMessageTimeStamp = getLatestMessageTimeStamp(messages);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n latestFetchedMessageTimeStamp,\n hasMoreToBottom: false,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n if (!intialTimeStamp) {\n setTimeout(() => utils.scrollIntoLast());\n }\n currentGroupChannel.markAsRead();\n });\n }\n }\n }, [channelUrl, userFilledMessageListQuery, intialTimeStamp]);\n /**\n * Note - useEffect(() => {}, [currentGroupChannel])\n * was buggy, that is why we did\n * const channelUrl = currentGroupChannel && currentGroupChannel.url;\n * useEffect(() => {}, [channelUrl])\n * Again, this hook is supposed to execute when currentGroupChannel changes\n * The 'channelUrl' here is not the same memory reference from Conversation.props\n */\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast());\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nconst RESULT_SIZE = 30;\n\nfunction useScrollDownCallback({\n currentGroupChannel,\n latestFetchedMessageTimeStamp,\n userFilledMessageListQuery,\n hasMoreToBottom,\n}, {\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMoreToBottom) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.nextResultSize = RESULT_SIZE;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching later messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n latestFetchedMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const messagesLength = (messages && messages.length) || 0;\n const hasMoreMessages = (messagesLength > 0)\n && (messageListParams.nextResultSize === messagesLength);\n const lastMessageTs = hasMoreMessages\n ? messages[messages.length - 1].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_NEXT_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMoreToBottom: hasMoreMessages,\n latestFetchedMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching later messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_NEXT_MESSAGES_FAILURE,\n payload: {\n messages: [],\n hasMoreToBottom: false,\n latestFetchedMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, latestFetchedMessageTimeStamp, hasMoreToBottom]);\n}\n\nexport default useScrollDownCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast());\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel,\n onBeforeSendFileMessage,\n imageCompression = {},\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const {\n compressionRate,\n resizingWidth,\n resizingHeight,\n } = imageCompression;\n const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';\n\n const compressibleFileType = (file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg');\n const compressibleRatio = (compressionRate > 0) && (compressionRate < 1);\n // pxToNumber returns null if values are invalid\n const compressibleDiamensions = utils.pxToNumber(resizingWidth)\n || utils.pxToNumber(resizingHeight);\n\n const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);\n\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n if (canCompressImage) { // Using image compression\n try {\n const image = document.createElement('img');\n image.src = URL.createObjectURL(file);\n image.onload = () => {\n URL.revokeObjectURL(image.src);\n const canvas = document.createElement('canvas');\n const imageWdith = image.naturalWidth || image.width;\n const imageHeight = image.naturalHeight || image.height;\n\n let targetWidth = utils.pxToNumber(resizingWidth) || imageWdith;\n let targetHeight = utils.pxToNumber(resizingHeight) || imageHeight;\n\n // In canvas.toBlob(callback, mimeType, qualityArgument)\n // qualityArgument doesnt work\n // so in case compressibleDiamensions are not present, we use ratio\n if (file.type === 'image/png' && !compressibleDiamensions) {\n targetWidth *= compressionRate;\n targetHeight *= compressionRate;\n }\n\n canvas.width = targetWidth;\n canvas.height = targetHeight;\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, targetWidth, targetHeight);\n context.canvas.toBlob(\n (newImageBlob) => {\n const compressedFile = new File([newImageBlob], file.name, { type: file.type });\n if (createCustomParams) {\n logger.info('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = createCustomParams\n ? onBeforeSendFileMessage(compressedFile)\n : createParamsDefault(compressedFile);\n logger.info('Channel: Uploading file message start!', params);\n const pendingMessage = currentGroupChannel.sendFileMessage(\n params,\n (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n const [message, error] = swapParams ? [err, response] : [response, err];\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', { message, error });\n message.localUrl = URL.createObjectURL(compressedFile);\n message.file = compressedFile;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending file message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n },\n );\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(compressedFile),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast(), 1000);\n },\n file.type,\n compressionRate,\n );\n };\n } catch (error) {\n logger.error('Channel: Sending file message failed!', error);\n }\n } else { // Not using image compression\n if (createCustomParams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n logger.info('Channel: Uploading file message start!', params);\n\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n const [message, error] = swapParams ? [err, response] : [response, err];\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', { message, error });\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast(), 1000);\n }\n }, [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n className,\n width,\n height,\n selected,\n onClick,\n children,\n } = props;\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n `sendbird-reaction-button${selected ? '--selected' : ''}`,\n ].join(' ')}\n ref={ref}\n role=\"button\"\n style={{\n width: typeof width === 'string' ? `${width.slice(0, -2) - 2}px` : `${width - 2}px`,\n height: typeof height === 'string' ? `${height.slice(0, -2) - 2}px` : `${height - 2}px`,\n }}\n onClick={(e) => onClick(e)}\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n <div className=\"sendbird-reaction-button__inner\">\n {children}\n </div>\n </div>\n );\n});\n\nReactionButton.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n children: PropTypes.element.isRequired,\n};\n\nReactionButton.defaultProps = {\n className: '',\n width: '36px',\n height: '36px',\n selected: false,\n onClick: () => { },\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n /* eslint-disable react/prop-types */\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n <EmojiListItems\n parentRef={parentRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\n >\n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n defaultComponent={\n <Icon width=\"28px\" height=\"28px\" type={IconTypes.QUESTION} />\n }\n />\n </ReactionButton>\n );\n })\n }\n </EmojiListItems>\n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n className,\n message,\n status,\n}) {\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n <Label\n className=\"sendbird-message-status__text\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n <Loader\n className=\"sendbird-message-status__icon\"\n width=\"16px\"\n height=\"16px\"\n >\n <Icon\n type={IconTypes.SPINNER}\n fillColor={IconColors.PRIMARY}\n width=\"16px\"\n height=\"16px\"\n />\n </Loader>\n ),\n SENT: (\n <Icon\n className=\"sendbird-message-status__icon\"\n type={IconTypes.DONE}\n fillColor={IconColors.SENT}\n width=\"16px\"\n height=\"16px\"\n />\n ),\n DELIVERED: (\n <Icon\n className=\"sendbird-message-status__icon\"\n type={IconTypes.DONE_ALL}\n fillColor={IconColors.SENT}\n width=\"16px\"\n height=\"16px\"\n />\n ),\n READ: (\n <Icon\n className=\"sendbird-message-status__icon\"\n type={IconTypes.DONE_ALL}\n fillColor={IconColors.READ}\n width=\"16px\"\n height=\"16px\"\n />\n ),\n FAILED: (\n <Icon\n className=\"sendbird-message-status__icon\"\n type={IconTypes.ERROR}\n fillColor={IconColors.ERROR}\n width=\"16px\"\n height=\"16px\"\n />\n ),\n };\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-status',\n ].join(' ')}\n >\n {icon[status]}\n <br />\n {label(status)}\n </div>\n );\n}\n\nMessageStatus.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n createdAt: PropTypes.number,\n sender: PropTypes.shape({\n friendName: PropTypes.string,\n nickname: PropTypes.string,\n userId: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }),\n status: PropTypes.string,\n};\n\nMessageStatus.defaultProps = {\n className: '',\n message: null,\n status: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const getClassNameTail = () => {\n if (selected && !isAdd) {\n return '--selected';\n }\n if (isAdd) {\n return '--is-add';\n }\n return '';\n };\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n `sendbird-reaction-badge${getClassNameTail()}`,\n ].join(' ')}\n role=\"button\"\n ref={ref}\n onClick={onClick}\n onKeyDown={onClick}\n tabIndex={0}\n >\n <div className=\"sendbird-reaction-badge__inner\">\n <div className=\"sendbird-reaction-badge__inner__icon\">\n {children}\n </div>\n <Label\n className={(children && count) && 'sendbird-reaction-badge__inner__count'}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_1}\n >\n {count}\n </Label>\n </div>\n </div>\n );\n});\n\nReactionBadge.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-tooltip',\n ].join(' ')}\n >\n <Label\n className=\"sendbird-tooltip__text\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONCONTENT_1}\n >\n {children}\n </Label>\n </div>\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-tooltip-wrapper',\n ].join(' ')}\n onMouseOver={() => { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n <div\n className=\"sendbird-tooltip-wrapper__children\"\n ref={childrenRef}\n >\n {children}\n </div>\n {\n showHoverTooltip && (\n <div\n className=\"sendbird-tooltip-wrapper__hover-tooltip\"\n style={{ bottom: `calc(100% + ${SPACE_FROM_TRIGGER}px)` }}\n >\n <div className=\"sendbird-tooltip-wrapper__hover-tooltip__inner\">\n <div\n className=\"sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container\"\n style={{ left: childrenRef.current && `calc(${childrenRef.current.offsetWidth / 2}px - 50%)` }}\n >\n {hoverTooltip}\n </div>\n </div>\n </div>\n )\n }\n </div>\n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-emoji-reactions',\n ].join(' ')}\n >\n <div className=\"sendbird-emoji-reactions--inner\">\n {\n messageReactions && (\n messageReactions.map((reaction) => { // function component\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n <TooltipWrapper\n className=\"sendbird-emoji-reactions__emoji-reaction\"\n key={reaction.key}\n hoverTooltip={\n userIds.length > 0 && (\n <Tooltip>\n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n </>\n </Tooltip>\n )\n }\n >\n <ReactionBadge\n count={reactedUserCount}\n selected={reactedByMe}\n onClick={() => toggleReaction(message, reaction.key, reactedByMe)}\n >\n <ImageRenderer\n circle\n url={emojiUrl}\n width={imageWidth}\n height={imageHeight}\n defaultComponent={(\n <Icon\n width={imageWidth}\n height={imageHeight}\n type={IconTypes.QUESTION}\n />\n )}\n />\n </ReactionBadge>\n </TooltipWrapper>\n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <ReactionBadge\n className=\"sendbird-emoji-reactions__emoji-reaction-add\"\n isAdd\n onClick={toggleDropdown}\n ref={emojiReactionAddRef}\n >\n <Icon\n width={imageWidth}\n height={imageHeight}\n fillColor={IconColors.ON_BACKGROUND_3}\n type={IconTypes.EMOJI_MORE}\n />\n </ReactionBadge>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={emojiReactionAddRef}\n parentContainRef={emojiReactionAddRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 4 }}\n />\n )}\n />\n )\n }\n </div>\n </div>\n );\n}\n\nEmojiReactions.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n userId: PropTypes.string,\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n userId: '',\n membersMap: new Map(),\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n incoming,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const WORD_TYPOGRAPHY = LabelTypography.BODY_1;\n const EDITED_COLOR = incoming ? LabelColors.ONBACKGROUND_2 : LabelColors.ONCONTENT_2;\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word : <br />));\n if (updatedAt > 0) {\n matchedMessage.push(\n <Label\n key={uuidv4()}\n className={className}\n type={WORD_TYPOGRAPHY}\n color={EDITED_COLOR}\n >\n {` ${stringSet.MESSAGE_EDITED} `}\n </Label>,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n if (current) {\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n }\n return () => {\n if (current) {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n }\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n getIsSentFromSendingStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n className,\n message,\n isByMe,\n userId,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n\n const outgoingMemoizedMessageText = useMemoizedMessageText({\n className: 'sendbird-user-message-word',\n message: message.message,\n updatedAt: message.updatedAt,\n });\n const incomingMemoizedMessageText = useMemoizedMessageText({\n className: 'sendbird-user-message-word',\n message: message.message,\n updatedAt: message.updatedAt,\n incoming: true,\n });\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message',\n `sendbird-message${isByMe ? '--outgoing' : '--incoming'}`,\n ].join(' ')}\n >\n {\n isByMe\n ? (\n <OutgoingUserMessage\n userId={userId}\n message={message}\n resendMessage={resendMessage}\n disabled={disabled}\n showEdit={showEdit}\n showRemove={showRemove}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedMessageText={outgoingMemoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n : (\n <IncomingUserMessage\n userId={userId}\n message={message}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedMessageText={incomingMemoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const [menuDisplaying, setMenuDisplaying] = useState(false);\n\n const isMessageSent = getIsSentFromStatus(status);\n const showReactionAddButton = useReaction\n && (emojiAllMap.size > 0)\n && getIsSentFromSendingStatus(message);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className=\"sendbird-user-message--outgoing\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-user-message--inner\">\n <div className=\"sendbird-user-message__left-padding\">\n <div className=\"sendbird-user-message__more\" ref={parentContainRef}>\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={parentRefMenus}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n isMessageSent && (\n <MenuItem\n className=\"sendbird-user-message--copy\"\n onClick={() => { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n </MenuItem>\n )\n }\n {\n isMessageSent && (\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n </MenuItem>\n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n </MenuItem>\n )\n }\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n );\n }}\n />\n {\n (isMessageSent && showReactionAddButton)\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__add-reaction\"\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MemoizedEmojiListItems\n message={message}\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n );\n }}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive || menuDisplaying) && (\n <div className=\"sendbird-user-message__status\">\n <MessageStatus\n message={message}\n status={status}\n />\n </div>\n )\n }\n </div>\n <div className=\"sendbird-user-message__text-balloon\">\n <div className=\"sendbird-user-message__text-balloon__inner\">\n <div className=\"sendbird-user-message__text-balloon__inner__text-place\">\n <Label\n className=\"sendbird-user-message__text-balloon__inner__text-place__text\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONCONTENT_1}\n >\n <MemoizedMessageText />\n </Label>\n </div>\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n <EmojiReactions\n className=\"sendbird-user-message__text-balloon__inner__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const [menuDisplaying, setMenuDisplaying] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n ref={messageRef}\n className=\"sendbird-user-message--incoming\"\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-user-message--inner\">\n <div className=\"sendbird-user-message--body\">\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n ref={avatarRef}\n onClick={() => {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={avatarRef}\n parentContainRef={avatarRef}\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n {\n !chainTop && (\n <Label\n className=\"sendbird-user-message__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message)}\n </Label>\n )\n }\n <div className=\"sendbird-user-message__text-balloon\">\n <div className=\"sendbird-user-message__text-balloon__inner\">\n <div className=\"sendbird-user-message__text-balloon__inner__text-place\">\n <Label\n className=\"sendbird-user-message__text-balloon__inner__text-place__text\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n <MemoizedMessageText />\n </Label>\n </div>\n {\n showEmojiReactions && (\n <EmojiReactions\n className=\"sendbird-user-message__text-balloon__inner__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\n <div className=\"sendbird-user-message__right-padding\">\n <div\n className=\"sendbird-user-message__more\"\n ref={parentContainRef}\n style={{ top: chainTop ? '6px' : '22px' }}\n >\n {\n showReactionAddButton\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MemoizedEmojiListItems\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n message={message}\n spaceFromTrigger={{ y: 2 }}\n />\n );\n }}\n />\n )\n }\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MenuItems\n parentRef={parentRefMenus}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n >\n <MenuItem\n className=\"sendbird-user-message--copy\"\n onClick={() => { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n </MenuItem>\n </MenuItems>\n );\n }}\n />\n </div>\n {\n !chainBottom && !(mousehover || moreActive || menuDisplaying) && (\n <Label\n className=\"sendbird-user-message__sent-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n </div>\n </div>\n </div>\n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!(message.isAdminMessage || message.messageType) || !message.isAdminMessage() || message.messageType !== 'admin') {\n return null;\n }\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-admin-message',\n ].join(' ')}\n >\n <Label\n className=\"sendbird-admin-message__text\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {message.message}\n </Label>\n </div>\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.shape({\n message: PropTypes.string,\n messageType: PropTypes.string,\n isAdminMessage: PropTypes.func,\n }),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const getIsSentFromSendingStatus = (message = {}) => {\n if (message.sendingStatus && typeof message.sendingStatus === 'string') {\n return message.sendingStatus === 'none' || message.sendingStatus === 'succeeded';\n }\n return false;\n};\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n getIsSentFromSendingStatus,\n};\n","import React, {\n useContext,\n useState,\n useRef,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n getIsSentFromSendingStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isGif,\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n <OutgoingThumbnailMessage\n userId={userId}\n status={status}\n message={message}\n onClick={onClick}\n disabled={disabled}\n chainTop={chainTop}\n showRemove={showRemove}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n : (\n <IncomingThumbnailMessage\n userId={userId}\n status={status}\n message={message}\n onClick={onClick}\n chainTop={chainTop}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n thumbnails,\n } = message;\n const thumbnailUrl = (thumbnails && thumbnails.length > 0 && thumbnails[0].url) || null;\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const [menuDisplaying, setMenuDisplaying] = useState(false);\n /* eslint-disable react/prop-types */\n const memorizedThumbnailPlaceHolder = useMemo(() => (iconType) => ({ style }) => (\n <div style={style}>\n <Icon\n type={iconType}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n ), []);\n\n const showReactionAddButton = useReaction\n && emojiAllMap\n && (emojiAllMap.size > 0)\n && getIsSentFromSendingStatus(message);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className={OUTGOING_THUMBNAIL_MESSAGE}\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}--inner`}>\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}__left-padding`}>\n <div\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-left-padding__more`}\n ref={parentContainRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={menuRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={menuRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n </MenuItem>\n )\n }\n <MenuItem onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n </MenuItem>\n </MenuItems>\n );\n }}\n />\n {\n (isMessageSent && showReactionAddButton)\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n );\n }}\n />\n )\n }\n </div>\n {\n (!chainBottom && !(mousehover || moreActive || menuDisplaying)) && (\n <MessageStatus\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-left-padding__status`}\n message={message}\n status={status}\n />\n )\n }\n </div>\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}__body`}>\n <div\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap`}\n >\n <div\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap--inner`}\n role=\"button\"\n onClick={isMessageSent ? () => onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n >\n {\n isVideo(type) && (\n <>\n {\n (thumbnailUrl)\n ? (\n <ImageRenderer\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__video`}\n url={thumbnailUrl}\n alt=\"video/thumbnail\"\n width=\"404px\"\n height=\"280px\"\n defaultComponent={(\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}__thumbnail-placeholder--video`}>\n <Icon\n type={IconTypes.PLAY}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n )}\n placeHolder={memorizedThumbnailPlaceHolder(IconTypes.PLAY)}\n />\n )\n : (\n /* eslint-disable-next-line jsx-a11y/media-has-caption */\n <video className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__video`}>\n <source src={url || localUrl} type={type} />\n </video>\n )\n }\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__video-icon--wrap`}>\n <Icon\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__video-icon`}\n type={IconTypes.PLAY}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"34px\"\n height=\"34px\"\n />\n </div>\n </>\n )\n }\n {\n isImage(type) && (\n <>\n <ImageRenderer\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__img`}\n url={thumbnailUrl || url || localUrl}\n alt=\"image/thumbnail\"\n width=\"404px\"\n height=\"280px\"\n defaultComponent={(\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}__thumbnail-placeholder--image`}>\n <Icon\n type={IconTypes.PHOTO}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n )}\n placeHolder={memorizedThumbnailPlaceHolder(IconTypes.PHOTO)}\n />\n {\n isGif(type) && (\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__gif-icon--wrap`}>\n <Icon\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__gif-icon`}\n type={IconTypes.GIF}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"34px\"\n height=\"34px\"\n />\n </div>\n )\n }\n </>\n )\n }\n {\n unSupported(type) && (\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__other`}>\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n </div>\n )\n }\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap__overlay`} />\n </div>\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n <EmojiReactions\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap__emoji-reactions`}\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n thumbnails,\n } = message;\n const thumbnailUrl = (thumbnails && thumbnails.length > 0 && thumbnails[0].url) || null;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const [menuDisplaying, setMenuDisplaying] = useState(false);\n /* eslint-disable react/prop-types */\n const memorizedThumbnailPlaceHolder = useMemo(() => (iconType) => ({ style }) => (\n <div style={style}>\n <Icon\n type={iconType}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n ), []);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className={INCOMING_THUMBNAIL_MESSAGE}\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n {\n !chainTop && (\n <Label\n className={`${INCOMING_THUMBNAIL_MESSAGE}__sender-name`}\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message) || ''}\n </Label>\n )\n }\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}--inner`}>\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__body`}>\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}-body__wrap`}>\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n ref={avatarRef}\n onClick={() => {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={avatarRef}\n parentContainRef={avatarRef}\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n <div\n className={`${INCOMING_THUMBNAIL_MESSAGE}-body__wrap--inner`}\n role=\"button\"\n onClick={isMessageSent ? () => onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n >\n {\n isVideo(type) && (\n <>\n {\n (thumbnailUrl)\n ? (\n <ImageRenderer\n className={`${INCOMING_THUMBNAIL_MESSAGE}__video`}\n url={thumbnailUrl}\n alt=\"video/thumbnail\"\n width=\"404px\"\n height=\"280px\"\n defaultComponent={(\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__thumbnail-placeholder--video`}>\n <Icon\n type={IconTypes.PLAY}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n )}\n placeHolder={memorizedThumbnailPlaceHolder(IconTypes.PLAY)}\n />\n )\n : (\n /* eslint-disable-next-line jsx-a11y/media-has-caption */\n <video className={`${INCOMING_THUMBNAIL_MESSAGE}__video`}>\n <source src={url || localUrl} type={type} />\n </video>\n )\n }\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__video-icon--wrap`}>\n <Icon\n className={`${INCOMING_THUMBNAIL_MESSAGE}__video-icon`}\n type={IconTypes.PLAY}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"34px\"\n height=\"34px\"\n />\n </div>\n </>\n )\n }\n {\n isImage(type) && (\n <>\n <ImageRenderer\n className={`${INCOMING_THUMBNAIL_MESSAGE}__img`}\n url={thumbnailUrl || url || localUrl}\n alt=\"image/thumbnail\"\n width=\"404px\"\n height=\"280px\"\n defaultComponent={(\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__thumbnail-placeholder--image`}>\n <Icon\n type={IconTypes.PHOTO}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n )}\n placeHolder={memorizedThumbnailPlaceHolder(IconTypes.PHOTO)}\n />\n {\n isGif(type) && (\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__gif-icon--wrap`}>\n <Icon\n className={`${INCOMING_THUMBNAIL_MESSAGE}__gif-icon`}\n type={IconTypes.GIF}\n fillColor={IconColors.ON_BACKGROUND_2}\n width=\"34px\"\n height=\"34px\"\n />\n </div>\n )\n }\n </>\n )\n }\n {\n unSupported(type) && (\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__other`}>\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n </div>\n )\n }\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}-body__wrap-overlay`} />\n </div>\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n <EmojiReactions\n className={`${INCOMING_THUMBNAIL_MESSAGE}__wrap__emoji-reactions`}\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__right-padding`}>\n {\n !chainBottom && !(mousehover || moreActive || menuDisplaying) && (\n <Label\n className={`${INCOMING_THUMBNAIL_MESSAGE}__sent-at`}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n <div\n className={`${INCOMING_THUMBNAIL_MESSAGE}__more`}\n ref={parentContainRef}\n >\n {\n showReactionAddButton && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n );\n }}\n />\n )\n }\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n getIsSentFromSendingStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n <div className={`sendbird-file-message${isByMe ? '--outgoing' : '--incoming'}`}>\n {\n isByMe\n ? (\n <OutgoingFileMessage\n message={message}\n userId={userId}\n disabled={disabled}\n showRemove={showRemove}\n status={status}\n resendMessage={resendMessage}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n : (\n <IncomingFileMessage\n userId={userId}\n message={message}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\n);\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const { url } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const [menuDisplaying, setMenuDisplaying] = useState(false);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showReactionAddButton = useReaction\n && emojiAllMap\n && (emojiAllMap.size > 0)\n && getIsSentFromSendingStatus(message);\n const showEmojiReactions = isMessageSent\n && useReaction\n && message.reactions\n && (message.reactions.length > 0)\n && getIsSentFromSendingStatus(message);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className=\"sendbird-file-message__outgoing\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-file-message__outgoing--inner\">\n <div className=\"sendbird-file-message__outgoing__left-padding\">\n <div\n className=\"sendbird-file-message__outgoing__left-padding__more\"\n ref={parentContainRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={menuRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={menuRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n </MenuItem>\n )\n }\n <MenuItem onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n );\n }}\n />\n {\n showReactionAddButton && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddButtonRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddButtonRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n );\n }}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive || menuDisplaying) && (\n <div className=\"sendbird-file-message__outgoing__left-padding__status\">\n <MessageStatus\n message={message}\n status={status}\n />\n </div>\n )\n }\n </div>\n <div className=\"sendbird-file-message__outgoing__tooltip\">\n <div className=\"sendbird-file-message__outgoing__tooltip__inner\">\n {\n checkFileType(url)\n ? (\n <div className=\"sendbird-file-message__outgoing__tooltip__icon-box\">\n <Icon\n className=\"sendbird-file-message__outgoing__tooltip__icon-box__icon\"\n type={checkFileType(url)}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </div>\n )\n : null\n }\n <TextButton\n className=\"sendbird-file-message__outgoing__tooltip__text\"\n onClick={openFileUrl}\n color={LabelColors.ONCONTENT_1}\n >\n <Label\n type={LabelTypography.BODY_1}\n color={LabelColors.ONCONTENT_1}\n >\n {truncate(message.name || message.url, MAX_TRUNCATE_LENGTH)}\n </Label>\n </TextButton>\n </div>\n {\n showEmojiReactions && (\n <EmojiReactions\n className=\"sendbird-file-message__outgoing__tooltip__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const [menuDisplaying, setMenuDisplaying] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className=\"sendbird-file-message__incoming\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-file-message__incoming--inner\">\n <div className=\"sendbird-file-message__incoming__body\">\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n ref={avatarRef}\n onClick={() => {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__incoming__body__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={avatarRef}\n parentContainRef={avatarRef}\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n {\n !chainTop && (\n <Label\n className=\"sendbird-file-message__incoming__body__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message)}\n </Label>\n )\n }\n <div className=\"sendbird-file-message__incoming__body__tooltip\">\n <div className=\"sendbird-file-message__incoming__body__tooltip__inner\">\n {\n checkFileType(message.url)\n ? (\n <div className=\"sendbird-file-message__incoming__body__tooltip__icon-box\">\n <Icon\n className=\"sendbird-file-message__incoming__body__tooltip__icon-box__icon\"\n type={checkFileType(message.url)}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </div>\n )\n : null\n }\n <TextButton\n className=\"sendbird-file-message__incoming__body__tooltip__text\"\n onClick={openFileUrl}\n >\n <Label\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {truncate(message.name || message.url, MAX_TRUNCATE_LENGTH)}\n </Label>\n </TextButton>\n </div>\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n <EmojiReactions\n className=\"sendbird-file-message__incoming__body__tooltip__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n <div className=\"sendbird-file-message__incoming__right-padding\">\n <div\n className=\"sendbird-file-message__incoming__right-padding__more\"\n ref={parentContainRef}\n style={{ top: chainTop ? 6 : 18 }}\n >\n {\n showReactionAddButton && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddButtonRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddButtonRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n );\n }}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive || menuDisplaying) && (\n <Label\n className=\"sendbird-file-message__incoming__right-padding__sent-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n </div>\n </div>\n </div>\n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nexport default MessageSwitch;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n <Modal\n onCancel={onCloseModal}\n onSubmit={onDeleteMessage}\n submitText=\"Delete\"\n titleText={stringSet.MODAL__DELETE_MESSAGE__TITLE}\n />\n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-unknown-message',\n `sendbird-unknown-message${isByMe ? '--outgoing' : '--incoming'}`,\n ].join(' ')}\n >\n {\n isByMe\n ? (\n <OutgoingUnknownMessage\n status={status}\n message={message}\n chainTop={chainTop}\n showRemove={showRemove}\n chainBottom={chainBottom}\n />\n )\n : (\n <IncomingUnknownMessage\n message={message}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const [menuDisplaying, setMenuDisplaying] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className=\"sendbird-outgoing-unknown-message\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-outgoing-unknown-message--inner\">\n <div className=\"sendbird-outgoing-unknown-message--left-padding\">\n <div\n className=\"sendbird-outgoing-unknown-message__more\"\n ref={parentContainRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-outgoing-unknown-message__more__menu\"\n ref={menuRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n setMenuDisplaying(true);\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close) => {\n const closeDropdown = () => {\n close();\n setMenuDisplaying(false);\n };\n return (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={menuRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => { showRemove(true); closeDropdown(); }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n );\n }}\n />\n </div>\n {\n (!chainBottom && !(mousehover || moreActive || menuDisplaying)) && (\n <div className=\"sendbird-outgoing-unknown-message__message-status\">\n <MessageStatus\n message={message}\n status={status}\n />\n </div>\n )\n }\n </div>\n <div className=\"sendbird-outgoing-unknown-message__body\">\n <div className=\"sendbird-outgoing-unknown-message__body__text-balloon\">\n <Label\n className=\"sendbird-outgoing-unknown-message__body__text-balloon__header\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n </Label>\n <Label\n className=\"sendbird-outgoing-unknown-message__body__text-balloon__description\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n </Label>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n <div\n className=\"sendbird-incoming-unknown-message\"\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-incoming-unknown-message--inner\">\n <div className=\"sendbird-incoming-unknown-message__left\">\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n className=\"sendbird-incoming-unknown-message__left__sender-profile-image\"\n ref={avatarRef}\n src={sender.profileUrl}\n alt=\"sender-profile-image\"\n width=\"28px\"\n height=\"28px\"\n onClick={() => {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n /**\n * parentRef: For catching location(x, y) of MenuItems\n * parentContainRef: For toggling more options(menus & reactions)\n */\n parentRef={avatarRef}\n parentContainRef={avatarRef}\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n </div>\n <div className=\"sendbird-incoming-unknown-message__body\">\n {\n !chainTop && (\n <Label\n className=\"sendbird-incoming-unknown-message__body__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {sender.nickname || stringSet.NO_NAME}\n </Label>\n )\n }\n <div className=\"sendbird-incoming-unknown-message__body__text-balloon\">\n <Label\n className=\"sendbird-incoming-unknown-message__body__text-balloon__header\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n </Label>\n <Label\n className=\"sendbird-incoming-unknown-message__body__text-balloon__description\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n </Label>\n </div>\n </div>\n <div className=\"sendbird-incoming-unknown-message--right-padding\">\n {\n !chainBottom && (\n <Label\n className=\"sendbird-incoming-unknown-message__sent-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getMessageCreatedAt(message)}\n </Label>\n )\n }\n </div>\n </div>\n </div>\n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport const getIsSentFromSendingStatus = (message = {}) => {\n if (message.sendingStatus && typeof message.sendingStatus === 'string') {\n return message.sendingStatus === 'none' || message.sendingStatus === 'succeeded';\n }\n return false;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n getIsSentFromSendingStatus,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n generateMockMessage,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n incoming = false,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const WORD_TYPOGRAPHY = LabelTypography.BODY_1;\n const WORD_COLOR = incoming ? LabelColors.ONBACKGROUND_1 : LabelColors.ONCONTENT_1;\n const EDITED_COLOR = incoming ? LabelColors.ONBACKGROUND_2 : LabelColors.ONCONTENT_2;\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n <LinkLabel\n key={uuidv4()}\n className={className}\n src={word}\n type={WORD_TYPOGRAPHY}\n color={WORD_COLOR}\n >\n {word}\n </LinkLabel>\n )\n : (\n <Label\n key={uuidv4()}\n className={className}\n type={WORD_TYPOGRAPHY}\n color={WORD_COLOR}\n >\n {word}\n </Label>\n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n <Label\n key={uuidv4()}\n className={className}\n type={WORD_TYPOGRAPHY}\n color={EDITED_COLOR}\n >\n {stringSet.MESSAGE_EDITED}\n </Label>,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n getIsSentFromSendingStatus,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n className,\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n const outoingMemoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const incomingMemoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n incoming: true,\n });\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-og-message',\n `sendbird-og-message${isByMe ? '--outgoing' : '--incoming'}`,\n ].join(' ')}\n >\n {\n isByMe\n ? (\n <OutgoingOGMessage\n status={status}\n userId={userId}\n message={message}\n disabled={disabled}\n openLink={openLink}\n showEdit={showEdit}\n chainTop={chainTop}\n showRemove={showRemove}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n memoizedMessageText={outoingMemoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n : (\n <IncomingOGMessage\n userId={userId}\n message={message}\n openLink={openLink}\n chainTop={chainTop}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedMessageText={incomingMemoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const { stringSet } = useContext(LocalizationContext);\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = useReaction\n && message.reactions\n && message.reactions.length > 0\n && getIsSentFromSendingStatus(message);\n\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const parentRefMenus = useRef(null);\n const parentRefReactions = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className=\"sendbird-outgoing-og-message\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORAML_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORAML_PADDING,\n }}\n >\n <div className=\"sendbird-outgoing-og-message--inner\">\n <div className=\"sendbird-outgoing-og-message--left-padding\">\n <div className=\"sendbird-outgoing-og-message__more\" ref={parentContainRef}>\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-outgoing-og-message__more__menu\"\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRefMenus}\n // for catching location(x, y) of MenuItems\n parentContainRef={parentContainRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n isMessageSent && (\n <MenuItem\n className=\"sendbird-outgoing-og-message__more__menu__copy\"\n onClick={() => {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n </MenuItem>\n )\n }\n {\n isMessageSent && (\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n </MenuItem>\n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n </MenuItem>\n )\n }\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-outgoing-og-message__more__add-reaction\"\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <div className=\"sendbird-outgoing-og-message__message-status\">\n <MessageStatus\n message={message}\n status={status}\n />\n </div>\n )\n }\n </div>\n <div className=\"sendbird-outgoing-og-message--body\">\n <div className=\"sendbird-outgoing-og-message__text-balloon\">\n <MemoizedMessageText />\n </div>\n <div\n className={[\n 'sendbird-outgoing-og-message__thumbnail',\n checkOGIsEnalbed(message) ? '' : 'sendbird-outgoing-og-message__thumbnail--disabled',\n ].join(' ')}\n role=\"button\"\n onClick={openLink}\n onKeyDown={openLink}\n tabIndex={0}\n >\n {\n defaultImage && (\n <ImageRenderer\n className=\"sendbird-outgoing-og-message__thumbnail__image\"\n url={defaultImage.url || ''}\n alt={defaultImage.alt}\n width=\"320px\"\n height=\"180px\"\n defaultComponent={(\n <div className=\"sendbird-outgoing-og-message__thumbnail__image__placeholder\">\n <Icon\n type={IconTypes.THUMBNAIL_NONE}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n )}\n />\n )\n }\n </div>\n <div\n className={[\n 'sendbird-outgoing-og-message__og-tag',\n checkOGIsEnalbed(message) ? '' : 'sendbird-outgoing-og-message__og-tag--disabled',\n ].join(' ')}\n role=\"button\"\n onClick={openLink}\n onKeyDown={openLink}\n tabIndex={0}\n >\n {\n ogMetaData.title && (\n <div className=\"sendbird-outgoing-og-message__og-tag__title\">\n <Label type={LabelTypography.SUBTITLE_2} color={LabelColors.ONBACKGROUND_1}>\n {ogMetaData.title}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.description && (\n <div className=\"sendbird-outgoing-og-message__og-tag__description\">\n <Label\n className=\"sendbird-outgoing-og-message__og-tag__description__label\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {ogMetaData.description}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.url && (\n <Label\n className=\"sendbird-outgoing-og-message__og-tag__url\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {ogMetaData.url}\n </Label>\n )\n }\n {\n showEmojiReactions\n && (\n <div\n className=\"sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper\"\n role=\"button\"\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n tabIndex={0}\n >\n <EmojiReactions\n className=\"sendbird-outgoing-og-message__og-tag__emoji-reactions\"\n userId={userId}\n message={message}\n membersMap={membersMap}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n </div>\n )\n }\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n <div\n className=\"sendbird-incoming-og-message\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORAML_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORAML_PADDING,\n }}\n >\n <div className=\"sendbird-incoming-og-message--inner\">\n <div className=\"sendbird-incoming-og-message--body\">\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n ref={avatarRef}\n onClick={() => {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-incoming-og-message__avatar\"\n src={getSenderProfileUrl(message)}\n alt=\"sender-profile-image\"\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n {\n !chainTop && (\n <Label\n className=\"sendbird-incoming-og-message__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message)}\n </Label>\n )\n }\n <div className=\"sendbird-incoming-og-message__text-balloon\">\n <MemoizedMessageText />\n </div>\n <div\n className={[\n 'sendbird-incoming-og-message__thumbnail',\n checkOGIsEnalbed(message) ? '' : 'sendbird-incoming-og-message__thumbnail--disabled',\n ].join(' ')}\n role=\"button\"\n onClick={openLink}\n onKeyDown={openLink}\n tabIndex={0}\n >\n {\n defaultImage && (\n <ImageRenderer\n url={defaultImage.url || ''}\n alt={defaultImage.alt || ''}\n className=\"sendbird-incoming-og-message__thumbnail__image\"\n width=\"320px\"\n height=\"180px\"\n defaultComponent={(\n <div className=\"sendbird-incoming-og-message__thumbnail__image__placeholder\">\n <Icon\n type={IconTypes.THUMBNAIL_NONE}\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n )}\n />\n )\n }\n </div>\n <div\n className={[\n 'sendbird-incoming-og-message__og-tag',\n checkOGIsEnalbed(message) ? '' : 'sendbird-incoming-og-message__og-tag--disabled',\n ].join(' ')}\n role=\"button\"\n onClick={openLink}\n onKeyDown={openLink}\n tabIndex={0}\n >\n {\n ogMetaData.title && (\n <div className=\"sendbird-incoming-og-message__og-tag__title\">\n <Label\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {ogMetaData.title}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.description && (\n <div className=\"sendbird-incoming-og-message__og-tag__description\">\n <Label\n className=\"sendbird-incoming-og-message__og-tag__description__label\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {ogMetaData.description}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.url && (\n <div className=\"sendbird-incoming-og-message__og-tag__url\">\n <Label\n className=\"sendbird-incoming-og-message__og-tag__url__label\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {ogMetaData.url}\n </Label>\n </div>\n )\n }\n {\n showEmojiReactions\n && (\n <div\n className=\"sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper\"\n role=\"button\"\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n tabIndex={0}\n >\n <EmojiReactions\n className=\"sendbird-incoming-og-message__og-tag__emoji-reactions\"\n userId={userId}\n message={message}\n membersMap={membersMap}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n </div>\n )\n }\n </div>\n </div>\n <div className=\"sendbird-incoming-og-message--right-padding\">\n {\n !chainBottom && !(mousehover || moreActive) && (\n <Label\n className=\"sendbird-incoming-og-message__sent-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n <div className=\"sendbird-incoming-og-message__more\" ref={parentContainRef}>\n {\n showReactionAddButton\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n message={message}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRefMenus}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n >\n <MenuItem\n className=\"sendbird-incoming-og-message__more__menu__copy\"\n onClick={() => { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n </MenuItem>\n </MenuItems>\n )}\n />\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, {\n useState,\n useRef,\n useMemo,\n useLayoutEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n highLightedMessageId,\n toggleReaction,\n memoizedEmojiListItems,\n renderCustomMessage,\n currentGroupChannel,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const editMessageInputRef = useRef(null);\n const useMessageScrollRef = useRef(null);\n\n useLayoutEffect(() => {\n if (highLightedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({\n block: 'center',\n inline: 'center',\n });\n setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n }\n } else {\n setIsAnimated(false);\n }\n }, [highLightedMessageId, useMessageScrollRef.current, message.messageId]);\n const RenderedMessage = useMemo(() => {\n if (renderCustomMessage) {\n return renderCustomMessage(message, currentGroupChannel, chainTop, chainBottom);\n // Let's change this to object type on next major version up\n }\n return null;\n }, [message, message.message, renderCustomMessage]);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (RenderedMessage) {\n return (\n <div\n ref={useMessageScrollRef}\n className={`\n sendbird-msg-hoc sendbird-msg--scroll-ref\n ${isAnimated ? 'sendbird-msg-hoc__highlighted' : ''}\n `}\n >\n {/* date-seperator */}\n {\n hasSeperator && (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy')}\n </Label>\n </DateSeparator>\n )\n }\n <RenderedMessage message={message} />\n </div>\n );\n }\n\n if (showEdit) {\n return (\n <MessageInput\n isEdit\n disabled={editDisabled}\n ref={editMessageInputRef}\n name={message.messageId}\n onSendMessage={updateMessage}\n onCancelEdit={() => { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n <div\n ref={useMessageScrollRef}\n className={`\n sendbird-msg-hoc sendbird-msg--scroll-ref\n ${isAnimated ? 'sendbird-msg-hoc__animated' : ''}\n `}\n >\n {/* date-seperator */}\n {\n hasSeperator && (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy')}\n </Label>\n </DateSeparator>\n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: <AdminMessage message={message} />,\n [MessageTypes.FILE]: (\n <FileMessage\n message={message}\n userId={userId}\n disabled={disabled}\n isByMe={isByMe}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n [MessageTypes.OG]: (\n <OGMessage\n message={message}\n status={status}\n isByMe={isByMe}\n userId={userId}\n showEdit={setShowEdit}\n disabled={disabled}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n [MessageTypes.THUMBNAIL]: (\n <ThumbnailMessage\n disabled={disabled}\n message={message}\n userId={userId}\n isByMe={isByMe}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n onClick={setShowFileViewer}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n [MessageTypes.USER]: (\n <Message\n message={message}\n disabled={disabled}\n isByMe={isByMe}\n userId={userId}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n onCloseModal={() => setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n onClose={() => setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n <UnknownMessage\n message={message}\n status={status}\n isByMe={isByMe}\n showRemove={setShowRemove}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n highLightedMessageId: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n renderCustomMessage: PropTypes.func,\n currentGroupChannel: PropTypes.shape({}),\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n renderCustomMessage: null,\n currentGroupChannel: {},\n message: {},\n hasSeperator: false,\n disabled: false,\n highLightedMessageId: null,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n onScrollDown,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes && nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n try {\n first.scrollIntoView();\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (clientHeight + scrollTop === scrollHeight) {\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const last = nodes && nodes[nodes.length - 1];\n onScrollDown(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n try {\n last.scrollIntoView();\n } catch (error) {\n //\n }\n }\n });\n }\n\n // do this later\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderCustomMessage,\n renderChatItem,\n highLightedMessageId,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n showScrollBot,\n onClickScrollBot,\n } = this.props;\n\n if (allMessages.length < 1) {\n return (\n <PlaceHolder\n className=\"sendbird-conversation__no-messages\"\n type={PlaceHolderTypes.NO_MESSAGES}\n />\n );\n }\n\n return (\n <div className=\"sendbird-conversation__messages\">\n <div\n ref={scrollRef}\n className=\"sendbird-conversation__scroll-container\"\n onScroll={this.onScroll}\n >\n <div className=\"sendbird-conversation__padding\" />\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n <div className=\"sendbird-conversation__messages-padding\">\n {\n allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n <div\n key={m.messageId || m.reqId}\n className=\"sendbird-msg--scroll-ref\"\n >\n {\n renderChatItem({\n message: m,\n highLightedMessageId,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n chainTop,\n chainBottom,\n })\n }\n </div>\n );\n }\n\n return (\n <MessageHOC\n highLightedMessageId={highLightedMessageId}\n renderCustomMessage={renderCustomMessage}\n key={m.messageId || m.reqId}\n userId={userId}\n status={readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel)}\n // show status for pending/failed messages\n message={m}\n currentGroupChannel={currentGroupChannel}\n disabled={disabled}\n membersMap={membersMap}\n chainTop={chainTop}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n editDisabled={editDisabled}\n hasSeperator={hasSeperator}\n chainBottom={chainBottom}\n updateMessage={updateMessage}\n deleteMessage={deleteMessage}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n );\n },\n )\n }\n </div>\n </div>\n {\n showScrollBot && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n onScrollDown: PropTypes.func,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n highLightedMessageId: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n renderChatItem: PropTypes.element,\n renderCustomMessage: PropTypes.func,\n useReaction: PropTypes.bool,\n showScrollBot: PropTypes.bool,\n onClickScrollBot: PropTypes.func,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n userId: '',\n renderCustomMessage: null,\n renderChatItem: null,\n highLightedMessageId: null,\n onScroll: null,\n onScrollDown: null,\n useReaction: true,\n emojiContainer: {},\n showScrollBot: false,\n onClickScrollBot: () => {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n <div className=\"sendbird-notification\" onClick={onClick}>\n <Label className=\"sendbird-notification__text\" color={LabelColors.ONCONTENT_1} type={LabelTypography.CAPTION_2}>\n {`${count} `}\n {stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE}\n {` ${timeArray.join(' ')}`}\n </Label>\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.CONTENT}\n />\n </div>\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n <div className=\"sendbird-notification sendbird-notification--frozen\">\n <Label\n className=\"sendbird-notification__text\"\n type={LabelTypography.CAPTION_2}\n >\n {stringSet.CHANNEL_FROZEN}\n </Label>\n </div>\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n <TypingIndicatorText members={typingMembers} />\n </Label>\n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\n\nimport { RenderGroupChannelMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: Sendbird.GroupChannel;\n user: Sendbird.User;\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderGroupChannelMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject<HTMLInputElement>): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n <MessageInput\n placeholder={(utils.isDisabledBecauseFrozen(channel)\n && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel)\n && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED\n )\n }\n ref={ref}\n disabled={disabled}\n onStartTyping={() => {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n <div className=\"sendbird-connection-status\">\n <Label\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.TRYING_TO_CONNECT}\n </Label>\n <Icon\n type={IconTypes.DISCONNECTED}\n fillColor={IconColors.SENT}\n width=\"14px\"\n height=\"14px\"\n />\n </div>\n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nconst noop = () => { };\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isMuted,\n theme,\n showSearchIcon,\n onSearchClick,\n onActionClick,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n <div className=\"sendbird-chat-header\">\n <div className=\"sendbird-chat-header__left\">\n <ChannelAvatar\n theme={theme}\n channel={currentGroupChannel}\n userId={userId}\n height={32}\n width={32}\n />\n <Label\n className=\"sendbird-chat-header__left__title\"\n type={LabelTypography.H_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n </Label>\n <Label\n className=\"sendbird-chat-header__left__subtitle\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {subTitle}\n </Label>\n </div>\n <div className=\"sendbird-chat-header__right\">\n {\n ((typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted))\n && (\n <Icon\n className=\"sendbird-chat-header__right__mute\"\n type={IconTypes.NOTIFICATIONS_OFF_FILLED}\n width=\"24px\"\n height=\"24px\"\n />\n )\n }\n {\n showSearchIcon && (\n <IconButton\n className=\"sendbird-chat-header__right__search\"\n width=\"32px\"\n height=\"32px\"\n onClick={onSearchClick}\n >\n <Icon\n type={IconTypes.SEARCH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )\n }\n <IconButton\n className=\"sendbird-chat-header__right__info\"\n width=\"32px\"\n height=\"32px\"\n onClick={onActionClick}\n >\n <Icon\n type={IconTypes.INFO}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n </div>\n </div>\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n theme: PropTypes.string,\n showSearchIcon: PropTypes.bool,\n onSearchClick: PropTypes.func,\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n currentUser: {},\n title: '',\n subTitle: '',\n isMuted: false,\n theme: 'light',\n showSearchIcon: false,\n onSearchClick: noop,\n onActionClick: noop,\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useScrollDownCallback from './hooks/useScrollDownCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n imageCompression,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n startingPoint,\n highlightedMessage,\n useReaction,\n showSearchIcon,\n onSearchClick,\n renderChatItem,\n renderChatHeader,\n renderCustomMessage,\n renderUserProfile,\n disableUserProfile,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery has been deprecated, please use messageListParams instead');\n }\n\n const [intialTimeStamp, setIntialTimeStamp] = useState(startingPoint);\n useEffect(() => {\n setIntialTimeStamp(startingPoint);\n }, [startingPoint, channelUrl]);\n const [highLightedMessageId, setHighLightedMessageId] = useState(highlightedMessage);\n useEffect(() => {\n setHighLightedMessageId(highlightedMessage);\n }, [highlightedMessage]);\n const userFilledMessageListQuery = queries.messageListParams;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n initialized,\n unreadCount,\n unreadSince,\n isInvalid,\n currentGroupChannel = {},\n hasMore,\n lastMessageTimeStamp,\n hasMoreToBottom,\n latestFetchedMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast, isSuper } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n appInfo.isUsingReaction && !isBroadcast && !isSuper && useReaction\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n const showScrollBot = hasMoreToBottom;\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n // Scrollup is default scroll for channel\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n // onScrollDownCallback is added for navigation to different timestamps on messageSearch\n // hasMoreToBottom, onScrollDownCallback -> scroll down\n // hasMore, onScrollCallback -> scroll up(default behavior)\n const onScrollDownCallback = useScrollDownCallback({\n currentGroupChannel,\n latestFetchedMessageTimeStamp,\n userFilledMessageListQuery,\n hasMoreToBottom,\n }, {\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n // this hook sets currentGroupChannel asynchronously\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, hasMoreToBottom },\n {\n messagesDispatcher,\n sdk,\n logger,\n scrollRef,\n },\n );\n\n // hook that fetches messages when channel changes\n // to be clear here useGetChannel sets currentGroupChannel\n // and useInitialMessagesFetch executes when currentGroupChannel changes\n // p.s This one executes on intialTimeStamp change too\n useInitialMessagesFetch({\n currentGroupChannel,\n userFilledMessageListQuery,\n intialTimeStamp,\n }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n // callbacks for Message CURD actions\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage, imageCompression },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (!channelUrl) {\n return (<div className=\"sendbird-conversation\"><PlaceHolder type={PlaceHolderTypes.NO_CHANNELS} /></div>);\n }\n if (isInvalid) {\n return (<div className=\"sendbird-conversation\"><PlaceHolder type={PlaceHolderTypes.WRONG} /></div>);\n }\n if (sdkError) {\n return (\n <div className=\"sendbird-conversation\">\n <PlaceHolder\n type={PlaceHolderTypes.WRONG}\n retryToConnect={() => {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n </div>\n );\n }\n return (\n <UserProfileProvider\n className=\"sendbird-conversation\"\n disableUserProfile={userDefinedDisableUserProfile}\n renderUserProfile={userDefinedRenderProfile}\n >\n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n <ChatHeader\n theme={theme}\n currentGroupChannel={currentGroupChannel}\n currentUser={user}\n showSearchIcon={showSearchIcon}\n onSearchClick={onSearchClick}\n onActionClick={onChatHeaderActionClick}\n subTitle={currentGroupChannel.members && currentGroupChannel.members.length !== 2}\n isMuted={false}\n />\n )\n }\n {\n isFrozen && (\n <FrozenNotification />\n )\n }\n {\n unreadCount > 0 && (\n <Notification\n count={unreadCount}\n onClick={() => {\n if (intialTimeStamp) {\n setIntialTimeStamp(null);\n setHighLightedMessageId(null);\n } else {\n utils.scrollIntoLast();\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }\n }}\n time={unreadSince}\n />\n )\n }\n {\n loading\n ? (\n <div className=\"sendbird-conversation\">\n <PlaceHolder type={PlaceHolderTypes.LOADING} />\n </div>\n ) : (\n <ConversationScroll\n swapParams={\n sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback()\n }\n highLightedMessageId={highLightedMessageId}\n userId={userId}\n hasMore={hasMore}\n disabled={!isOnline}\n onScroll={onScrollCallback}\n onScrollDown={onScrollDownCallback}\n scrollRef={scrollRef}\n readStatus={readStatus}\n useReaction={usingReaction}\n allMessages={allMessages}\n emojiAllMap={emojiAllMap}\n membersMap={nicknamesMap}\n editDisabled={utils.isDisabledBecauseFrozen(currentGroupChannel)}\n deleteMessage={deleteMessage}\n updateMessage={updateMessage}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n emojiContainer={emojiContainer}\n renderChatItem={renderChatItem}\n showScrollBot={showScrollBot}\n onClickScrollBot={() => {\n setIntialTimeStamp(null);\n setHighLightedMessageId(null);\n }}\n renderCustomMessage={renderCustomMessage}\n useMessageGrouping={useMessageGrouping}\n messagesDispatcher={messagesDispatcher}\n currentGroupChannel={currentGroupChannel}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n <div className=\"sendbird-conversation__footer\">\n <MessageInputWrapper\n channel={currentGroupChannel}\n user={user}\n ref={messageInputRef}\n onSendMessage={onSendMessage}\n onFileUpload={onSendFileMessage}\n renderMessageInput={renderMessageInput}\n isOnline={isOnline}\n initialized={initialized}\n />\n <div className=\"sendbird-conversation__typing-indicator\">\n <TypingIndicator channelUrl={channelUrl} sb={sdk} logger={logger} />\n </div>\n {\n !isOnline && (\n <ConnectionStatus sdkInit={sdkInit} sb={sdk} logger={logger} />\n )\n }\n </div>\n </UserProfileProvider>\n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n imageCompression: PropTypes.shape({\n compressionRate: PropTypes.number,\n resizingWidth: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n resizingHeight: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n startingPoint: PropTypes.number,\n highlightedMessage: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderCustomMessage: PropTypes.func,\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n showSearchIcon: PropTypes.bool,\n onSearchClick: PropTypes.func,\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n startingPoint: null,\n highlightedMessage: null,\n renderChatItem: null,\n renderCustomMessage: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n showSearchIcon: false,\n onSearchClick: noop,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n"],"names":["RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","GET_NEXT_MESSAGES_SUCESS","GET_NEXT_MESSAGES_FAILURE","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","UPDATE_UNREAD_COUNT","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","MESSAGE_LIST_PARAMS_CHANGED","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","getMessageType","message","isUserMessage","messageType","ogMetaData","isAdminMessage","isFileMessage","isImage","type","isVideo","UNDEFINED","scrollIntoLast","intialTry","MAX_TRIES","currentTry","scrollDOM","document","querySelector","scrollTop","scrollHeight","error","setTimeout","pubSubHandleRemover","subscriber","forEach","s","remove","pubSubHandler","channelUrl","pubSub","dispatcher","Map","subscribe","set","topics","msg","channel","url","channelActions","payload","fromSelector","messageId","getParsedStatus","currentGroupChannel","requestState","MessageStatusType","SENT","unreadCount","getReadReceipt","READ","isDelivered","getDeliveryReceipt","DELIVERED","isOperator","groupChannel","myRole","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","length","emojis","emojiIndex","push","getEmojisFromEmojiContainer","emojiCategoryId","filter","emojiCategory","id","getAllEmojisMapFromEmojiContainer","allEmojisMap","key","getNicknamesMapFromMembers","members","nicknamesMap","memberIndex","userId","nickname","getMessageCreatedAt","format","createdAt","isSameGroup","comparingMessage","sender","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","hasOwnProperty","property","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","map","lastIndexOf","messages","splice","pxToNumber","px","parsed","Number","parseFloat","isNaN","initialized","loading","hasMore","lastMessageTimeStamp","hasMoreToBottom","latestFetchedMessageTimeStamp","readStatus","unreadSince","isInvalid","messageListParams","reducer","state","action","actionTypes","initialState","m","receivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","find","compareIds","hasHasMoreToBottom","hasLatestFetchedMessageTimeStamp","newMessages","reqId","sort","a","b","failed","currentGroupChannelUrl","scrollToEnd","indexOf","filterMessageListParams","Date","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","sdk","logger","scrollRef","useEffect","messageReceiverId","uuidv4","ChannelHandler","info","onMessageReceived","current","offsetHeight","messageActions","markAsRead","warning","onMessageUpdated","onMessageDeleted","_","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","onUserUnmuted","onUserBanned","onOperatorUpdated","addChannelHandler","removeChannelHandler","useSetChannel","GroupChannel","getChannel","then","messageActionTypes","catch","e","getAllEmoji","emojiContainer_","err","PREV_RESULT_SIZE","NEXT_RESULT_SIZE","getLatestMessageTimeStamp","latestMessage","useInitialMessagesFetch","userFilledMessageListQuery","intialTimeStamp","MessageListParams","getMessagesByTimestamp","prevResultSize","isInclusive","includeReplies","includeReaction","Object","keys","nextResultSize","nextMessageListParams","getTime","nextMessages","finally","utils","useHandleReconnect","isOnline","wasOffline","appInfo","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","cb","hasMoreMessages","lastMessageTs","RESULT_SIZE","useScrollDownCallback","messagesLength","useDeleteMessageCallback","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","params","UserMessageParams","createCustomPrams","updateUserMessage","r","swapParams","getErrorFirstCallback","publish","useResendMessageCallback","failedMessage","file","isResendable","resendUserMessage","resendFileMessage","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","value","trim","pendingMsg","sendUserMessage","res","useSendFileMessageCallback","onBeforeSendFileMessage","imageCompression","compressionRate","resizingWidth","resizingHeight","createCustomParams","compressibleFileType","compressibleRatio","compressibleDiamensions","canCompressImage","file_","FileMessageParams","image","createElement","src","URL","createObjectURL","onload","revokeObjectURL","canvas","imageWdith","naturalWidth","width","imageHeight","naturalHeight","height","targetWidth","targetHeight","context","getContext","drawImage","toBlob","newImageBlob","compressedFile","File","name","pendingMessage","sendFileMessage","response","localUrl","useSetReadStatus","setReadStatus","allReadStatus","reduce","accumulator","handler","handleMessageStatus","c","onDeliveryReceiptUpdated","onReadReceiptUpdated","handlerId","ReactionButton","React","forwardRef","props","ref","className","selected","onClick","children","Array","isArray","join","slice","propTypes","PropTypes","oneOfType","string","arrayOf","number","bool","func","element","isRequired","defaultProps","useMemoizedEmojiListItems","toggleReaction","emojiAllList","useMemo","parentRef","parentContainRef","closeDropdown","spaceFromTrigger","emoji","reactedReaction","reactions","reaction","isReacted","userIds","IconTypes","QUESTION","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","status","label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_2","icon","SPINNER","IconColors","PRIMARY","DONE","DONE_ALL","ERROR","shape","friendName","profileUrl","ReactionBadge","count","isAdd","getClassNameTail","ONBACKGROUND_1","Tooltip","CAPTION_2","ONCONTENT_1","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","useState","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","left","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","emojiReactionAddRef","messageReactions","useContext","LocalizationContext","stringSet","emojiUrl","get","reactedUserCount","reactedByMe","nicknames","currentUserId","TOOLTIP__UNKOWN_USER","stringSetForMe","TOOLTIP__AND_YOU","TOOLTIP__YOU","size","toggleDropdown","ON_BACKGROUND_3","EMOJI_MORE","y","instanceOf","useMemoizedMessageText","updatedAt","incoming","WORD_TYPOGRAPHY","BODY_1","EDITED_COLOR","ONCONTENT_2","splitMessage","split","matchedMessage","word","MESSAGE_EDITED","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","addEventListener","removeEventListener","noop","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","disabled","showEdit","showRemove","chainTop","chainBottom","outgoingMemoizedMessageText","incomingMemoizedMessageText","objectOf","array","object","OutgoingUserMessage","memoizedMessageText","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","mousehover","setMousehover","moreActive","setMoreActive","menuDisplaying","setMenuDisplaying","isMessageSent","getIsSentFromStatus","showReactionAddButton","getIsSentFromSendingStatus","handleMoreIconClick","handleMoreIconBlur","paddingTop","paddingBottom","MORE","CONTENT_INVERSE","close","copyToClipboard","IncomingUserMessage","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","showEmojiReactions","getSenderProfileUrl","user","UserProfile","getSenderName","top","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","thumbnails","thumbnailUrl","menuRef","reactionAddRef","memorizedThumbnailPlaceHolder","iconType","style","ON_BACKGROUND_2","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","PLAY","PHOTO","isGif","GIF","unSupported","UNKNOWN__UNKNOWN_MESSAGE_TYPE","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","fileUrl","result","imageFile","audioFile","test","FILE_DOCUMENT","FILE_AUDIO","MessageSwitch","OutgoingFileMessage","openFileUrl","window","open","reactionAddButtonRef","truncate","IncomingFileMessage","RemoveMessage","onCloseModal","onDeleteMessage","MODAL__DELETE_MESSAGE__TITLE","UnknownMessage","OutgoingUnknownMessage","UNKNOWN__CANNOT_READ_MESSAGE","IncomingUnknownMessage","NO_NAME","createUrlTester","regexp","clipboardData","setData","queryCommandSupported","textarea","textContent","position","body","appendChild","select","execCommand","ex","removeChild","checkOGIsEnalbed","URL_REG","isUrl","WORD_COLOR","NORAML_PADDING","OGMessageSwitch","openLink","outoingMemoizedMessageText","OutgoingOGMessage","defaultImage","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","alt","THUMBNAIL_NONE","title","SUBTITLE_2","description","BODY_2","event","stopPropagation","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","highLightedMessageId","renderCustomMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","isAnimated","setIsAnimated","editMessageInputRef","useMessageScrollRef","useLayoutEffect","scrollIntoView","block","inline","RenderedMessage","FileMessage","OGMessage","RemoveMessageModal","isDateSeperator","ConversationScroll","onScroll","onScrollDown","target","clientHeight","nodes","querySelectorAll","first","last","renderChatItem","useMessageGrouping","showScrollBot","onClickScrollBot","PlaceHolderTypes","NO_MESSAGES","idx","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","CHEVRON_DOWN","Component","Notification","time","timeArray","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","CONTENT","FrozenNotification","CHANNEL_FROZEN","TypingIndicatorText","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","_a","onSendMessage","onFileUpload","renderMessageInput","isBroadcast","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","ConnectionStatus","TRYING_TO_CONNECT","DISCONNECTED","getChannelTitle","LabelStringSet","NO_TITLE","NO_MEMBERS","ChatHeader","currentUser","subTitle","isMuted","theme","showSearchIcon","onSearchClick","onActionClick","H_2","NOTIFICATIONS_OFF_FILLED","SEARCH","INFO","coverUrl","ConversationPanel","stores","sdkStore","userStore","config","reconnect","dispatchers","queries","startingPoint","highlightedMessage","renderChatHeader","onChatHeaderActionClick","sdkError","messageListQuery","warn","setIntialTimeStamp","setHighLightedMessageId","useReducer","messagesReducer","messagesInitialState","messagesStore","isSuper","usingReaction","userDefinedDisableUserProfile","userDefinedRenderProfile","onScrollCallback","onScrollDownCallback","useGetChannel","subScriber","onSendFileMessage","NO_CHANNELS","WRONG","LOADING","any","includeMetaArray","includeParentMessageText","includeThreadInfo","limit","reverse","senderUserIdsFilter","withSendbirdContext"],"mappings":";;;;;;;;;;;;;;AAAO,IAAMA,cAAc,GAAG,gBAAvB;AACA,IAAMC,WAAW,GAAG,aAApB;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,uBAAuB,GAAG,yBAAhC;AACA,IAAMC,wBAAwB,GAAG,0BAAjC;AAEA,IAAMC,wBAAwB,GAAG,0BAAjC;AACA,IAAMC,yBAAyB,GAAG,2BAAlC;AAEA,IAAMC,oBAAoB,GAAG,sBAA7B;AACA,IAAMC,qBAAqB,GAAG,uBAA9B;AACA,IAAMC,sBAAsB,GAAG,wBAA/B;AAEA,IAAMC,sBAAsB,GAAG,wBAA/B;AAEA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,kBAAkB,GAAG,oBAA3B;AACA,IAAMC,kBAAkB,GAAG,oBAA3B;AACA,IAAMC,4BAA4B,GAAG,8BAArC;AAEA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,YAAY,GAAG,cAArB;AAEA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,eAAe,GAAG,iBAAxB;AAEA,IAAMC,2BAA2B,GAAG,6BAApC;;AC3BA,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,KAAK,EAAE,OADmB;AAE1BC,EAAAA,IAAI,EAAE,MAFoB;AAG1BC,EAAAA,IAAI,EAAE,MAHoB;AAI1BC,EAAAA,SAAS,EAAE,WAJe;AAK1BC,EAAAA,EAAE,EAAE;AALsB,CAArB;AAQA,IAAMC,oBAAoB,GAAG;AAClCC,EAAAA,IAAI,EAAE,MAD4B;AAElCC,EAAAA,SAAS,EAAE,WAFuB;AAGlCC,EAAAA,MAAM,EAAE,QAH0B;AAIlCC,EAAAA,OAAO,EAAE;AAJyB,CAA7B;AAOA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,OAAD,EAAa;AACzC,MAAKA,OAAO,CAACC,aAAR,IAAyBD,OAAO,CAACC,aAAR,EAA1B,IAAsDD,OAAO,CAACE,WAAR,KAAwB,MAAlF,EAA0F;AACxF,WAAQF,OAAO,CAACG,UAAT,GACHf,YAAY,CAACK,EADV,GAEHL,YAAY,CAACE,IAFjB;AAGD;;AACD,MAAIU,OAAO,CAACI,cAAR,IAA0BJ,OAAO,CAACI,cAAR,EAA9B,EAAwD;AACtD,WAAOhB,YAAY,CAACC,KAApB;AACD;;AACD,MAAKW,OAAO,CAACK,aAAR,IAAyBL,OAAO,CAACK,aAAR,EAA1B,IAAsDL,OAAO,CAACE,WAAR,KAAwB,MAAlF,EAA0F;AACxF,WAAQI,OAAO,CAACN,OAAO,CAACO,IAAT,CAAP,IAAyBC,OAAO,CAACR,OAAO,CAACO,IAAT,CAAjC,GACHnB,YAAY,CAACI,SADV,GAEHJ,YAAY,CAACG,IAFjB;AAGD;;AACD,SAAO,EAAP;AACD,CAfM;;ACVP,IAAMkB,SAAS,GAAG,WAAlB;AACA,IAAQb,WAAR,GAAuCF,oBAAvC,CAAQE,SAAR;AAAA,IAAmBC,QAAnB,GAAuCH,oBAAvC,CAAmBG,MAAnB;AAAA,IAA2BC,SAA3B,GAAuCJ,oBAAvC,CAA2BI,OAA3B;AAEO,IAAMY,cAAc,GAAG,SAAjBA,cAAiB,GAAmB;AAAA,MAAlBC,SAAkB,uEAAN,CAAM;AAC/C,MAAMC,SAAS,GAAG,EAAlB;AACA,MAAMC,UAAU,GAAGF,SAAnB;;AACA,MAAIE,UAAU,GAAGD,SAAjB,EAA4B;AAC1B;AACD;;AACD,MAAI;AACF,QAAME,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAuB,0CAAvB,CAAlB,CADE;;AAGFF,IAAAA,SAAS,CAACG,SAAV,GAAsBH,SAAS,CAACI,YAAhC;AACD,GAJD,CAIE,OAAOC,KAAP,EAAc;AACdC,IAAAA,UAAU,CAAC,YAAM;AACfV,MAAAA,cAAc,CAACG,UAAU,GAAG,CAAd,CAAd;AACD,KAFS,EAEP,MAAMA,UAFC,CAAV;AAGD;AACF,CAfM;AAiBA,IAAMQ,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAgB;AACjDA,EAAAA,UAAU,CAACC,OAAX,CAAmB,UAACC,CAAD,EAAO;AACxB,QAAI;AACFA,MAAAA,CAAC,CAACC,MAAF;AACD,KAFD,CAEE,gBAAM;AAEP;AACF,GAND;AAOD,CARM;AAUA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,UAAD,EAAaC,MAAb,EAAqBC,UAArB,EAAoC;AAC/D,MAAMP,UAAU,GAAG,IAAIQ,GAAJ,EAAnB;AACA,MAAI,CAACF,MAAD,IAAW,CAACA,MAAM,CAACG,SAAvB,EAAkC,OAAOT,UAAP;AAClCA,EAAAA,UAAU,CAACU,GAAX,CAAeC,iBAAf,EAAyCL,MAAM,CAACG,SAAP,CAAiBE,iBAAjB,EAA2C,UAACC,GAAD,EAAS;AAC3F,QAAQC,OAAR,GAA6BD,GAA7B,CAAQC,OAAR;AAAA,QAAiBnC,OAAjB,GAA6BkC,GAA7B,CAAiBlC,OAAjB;AACAU,IAAAA,cAAc;;AACd,QAAIyB,OAAO,IAAKR,UAAU,KAAKQ,OAAO,CAACC,GAAvC,EAA6C;AAC3CP,MAAAA,UAAU,CAAC;AACTtB,QAAAA,IAAI,EAAE8B,qBADG;AAETC,QAAAA,OAAO,EAAEtC;AAFA,OAAD,CAAV;AAID;AACF,GATwC,CAAzC;AAUAsB,EAAAA,UAAU,CAACU,GAAX,CAAeC,kBAAf,EAA0CL,MAAM,CAACG,SAAP,CAAiBE,kBAAjB,EAA4C,UAACC,GAAD,EAAS;AAC7F,QAAQC,OAAR,GAA6BD,GAA7B,CAAQC,OAAR;AAAA,QAAiBnC,OAAjB,GAA6BkC,GAA7B,CAAiBlC,OAAjB;;AACA,QAAImC,OAAO,IAAKR,UAAU,KAAKQ,OAAO,CAACC,GAAvC,EAA6C;AAC3CP,MAAAA,UAAU,CAAC;AACTtB,QAAAA,IAAI,EAAE8B,oBADG;AAETC,QAAAA,OAAO,EAAEtC;AAFA,OAAD,CAAV;AAID;AACF,GARyC,CAA1C;AASAsB,EAAAA,UAAU,CAACU,GAAX,CAAeC,iBAAf,EAAyCL,MAAM,CAACG,SAAP,CAAiBE,iBAAjB,EAA2C,UAACC,GAAD,EAAS;AAC3F,QAAQC,OAAR,GAA6BD,GAA7B,CAAQC,OAAR;AAAA,QAAiBnC,OAAjB,GAA6BkC,GAA7B,CAAiBlC,OAAjB;AACAU,IAAAA,cAAc;;AACd,QAAIyB,OAAO,IAAKR,UAAU,KAAKQ,OAAO,CAACC,GAAvC,EAA6C;AAC3CP,MAAAA,UAAU,CAAC;AACTtB,QAAAA,IAAI,EAAE8B,qBADG;AAETC,QAAAA,OAAO,EAAEtC;AAFA,OAAD,CAAV;AAID;AACF,GATwC,CAAzC;AAUAsB,EAAAA,UAAU,CAACU,GAAX,CAAeC,mBAAf,EAA2CL,MAAM,CAACG,SAAP,CAAiBE,mBAAjB,EAA6C,UAACC,GAAD,EAAS;AAC/F,QAAQC,OAAR,GAA2CD,GAA3C,CAAQC,OAAR;AAAA,QAAiBnC,OAAjB,GAA2CkC,GAA3C,CAAiBlC,OAAjB;AAAA,QAA0BuC,YAA1B,GAA2CL,GAA3C,CAA0BK,YAA1B;;AACA,QAAIA,YAAY,IAAIJ,OAAhB,IAA4BR,UAAU,KAAKQ,OAAO,CAACC,GAAvD,EAA6D;AAC3DP,MAAAA,UAAU,CAAC;AACTtB,QAAAA,IAAI,EAAE8B,kBADG;AAETC,QAAAA,OAAO,EAAE;AAAEH,UAAAA,OAAO,EAAPA,OAAF;AAAWnC,UAAAA,OAAO,EAAPA;AAAX;AAFA,OAAD,CAAV;AAID;AACF,GAR0C,CAA3C;AASAsB,EAAAA,UAAU,CAACU,GAAX,CAAeC,cAAf,EAAsCL,MAAM,CAACG,SAAP,CAAiBE,cAAjB,EAAwC,UAACC,GAAD,EAAS;AACrF,QAAQC,OAAR,GAA+BD,GAA/B,CAAQC,OAAR;AAAA,QAAiBK,SAAjB,GAA+BN,GAA/B,CAAiBM,SAAjB;;AACA,QAAIL,OAAO,IAAKR,UAAU,KAAKQ,OAAO,CAACC,GAAvC,EAA6C;AAC3CP,MAAAA,UAAU,CAAC;AACTtB,QAAAA,IAAI,EAAE8B,kBADG;AAETC,QAAAA,OAAO,EAAEE;AAFA,OAAD,CAAV;AAID;AACF,GARqC,CAAtC;AAUA,SAAOlB,UAAP;AACD,CApDM;AAsDA,IAAMmB,eAAe,GAAG,SAAlBA,eAAkB,CAACzC,OAAD,EAAU0C,mBAAV,EAAkC;AAC/D,MAAI1C,OAAO,CAAC2C,YAAR,KAAyB9C,QAA7B,EAAqC;AACnC,WAAO+C,iBAAiB,CAAC/C,MAAzB;AACD;;AAED,MAAIG,OAAO,CAAC2C,YAAR,KAAyB7C,SAA7B,EAAsC;AACpC,WAAO8C,iBAAiB,CAAC9C,OAAzB;AACD;;AAED,MAAIE,OAAO,CAAC2C,YAAR,KAAyB/C,WAA7B,EAAwC;AACtC,QAAI,CAAC8C,mBAAL,EAA0B;AACxB,aAAOE,iBAAiB,CAACC,IAAzB;AACD;;AAED,QAAMC,WAAW,GAAGJ,mBAAmB,CAACK,cAApB,CAAmC/C,OAAnC,CAApB;;AACA,QAAI8C,WAAW,KAAK,CAApB,EAAuB;AACrB,aAAOF,iBAAiB,CAACI,IAAzB;AACD;;AAED,QAAMC,WAAW,GAAGP,mBAAmB,CAACQ,kBAApB,CAAuClD,OAAvC,MAAoD,CAAxE;;AACA,QAAIiD,WAAJ,EAAiB;AACf,aAAOL,iBAAiB,CAACO,SAAzB;AACD;;AAED,WAAOP,iBAAiB,CAACC,IAAzB;AACD;;AAED,SAAO,IAAP;AACD,CA5BM;AA8BA,IAAMO,UAAU,GAAG,SAAbA,UAAa,GAAuB;AAAA,MAAtBC,YAAsB,uEAAP,EAAO;AAC/C,MAAQC,MAAR,GAAmBD,YAAnB,CAAQC,MAAR;AACA,SAAOA,MAAM,KAAK,UAAlB;AACD,CAHM;AAKA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,GAAuB;AAAA,MAAtBF,YAAsB,uEAAP,EAAO;AAC5D,MAAQG,QAAR,GAAqBH,YAArB,CAAQG,QAAR;AACA,SAAOA,QAAQ,IAAI,CAACJ,UAAU,CAACC,YAAD,CAA9B;AACD,CAHM;AAKA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAuB;AAAA,MAAtBJ,YAAsB,uEAAP,EAAO;AAC3D,MAAQK,YAAR,GAAyBL,YAAzB,CAAQK,YAAR;AACA,SAAOA,YAAY,KAAK,OAAxB;AACD,CAHM;AAKA,IAAMC,sCAAoC,GAAG,SAAvCA,oCAAuC;AAAA,MAACC,cAAD,uEAAkB,EAAlB;AAAA,SAClDA,cAAc,CAACC,eAAf,GAAiCD,cAAc,CAACC,eAAhD,GAAkE,EADhB;AAAA,CAA7C;AAIA,IAAMC,gCAA8B,GAAG,SAAjCA,8BAAiC,GAAyB;AAAA,MAAxBF,cAAwB,uEAAP,EAAO;AACrE,8BAAiCA,cAAjC,CAAQC,eAAR;AAAA,MAAQA,eAAR,sCAA0B,EAA1B;AACA,MAAME,SAAS,GAAG,EAAlB;;AAEA,OAAK,IAAIC,aAAa,GAAG,CAAzB,EAA4BA,aAAa,GAAGH,eAAe,CAACI,MAA5D,EAAoED,aAAa,IAAI,CAArF,EAAwF;AACtF,QAAQE,MAAR,GAAmBL,eAAe,CAACG,aAAD,CAAlC,CAAQE,MAAR;;AACA,SAAK,IAAIC,UAAU,GAAG,CAAtB,EAAyBA,UAAU,GAAGD,MAAM,CAACD,MAA7C,EAAqDE,UAAU,IAAI,CAAnE,EAAsE;AACpEJ,MAAAA,SAAS,CAACK,IAAV,CAAeF,MAAM,CAACC,UAAD,CAArB;AACD;AACF;;AACD,SAAOJ,SAAP;AACD,CAXM;AAaA,IAAMM,6BAA2B,GAAG,SAA9BA,2BAA8B;AAAA,MAACT,cAAD,uEAAkB,EAAlB;AAAA,MAAsBU,eAAtB,uEAAwC,EAAxC;AAAA,SACzCV,cAAc,CAACC,eAAf,GACID,cAAc,CAACC,eAAf,CACCU,MADD,CACQ,UAACC,aAAD;AAAA,WAAmBA,aAAa,CAACC,EAAd,KAAqBH,eAAxC;AAAA,GADR,EACiE,CADjE,EACoEJ,MAFxE,GAGI,EAJqC;AAAA,CAApC;AAOA,IAAMQ,iCAAiC,GAAG,SAApCA,iCAAoC,GAAyB;AAAA,MAAxBd,cAAwB,uEAAP,EAAO;AACxE,+BAAiCA,cAAjC,CAAQC,eAAR;AAAA,MAAQA,eAAR,uCAA0B,EAA1B;AACA,MAAMc,YAAY,GAAG,IAAI7C,GAAJ,EAArB;;AAEA,OAAK,IAAIkC,aAAa,GAAG,CAAzB,EAA4BA,aAAa,GAAGH,eAAe,CAACI,MAA5D,EAAoED,aAAa,IAAI,CAArF,EAAwF;AACtF,QAAQE,MAAR,GAAmBL,eAAe,CAACG,aAAD,CAAlC,CAAQE,MAAR;;AACA,SAAK,IAAIC,UAAU,GAAG,CAAtB,EAAyBA,UAAU,GAAGD,MAAM,CAACD,MAA7C,EAAqDE,UAAU,IAAI,CAAnE,EAAsE;AACpE,+BAAqBD,MAAM,CAACC,UAAD,CAA3B;AAAA,UAAQS,GAAR,sBAAQA,GAAR;AAAA,UAAaxC,GAAb,sBAAaA,GAAb;AACAuC,MAAAA,YAAY,CAAC3C,GAAb,CAAiB4C,GAAjB,EAAsBxC,GAAtB;AACD;AACF;;AACD,SAAOuC,YAAP;AACD,CAZM;AAcA,IAAME,0BAA0B,GAAG,SAA7BA,0BAA6B,GAAkB;AAAA,MAAjBC,OAAiB,uEAAP,EAAO;AAC1D,MAAMC,YAAY,GAAG,IAAIjD,GAAJ,EAArB;;AACA,OAAK,IAAIkD,WAAW,GAAG,CAAvB,EAA0BA,WAAW,GAAGF,OAAO,CAACb,MAAhD,EAAwDe,WAAW,IAAI,CAAvE,EAA0E;AACxE,+BAA6BF,OAAO,CAACE,WAAD,CAApC;AAAA,QAAQC,MAAR,wBAAQA,MAAR;AAAA,QAAgBC,QAAhB,wBAAgBA,QAAhB;AACAH,IAAAA,YAAY,CAAC/C,GAAb,CAAiBiD,MAAjB,EAAyBC,QAAzB;AACD;;AACD,SAAOH,YAAP;AACD,CAPM;AASA,IAAMI,qBAAmB,GAAG,SAAtBA,mBAAsB,CAACnF,OAAD;AAAA,SAAaoF,MAAM,CAACpF,OAAO,CAACqF,SAAT,EAAoB,GAApB,CAAnB;AAAA,CAA5B;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACtF,OAAD,EAAUuF,gBAAV,EAA+B;AACxD,MACE,CAACvF,OAAD,IACG,CAACuF,gBADJ,IAEG,CAACvF,OAAO,CAACwF,MAFZ,IAGG,CAACD,gBAAgB,CAACC,MAHrB,IAIG,CAACxF,OAAO,CAACqF,SAJZ,IAKG,CAACE,gBAAgB,CAACF,SALrB,IAMG,CAACrF,OAAO,CAACwF,MAAR,CAAeP,MANnB,IAOG,CAACM,gBAAgB,CAACC,MAAjB,CAAwBP,MAR9B,EASE;AACA,WAAO,KAAP;AACD;;AACD,SACEjF,OAAO,CAACyF,aAAR,KAA0BF,gBAAgB,CAACE,aAA3C,IACGzF,OAAO,CAACwF,MAAR,CAAeP,MAAf,KAA0BM,gBAAgB,CAACC,MAAjB,CAAwBP,MADrD,IAEGE,qBAAmB,CAACnF,OAAD,CAAnB,KAAiCmF,qBAAmB,CAACI,gBAAD,CAHzD;AAKD,CAlBM;AAoBA,IAAMG,0BAA0B,GAAG,SAA7BA,0BAA6B,CACxCC,WADwC,EAExCC,WAFwC,EAGxCC,WAHwC;AAAA,SAKxC,CACEP,WAAW,CAACK,WAAD,EAAcC,WAAd,CADb,EAEEN,WAAW,CAACM,WAAD,EAAcC,WAAd,CAFb,CALwC;AAAA,CAAnC;AAWA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,QAAD;AAAA,SAAc,UAACzD,OAAD,EAAa;AACvD;AACA,QAAIA,OAAO,IAAIA,OAAO,CAACwD,cAAnB,IAAqCxD,OAAO,CAACwD,cAAR,CAAuBC,QAAvB,CAAzC,EAA2E;AACzE,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD,GAN6B;AAAA,CAAvB;AAQA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,WAAD,EAAcC,UAAd,EAA6B;AACpE,8BAAsCA,UAAtC,CAAQT,aAAR;AAAA,MAAQA,aAAR,sCAAwBhF,SAAxB;;AACA,MAAIgF,aAAa,KAAK7F,WAAlB,IAA+B6F,aAAa,KAAK3F,SAArD,EAA8D;AAC5D,QAAMqG,2BAA2B,GAAGF,WAAW,CAC5CG,GADiC,CAC7B,UAACpG,OAAD;AAAA,aACHA,OAAO,CAACyF,aAAR,KACKzF,OAAO,CAACI,cAAR,IAA0BJ,OAAO,CAACI,cAAR,EAA3B,GAAuDR,WAAvD,GAAmEa,SADvE,CADG;AAAA,KAD6B,EAKjC4F,WALiC,CAKrBzG,WALqB,CAApC;;AAMA,QAAIuG,2BAA2B,GAAG,CAA9B,GAAkCF,WAAW,CAAChC,MAAlD,EAA0D;AACxD,UAAMqC,QAAQ,sBAAOL,WAAP,CAAd;;AACAK,MAAAA,QAAQ,CAACC,MAAT,CAAgBJ,2BAA2B,GAAG,CAA9C,EAAiD,CAAjD,EAAoDD,UAApD;AACA,aAAOI,QAAP;AACD;AACF;;AACD,sCACKL,WADL,IAEEC,UAFF;AAID,CAnBM;AAqBA,IAAMM,UAAU,GAAG,SAAbA,UAAa,CAACC,EAAD,EAAQ;AAChC,MAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;AAC1B,WAAOA,EAAP;AACD;;AACD,MAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;AAC1B,QAAMC,MAAM,GAAGC,MAAM,CAACC,UAAP,CAAkBH,EAAlB,CAAf;;AACA,QAAI,CAACE,MAAM,CAACE,KAAP,CAAaH,MAAb,CAAL,EAA2B;AACzB,aAAOA,MAAP;AACD;AACF;;AACD,SAAO,IAAP;AACD,CAXM;;ACrPP,2BAAe;AACbI,EAAAA,WAAW,EAAE,KADA;AAEbC,EAAAA,OAAO,EAAE,KAFI;AAGbd,EAAAA,WAAW,EAAE,EAHA;AAIbvD,EAAAA,mBAAmB,EAAE;AAAEoC,IAAAA,OAAO,EAAE;AAAX,GAJR;AAKb;AACAkC,EAAAA,OAAO,EAAE,KANI;AAObC,EAAAA,oBAAoB,EAAE,CAPT;AAQb;AACA;AACA;AACA;AACAC,EAAAA,eAAe,EAAE,KAZJ;AAabC,EAAAA,6BAA6B,EAAE,CAblB;AAcbvD,EAAAA,cAAc,EAAE,EAdH;AAebwD,EAAAA,UAAU,EAAE,EAfC;AAgBbtE,EAAAA,WAAW,EAAE,CAhBA;AAiBbuE,EAAAA,WAAW,EAAE,IAjBA;AAkBbC,EAAAA,SAAS,EAAE,KAlBE;AAmBbC,EAAAA,iBAAiB,EAAE;AAnBN,CAAf;;ACUA,IACE3H,SADF,GAIIF,oBAJJ,CACEE,SADF;AAAA,IAEEC,MAFF,GAIIH,oBAJJ,CAEEG,MAFF;AAAA,IAGEC,OAHF,GAIIJ,oBAJJ,CAGEI,OAHF;AAMe,SAAS0H,OAAT,CAAiBC,KAAjB,EAAwBC,MAAxB,EAAgC;AAC7C,UAAQA,MAAM,CAACnH,IAAf;AACE,SAAKoH,WAAL;AACE,aAAOC,oBAAP;;AACF,SAAKD,cAAL;AACE,+CACKF,KADL;AAEE;AACA;AACAT,QAAAA,OAAO,EAAE,KAJX;AAKEf,QAAAA,WAAW,EAAE;AALf;;AAOF,SAAK0B,uBAAL;AACE,+CACKF,KADL;AAEEV,QAAAA,OAAO,EAAE;AAFX;;AAIF,SAAKY,mBAAL;AACE,+CACKF,KADL;AAEExB,QAAAA,WAAW,qBACNwB,KAAK,CAACxB,WAAN,CAAkB1B,MAAlB,CAAyB,UAACsD,CAAD;AAAA,iBAC1BA,CAAC,CAACpC,aAAF,KAAoB7F,SADM;AAAA,SAAzB,CADM;AAFb;;AAQF,SAAK+H,wBAAL;AAA2C;AACzC,YAAMG,gBAAgB,GAAGJ,MAAM,CAACpF,OAAP,CAAegE,QAAf,IAA2B,EAApD;AACA,oCAAqCoB,MAAM,CAACpF,OAA5C,CAAQI,mBAAR;AAAA,YAAQA,mBAAR,sCAA8B,EAA9B;AAEA,YAAMqF,YAAY,GAAGN,KAAK,CAAC/E,mBAAN,IAA6B,EAAlD;AACA,YAAMsF,eAAe,GAAGD,YAAY,CAAC3F,GAArC;AACA,YAAM6F,gBAAgB,GAAGvF,mBAAmB,CAACN,GAA7C;;AACA,YAAI6F,gBAAgB,KAAKD,eAAzB,EAA0C;AACxC,iBAAOP,KAAP;AACD,SATwC;;;AAYzC,YAAMS,mBAAmB,GAAGT,KAAK,CAACxB,WAAN,CAAkB1B,MAAlB,CAAyB,UAACrC,GAAD;AAAA,iBACnD,CAAE4F,gBAAgB,CAACK,IAAjB,CAAsB;AAAA,gBAAG3F,SAAH,QAAGA,SAAH;AAAA,mBAAmB4F,UAAU,CAAC5F,SAAD,EAAYN,GAAG,CAACM,SAAhB,CAA7B;AAAA,WAAtB,CADiD;AAAA,SAAzB,CAA5B;AAIA,YAAM6F,kBAAkB,GAAGvC,cAAc,CAAC,iBAAD,CAAd,CAAkC4B,MAAM,CAACpF,OAAzC,CAA3B;AACA,YAAMgG,gCAAgC,GAAGxC,cAAc,CAAC,+BAAD,CAAd,CAAgD4B,MAAM,CAACpF,OAAvD,CAAzC;AACA,+EACKmF,KADL;AAEEV,UAAAA,OAAO,EAAE,KAFX;AAGED,UAAAA,WAAW,EAAE,IAHf;AAIEE,UAAAA,OAAO,EAAEU,MAAM,CAACpF,OAAP,CAAe0E,OAJ1B;AAKEC,UAAAA,oBAAoB,EAAES,MAAM,CAACpF,OAAP,CAAe2E;AALvC,WAOMoB,kBAAkB,IAAI;AACxBnB,UAAAA,eAAe,EAAEQ,MAAM,CAACpF,OAAP,CAAe4E;AADR,SAP5B,GAUMoB,gCAAgC,IAAI;AACtCnB,UAAAA,6BAA6B,EAAEO,MAAM,CAACpF,OAAP,CAAe6E;AADR,SAV1C;AAaElB,UAAAA,WAAW,+BACN6B,gBADM,sBAENI,mBAFM;AAbb;AAkBD;;AACD,SAAKP,wBAAL;AAA2C;AACzC,YAAMG,iBAAgB,GAAGJ,MAAM,CAACpF,OAAP,CAAegE,QAAf,IAA2B,EAApD;;AACA,qCAAqCoB,MAAM,CAACpF,OAA5C,CAAQI,mBAAR;AAAA,YAAQA,oBAAR,uCAA8B,EAA9B;;AAEA,YAAMqF,aAAY,GAAGN,KAAK,CAAC/E,mBAAN,IAA6B,EAAlD;;AACA,YAAMsF,gBAAe,GAAGD,aAAY,CAAC3F,GAArC;AACA,YAAM6F,iBAAgB,GAAGvF,oBAAmB,CAACN,GAA7C;;AACA,YAAI6F,iBAAgB,KAAKD,gBAAzB,EAA0C;AACxC,iBAAOP,KAAP;AACD,SATwC;;;AAYzC,YAAMS,oBAAmB,GAAGT,KAAK,CAACxB,WAAN,CAAkB1B,MAAlB,CAAyB,UAACrC,GAAD;AAAA,iBACnD,CAAE4F,iBAAgB,CAACK,IAAjB,CAAsB;AAAA,gBAAG3F,SAAH,SAAGA,SAAH;AAAA,mBAAmB4F,UAAU,CAAC5F,SAAD,EAAYN,GAAG,CAACM,SAAhB,CAA7B;AAAA,WAAtB,CADiD;AAAA,SAAzB,CAA5B;;AAIA,iDACKiF,KADL;AAEEV,UAAAA,OAAO,EAAE,KAFX;AAGED,UAAAA,WAAW,EAAE,IAHf;AAIEE,UAAAA,OAAO,EAAEU,MAAM,CAACpF,OAAP,CAAe0E,OAJ1B;AAKEC,UAAAA,oBAAoB,EAAES,MAAM,CAACpF,OAAP,CAAe2E,oBALvC;AAMEC,UAAAA,eAAe,EAAEQ,MAAM,CAACpF,OAAP,CAAe4E,eANlC;AAOEC,UAAAA,6BAA6B,EAAEO,MAAM,CAACpF,OAAP,CAAe6E,6BAPhD;AAQElB,UAAAA,WAAW,+BACNiC,oBADM,sBAENJ,iBAFM;AARb;AAaD;;AACD,SAAKH,yBAAL;AAA4C;AAC1C,kCAAYF,KAAZ;AACD;;AACD,SAAKE,oBAAL;AACE,+CACKF,KADL;AAEExB,QAAAA,WAAW,+BACNwB,KAAK,CAACxB,WADA,uBAEJyB,MAAM,CAACpF,OAFH;AAFb;;AAOF,SAAKqF,qBAAL;AAAwC;AACtC,YAAMY,WAAW,GAAGd,KAAK,CAACxB,WAAN,CAAkBG,GAAlB,CAAsB,UAACyB,CAAD;AAAA,iBACxCO,UAAU,CAACP,CAAC,CAACW,KAAH,EAAUd,MAAM,CAACpF,OAAP,CAAekG,KAAzB,CAAV,GAA4Cd,MAAM,CAACpF,OAAnD,GAA6DuF,CADrB;AAAA,SAAtB,CAApB;;AAGA,2BAAIU,WAAJ,EAAiBE,IAAjB,CAAsB,UAACC,CAAD,EAAIC,CAAJ;AAAA,iBAElBD,CAAC,CAACjD,aAAF,IACGkD,CAAC,CAAClD,aADL,IAEGiD,CAAC,CAACjD,aAAF,KAAoB7F,SAFvB,KAIE+I,CAAC,CAAClD,aAAF,KAAoB3F,OAApB,IACG6I,CAAC,CAAClD,aAAF,KAAoB5F,MALzB,CADF,GAQI,CAAC,CARL,GAQS,CATW;AAAA,SAAtB;;AAWA,iDACK4H,KADL;AAEExB,UAAAA,WAAW,EAAEsC;AAFf;AAID;;AACD,SAAKZ,sBAAL;AAAyC;AACvC;AACAD,QAAAA,MAAM,CAACpF,OAAP,CAAesG,MAAf,GAAwB,IAAxB;AACA,iDACKnB,KADL;AAEExB,UAAAA,WAAW,EAAEwB,KAAK,CAACxB,WAAN,CAAkBG,GAAlB,CAAsB,UAACyB,CAAD;AAAA,mBACjCO,UAAU,CAACP,CAAC,CAACW,KAAH,EAAUd,MAAM,CAACpF,OAAP,CAAekG,KAAzB,CAAV,GACId,MAAM,CAACpF,OADX,GAEIuF,CAH6B;AAAA,WAAtB;AAFf;AAQD;;AACD,SAAKF,mBAAL;AAAsC;AACpC,iDACKF,KADL;AAEE/E,UAAAA,mBAAmB,EAAEgF,MAAM,CAACpF,OAF9B;AAGEgF,UAAAA,SAAS,EAAE;AAHb;AAKD;;AACD,SAAKK,mBAAL;AAAsC;AACpC,iDACKF,KADL;AAEEH,UAAAA,SAAS,EAAE;AAFb;AAID;;AACD,SAAKK,mBAAL;AAAsC;AACpC,YAAQxF,OAAR,GAAoBuF,MAAM,CAACpF,OAA3B,CAAQH,OAAR;;AACA,oCAAkDsF,KAAlD,CAAQ/E,mBAAR;AAAA,YAAQA,qBAAR,sCAA8B,EAA9B;AAAA,YAAkCI,WAAlC,GAAkD2E,KAAlD,CAAkC3E,WAAlC;;AACA,YAAM+F,sBAAsB,GAAGnG,qBAAmB,CAACN,GAAnD;;AACA,YAAI,CAACgG,UAAU,CAACjG,OAAO,CAACC,GAAT,EAAcyG,sBAAd,CAAf,EAAsD;AACpD,iBAAOpB,KAAP;AACD;;AACD,iDACKA,KADL;AAEEJ,UAAAA,WAAW,EAAEvE,WAAW,GAAG;AAF7B;AAID;;AACD,SAAK6E,mBAAL;AAAsC;AACpC,8BAA0CD,MAAM,CAACpF,OAAjD;AAAA,YAAQH,QAAR,mBAAQA,OAAR;AAAA,YAAiBnC,OAAjB,mBAAiBA,OAAjB;AAAA,YAA0B8I,WAA1B,mBAA0BA,WAA1B;AACA,YAAIhG,YAAW,GAAG,CAAlB;;AACA,qCAAkD2E,KAAlD,CAAQ/E,mBAAR;AAAA,YAAQA,qBAAR,uCAA8B,EAA9B;AAAA,YAAkC2E,WAAlC,GAAkDI,KAAlD,CAAkCJ,WAAlC;;AACA,YAAMwB,uBAAsB,GAAGnG,qBAAmB,CAACN,GAAnD;;AAEA,YAAI,CAACgG,UAAU,CAACjG,QAAO,CAACC,GAAT,EAAcyG,uBAAd,CAAX,IACE,EAAEpB,KAAK,CAACxB,WAAN,CAAkBG,GAAlB,CAAsB,UAAClE,GAAD;AAAA,iBAASA,GAAG,CAACM,SAAb;AAAA,SAAtB,EAA8CuG,OAA9C,CAAsD/I,OAAO,CAACwC,SAA9D,IAA2E,CAA7E,CADF;AAAA,WAGEiF,KAAK,CAACF,iBAAN,IAA2B,CAACyB,uBAAuB,CAACvB,KAAK,CAACF,iBAAP,EAA0BvH,OAA1B,CAHzD;AAAA,UAKE;AACA,mBAAOyH,KAAP;AACD;;AAED3E,QAAAA,YAAW,GAAG2E,KAAK,CAAC3E,WAAN,GAAoB,CAAlC,CAfoC;;AAiBpC,YAAIgG,WAAJ,EAAiB;AACfhG,UAAAA,YAAW,GAAG,CAAd;AACD;;AAED,YAAI9C,OAAO,CAACI,cAAR,IAA0BJ,OAAO,CAACI,cAAR,EAA9B,EAAwD;AACtD,mDACKqH,KADL;AAEExB,YAAAA,WAAW,EAAED,yBAAyB,CAACyB,KAAK,CAACxB,WAAP,EAAoBjG,OAApB;AAFxC;AAID;;AACD,iDACKyH,KADL;AAEE3E,UAAAA,WAAW,EAAXA,YAFF;AAGEuE,UAAAA,WAAW,EAAGvE,YAAW,KAAK,CAAjB,GACTsC,MAAM,CAAC,IAAI6D,IAAJ,EAAD,EAAa,UAAb,CADG,GAET5B,WALN;AAMEpB,UAAAA,WAAW,EAAED,yBAAyB,CAACyB,KAAK,CAACxB,WAAP,EAAoBjG,OAApB;AANxC;AAQD;;AACD,SAAK2H,kBAAL;AAAqC;AACnC,YAAQ3H,QAAR,GAAoB0H,MAAM,CAACpF,OAA3B,CAAQtC,OAAR;;AACA,YAAIyH,KAAK,CAACF,iBAAN,IAA2B,CAACyB,uBAAuB,CAACvB,KAAK,CAACF,iBAAP,EAA0BvH,QAA1B,CAAvD,EAA2F;AACzF;AACA,mDACKyH,KADL;AAEExB,YAAAA,WAAW,EAAEwB,KAAK,CAACxB,WAAN,CAAkB1B,MAAlB,CAAyB,UAACsD,CAAD;AAAA,qBACpC,CAACO,UAAU,CAACP,CAAC,CAACrF,SAAH,EAAckF,MAAM,CAACpF,OAArB,CADyB;AAAA,aAAzB;AAFf;AAMD;;AACD,iDACKmF,KADL;AAEExB,UAAAA,WAAW,EAAEwB,KAAK,CAACxB,WAAN,CAAkBG,GAAlB,CAAsB,UAACyB,CAAD;AAAA,mBACjCO,UAAU,CAACP,CAAC,CAACrF,SAAH,EAAckF,MAAM,CAACpF,OAAP,CAAetC,OAAf,CAAuBwC,SAArC,CAAV,GACIkF,MAAM,CAACpF,OAAP,CAAetC,OADnB,GAEI6H,CAH6B;AAAA,WAAtB;AAFf;AAQD;;AACD,SAAKF,sBAAL;AACE,+CACKF,KADL;AAEExB,QAAAA,WAAW,EAAEwB,KAAK,CAACxB,WAAN,CAAkBG,GAAlB,CAAsB,UAACyB,CAAD;AAAA,iBACjCO,UAAU,CAACP,CAAC,CAACW,KAAH,EAAUd,MAAM,CAACpF,OAAP,CAAekG,KAAzB,CAAV,GACId,MAAM,CAACpF,OADX,GAEIuF,CAH6B;AAAA,SAAtB;AAFf;;AAQF,SAAKF,YAAL;AACE,+CACKF,KADL;AAEE3E,QAAAA,WAAW,EAAE,CAFf;AAGEuE,QAAAA,WAAW,EAAE;AAHf;;AAKF,SAAKM,kBAAL;AACE,+CACKF,KADL;AAEExB,QAAAA,WAAW,EAAEwB,KAAK,CAACxB,WAAN,CAAkB1B,MAAlB,CAAyB,UAACsD,CAAD;AAAA,iBACpC,CAACO,UAAU,CAACP,CAAC,CAACrF,SAAH,EAAckF,MAAM,CAACpF,OAArB,CADyB;AAAA,SAAzB;AAFf;;AAMF,SAAKqF,4BAAL;AACE,+CACKF,KADL;AAEExB,QAAAA,WAAW,EAAEwB,KAAK,CAACxB,WAAN,CAAkB1B,MAAlB,CAAyB,UAACsD,CAAD;AAAA,iBACpC,CAACO,UAAU,CAACP,CAAC,CAACW,KAAH,EAAUd,MAAM,CAACpF,OAAjB,CADyB;AAAA,SAAzB;AAFf;;AAMF,SAAKqF,mBAAL;AAAsC;AACpC,iDACKF,KADL;AAEE7D,UAAAA,cAAc,EAAE8D,MAAM,CAACpF;AAFzB;AAID;;AACD,SAAKqF,eAAL;AAAkC;AAChC,iDACKF,KADL;AAEEL,UAAAA,UAAU,EAAEM,MAAM,CAACpF;AAFrB;AAID;;AACD,SAAKqF,mBAAL;AAAsC;AACpC,iDACKF,KADL;AAEExB,UAAAA,WAAW,EAAEwB,KAAK,CAACxB,WAAN,CAAkBG,GAAlB,CAAsB,UAACyB,CAAD,EAAO;AACxC,gBAAIO,UAAU,CAACP,CAAC,CAACrF,SAAH,EAAckF,MAAM,CAACpF,OAAP,CAAeE,SAA7B,CAAd,EAAuD;AACrD,kBAAIqF,CAAC,CAACqB,kBAAF,IAAwB,OAAOrB,CAAC,CAACqB,kBAAT,KAAgC,UAA5D,EAAwE;AACtErB,gBAAAA,CAAC,CAACqB,kBAAF,CAAqBxB,MAAM,CAACpF,OAA5B;AACD;;AACD,qBAAOuF,CAAP;AACD;;AACD,mBAAOA,CAAP;AACD,WARY;AAFf;AAYD;;AACD,SAAKF,2BAAL;AAA8C;AAC5C,iDACKF,KADL;AAEEF,UAAAA,iBAAiB,EAAEG,MAAM,CAACpF;AAF5B;AAID;;AACD;AACE,aAAOmF,KAAP;AAtRJ;AAwRD;;AClSD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS0B,sBAAT,cAKG;AAAA,MAL+BzG,mBAK/B,QAL+BA,mBAK/B;AAAA,MALoD0G,OAKpD,QALoDA,OAKpD;AAAA,MAL6DlC,eAK7D,QAL6DA,eAK7D;AAAA,MAJDmC,kBAIC,SAJDA,kBAIC;AAAA,MAHDC,GAGC,SAHDA,GAGC;AAAA,MAFDC,MAEC,SAFDA,MAEC;AAAA,MADDC,SACC,SADDA,SACC;AACD,MAAM7H,UAAU,GAAGe,mBAAmB,IAAIA,mBAAmB,CAACN,GAA9D;AACAqH,EAAAA,SAAS,CAAC,YAAM;AACd,QAAMC,iBAAiB,GAAGC,MAAM,EAAhC;;AACA,QAAIhI,UAAU,IAAI2H,GAAd,IAAqBA,GAAG,CAACM,cAA7B,EAA6C;AAC3C,UAAMA,cAAc,GAAG,IAAIN,GAAG,CAACM,cAAR,EAAvB;AACAL,MAAAA,MAAM,CAACM,IAAP,CAAY,uDAAZ,EAAqEH,iBAArE;;AACAE,MAAAA,cAAc,CAACE,iBAAf,GAAmC,UAAC3H,OAAD,EAAUnC,OAAV,EAAsB;AACvD;AACA,YAAIoI,UAAU,CAACjG,OAAO,CAACC,GAAT,EAAcM,mBAAmB,CAACN,GAAlC,CAAV,IAAoD,CAAC8E,eAAzD,EAA0E;AACxE,cAAI4B,WAAW,GAAG,KAAlB;;AACA,cAAI;AACF,gBAAQiB,OAAR,GAAoBP,SAApB,CAAQO,OAAR;AACAjB,YAAAA,WAAW,GAAGiB,OAAO,CAACC,YAAR,GAAuBD,OAAO,CAAC9I,SAA/B,IAA4C8I,OAAO,CAAC7I,YAAlE;AACD,WAHD,CAGE,OAAOC,KAAP,EAAc;AAEf;;AAEDoI,UAAAA,MAAM,CAACM,IAAP,CAAY,qDAAZ,EAAmE7J,OAAnE;AACAqJ,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAE;AAAEH,cAAAA,OAAO,EAAPA,OAAF;AAAWnC,cAAAA,OAAO,EAAPA,OAAX;AAAoB8I,cAAAA,WAAW,EAAXA;AAApB;AAFQ,WAAD,CAAlB;;AAKA,cAAIA,WAAJ,EAAiB;AACf,gBAAI;AACF1H,cAAAA,UAAU,CAAC,YAAM;AACfsB,gBAAAA,mBAAmB,CAACwH,UAApB;AACAxJ,gBAAAA,cAAc;AACf,eAHS,CAAV;AAID,aALD,CAKE,OAAOS,KAAP,EAAc;AACdoI,cAAAA,MAAM,CAACY,OAAP,CAAe,oDAAf;AACD;AACF;AACF;;AACD,YAAI/B,UAAU,CAACjG,OAAO,CAACC,GAAT,EAAcM,mBAAmB,CAACN,GAAlC,CAAV,IAAoD8E,eAAxD,EAAyE;AACvEmC,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAE;AAAEH,cAAAA,OAAO,EAAPA;AAAF;AAFQ,WAAD,CAAlB;AAID;AACF,OAlCD;;AAoCAyH,MAAAA,cAAc,CAACQ,gBAAf,GAAkC,UAACjI,OAAD,EAAUnC,OAAV,EAAsB;AACtDuJ,QAAAA,MAAM,CAACM,IAAP,CAAY,oDAAZ,EAAkE7J,OAAlE;AACAqJ,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE0J,kBADW;AAEjB3H,UAAAA,OAAO,EAAE;AAAEH,YAAAA,OAAO,EAAPA,OAAF;AAAWnC,YAAAA,OAAO,EAAPA;AAAX;AAFQ,SAAD,CAAlB;AAID,OAND;;AAQA4J,MAAAA,cAAc,CAACS,gBAAf,GAAkC,UAACC,CAAD,EAAI9H,SAAJ,EAAkB;AAClD+G,QAAAA,MAAM,CAACM,IAAP,CAAY,oDAAZ,EAAkErH,SAAlE;AACA6G,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE0J,kBADW;AAEjB3H,UAAAA,OAAO,EAAEE;AAFQ,SAAD,CAAlB;AAID,OAND;;AAQAoH,MAAAA,cAAc,CAACW,iBAAf,GAAmC,UAACD,CAAD,EAAIE,aAAJ,EAAsB;AACvDjB,QAAAA,MAAM,CAACM,IAAP,CAAY,qDAAZ,EAAmEW,aAAnE;AACAnB,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,UAAAA,OAAO,EAAEkI;AAFQ,SAAD,CAAlB;AAID,OAND;;AAQAZ,MAAAA,cAAc,CAACa,gBAAf,GAAkC,UAACpH,YAAD,EAAkB;AAClD,YAAI+E,UAAU,CAAC/E,YAAY,CAACjB,GAAd,EAAmBM,mBAAmB,CAACN,GAAvC,CAAd,EAA2D;AACzDmH,UAAAA,MAAM,CAACM,IAAP,CAAY,oDAAZ,EAAkExG,YAAlE;AACAgG,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAEe;AAFQ,WAAD,CAAlB;AAID;AACF,OARD;;AAUAuG,MAAAA,cAAc,CAACc,eAAf,GAAiC,UAACrH,YAAD,EAAkB;AACjD,YAAI+E,UAAU,CAAC/E,YAAY,CAACjB,GAAd,EAAmBM,mBAAmB,CAACN,GAAvC,CAAd,EAA2D;AACzDmH,UAAAA,MAAM,CAACM,IAAP,CAAY,mDAAZ,EAAiExG,YAAjE;AACAgG,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAEe;AAFQ,WAAD,CAAlB;AAID;AACF,OARD;;AAUAuG,MAAAA,cAAc,CAACe,iBAAf,GAAmC,UAACtH,YAAD,EAAkB;AACnD,YAAI+E,UAAU,CAAC/E,YAAY,CAACjB,GAAd,EAAmBM,mBAAmB,CAACN,GAAvC,CAAd,EAA2D;AACzDmH,UAAAA,MAAM,CAACM,IAAP,CAAY,qDAAZ,EAAmExG,YAAnE;AACAgG,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAEe;AAFQ,WAAD,CAAlB;AAID;AACF,OARD;;AAUAuG,MAAAA,cAAc,CAACgB,WAAf,GAA6B,UAACvH,YAAD,EAAkB;AAC7C,YAAI+E,UAAU,CAAC/E,YAAY,CAACjB,GAAd,EAAmBM,mBAAmB,CAACN,GAAvC,CAAd,EAA2D;AACzDmH,UAAAA,MAAM,CAACM,IAAP,CAAY,+CAAZ,EAA6DxG,YAA7D;AACAgG,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAEe;AAFQ,WAAD,CAAlB;AAID;AACF,OARD;;AAUAuG,MAAAA,cAAc,CAACiB,aAAf,GAA+B,UAACxH,YAAD,EAAkB;AAC/C,YAAI+E,UAAU,CAAC/E,YAAY,CAACjB,GAAd,EAAmBM,mBAAmB,CAACN,GAAvC,CAAd,EAA2D;AACzDmH,UAAAA,MAAM,CAACM,IAAP,CAAY,iDAAZ,EAA+DxG,YAA/D;AACAgG,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAEe;AAFQ,WAAD,CAAlB;AAID;AACF,OARD;;AAUAuG,MAAAA,cAAc,CAACkB,YAAf,GAA8B,UAACzH,YAAD,EAAkB;AAC9C,YAAI+E,UAAU,CAAC/E,YAAY,CAACjB,GAAd,EAAmBM,mBAAmB,CAACN,GAAvC,CAAd,EAA2D;AACzDmH,UAAAA,MAAM,CAACM,IAAP,CAAY,gDAAZ,EAA8DxG,YAA9D;AACAgG,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAEe;AAFQ,WAAD,CAAlB;AAID;AACF,OARD;;AAUAuG,MAAAA,cAAc,CAACmB,iBAAf,GAAmC,UAAC1H,YAAD,EAAkB;AACnD,YAAI+E,UAAU,CAAC/E,YAAY,CAACjB,GAAd,EAAmBM,mBAAmB,CAACN,GAAvC,CAAd,EAA2D;AACzDmH,UAAAA,MAAM,CAACM,IAAP,CAAY,qDAAZ,EAAmExG,YAAnE;AACAgG,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE0J,mBADW;AAEjB3H,YAAAA,OAAO,EAAEe;AAFQ,WAAD,CAAlB;AAID;AACF,OARD,CA3H2C;;;AAsI3CiG,MAAAA,GAAG,CAAC0B,iBAAJ,CAAsBtB,iBAAtB,EAAyCE,cAAzC;AACD;;AACD,WAAO,YAAM;AACX,UAAIN,GAAG,IAAIA,GAAG,CAAC2B,oBAAf,EAAqC;AACnC1B,QAAAA,MAAM,CAACM,IAAP,CAAY,oEAAZ,EAAkFH,iBAAlF;AACAJ,QAAAA,GAAG,CAAC2B,oBAAJ,CAAyBvB,iBAAzB;AACD;AACF,KALD;AAMD,GAhJQ,EAgJN,CAAC/H,UAAD,EAAayH,OAAb,CAhJM,CAAT;AAiJD;;ACnKD,SAAS8B,aAAT,cAIG;AAAA,MAJsBvJ,UAItB,QAJsBA,UAItB;AAAA,MAJkCyH,OAIlC,QAJkCA,OAIlC;AAAA,MAHDC,kBAGC,SAHDA,kBAGC;AAAA,MAFDC,GAEC,SAFDA,GAEC;AAAA,MADDC,MACC,SADDA,MACC;AACDE,EAAAA,SAAS,CAAC,YAAM;AACd,QAAI9H,UAAU,IAAIyH,OAAd,IAAyBE,GAAzB,IAAgCA,GAAG,CAAC6B,YAAxC,EAAsD;AACpD5B,MAAAA,MAAM,CAACM,IAAP,CAAY,0CAAZ,EAAwDlI,UAAxD;AACA2H,MAAAA,GAAG,CAAC6B,YAAJ,CAAiBC,UAAjB,CAA4BzJ,UAA5B,EACG0J,IADH,CACQ,UAAChI,YAAD,EAAkB;AACtBkG,QAAAA,MAAM,CAACM,IAAP,CAAY,yCAAZ,EAAuDxG,YAAvD;AACAgG,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,mBADW;AAEjBhJ,UAAAA,OAAO,EAAEe;AAFQ,SAAD,CAAlB;AAKAkG,QAAAA,MAAM,CAACM,IAAP,CAAY,uBAAZ,EAAqCxG,YAArC,EAPsB;;AAStBA,QAAAA,YAAY,CAAC6G,UAAb;AACD,OAXH,EAYGqB,KAZH,CAYS,UAACC,CAAD,EAAO;AACZjC,QAAAA,MAAM,CAACY,OAAP,CAAe,8CAAf,EAA+D;AAAExI,UAAAA,UAAU,EAAVA,UAAF;AAAc6J,UAAAA,CAAC,EAADA;AAAd,SAA/D;AACAnC,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K;AADW,SAAD,CAAlB;AAGD,OAjBH;AAkBAhC,MAAAA,GAAG,CAACmC,WAAJ,CAAgB,UAACC,eAAD,EAAkBC,GAAlB,EAA0B;AACxC,YAAIA,GAAJ,EAAS;AACPpC,UAAAA,MAAM,CAACpI,KAAP,CAAa,gCAAb,EAA+CwK,GAA/C;AACA;AACD;;AACDpC,QAAAA,MAAM,CAACM,IAAP,CAAY,iCAAZ,EAA+C6B,eAA/C;AACArC,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,mBADW;AAEjBhJ,UAAAA,OAAO,EAAEoJ;AAFQ,SAAD,CAAlB;AAID,OAVD;AAWD;AACF,GAjCQ,EAiCN,CAAC/J,UAAD,EAAayH,OAAb,CAjCM,CAAT;AAkCD;;ACtCD,IAAMwC,gBAAgB,GAAG,EAAzB;AACA,IAAMC,gBAAgB,GAAG,EAAzB;;AAEA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,GAAmB;AAAA,MAAlBxF,QAAkB,uEAAP,EAAO;AACnD,MAAMyF,aAAa,GAAGzF,QAAQ,CAACA,QAAQ,CAACrC,MAAT,GAAkB,CAAnB,CAA9B;AACA,SAAQ8H,aAAa,IAAIA,aAAa,CAAC1G,SAAhC,IAA8C,IAArD;AACD,CAHD;;AAKA,SAAS2G,uBAAT,cAQG;AAAA,MAPDtJ,mBAOC,QAPDA,mBAOC;AAAA,MANDuJ,0BAMC,QANDA,0BAMC;AAAA,MALDC,eAKC,QALDA,eAKC;AAAA,MAHD5C,GAGC,SAHDA,GAGC;AAAA,MAFDC,MAEC,SAFDA,MAEC;AAAA,MADDF,kBACC,SADDA,kBACC;AACD,MAAM1H,UAAU,GAAGe,mBAAmB,IAAIA,mBAAmB,CAACN,GAA9D;AACAqH,EAAAA,SAAS,CAAC,YAAM;AACdF,IAAAA,MAAM,CAACM,IAAP,CAAY,gDAAZ,EAA8DnH,mBAA9D;AACA2G,IAAAA,kBAAkB,CAAC;AACjB9I,MAAAA,IAAI,EAAE+K;AADW,KAAD,CAAlB;;AAIA,QAAIhC,GAAG,IAAIA,GAAG,CAAC6C,iBAAX,IACCzJ,mBADD,IACwBA,mBAAmB,CAAC0J,sBADhD,EACwE;AACtE,UAAM7E,iBAAiB,GAAG,IAAI+B,GAAG,CAAC6C,iBAAR,EAA1B;AACA5E,MAAAA,iBAAiB,CAAC8E,cAAlB,GAAmCT,gBAAnC;AACArE,MAAAA,iBAAiB,CAAC+E,WAAlB,GAAgC,IAAhC;AACA/E,MAAAA,iBAAiB,CAACgF,cAAlB,GAAmC,KAAnC;AACAhF,MAAAA,iBAAiB,CAACiF,eAAlB,GAAoC,IAApC;;AACA,UAAIP,0BAAJ,EAAgC;AAC9BQ,QAAAA,MAAM,CAACC,IAAP,CAAYT,0BAAZ,EAAwC1K,OAAxC,CAAgD,UAACqD,GAAD,EAAS;AACvD2C,UAAAA,iBAAiB,CAAC3C,GAAD,CAAjB,GAAyBqH,0BAA0B,CAACrH,GAAD,CAAnD;AACD,SAFD;AAGA2E,QAAAA,MAAM,CAACM,IAAP,CAAY,0DAAZ,EAAwEtC,iBAAxE;AACA8B,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,2BADW;AAEjBhJ,UAAAA,OAAO,EAAEiF;AAFQ,SAAD,CAAlB;AAID;;AAEDgC,MAAAA,MAAM,CAACM,IAAP,CAAY,4BAAZ,EAA0C;AAAEnH,QAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBuJ,QAAAA,0BAA0B,EAA1BA;AAAvB,OAA1C;AACA5C,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K;AADW,OAAD,CAAlB;;AAIA,UAAIY,eAAJ,EAAqB;AACnB3E,QAAAA,iBAAiB,CAACoF,cAAlB,GAAmCd,gBAAnC;AACAnJ,QAAAA,mBAAmB,CAAC0J,sBAApB,CACEF,eADF,EAEE3E,iBAFF,EAIG8D,IAJH,CAIQ,UAAC/E,QAAD,EAAc;AAClB,cAAMU,OAAO,GAAIV,QAAQ,IAAIA,QAAQ,CAACrC,MAAT,GAAkB,CAA/C;AACA,cAAMgD,oBAAoB,GAAGD,OAAO,GAChCV,QAAQ,CAAC,CAAD,CAAR,CAAYjB,SADoB,GAEhC,IAFJ;AAGA,cAAM8B,6BAA6B,GAAG2E,yBAAyB,CAACxF,QAAD,CAA/D,CALkB;;AAOlB,cAAMsG,qBAAqB,GAAG,IAAItD,GAAG,CAAC6C,iBAAR,EAA9B;AACAS,UAAAA,qBAAqB,CAACD,cAAtB,GAAuCd,gBAAvC;AACAnJ,UAAAA,mBAAmB,CAAC0J,sBAApB,CACEjF,6BAA6B,IAAI,IAAI8B,IAAJ,GAAW4D,OAAX,EADnC,EAEED,qBAFF,EAGEvB,IAHF,CAGO,UAACyB,YAAD,EAAkB;AACvBzD,YAAAA,kBAAkB,CAAC;AACjB9I,cAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,cAAAA,OAAO,EAAE;AACPgE,gBAAAA,QAAQ,EAARA,QADO;AAEPU,gBAAAA,OAAO,EAAPA,OAFO;AAGPC,gBAAAA,oBAAoB,EAApBA,oBAHO;AAIPvE,gBAAAA,mBAAmB,EAAnBA,mBAJO;AAKPyE,gBAAAA,6BAA6B,EAA7BA,6BALO;AAMPD,gBAAAA,eAAe,EAAE4F,YAAY,IAAIA,YAAY,CAAC7I,MAAb,GAAsB;AANhD;AAFQ,aAAD,CAAlB;AAWD,WAfD;AAgBD,SA7BH,EA8BGsH,KA9BH,CA8BS,UAACpK,KAAD,EAAW;AAChBoI,UAAAA,MAAM,CAACpI,KAAP,CAAa,mCAAb,EAAkDA,KAAlD;AACAkI,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,YAAAA,OAAO,EAAE;AACPgE,cAAAA,QAAQ,EAAE,EADH;AAEPU,cAAAA,OAAO,EAAE,KAFF;AAGPC,cAAAA,oBAAoB,EAAE,CAHf;AAIPvE,cAAAA,mBAAmB,EAAnBA;AAJO;AAFQ,WAAD,CAAlB;AASD,SAzCH,EA0CGqK,OA1CH,CA0CW,YAAM;AACb,cAAI,CAACb,eAAL,EAAsB;AACpB9K,YAAAA,UAAU,CAAC;AAAA,qBAAM4L,cAAA,EAAN;AAAA,aAAD,CAAV;AACD;;AACDtK,UAAAA,mBAAmB,CAACwH,UAApB;AACD,SA/CH;AAgDD,OAlDD,MAkDO;AACLxH,QAAAA,mBAAmB,CAAC0J,sBAApB,CACE,IAAInD,IAAJ,GAAW4D,OAAX,EADF,EAEEtF,iBAFF,EAIG8D,IAJH,CAIQ,UAAC/E,QAAD,EAAc;AAClB,cAAMU,OAAO,GAAIV,QAAQ,IAAIA,QAAQ,CAACrC,MAAT,GAAkB,CAA/C;AACA,cAAMgD,oBAAoB,GAAGD,OAAO,GAChCV,QAAQ,CAAC,CAAD,CAAR,CAAYjB,SADoB,GAEhC,IAFJ;AAGA,cAAM8B,6BAA6B,GAAG2E,yBAAyB,CAACxF,QAAD,CAA/D;AACA+C,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,YAAAA,OAAO,EAAE;AACPgE,cAAAA,QAAQ,EAARA,QADO;AAEPU,cAAAA,OAAO,EAAPA,OAFO;AAGPC,cAAAA,oBAAoB,EAApBA,oBAHO;AAIPvE,cAAAA,mBAAmB,EAAnBA,mBAJO;AAKPyE,cAAAA,6BAA6B,EAA7BA,6BALO;AAMPD,cAAAA,eAAe,EAAE;AANV;AAFQ,WAAD,CAAlB;AAWD,SArBH,EAsBGqE,KAtBH,CAsBS,UAACpK,KAAD,EAAW;AAChBoI,UAAAA,MAAM,CAACpI,KAAP,CAAa,mCAAb,EAAkDA,KAAlD;AACAkI,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,YAAAA,OAAO,EAAE;AACPgE,cAAAA,QAAQ,EAAE,EADH;AAEPU,cAAAA,OAAO,EAAE,KAFF;AAGPC,cAAAA,oBAAoB,EAAE,CAHf;AAIPvE,cAAAA,mBAAmB,EAAnBA;AAJO;AAFQ,WAAD,CAAlB;AASD,SAjCH,EAkCGqK,OAlCH,CAkCW,YAAM;AACb,cAAI,CAACb,eAAL,EAAsB;AACpB9K,YAAAA,UAAU,CAAC;AAAA,qBAAM4L,cAAA,EAAN;AAAA,aAAD,CAAV;AACD;;AACDtK,UAAAA,mBAAmB,CAACwH,UAApB;AACD,SAvCH;AAwCD;AACF;AACF,GA1HQ,EA0HN,CAACvI,UAAD,EAAasK,0BAAb,EAAyCC,eAAzC,CA1HM,CAAT;AA2HA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACC;;ACrJD,SAASe,kBAAT,cAMG;AAAA,MAN2BC,QAM3B,QAN2BA,QAM3B;AAAA,MALD3D,MAKC,SALDA,MAKC;AAAA,MAJDD,GAIC,SAJDA,GAIC;AAAA,MAHD5G,mBAGC,SAHDA,mBAGC;AAAA,MAFD2G,kBAEC,SAFDA,kBAEC;AAAA,MADD4C,0BACC,SADDA,0BACC;AACDxC,EAAAA,SAAS,CAAC,YAAM;AACd,QAAM0D,UAAU,GAAG,CAACD,QAApB;AACA,WAAO,YAAM;AACX;AACA,UAAIC,UAAJ,EAAgB;AACd5D,QAAAA,MAAM,CAACM,IAAP,CAAY,+BAAZ;AACA,2BAAyBP,GAAzB,CAAQ8D,OAAR;AAAA,YAAQA,OAAR,6BAAkB,EAAlB;AACA,YAAMC,WAAW,GAAGD,OAAO,CAACE,eAAR,IAA2B,KAA/C;AAEA,YAAM/F,iBAAiB,GAAG,IAAI+B,GAAG,CAAC6C,iBAAR,EAA1B;AACA5E,QAAAA,iBAAiB,CAAC8E,cAAlB,GAAmC,EAAnC;AACA9E,QAAAA,iBAAiB,CAACgF,cAAlB,GAAmC,KAAnC;AACAhF,QAAAA,iBAAiB,CAACiF,eAAlB,GAAoCa,WAApC;;AAEA,YAAIpB,0BAAJ,EAAgC;AAC9BQ,UAAAA,MAAM,CAACC,IAAP,CAAYT,0BAAZ,EAAwC1K,OAAxC,CAAgD,UAACqD,GAAD,EAAS;AACvD2C,YAAAA,iBAAiB,CAAC3C,GAAD,CAAjB,GAAyBqH,0BAA0B,CAACrH,GAAD,CAAnD;AACD,WAFD;AAGD;;AACD2E,QAAAA,MAAM,CAACM,IAAP,CAAY,4BAAZ,EAA0C;AAAEnH,UAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBuJ,UAAAA,0BAA0B,EAA1BA;AAAvB,SAA1C;AACA5C,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K;AADW,SAAD,CAAlB;AAIAhC,QAAAA,GAAG,CAAC6B,YAAJ,CAAiBC,UAAjB,CAA4B1I,mBAAmB,CAACN,GAAhD,EACGiJ,IADH,CACQ,UAAChI,YAAD,EAAkB;AACtB,cAAMkK,eAAe,GAAG,IAAItE,IAAJ,GAAW4D,OAAX,EAAxB;AAEAxJ,UAAAA,YAAY,CAAC+I,sBAAb,CACEmB,eADF,EAEEhG,iBAFF,EAIG8D,IAJH,CAIQ,UAAC/E,QAAD,EAAc;AAClB+C,YAAAA,kBAAkB,CAAC;AACjB9I,cAAAA,IAAI,EAAE+K;AADW,aAAD,CAAlB;AAIA,gBAAMtE,OAAO,GAAIV,QAAQ,IAAIA,QAAQ,CAACrC,MAAT,GAAkB,CAA/C;AACA,gBAAMgD,oBAAoB,GAAGD,OAAO,GAChCV,QAAQ,CAAC,CAAD,CAAR,CAAYjB,SADoB,GAEhC,IAFJ;AAGAgE,YAAAA,kBAAkB,CAAC;AACjB9I,cAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,cAAAA,OAAO,EAAE;AACPgE,gBAAAA,QAAQ,EAARA,QADO;AAEPU,gBAAAA,OAAO,EAAPA,OAFO;AAGPC,gBAAAA,oBAAoB,EAApBA,oBAHO;AAIPvE,gBAAAA,mBAAmB,EAAnBA;AAJO;AAFQ,aAAD,CAAlB;AASAtB,YAAAA,UAAU,CAAC;AAAA,qBAAM4L,cAAA,EAAN;AAAA,aAAD,CAAV;AACD,WAvBH,EAwBGzB,KAxBH,CAwBS,UAACpK,KAAD,EAAW;AAChBoI,YAAAA,MAAM,CAACpI,KAAP,CAAa,mCAAb,EAAkDA,KAAlD;AACD,WA1BH,EA2BG4L,OA3BH,CA2BW,YAAM;AACbrK,YAAAA,mBAAmB,CAACwH,UAApB;AACD,WA7BH;AA8BD,SAlCH;AAmCD;AACF,KA1DD;AA2DD,GA7DQ,EA6DN,CAACgD,QAAD,CA7DM,CAAT;AA8DD;;ACtED,SAASM,iBAAT,cASG;AAAA,MARD9K,mBAQC,QARDA,mBAQC;AAAA,MAPDuE,oBAOC,QAPDA,oBAOC;AAAA,MANDgF,0BAMC,QANDA,0BAMC;AAAA,MAJDjF,OAIC,SAJDA,OAIC;AAAA,MAHDuC,MAGC,SAHDA,MAGC;AAAA,MAFDF,kBAEC,SAFDA,kBAEC;AAAA,MADDC,GACC,SADDA,GACC;AACD,SAAOmE,WAAW,CAAC,UAACC,EAAD,EAAQ;AACzB,QAAI,CAAC1G,OAAL,EAAc;AAAE;AAAS;;AACzB,QAAMO,iBAAiB,GAAG,IAAI+B,GAAG,CAAC6C,iBAAR,EAA1B;AACA5E,IAAAA,iBAAiB,CAAC8E,cAAlB,GAAmC,EAAnC;AACA9E,IAAAA,iBAAiB,CAACgF,cAAlB,GAAmC,KAAnC;AACAhF,IAAAA,iBAAiB,CAACiF,eAAlB,GAAoC,IAApC;;AAEA,QAAIP,0BAAJ,EAAgC;AAC9BQ,MAAAA,MAAM,CAACC,IAAP,CAAYT,0BAAZ,EAAwC1K,OAAxC,CAAgD,UAACqD,GAAD,EAAS;AACvD2C,QAAAA,iBAAiB,CAAC3C,GAAD,CAAjB,GAAyBqH,0BAA0B,CAACrH,GAAD,CAAnD;AACD,OAFD;AAGD;;AACD2E,IAAAA,MAAM,CAACM,IAAP,CAAY,4BAAZ,EAA0C;AAAEnH,MAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBuJ,MAAAA,0BAA0B,EAA1BA;AAAvB,KAA1C;AAEAvJ,IAAAA,mBAAmB,CAAC0J,sBAApB,CACEnF,oBAAoB,IAAI,IAAIgC,IAAJ,GAAW4D,OAAX,EAD1B,EAEEtF,iBAFF,EAIG8D,IAJH,CAIQ,UAAC/E,QAAD,EAAc;AAClB,UAAMqH,eAAe,GAAIrH,QAAQ,IAAIA,QAAQ,CAACrC,MAAT,GAAkB,CAAvD;AACA,UAAM2J,aAAa,GAAGD,eAAe,GACjCrH,QAAQ,CAAC,CAAD,CAAR,CAAYjB,SADqB,GAEjC,IAFJ;AAIAgE,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,QAAAA,OAAO,EAAE;AACPgE,UAAAA,QAAQ,EAARA,QADO;AAEPU,UAAAA,OAAO,EAAE2G,eAFF;AAGP1G,UAAAA,oBAAoB,EAAE2G,aAHf;AAIPlL,UAAAA,mBAAmB,EAAnBA;AAJO;AAFQ,OAAD,CAAlB;AASAgL,MAAAA,EAAE,CAAC,CAACpH,QAAD,EAAW,IAAX,CAAD,CAAF;AACD,KApBH,EAqBGiF,KArBH,CAqBS,UAACpK,KAAD,EAAW;AAChBoI,MAAAA,MAAM,CAACpI,KAAP,CAAa,mCAAb,EAAkDA,KAAlD;AACAkI,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,QAAAA,OAAO,EAAE;AACPgE,UAAAA,QAAQ,EAAE,EADH;AAEPU,UAAAA,OAAO,EAAE,KAFF;AAGPC,UAAAA,oBAAoB,EAAE,CAHf;AAIPvE,UAAAA,mBAAmB,EAAnBA;AAJO;AAFQ,OAAD,CAAlB;AASAgL,MAAAA,EAAE,CAAC,CAAC,IAAD,EAAOvM,KAAP,CAAD,CAAF;AACD,KAjCH,EAkCG4L,OAlCH,CAkCW,YAAM;AACbrK,MAAAA,mBAAmB,CAACwH,UAApB;AACD,KApCH;AAqCD,GAnDiB,EAmDf,CAACxH,mBAAD,EAAsBuE,oBAAtB,CAnDe,CAAlB;AAoDD;;AC9DD,IAAM4G,WAAW,GAAG,EAApB;;AAEA,SAASC,qBAAT,cASG;AAAA,MARDpL,mBAQC,QARDA,mBAQC;AAAA,MAPDyE,6BAOC,QAPDA,6BAOC;AAAA,MAND8E,0BAMC,QANDA,0BAMC;AAAA,MALD/E,eAKC,QALDA,eAKC;AAAA,MAHDqC,MAGC,SAHDA,MAGC;AAAA,MAFDF,kBAEC,SAFDA,kBAEC;AAAA,MADDC,GACC,SADDA,GACC;AACD,SAAOmE,WAAW,CAAC,UAACC,EAAD,EAAQ;AACzB,QAAI,CAACxG,eAAL,EAAsB;AAAE;AAAS;;AACjC,QAAMK,iBAAiB,GAAG,IAAI+B,GAAG,CAAC6C,iBAAR,EAA1B;AACA5E,IAAAA,iBAAiB,CAACoF,cAAlB,GAAmCkB,WAAnC;AACAtG,IAAAA,iBAAiB,CAACgF,cAAlB,GAAmC,KAAnC;AACAhF,IAAAA,iBAAiB,CAACiF,eAAlB,GAAoC,IAApC;;AAEA,QAAIP,0BAAJ,EAAgC;AAC9BQ,MAAAA,MAAM,CAACC,IAAP,CAAYT,0BAAZ,EAAwC1K,OAAxC,CAAgD,UAACqD,GAAD,EAAS;AACvD2C,QAAAA,iBAAiB,CAAC3C,GAAD,CAAjB,GAAyBqH,0BAA0B,CAACrH,GAAD,CAAnD;AACD,OAFD;AAGD;;AACD2E,IAAAA,MAAM,CAACM,IAAP,CAAY,kCAAZ,EAAgD;AAAEnH,MAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBuJ,MAAAA,0BAA0B,EAA1BA;AAAvB,KAAhD;AAEAvJ,IAAAA,mBAAmB,CAAC0J,sBAApB,CACEjF,6BAA6B,IAAI,IAAI8B,IAAJ,GAAW4D,OAAX,EADnC,EAEEtF,iBAFF,EAIG8D,IAJH,CAIQ,UAAC/E,QAAD,EAAc;AAClB,UAAMyH,cAAc,GAAIzH,QAAQ,IAAIA,QAAQ,CAACrC,MAAtB,IAAiC,CAAxD;AACA,UAAM0J,eAAe,GAAII,cAAc,GAAG,CAAlB,IAClBxG,iBAAiB,CAACoF,cAAlB,KAAqCoB,cAD3C;AAEA,UAAMH,aAAa,GAAGD,eAAe,GACjCrH,QAAQ,CAACA,QAAQ,CAACrC,MAAT,GAAkB,CAAnB,CAAR,CAA8BoB,SADG,GAEjC,IAFJ;AAGAgE,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,wBADW;AAEjBhJ,QAAAA,OAAO,EAAE;AACPgE,UAAAA,QAAQ,EAARA,QADO;AAEPY,UAAAA,eAAe,EAAEyG,eAFV;AAGPxG,UAAAA,6BAA6B,EAAEyG,aAHxB;AAIPlL,UAAAA,mBAAmB,EAAnBA;AAJO;AAFQ,OAAD,CAAlB;AASAgL,MAAAA,EAAE,CAAC,CAACpH,QAAD,EAAW,IAAX,CAAD,CAAF;AACD,KArBH,EAsBGiF,KAtBH,CAsBS,UAACpK,KAAD,EAAW;AAChBoI,MAAAA,MAAM,CAACpI,KAAP,CAAa,yCAAb,EAAwDA,KAAxD;AACAkI,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,yBADW;AAEjBhJ,QAAAA,OAAO,EAAE;AACPgE,UAAAA,QAAQ,EAAE,EADH;AAEPY,UAAAA,eAAe,EAAE,KAFV;AAGPC,UAAAA,6BAA6B,EAAE,CAHxB;AAIPzE,UAAAA,mBAAmB,EAAnBA;AAJO;AAFQ,OAAD,CAAlB;AASAgL,MAAAA,EAAE,CAAC,CAAC,IAAD,EAAOvM,KAAP,CAAD,CAAF;AACD,KAlCH,EAmCG4L,OAnCH,CAmCW,YAAM;AACbrK,MAAAA,mBAAmB,CAACwH,UAApB;AACD,KArCH;AAsCD,GApDiB,EAoDf,CAACxH,mBAAD,EAAsByE,6BAAtB,EAAqDD,eAArD,CApDe,CAAlB;AAqDD;;ACjED,SAAS8G,wBAAT,cAA2F;AAAA,MAAvDtL,mBAAuD,QAAvDA,mBAAuD;AAAA,MAAlC2G,kBAAkC,QAAlCA,kBAAkC;AAAA,MAAVE,MAAU,SAAVA,MAAU;AACzF,SAAOkE,WAAW,CAAC,UAACzN,OAAD,EAAU0N,EAAV,EAAiB;AAClCnE,IAAAA,MAAM,CAACM,IAAP,CAAY,sDAAZ,EAAoE7J,OAApE;AACA,QAAQ2C,YAAR,GAAyB3C,OAAzB,CAAQ2C,YAAR;AACA4G,IAAAA,MAAM,CAACM,IAAP,CAAY,oEAAZ,EAAkFlH,YAAlF,EAHkC;;AAMlC,QAAIA,YAAY,KAAK,QAAjB,IAA6BA,YAAY,KAAK,SAAlD,EAA6D;AAC3D4G,MAAAA,MAAM,CAACM,IAAP,CAAY,iEAAZ,EAA+E7J,OAA/E;AACAqJ,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,4BADW;AAEjBhJ,QAAAA,OAAO,EAAEtC,OAAO,CAACwI;AAFA,OAAD,CAAlB;;AAIA,UAAIkF,EAAJ,EAAQ;AAAEA,QAAAA,EAAE;AAAK;;AACjB;AACD,KAdiC;;;AAiBlChL,IAAAA,mBAAmB,CAACuL,aAApB,CAAkCjO,OAAlC,EAA2C,UAAC2L,GAAD,EAAS;AAClDpC,MAAAA,MAAM,CAACM,IAAP,CAAY,mEAAZ,EAAiFlH,YAAjF;;AACA,UAAI+K,EAAJ,EAAQ;AAAEA,QAAAA,EAAE,CAAC/B,GAAD,CAAF;AAAU;;AACpB,UAAI,CAACA,GAAL,EAAU;AACRpC,QAAAA,MAAM,CAACM,IAAP,CAAY,+DAAZ,EAA6E7J,OAA7E;AACAqJ,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,kBADW;AAEjBhJ,UAAAA,OAAO,EAAEtC,OAAO,CAACwC;AAFA,SAAD,CAAlB;AAID,OAND,MAMO;AACL+G,QAAAA,MAAM,CAACY,OAAP,CAAe,8DAAf,EAA+EwB,GAA/E;AACD;AACF,KAZD;AAaD,GA9BiB,EA8Bf,CAACjJ,mBAAD,EAAsB2G,kBAAtB,CA9Be,CAAlB;AA+BD;;AC/BD,SAAS6E,wBAAT,cAQG;AAAA,MAPDxL,mBAOC,QAPDA,mBAOC;AAAA,MAND2G,kBAMC,QANDA,kBAMC;AAAA,MALD8E,yBAKC,QALDA,yBAKC;AAAA,MAHD5E,MAGC,SAHDA,MAGC;AAAA,MAFD3H,MAEC,SAFDA,MAEC;AAAA,MADD0H,GACC,SADDA,GACC;AACD,SAAOmE,WAAW,CAAC,UAACjL,SAAD,EAAY4L,IAAZ,EAAkBV,EAAlB,EAAyB;AAC1C,QAAMW,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,GAAD,EAAS;AACnC,UAAMC,MAAM,GAAG,IAAIjF,GAAG,CAACkF,iBAAR,EAAf;AACAD,MAAAA,MAAM,CAACvO,OAAP,GAAiBsO,GAAjB;AACA,aAAOC,MAAP;AACD,KAJD;;AAMA,QAAME,iBAAiB,GAAGN,yBAAyB,IAC9C,OAAOA,yBAAP,KAAqC,UAD1C;;AAGA,QAAIM,iBAAJ,EAAuB;AACrBlF,MAAAA,MAAM,CAACM,IAAP,CAAY,0DAAZ,EAAwEsE,yBAAxE;AACD;;AAED,QAAMI,MAAM,GAAGJ,yBAAyB,GACpCA,yBAAyB,CAACC,IAAD,CADW,GAEpCC,mBAAmB,CAACD,IAAD,CAFvB;AAIA1L,IAAAA,mBAAmB,CAACgM,iBAApB,CAAsClM,SAAtC,EAAiD+L,MAAjD,EAAyD,UAACI,CAAD,EAAInD,CAAJ,EAAU;AACjEjC,MAAAA,MAAM,CAACM,IAAP,CAAY,4BAAZ,EAA0C0E,MAA1C;AACA,UAAMK,UAAU,GAAGtF,GAAG,CAACuF,qBAAJ,EAAnB;AACA,UAAI7O,OAAO,GAAG2O,CAAd;AACA,UAAIhD,GAAG,GAAGH,CAAV;;AACA,UAAIoD,UAAJ,EAAgB;AACd5O,QAAAA,OAAO,GAAGwL,CAAV;AACAG,QAAAA,GAAG,GAAGgD,CAAN;AACD;;AACD,UAAIjB,EAAJ,EAAQ;AACNA,QAAAA,EAAE,CAAC/B,GAAD,EAAM3L,OAAN,CAAF;AACD;;AACD,UAAI,CAAC2L,GAAL,EAAU;AACRpC,QAAAA,MAAM,CAACM,IAAP,CAAY,oCAAZ,EAAkD7J,OAAlD;AACAqJ,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,kBADW;AAEjBhJ,UAAAA,OAAO,EAAE;AACPH,YAAAA,OAAO,EAAEO,mBADF;AAEP1C,YAAAA,OAAO,EAAPA;AAFO;AAFQ,SAAD,CAAlB;AAOA4B,QAAAA,MAAM,CAACkN,OAAP,CACE7M,mBADF,EAEE;AACEjC,UAAAA,OAAO,EAAPA,OADF;AAEEmC,UAAAA,OAAO,EAAEO;AAFX,SAFF;AAOD,OAhBD,MAgBO;AACL6G,QAAAA,MAAM,CAACY,OAAP,CAAe,mCAAf,EAAoDwB,GAApD;AACD;AACF,KA/BD;AAgCD,GAlDiB,EAkDf,CAACjJ,mBAAmB,CAACN,GAArB,EAA0BiH,kBAA1B,EAA8C8E,yBAA9C,CAlDe,CAAlB;AAmDD;;AC7DD,SAASY,wBAAT,cAKG;AAAA,MAJDrM,mBAIC,QAJDA,mBAIC;AAAA,MAHD2G,kBAGC,QAHDA,kBAGC;AAAA,MADDE,MACC,SADDA,MACC;AACD,SAAOkE,WAAW,CAAC,UAACuB,aAAD,EAAmB;AACpCzF,IAAAA,MAAM,CAACM,IAAP,CAAY,wCAAZ,EAAsDmF,aAAtD;AACA,QAAQ9O,WAAR,GAA8B8O,aAA9B,CAAQ9O,WAAR;AAAA,QAAqB+O,IAArB,GAA8BD,aAA9B,CAAqBC,IAArB;;AACA,QAAID,aAAa,IAAI,OAAOA,aAAa,CAACE,YAArB,KAAsC,UAAvD,IACCF,aAAa,CAACE,YAAd,EADL,EAEE;AACA;AACAF,MAAAA,aAAa,CAACrM,YAAd,GAA6B,SAA7B;AACA0G,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,QAAAA,OAAO,EAAE0M;AAFQ,OAAD,CAAlB,CAHA;;AASA,UAAI9O,WAAW,KAAK,MAApB,EAA4B;AAC1BwC,QAAAA,mBAAmB,CAChByM,iBADH,CACqBH,aADrB,EAEG3D,IAFH,CAEQ,UAACrL,OAAD,EAAa;AACjBuJ,UAAAA,MAAM,CAACM,IAAP,CAAY,qCAAZ,EAAmD;AAAE7J,YAAAA,OAAO,EAAPA;AAAF,WAAnD;AACAqJ,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,qBADW;AAEjBhJ,YAAAA,OAAO,EAAEtC;AAFQ,WAAD,CAAlB;AAID,SARH,EASGuL,KATH,CASS,UAACC,CAAD,EAAO;AACZjC,UAAAA,MAAM,CAACY,OAAP,CAAe,oCAAf,EAAqD;AAAEqB,YAAAA,CAAC,EAADA;AAAF,WAArD,EADY;;AAGZwD,UAAAA,aAAa,CAACrM,YAAd,GAA6B,QAA7B;AACA0G,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,YAAAA,OAAO,EAAE0M;AAFQ,WAAD,CAAlB;AAID,SAjBH,EAD0B;;AAqB1BA,QAAAA,aAAa,CAACrM,YAAd,GAA6B,SAA7B;AACA0G,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,UAAAA,OAAO,EAAE0M;AAFQ,SAAD,CAAlB;AAIA;AACD;;AAED,UAAI9O,WAAW,KAAK,MAApB,EAA4B;AAC1BwC,QAAAA,mBAAmB,CAChB0M,iBADH,CACqBJ,aADrB,EACoCC,IADpC,EAEG5D,IAFH,CAEQ,UAACrL,OAAD,EAAa;AACjBuJ,UAAAA,MAAM,CAACM,IAAP,CAAY,0CAAZ,EAAwD;AAAE7J,YAAAA,OAAO,EAAPA;AAAF,WAAxD;AACAqJ,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,qBADW;AAEjBhJ,YAAAA,OAAO,EAAEtC;AAFQ,WAAD,CAAlB;AAID,SARH,EASGuL,KATH,CASS,UAACC,CAAD,EAAO;AACZjC,UAAAA,MAAM,CAACY,OAAP,CAAe,yCAAf,EAA0D;AAAEqB,YAAAA,CAAC,EAADA;AAAF,WAA1D,EADY;;AAGZwD,UAAAA,aAAa,CAACrM,YAAd,GAA6B,QAA7B;AACA0G,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,YAAAA,OAAO,EAAE0M;AAFQ,WAAD,CAAlB;AAID,SAjBH,EAD0B;;AAqB1BA,QAAAA,aAAa,CAACrM,YAAd,GAA6B,SAA7B;AACA0G,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,UAAAA,OAAO,EAAE0M;AAFQ,SAAD,CAAlB;AAID;AACF,KAnED,MAmEO;AACL;AACA;AACAK,MAAAA,OAAO,CAAClO,KAAR,CAAc,2BAAd;AACAoI,MAAAA,MAAM,CAACY,OAAP,CAAe,2BAAf,EAA4C6E,aAA5C;AACD;AACF,GA5EiB,EA4Ef,CAACtM,mBAAD,EAAsB2G,kBAAtB,CA5Ee,CAAlB;AA6ED;;ACjFc,SAASiG,sBAAT,cAKZ;AAAA,MAL8C5M,mBAK9C,QAL8CA,mBAK9C;AAAA,MALmE6M,uBAKnE,QALmEA,uBAKnE;AAAA,MAJDjG,GAIC,SAJDA,GAIC;AAAA,MAHDC,MAGC,SAHDA,MAGC;AAAA,MAFD3H,MAEC,SAFDA,MAEC;AAAA,MADDyH,kBACC,SADDA,kBACC;AACD,MAAMmG,eAAe,GAAGC,MAAM,CAAC,IAAD,CAA9B;AAEA,MAAMC,WAAW,GAAGjC,WAAW,CAC7B,YAAM;AACJ,QAAMW,IAAI,GAAGoB,eAAe,CAACzF,OAAhB,CAAwB4F,KAArC;;AACA,QAAMtB,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,GAAD,EAAS;AACnC,UAAMtO,OAAO,GAAI,OAAOsO,GAAP,KAAe,QAAhB,GAA4BA,GAAG,CAACsB,IAAJ,EAA5B,GAAyCtB,GAAzD;AACA,UAAMC,MAAM,GAAG,IAAIjF,GAAG,CAACkF,iBAAR,EAAf;AACAD,MAAAA,MAAM,CAACvO,OAAP,GAAiBA,OAAjB;AACA,aAAOuO,MAAP;AACD,KALD;;AAOA,QAAME,iBAAiB,GAAGc,uBAAuB,IAC5C,OAAOA,uBAAP,KAAmC,UADxC;;AAGA,QAAId,iBAAJ,EAAuB;AACrBlF,MAAAA,MAAM,CAACM,IAAP,CAAY,wDAAZ,EAAsE0F,uBAAtE;AACD;;AAED,QAAMhB,MAAM,GAAGgB,uBAAuB,GAClCA,uBAAuB,CAACnB,IAAD,CADW,GAElCC,mBAAmB,CAACD,IAAD,CAFvB;AAIA7E,IAAAA,MAAM,CAACM,IAAP,CAAY,sCAAZ,EAAoD0E,MAApD;AACA,QAAMsB,UAAU,GAAGnN,mBAAmB,CAACoN,eAApB,CAAoCvB,MAApC,EAA4C,UAACwB,GAAD,EAAMpE,GAAN,EAAc;AAC3E,UAAMiD,UAAU,GAAGtF,GAAG,CAACuF,qBAAJ,EAAnB;AACA,UAAI7O,OAAO,GAAG+P,GAAd;AACA,UAAI5O,KAAK,GAAGwK,GAAZ;;AACA,UAAIiD,UAAJ,EAAgB;AACd5O,QAAAA,OAAO,GAAG2L,GAAV;AACAxK,QAAAA,KAAK,GAAG4O,GAAR;AACD,OAP0E;AAS3E;;;AACA,UAAI5O,KAAJ,EAAW;AACToI,QAAAA,MAAM,CAACY,OAAP,CAAe,kCAAf,EAAmD;AACjDnK,UAAAA,OAAO,EAAPA;AADiD,SAAnD;AAGAqJ,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,UAAAA,OAAO,EAAEtC;AAFQ,SAAD,CAAlB;AAIA;AACD;;AACDuJ,MAAAA,MAAM,CAACM,IAAP,CAAY,mCAAZ,EAAiD7J,OAAjD;AACAqJ,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,qBADW;AAEjBhJ,QAAAA,OAAO,EAAEtC;AAFQ,OAAD,CAAlB;AAID,KAzBkB,CAAnB;AA0BA4B,IAAAA,MAAM,CAACkN,OAAP,CAAe7M,kBAAf,EAA0C;AACxC;AACR;AACQjC,MAAAA,OAAO,EAAE6P,UAH+B;AAIxC1N,MAAAA,OAAO,EAAEO;AAJ+B,KAA1C;AAMAtB,IAAAA,UAAU,CAAC;AAAA,aAAM4L,cAAA,EAAN;AAAA,KAAD,CAAV;AACD,GAvD4B,EAwD7B,CAACtK,mBAAD,EAAsB6M,uBAAtB,CAxD6B,CAA/B;AA2DA,SAAO,CAACC,eAAD,EAAkBE,WAAlB,CAAP;AACD;;ACpEc,SAASM,0BAAT,cASZ;AAAA,MARDtN,mBAQC,QARDA,mBAQC;AAAA,MAPDuN,uBAOC,QAPDA,uBAOC;AAAA,mCANDC,gBAMC;AAAA,MANDA,gBAMC,sCANkB,EAMlB;AAAA,MAJD5G,GAIC,SAJDA,GAIC;AAAA,MAHDC,MAGC,SAHDA,MAGC;AAAA,MAFD3H,MAEC,SAFDA,MAEC;AAAA,MADDyH,kBACC,SADDA,kBACC;AACD,MAAMqG,WAAW,GAAGjC,WAAW,CAAC,UAACwB,IAAD,EAAU;AACxC,QACEkB,eADF,GAIID,gBAJJ,CACEC,eADF;AAAA,QAEEC,aAFF,GAIIF,gBAJJ,CAEEE,aAFF;AAAA,QAGEC,cAHF,GAIIH,gBAJJ,CAGEG,cAHF;AAKA,QAAMC,kBAAkB,GAAGL,uBAAuB,IAAI,OAAOA,uBAAP,KAAmC,UAAzF;AAEA,QAAMM,oBAAoB,GAAItB,IAAI,CAAC1O,IAAL,KAAc,WAAd,IAA6B0O,IAAI,CAAC1O,IAAL,KAAc,WAA3C,IAA0D0O,IAAI,CAAC1O,IAAL,KAAc,YAAtG;AACA,QAAMiQ,iBAAiB,GAAIL,eAAe,GAAG,CAAnB,IAA0BA,eAAe,GAAG,CAAtE,CATwC;;AAWxC,QAAMM,uBAAuB,GAAGzD,UAAA,CAAiBoD,aAAjB,KAC3BpD,UAAA,CAAiBqD,cAAjB,CADL;AAGA,QAAMK,gBAAgB,GAAGH,oBAAoB,KAAKC,iBAAiB,IAAIC,uBAA1B,CAA7C;;AAEA,QAAMpC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACsC,KAAD,EAAW;AACrC,UAAMpC,MAAM,GAAG,IAAIjF,GAAG,CAACsH,iBAAR,EAAf;AACArC,MAAAA,MAAM,CAACU,IAAP,GAAc0B,KAAd;AACA,aAAOpC,MAAP;AACD,KAJD;;AAMA,QAAImC,gBAAJ,EAAsB;AAAE;AACtB,UAAI;AACF,YAAMG,KAAK,GAAG9P,QAAQ,CAAC+P,aAAT,CAAuB,KAAvB,CAAd;AACAD,QAAAA,KAAK,CAACE,GAAN,GAAYC,GAAG,CAACC,eAAJ,CAAoBhC,IAApB,CAAZ;;AACA4B,QAAAA,KAAK,CAACK,MAAN,GAAe,YAAM;AACnBF,UAAAA,GAAG,CAACG,eAAJ,CAAoBN,KAAK,CAACE,GAA1B;AACA,cAAMK,MAAM,GAAGrQ,QAAQ,CAAC+P,aAAT,CAAuB,QAAvB,CAAf;AACA,cAAMO,UAAU,GAAGR,KAAK,CAACS,YAAN,IAAsBT,KAAK,CAACU,KAA/C;AACA,cAAMC,WAAW,GAAGX,KAAK,CAACY,aAAN,IAAuBZ,KAAK,CAACa,MAAjD;AAEA,cAAIC,WAAW,GAAG3E,UAAA,CAAiBoD,aAAjB,KAAmCiB,UAArD;AACA,cAAIO,YAAY,GAAG5E,UAAA,CAAiBqD,cAAjB,KAAoCmB,WAAvD,CAPmB;AAUnB;AACA;;AACA,cAAIvC,IAAI,CAAC1O,IAAL,KAAc,WAAd,IAA6B,CAACkQ,uBAAlC,EAA2D;AACzDkB,YAAAA,WAAW,IAAIxB,eAAf;AACAyB,YAAAA,YAAY,IAAIzB,eAAhB;AACD;;AAEDiB,UAAAA,MAAM,CAACG,KAAP,GAAeI,WAAf;AACAP,UAAAA,MAAM,CAACM,MAAP,GAAgBE,YAAhB;AACA,cAAMC,OAAO,GAAGT,MAAM,CAACU,UAAP,CAAkB,IAAlB,CAAhB;AACAD,UAAAA,OAAO,CAACE,SAAR,CAAkBlB,KAAlB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+Bc,WAA/B,EAA4CC,YAA5C;AACAC,UAAAA,OAAO,CAACT,MAAR,CAAeY,MAAf,CACE,UAACC,YAAD,EAAkB;AAChB,gBAAMC,cAAc,GAAG,IAAIC,IAAJ,CAAS,CAACF,YAAD,CAAT,EAAyBhD,IAAI,CAACmD,IAA9B,EAAoC;AAAE7R,cAAAA,IAAI,EAAE0O,IAAI,CAAC1O;AAAb,aAApC,CAAvB;;AACA,gBAAI+P,kBAAJ,EAAwB;AACtB/G,cAAAA,MAAM,CAACM,IAAP,CAAY,wDAAZ,EAAsEoG,uBAAtE;AACD;;AACD,gBAAM1B,MAAM,GAAG+B,kBAAkB,GAC7BL,uBAAuB,CAACiC,cAAD,CADM,GAE7B7D,mBAAmB,CAAC6D,cAAD,CAFvB;AAGA3I,YAAAA,MAAM,CAACM,IAAP,CAAY,wCAAZ,EAAsD0E,MAAtD;AACA,gBAAM8D,cAAc,GAAG3P,mBAAmB,CAAC4P,eAApB,CACrB/D,MADqB,EAErB,UAACgE,QAAD,EAAW5G,GAAX,EAAmB;AACjB,kBAAMiD,UAAU,GAAGtF,GAAG,CAACuF,qBAAJ,EAAnB;;AACA,0BAAyBD,UAAU,GAAG,CAACjD,GAAD,EAAM4G,QAAN,CAAH,GAAqB,CAACA,QAAD,EAAW5G,GAAX,CAAxD;AAAA;AAAA,kBAAO3L,OAAP;AAAA,kBAAgBmB,KAAhB;;AACA,kBAAIA,KAAJ,EAAW;AACT;AACA;AACAoI,gBAAAA,MAAM,CAACpI,KAAP,CAAa,uCAAb,EAAsD;AAAEnB,kBAAAA,OAAO,EAAPA,OAAF;AAAWmB,kBAAAA,KAAK,EAALA;AAAX,iBAAtD;AACAnB,gBAAAA,OAAO,CAACwS,QAAR,GAAmBxB,GAAG,CAACC,eAAJ,CAAoBiB,cAApB,CAAnB;AACAlS,gBAAAA,OAAO,CAACiP,IAAR,GAAeiD,cAAf;AACA7I,gBAAAA,kBAAkB,CAAC;AACjB9I,kBAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,kBAAAA,OAAO,EAAEtC;AAFQ,iBAAD,CAAlB;AAIA;AACD;;AACDuJ,cAAAA,MAAM,CAACM,IAAP,CAAY,wCAAZ,EAAsD7J,OAAtD;AACAqJ,cAAAA,kBAAkB,CAAC;AACjB9I,gBAAAA,IAAI,EAAE+K,qBADW;AAEjBhJ,gBAAAA,OAAO,EAAEtC;AAFQ,eAAD,CAAlB;AAID,aAtBoB,CAAvB;AAwBA4B,YAAAA,MAAM,CAACkN,OAAP,CAAe7M,kBAAf,EAA0C;AACxC;AAChB;AACgBjC,cAAAA,OAAO,oCACFqS,cADE;AAELjQ,gBAAAA,GAAG,EAAE4O,GAAG,CAACC,eAAJ,CAAoBiB,cAApB,CAFA;AAGL;AACAvP,gBAAAA,YAAY,EAAE;AAJT,gBAHiC;AASxCR,cAAAA,OAAO,EAAEO;AAT+B,aAA1C;AAWAtB,YAAAA,UAAU,CAAC;AAAA,qBAAM4L,cAAA,EAAN;AAAA,aAAD,EAA+B,IAA/B,CAAV;AACD,WA9CH,EA+CEiC,IAAI,CAAC1O,IA/CP,EAgDE4P,eAhDF;AAkDD,SAvED;AAwED,OA3ED,CA2EE,OAAOhP,KAAP,EAAc;AACdoI,QAAAA,MAAM,CAACpI,KAAP,CAAa,uCAAb,EAAsDA,KAAtD;AACD;AACF,KA/ED,MA+EO;AAAE;AACP,UAAImP,kBAAJ,EAAwB;AACtB/G,QAAAA,MAAM,CAACM,IAAP,CAAY,wDAAZ,EAAsEoG,uBAAtE;AACD;;AACD,UAAM1B,MAAM,GAAG0B,uBAAuB,GAClCA,uBAAuB,CAAChB,IAAD,CADW,GAElCZ,mBAAmB,CAACY,IAAD,CAFvB;AAGA1F,MAAAA,MAAM,CAACM,IAAP,CAAY,wCAAZ,EAAsD0E,MAAtD;AAEA,UAAMsB,UAAU,GAAGnN,mBAAmB,CAAC4P,eAApB,CAAoC/D,MAApC,EAA4C,UAACgE,QAAD,EAAW5G,GAAX,EAAmB;AAChF,YAAMiD,UAAU,GAAGtF,GAAG,CAACuF,qBAAJ,EAAnB;;AACA,oBAAyBD,UAAU,GAAG,CAACjD,GAAD,EAAM4G,QAAN,CAAH,GAAqB,CAACA,QAAD,EAAW5G,GAAX,CAAxD;AAAA;AAAA,YAAO3L,OAAP;AAAA,YAAgBmB,KAAhB;;AACA,YAAIA,KAAJ,EAAW;AACT;AACA;AACAoI,UAAAA,MAAM,CAACpI,KAAP,CAAa,uCAAb,EAAsD;AAAEnB,YAAAA,OAAO,EAAPA,OAAF;AAAWmB,YAAAA,KAAK,EAALA;AAAX,WAAtD;AACAnB,UAAAA,OAAO,CAACwS,QAAR,GAAmBxB,GAAG,CAACC,eAAJ,CAAoBhC,IAApB,CAAnB;AACAjP,UAAAA,OAAO,CAACiP,IAAR,GAAeA,IAAf;AACA5F,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K,sBADW;AAEjBhJ,YAAAA,OAAO,EAAEtC;AAFQ,WAAD,CAAlB;AAIA;AACD;;AACDuJ,QAAAA,MAAM,CAACM,IAAP,CAAY,mCAAZ,EAAiD7J,OAAjD;AACAqJ,QAAAA,kBAAkB,CAAC;AACjB9I,UAAAA,IAAI,EAAE+K,qBADW;AAEjBhJ,UAAAA,OAAO,EAAEtC;AAFQ,SAAD,CAAlB;AAID,OApBkB,CAAnB;AAqBA4B,MAAAA,MAAM,CAACkN,OAAP,CAAe7M,kBAAf,EAA0C;AACxC;AACR;AACQjC,QAAAA,OAAO,oCACF6P,UADE;AAELzN,UAAAA,GAAG,EAAE4O,GAAG,CAACC,eAAJ,CAAoBhC,IAApB,CAFA;AAGL;AACAtM,UAAAA,YAAY,EAAE;AAJT,UAHiC;AASxCR,QAAAA,OAAO,EAAEO;AAT+B,OAA1C;AAWAtB,MAAAA,UAAU,CAAC;AAAA,eAAM4L,cAAA,EAAN;AAAA,OAAD,EAA+B,IAA/B,CAAV;AACD;AACF,GAhJ8B,EAgJ5B,CAACtK,mBAAD,EAAsBuN,uBAAtB,EAA+CC,gBAA/C,CAhJ4B,CAA/B;AAiJA,SAAO,CAACR,WAAD,CAAP;AACD;;AC5Jc,SAAS+C,gBAAT,cAIZ;AAAA,MAJwCxM,WAIxC,QAJwCA,WAIxC;AAAA,MAJqDvD,mBAIrD,QAJqDA,mBAIrD;AAAA,MAHD2G,kBAGC,SAHDA,kBAGC;AAAA,MAFDC,GAEC,SAFDA,GAEC;AAAA,MADDC,MACC,SADDA,MACC;AACDE,EAAAA,SAAS,CAAC,YAAM;AACd,QAAI,CAACH,GAAG,CAACM,cAAL,IAAuB,CAAClH,mBAAmB,CAACN,GAAhD,EAAqD;AACnD,aAAO,YAAM,EAAb;AACD,KAHa;;;AAKd,QAAMsQ,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B,UAAMC,aAAa,GAAG1M,WAAW,CAAC2M,MAAZ,CAAmB,UAACC,WAAD,EAAc3Q,GAAd,EAAsB;AAC7D,YAAIA,GAAG,CAACM,SAAJ,KAAkB,CAAtB,EAAyB;AACvB,mDACKqQ,WADL,2BAEG3Q,GAAG,CAACM,SAFP,EAEmBwK,eAAA,CAAsB9K,GAAtB,EAA2BQ,mBAA3B,CAFnB;AAID;;AACD,eAAOmQ,WAAP;AACD,OARqB,EAQnB,EARmB,CAAtB;AASAxJ,MAAAA,kBAAkB,CAAC;AACjB9I,QAAAA,IAAI,EAAE+K,eADW;AAEjBhJ,QAAAA,OAAO,EAAEqQ;AAFQ,OAAD,CAAlB;AAID,KAdD;;AAeA,QAAI1M,WAAW,CAAChC,MAAZ,GAAqB,CAAzB,EAA4B;AAC1ByO,MAAAA,aAAa;AACd;;AAED,QAAM/Q,UAAU,GAAGe,mBAAmB,CAACN,GAAvC;AACA,QAAM0Q,OAAO,GAAG,IAAIxJ,GAAG,CAACM,cAAR,EAAhB;;AACA,QAAMmJ,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,CAAD,EAAO;AACjC,UAAIrR,UAAU,KAAKqR,CAAC,CAAC5Q,GAArB,EAA0B;AACxBsQ,QAAAA,aAAa;AACd;AACF,KAJD;;AAKAI,IAAAA,OAAO,CAACG,wBAAR,GAAmCF,mBAAnC;AACAD,IAAAA,OAAO,CAACI,oBAAR,GAA+BH,mBAA/B,CAhCc;;AAkCd,QAAMI,SAAS,GAAGxJ,MAAM,EAAxB;AACAJ,IAAAA,MAAM,CAACM,IAAP,CAAY,8DAAZ,EAA4EsJ,SAA5E;AACA7J,IAAAA,GAAG,CAAC0B,iBAAJ,CAAsBmI,SAAtB,EAAiCL,OAAjC;AACA,WAAO,YAAM;AACX,UAAIxJ,GAAG,IAAIA,GAAG,CAAC2B,oBAAf,EAAqC;AACnC1B,QAAAA,MAAM,CAACM,IAAP,CAAY,8DAAZ,EAA4EsJ,SAA5E;AACA7J,QAAAA,GAAG,CAAC2B,oBAAJ,CAAyBkI,SAAzB;AACD;AACF,KALD;AAMD,GA3CQ,EA2CN,CAAClN,WAAD,EAAcvD,mBAAd,CA3CM,CAAT;AA4CD;;AClDD,IAAM0Q,cAAc,gBAAGC,cAAK,CAACC,UAAN,CAAiB,UAACC,KAAD,EAAQC,GAAR,EAAgB;AACtD,MACEC,SADF,GAOIF,KAPJ,CACEE,SADF;AAAA,MAEElC,KAFF,GAOIgC,KAPJ,CAEEhC,KAFF;AAAA,MAGEG,MAHF,GAOI6B,KAPJ,CAGE7B,MAHF;AAAA,MAIEgC,QAJF,GAOIH,KAPJ,CAIEG,QAJF;AAAA,MAKEC,QALF,GAOIJ,KAPJ,CAKEI,OALF;AAAA,MAMEC,QANF,GAOIL,KAPJ,CAMEK,QANF;AASA,sBACEP;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,sCAEkBC,QAAQ,GAAG,YAAH,GAAkB,EAF5C,IAGTK,IAHS,CAGJ,GAHI,CADb;AAKE,IAAA,GAAG,EAAEP,GALP;AAME,IAAA,IAAI,EAAC,QANP;AAOE,IAAA,KAAK,EAAE;AACLjC,MAAAA,KAAK,EAAE,OAAOA,KAAP,KAAiB,QAAjB,aAA+BA,KAAK,CAACyC,KAAN,CAAY,CAAZ,EAAe,CAAC,CAAhB,IAAqB,CAApD,oBAA+DzC,KAAK,GAAG,CAAvE,OADF;AAELG,MAAAA,MAAM,EAAE,OAAOA,MAAP,KAAkB,QAAlB,aAAgCA,MAAM,CAACsC,KAAP,CAAa,CAAb,EAAgB,CAAC,CAAjB,IAAsB,CAAtD,oBAAiEtC,MAAM,GAAG,CAA1E;AAFH,KAPT;AAWE,IAAA,OAAO,EAAE,iBAAClG,CAAD;AAAA,aAAOmI,QAAO,CAACnI,CAAD,CAAd;AAAA,KAXX;AAYE,IAAA,SAAS,EAAE,mBAACA,CAAD;AAAA,aAAOmI,QAAO,CAACnI,CAAD,CAAd;AAAA,KAZb;AAaE,IAAA,QAAQ,EAAE;AAbZ,kBAeE6H;AAAK,IAAA,SAAS,EAAC;AAAf,KACGO,QADH,CAfF,CADF;AAqBD,CA/BsB,CAAvB;AAiCAR,cAAc,CAACa,SAAf,GAA2B;AACzBR,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CADc;AAKzB7C,EAAAA,KAAK,EAAE2C,SAAS,CAACC,SAAV,CAAoB,CACzBD,SAAS,CAACI,MADe,EAEzBJ,SAAS,CAACE,MAFe,CAApB,CALkB;AASzB1C,EAAAA,MAAM,EAAEwC,SAAS,CAACC,SAAV,CAAoB,CAC1BD,SAAS,CAACI,MADgB,EAE1BJ,SAAS,CAACE,MAFgB,CAApB,CATiB;AAazBV,EAAAA,QAAQ,EAAEQ,SAAS,CAACK,IAbK;AAczBZ,EAAAA,OAAO,EAAEO,SAAS,CAACM,IAdM;AAezBZ,EAAAA,QAAQ,EAAEM,SAAS,CAACO,OAAV,CAAkBC;AAfH,CAA3B;AAkBAtB,cAAc,CAACuB,YAAf,GAA8B;AAC5BlB,EAAAA,SAAS,EAAE,EADiB;AAE5BlC,EAAAA,KAAK,EAAE,MAFqB;AAG5BG,EAAAA,MAAM,EAAE,MAHoB;AAI5BgC,EAAAA,QAAQ,EAAE,KAJkB;AAK5BC,EAAAA,OAAO,EAAE,mBAAM;AALa,CAA9B;;ACjDe,SAASiB,yBAAT,cAOZ;AAAA,MANDhR,cAMC,QANDA,cAMC;AAAA,MANeiR,cAMf,QANeA,cAMf;AAAA,MAJDxH,WAIC,SAJDA,WAIC;AAAA,MAHD9D,MAGC,SAHDA,MAGC;AAAA,MAFDtE,MAEC,SAFDA,MAEC;AAAA,MADD6P,YACC,SADDA,YACC;;AACD;AACA,SAAOC,OAAO,CAAC;AAAA,WAAM,iBAMf;AAAA,UALJC,SAKI,SALJA,SAKI;AAAA,UAJJC,gBAII,SAJJA,gBAII;AAAA,UAHJjV,OAGI,SAHJA,OAGI;AAAA,UAFJkV,aAEI,SAFJA,aAEI;AAAA,wCADJC,gBACI;AAAA,UADJA,gBACI,sCADe,EACf;;AACJ,UAAI,CAAC9H,WAAD,IAAgB,EAAE2H,SAAS,IAAIC,gBAAb,IAAiCjV,OAAjC,IAA4CkV,aAA9C,CAApB,EAAkF;AAChF3L,QAAAA,MAAM,CAACY,OAAP,CAAe,mDAAf;AACA,eAAO,IAAP;AACD;;AAED,0BACEkJ,6BAAC,cAAD;AACE,QAAA,SAAS,EAAE2B,SADb;AAEE,QAAA,gBAAgB,EAAEC,gBAFpB;AAGE,QAAA,aAAa,EAAEC,aAHjB;AAIE,QAAA,gBAAgB,EAAEC;AAJpB,SAOIL,YAAY,CAAC1O,GAAb,CAAiB,UAACgP,KAAD,EAAW;AAC1B,YAAMC,eAAe,GAAGrV,OAAO,CAACsV,SAAR,CACrB/Q,MADqB,CACd,UAACgR,QAAD;AAAA,iBAAcA,QAAQ,CAAC3Q,GAAT,KAAiBwQ,KAAK,CAACxQ,GAArC;AAAA,SADc,EAC4B,CAD5B,CAAxB;AAEA,YAAM4Q,SAAS,GAAGH,eAAe,GAC7B,EAAEA,eAAe,CAACI,OAAhB,CAAwB1M,OAAxB,CAAgC9D,MAAhC,IAA0C,CAA5C,CAD6B,GAE7B,KAFJ;AAGA,4BACEoO,6BAAC,cAAD;AACE,UAAA,GAAG,EAAE+B,KAAK,CAACxQ,GADb;AAEE,UAAA,KAAK,EAAC,MAFR;AAGE,UAAA,MAAM,EAAC,MAHT;AAIE,UAAA,QAAQ,EAAE4Q,SAJZ;AAKE,UAAA,OAAO,EAAE,mBAAM;AACbN,YAAAA,aAAa;AACbL,YAAAA,cAAc,CAAC7U,OAAD,EAAUoV,KAAK,CAACxQ,GAAhB,EAAqB4Q,SAArB,CAAd;AACD;AARH,wBAUEnC,6BAAC,aAAD;AACE,UAAA,GAAG,EAAE+B,KAAK,CAAChT,GADb;AAEE,UAAA,KAAK,EAAC,MAFR;AAGE,UAAA,MAAM,EAAC,MAHT;AAIE,UAAA,gBAAgB,eACdiR,6BAAC,IAAD;AAAM,YAAA,KAAK,EAAC,MAAZ;AAAmB,YAAA,MAAM,EAAC,MAA1B;AAAiC,YAAA,IAAI,EAAEqC,SAAS,CAACC;AAAjD;AALJ,UAVF,CADF;AAqBD,OA3BD,CAPJ,CADF;AAuCD,KAnDc;AAAA,GAAD,EAmDX,CAAC/R,cAAD,EAAiBiR,cAAjB,CAnDW,CAAd;AAoDD;;AClEc,SAASe,yBAAT,cAAwE;AAAA,MAAnClT,mBAAmC,QAAnCA,mBAAmC;AAAA,MAAV6G,MAAU,SAAVA,MAAU;AACrF,SAAOkE,WAAW,CAAC,UAACzN,OAAD,EAAU4E,GAAV,EAAe4Q,SAAf,EAA6B;AAC9C,QAAIA,SAAJ,EAAe;AACb9S,MAAAA,mBAAmB,CAACmT,cAApB,CAAmC7V,OAAnC,EAA4C4E,GAA5C,EACGyG,IADH,CACQ,UAAC0E,GAAD,EAAS;AACbxG,QAAAA,MAAM,CAACM,IAAP,CAAY,yBAAZ,EAAuCkG,GAAvC;AACD,OAHH,EAIGxE,KAJH,CAIS,UAACI,GAAD,EAAS;AACdpC,QAAAA,MAAM,CAACY,OAAP,CAAe,wBAAf,EAAyCwB,GAAzC;AACD,OANH;AAOA;AACD;;AACDjJ,IAAAA,mBAAmB,CAACoT,WAApB,CAAgC9V,OAAhC,EAAyC4E,GAAzC,EACGyG,IADH,CACQ,UAAC0E,GAAD,EAAS;AACbxG,MAAAA,MAAM,CAACM,IAAP,CAAY,sBAAZ,EAAoCkG,GAApC;AACD,KAHH,EAIGxE,KAJH,CAIS,UAACI,GAAD,EAAS;AACdpC,MAAAA,MAAM,CAACY,OAAP,CAAe,qBAAf,EAAsCwB,GAAtC;AACD,KANH;AAOD,GAlBiB,EAkBf,CAACjJ,mBAAD,CAlBe,CAAlB;AAmBD;;ACTc,SAASqT,aAAT,OAIZ;AAAA,MAHDtC,SAGC,QAHDA,SAGC;AAAA,MAFDzT,OAEC,QAFDA,OAEC;AAAA,MADDgW,MACC,QADDA,MACC;;AACD,MAAMC,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClB,YAAQD,MAAR;AACE,WAAKpT,iBAAiB,CAAC/C,MAAvB;AACA,WAAK+C,iBAAiB,CAAC9C,OAAvB;AAAgC;AAC9B,iBAAO,IAAP;AACD;;AACD,WAAK8C,iBAAiB,CAACC,IAAvB;AACA,WAAKD,iBAAiB,CAACO,SAAvB;AACA,WAAKP,iBAAiB,CAACI,IAAvB;AAA6B;AAC3B,8BACEqQ,6BAAC,KAAD;AACE,YAAA,SAAS,EAAC,+BADZ;AAEE,YAAA,IAAI,EAAE6C,eAAe,CAACC,SAFxB;AAGE,YAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,aAKGlR,qBAAmB,CAACnF,OAAD,CALtB,CADF;AASD;;AACD;AAAS,eAAO,IAAP;AAlBX;AAoBD,GArBD;;AAuBA,MAAMsW,IAAI,GAAG;AACXxW,IAAAA,OAAO,eACLuT,6BAAC,MAAD;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,MAAA,KAAK,EAAC,MAFR;AAGE,MAAA,MAAM,EAAC;AAHT,oBAKEA,6BAAC,IAAD;AACE,MAAA,IAAI,EAAEqC,SAAS,CAACa,OADlB;AAEE,MAAA,SAAS,EAAEC,UAAU,CAACC,OAFxB;AAGE,MAAA,KAAK,EAAC,MAHR;AAIE,MAAA,MAAM,EAAC;AAJT,MALF,CAFS;AAeX5T,IAAAA,IAAI,eACFwQ,6BAAC,IAAD;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,MAAA,IAAI,EAAEqC,SAAS,CAACgB,IAFlB;AAGE,MAAA,SAAS,EAAEF,UAAU,CAAC3T,IAHxB;AAIE,MAAA,KAAK,EAAC,MAJR;AAKE,MAAA,MAAM,EAAC;AALT,MAhBS;AAwBXM,IAAAA,SAAS,eACPkQ,6BAAC,IAAD;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,MAAA,IAAI,EAAEqC,SAAS,CAACiB,QAFlB;AAGE,MAAA,SAAS,EAAEH,UAAU,CAAC3T,IAHxB;AAIE,MAAA,KAAK,EAAC,MAJR;AAKE,MAAA,MAAM,EAAC;AALT,MAzBS;AAiCXG,IAAAA,IAAI,eACFqQ,6BAAC,IAAD;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,MAAA,IAAI,EAAEqC,SAAS,CAACiB,QAFlB;AAGE,MAAA,SAAS,EAAEH,UAAU,CAACxT,IAHxB;AAIE,MAAA,KAAK,EAAC,MAJR;AAKE,MAAA,MAAM,EAAC;AALT,MAlCS;AA0CXnD,IAAAA,MAAM,eACJwT,6BAAC,IAAD;AACE,MAAA,SAAS,EAAC,+BADZ;AAEE,MAAA,IAAI,EAAEqC,SAAS,CAACkB,KAFlB;AAGE,MAAA,SAAS,EAAEJ,UAAU,CAACI,KAHxB;AAIE,MAAA,KAAK,EAAC,MAJR;AAKE,MAAA,MAAM,EAAC;AALT;AA3CS,GAAb;AAqDA,sBACEvD;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,yBAFS,GAGTM,IAHS,CAGJ,GAHI;AADb,KAMGuC,IAAI,CAACN,MAAD,CANP,eAOE3C,wCAPF,EAQG4C,KAAK,CAAA,CARR,CADF;AAYD;AAEDF,aAAa,CAAC9B,SAAd,GAA0B;AACxBR,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CADa;AAKxBpU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvBxR,IAAAA,SAAS,EAAE6O,SAAS,CAACI,MADE;AAEvB9O,IAAAA,MAAM,EAAE0O,SAAS,CAAC2C,KAAV,CAAgB;AACtBC,MAAAA,UAAU,EAAE5C,SAAS,CAACE,MADA;AAEtBlP,MAAAA,QAAQ,EAAEgP,SAAS,CAACE,MAFE;AAGtBnP,MAAAA,MAAM,EAAEiP,SAAS,CAACE,MAHI;AAItB2C,MAAAA,UAAU,EAAE7C,SAAS,CAACE;AAJA,KAAhB;AAFe,GAAhB,CALe;AAcxB4B,EAAAA,MAAM,EAAE9B,SAAS,CAACE;AAdM,CAA1B;AAiBA2B,aAAa,CAACpB,YAAd,GAA6B;AAC3BlB,EAAAA,SAAS,EAAE,EADgB;AAE3BzT,EAAAA,OAAO,EAAE,IAFkB;AAG3BgW,EAAAA,MAAM,EAAE;AAHmB,CAA7B;;ACvHA,IAAMgB,aAAa,gBAAG3D,cAAK,CAACC,UAAN,CAAiB,UAACC,KAAD,EAAQC,GAAR,EAAgB;AACrD,MACEC,SADF,GAOIF,KAPJ,CACEE,SADF;AAAA,MAEEG,QAFF,GAOIL,KAPJ,CAEEK,QAFF;AAAA,MAGEqD,KAHF,GAOI1D,KAPJ,CAGE0D,KAHF;AAAA,MAIEvD,QAJF,GAOIH,KAPJ,CAIEG,QAJF;AAAA,MAKEwD,KALF,GAOI3D,KAPJ,CAKE2D,KALF;AAAA,MAMEvD,OANF,GAOIJ,KAPJ,CAMEI,OANF;;AASA,MAAMwD,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,QAAIzD,QAAQ,IAAI,CAACwD,KAAjB,EAAwB;AACtB,aAAO,YAAP;AACD;;AACD,QAAIA,KAAJ,EAAW;AACT,aAAO,UAAP;AACD;;AACD,WAAO,EAAP;AACD,GARD;;AAUA,sBACE7D;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,qCAEiB0D,gBAAgB,EAFjC,IAGTpD,IAHS,CAGJ,GAHI,CADb;AAKE,IAAA,IAAI,EAAC,QALP;AAME,IAAA,GAAG,EAAEP,GANP;AAOE,IAAA,OAAO,EAAEG,OAPX;AAQE,IAAA,SAAS,EAAEA,OARb;AASE,IAAA,QAAQ,EAAE;AATZ,kBAWEN;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KACGO,QADH,CADF,eAIEP,6BAAC,KAAD;AACE,IAAA,SAAS,EAAGO,QAAQ,IAAIqD,KAAb,IAAuB,uCADpC;AAEE,IAAA,IAAI,EAAEf,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACgB;AAHrB,KAKGH,KALH,CAJF,CAXF,CADF;AA0BD,CA9CqB,CAAtB;AAgDAD,aAAa,CAAC/C,SAAd,GAA0B;AACxBR,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CADa;AAKxBR,EAAAA,QAAQ,EAAEM,SAAS,CAACO,OAAV,CAAkBC,UALJ;AAMxBuC,EAAAA,KAAK,EAAE/C,SAAS,CAACC,SAAV,CAAoB,CACzBD,SAAS,CAACI,MADe,EAEzBJ,SAAS,CAACE,MAFe,CAApB,CANiB;AAUxBV,EAAAA,QAAQ,EAAEQ,SAAS,CAACK,IAVI;AAWxB2C,EAAAA,KAAK,EAAEhD,SAAS,CAACK,IAXO;AAYxBZ,EAAAA,OAAO,EAAEO,SAAS,CAACM;AAZK,CAA1B;AAeAwC,aAAa,CAACrC,YAAd,GAA6B;AAC3BlB,EAAAA,SAAS,EAAE,EADgB;AAE3BwD,EAAAA,KAAK,EAAE,EAFoB;AAG3BvD,EAAAA,QAAQ,EAAE,KAHiB;AAI3BwD,EAAAA,KAAK,EAAE,KAJoB;AAK3BvD,EAAAA,OAAO,EAAE,mBAAM;AALY,CAA7B;;AC9De,SAAS0D,OAAT,OAGZ;AAAA,MAFD5D,SAEC,QAFDA,SAEC;AAAA,MADDG,QACC,QADDA,QACC;AACD,sBACEP;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,kBAFS,GAGTM,IAHS,CAGJ,GAHI;AADb,kBAMEV,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,wBADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAFxB;AAGE,IAAA,KAAK,EAAElB,WAAW,CAACmB;AAHrB,KAKG3D,QALH,CANF,CADF;AAgBD;AAEDyD,OAAO,CAACpD,SAAR,GAAoB;AAClBR,EAAAA,SAAS,EAAES,SAAS,CAACE,MADH;AAElBR,EAAAA,QAAQ,EAAEM,SAAS,CAACC,SAAV,CAAoB,CAC5BD,SAAS,CAACO,OADkB,EAE5BP,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF4B,EAG5BF,SAAS,CAACE,MAHkB,CAApB;AAFQ,CAApB;AASAiD,OAAO,CAAC1C,YAAR,GAAuB;AACrBlB,EAAAA,SAAS,EAAE,EADU;AAErBG,EAAAA,QAAQ,EAAE;AAFW,CAAvB;;ACjCA,IAAM4D,kBAAkB,GAAG,CAA3B;AAEe,SAASC,cAAT,OAKZ;AAAA,MAJDhE,SAIC,QAJDA,SAIC;AAAA,MAHDG,QAGC,QAHDA,QAGC;AAAA,MAFD8D,YAEC,QAFDA,YAEC;;AACD,kBAAgDC,QAAQ,CAAC,KAAD,CAAxD;AAAA;AAAA,MAAOC,gBAAP;AAAA,MAAyBC,mBAAzB;;AACA,MAAMC,WAAW,GAAGrI,MAAM,CAAC,IAAD,CAA1B;AAEA,sBACE4D;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,0BAFS,GAGTM,IAHS,CAGJ,GAHI,CADb;AAKE,IAAA,WAAW,EAAE,uBAAM;AAAE8D,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AAA4B,KALnD;AAME,IAAA,OAAO,EAAE,mBAAM;AAAEA,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AAA4B,KAN/C;AAOE,IAAA,UAAU,EAAE,sBAAM;AAAEA,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AAA6B,KAPnD;AAQE,IAAA,MAAM,EAAE,kBAAM;AAAEA,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AAA6B;AAR/C,kBAUExE;AACE,IAAA,SAAS,EAAC,oCADZ;AAEE,IAAA,GAAG,EAAEyE;AAFP,KAIGlE,QAJH,CAVF,EAiBIgE,gBAAgB,iBACdvE;AACE,IAAA,SAAS,EAAC,yCADZ;AAEE,IAAA,KAAK,EAAE;AAAE0E,MAAAA,MAAM,wBAAiBP,kBAAjB;AAAR;AAFT,kBAIEnE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AACE,IAAA,SAAS,EAAC,mEADZ;AAEE,IAAA,KAAK,EAAE;AAAE2E,MAAAA,IAAI,EAAEF,WAAW,CAAC/N,OAAZ,mBAA+B+N,WAAW,CAAC/N,OAAZ,CAAoBkO,WAApB,GAAkC,CAAjE;AAAR;AAFT,KAIGP,YAJH,CADF,CAJF,CAlBN,CADF;AAoCD;AAEDD,cAAc,CAACxD,SAAf,GAA2B;AACzBR,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CADc;AAKzBR,EAAAA,QAAQ,EAAEM,SAAS,CAACO,OAAV,CAAkBC,UALH;AAMzBgD,EAAAA,YAAY,EAAExD,SAAS,CAACC,SAAV,CAAoB,CAChCD,SAAS,CAACO,OADsB,EAEhCP,SAAS,CAACM,IAFsB,CAApB,EAGXE;AATsB,CAA3B;AAWA+C,cAAc,CAAC9C,YAAf,GAA8B;AAC5BlB,EAAAA,SAAS,EAAE;AADiB,CAA9B;;ACpDe,SAASyE,cAAT,OAQZ;AAAA,MAPDzE,SAOC,QAPDA,SAOC;AAAA,MANDxO,MAMC,QANDA,MAMC;AAAA,MALDjF,OAKC,QALDA,OAKC;AAAA,MAJDmY,WAIC,QAJDA,WAIC;AAAA,MAHDC,UAGC,QAHDA,UAGC;AAAA,MAFDvD,cAEC,QAFDA,cAEC;AAAA,MADDwD,sBACC,QADDA,sBACC;AACD,MAAMC,sBAAsB,GAAGD,sBAA/B;AACA,MAAME,UAAU,GAAG,MAAnB;AACA,MAAM/G,WAAW,GAAG,MAApB;AACA,MAAMgH,mBAAmB,GAAG/I,MAAM,CAAC,IAAD,CAAlC;AACA,2BAA2BzP,OAA3B,CAAQsV,SAAR;AAAA,MAAQA,SAAR,mCAAoB,EAApB;AACA,MAAMmD,gBAAgB,GAAGnD,SAAzB;;AACA,oBAAsBoD,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AAEA,sBACEvF;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,0BAFS,GAGTM,IAHS,CAGJ,GAHI;AADb,kBAMEV;AAAK,IAAA,SAAS,EAAC;AAAf,KAEIoF,gBAAgB,IACdA,gBAAgB,CAACrS,GAAjB,CAAqB,UAACmP,QAAD,EAAc;AAAE;AACnC,4BAAyBA,QAAzB,CAAQE,OAAR;AAAA,QAAQA,OAAR,kCAAkB,EAAlB;AACA,QAAMoD,QAAQ,GAAGV,WAAW,CAACW,GAAZ,CAAgBvD,QAAQ,CAAC3Q,GAAzB,KAAiC,EAAlD;AACA,QAAMmU,gBAAgB,GAAGtD,OAAO,CAACxR,MAAjC;AACA,QAAM+U,WAAW,GAAG,EAAEvD,OAAO,CAAC1M,OAAR,CAAgB9D,MAAhB,IAA0B,CAA5B,CAApB;AACA,QAAMgU,SAAS,GAAGxD,OAAO,CACtBlR,MADe,CACR,UAAC2U,aAAD;AAAA,aAAmBA,aAAa,KAAKjU,MAArC;AAAA,KADQ,EAEfmB,GAFe,CAEX,UAAC8S,aAAD;AAAA,aACHd,UAAU,CAACU,GAAX,CAAeI,aAAf,KAAiCN,SAAS,CAACO,oBADxC;AAAA,KAFW,CAAlB;AAKA,QAAMC,cAAc,GAAIH,SAAS,CAAChV,MAAV,GAAmB,CAApB,GACnB2U,SAAS,CAACS,gBADS,GACUT,SAAS,CAACU,YAD3C;AAEA,wBACEjG,6BAAC,cAAD;AACE,MAAA,SAAS,EAAC,0CADZ;AAEE,MAAA,GAAG,EAAEkC,QAAQ,CAAC3Q,GAFhB;AAGE,MAAA,YAAY,EACV6Q,OAAO,CAACxR,MAAR,GAAiB,CAAjB,iBACEoP,6BAAC,OAAD,qBACEA,sEAGM4F,SAAS,CAAClF,IAAV,CAAe,IAAf,CAHN,SAKMiF,WAAW,GACPI,cADO,GAEP,EAPV,EADF;AALN,oBAqBE/F,6BAAC,aAAD;AACE,MAAA,KAAK,EAAE0F,gBADT;AAEE,MAAA,QAAQ,EAAEC,WAFZ;AAGE,MAAA,OAAO,EAAE;AAAA,eAAMnE,cAAc,CAAC7U,OAAD,EAAUuV,QAAQ,CAAC3Q,GAAnB,EAAwBoU,WAAxB,CAApB;AAAA;AAHX,oBAKE3F,6BAAC,aAAD;AACE,MAAA,MAAM,MADR;AAEE,MAAA,GAAG,EAAEwF,QAFP;AAGE,MAAA,KAAK,EAAEN,UAHT;AAIE,MAAA,MAAM,EAAE/G,WAJV;AAKE,MAAA,gBAAgB,eACd6B,6BAAC,IAAD;AACE,QAAA,KAAK,EAAEkF,UADT;AAEE,QAAA,MAAM,EAAE/G,WAFV;AAGE,QAAA,IAAI,EAAEkE,SAAS,CAACC;AAHlB;AANJ,MALF,CArBF,CADF;AA2CD,GAvDD,CAHN,EA8DK8C,gBAAgB,CAACxU,MAAjB,GAA0BkU,WAAW,CAACoB,IAAvC,iBAEElG,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,aAAD;AACE,QAAA,SAAS,EAAC,8CADZ;AAEE,QAAA,KAAK,MAFP;AAGE,QAAA,OAAO,EAAEmG,cAHX;AAIE,QAAA,GAAG,EAAEhB;AAJP,sBAMEnF,6BAAC,IAAD;AACE,QAAA,KAAK,EAAEkF,UADT;AAEE,QAAA,MAAM,EAAE/G,WAFV;AAGE,QAAA,SAAS,EAAEgF,UAAU,CAACiD,eAHxB;AAIE,QAAA,IAAI,EAAE/D,SAAS,CAACgE;AAJlB,QANF,CADW;AAAA,KADf;AAgBE,IAAA,SAAS,EAAE,mBAACxE,aAAD;AAAA,0BACT7B,6BAAC,sBAAD;AACE,QAAA,OAAO,EAAErT,OADX;AAEE,QAAA,SAAS,EAAEwY,mBAFb;AAGE,QAAA,gBAAgB,EAAEA,mBAHpB;AAIE,QAAA,aAAa,EAAEtD,aAJjB;AAKE,QAAA,gBAAgB,EAAE;AAAEyE,UAAAA,CAAC,EAAE;AAAL;AALpB,QADS;AAAA;AAhBb,IAhEN,CANF,CADF;AAsGD;AAEDzB,cAAc,CAACjE,SAAf,GAA2B;AACzBR,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CADc;AAKzBnP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MALO;AAMzBpU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvBvB,IAAAA,SAAS,EAAEpB,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAAlB;AADY,GAAhB,EAENnC,UARsB;AASzByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UATd;AAUzB0D,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAVa;AAWzB+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAXD;AAYzB6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM;AAZT,CAA3B;AAcA0D,cAAc,CAACvD,YAAf,GAA8B;AAC5BlB,EAAAA,SAAS,EAAE,EADiB;AAE5BxO,EAAAA,MAAM,EAAE,EAFoB;AAG5BmT,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EAHgB;AAI5B+S,EAAAA,cAAc,EAAE,0BAAM,EAJM;AAK5BwD,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA;AALI,CAA9B;;AC9Ie,SAASwB,wBAAT,OAKZ;AAAA,MAJD7Z,OAIC,QAJDA,OAIC;AAAA,MAHD8Z,SAGC,QAHDA,SAGC;AAAA,MAFDrG,SAEC,QAFDA,SAEC;AAAA,MADDsG,QACC,QADDA,QACC;;AACD,oBAAsBrB,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAMoB,eAAe,GAAG9D,eAAe,CAAC+D,MAAxC;AACA,MAAMC,YAAY,GAAGH,QAAQ,GAAG3D,WAAW,CAACC,cAAf,GAAgCD,WAAW,CAAC+D,WAAzE;AACA,SAAOpF,OAAO,CAAC;AAAA,WAAM,YAAM;AACzB,UAAMqF,YAAY,GAAGpa,OAAO,CAACqa,KAAR,CAAc,IAAd,CAArB;AACA,UAAMC,cAAc,GAAGF,YAAY,CAChChU,GADoB,CAChB,UAACmU,IAAD;AAAA,eAAWA,IAAI,KAAK,EAAT,GAAcA,IAAd,gBAAqBlH,wCAAhC;AAAA,OADgB,CAAvB;;AAEA,UAAIyG,SAAS,GAAG,CAAhB,EAAmB;AACjBQ,QAAAA,cAAc,CAAClW,IAAf,eACEiP,6BAAC,KAAD;AACE,UAAA,GAAG,EAAE1J,MAAM,EADb;AAEE,UAAA,SAAS,EAAE8J,SAFb;AAGE,UAAA,IAAI,EAAEuG,eAHR;AAIE,UAAA,KAAK,EAAEE;AAJT,sBAMOtB,SAAS,CAAC4B,cANjB,OADF;AAUD;;AACD,aAAOF,cAAP;AACD,KAjBc;AAAA,GAAD,EAiBX,CAACta,OAAD,EAAU8Z,SAAV,EAAqBrG,SAArB,CAjBW,CAAd;AAkBD;;AC/BD,IAAMgH,WAAW,GAAG,YAApB;AACA,IAAMC,WAAW,GAAG,YAApB;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAGhB;AAAA,MAFJnH,GAEI,QAFJA,GAEI;AAAA,MADJoH,QACI,QADJA,QACI;;AACJ,MAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,QAAIrH,GAAG,CAACzJ,OAAR,EAAiB;AACf6Q,MAAAA,QAAQ,CAAC,IAAD,CAAR;AACD;AACF,GAJD;;AAKA,MAAME,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,QAAItH,GAAG,CAACzJ,OAAR,EAAiB;AACf6Q,MAAAA,QAAQ,CAAC,KAAD,CAAR;AACD;AACF,GAJD;;AAMAnR,EAAAA,SAAS,CAAC,YAAM;AACd,QAAQM,OAAR,GAAoByJ,GAApB,CAAQzJ,OAAR;;AACA,QAAIA,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACgR,gBAAR,CAAyBN,WAAzB,EAAsCI,eAAtC;AACA9Q,MAAAA,OAAO,CAACgR,gBAAR,CAAyBL,WAAzB,EAAsCI,cAAtC;AACD;;AACD,WAAO,YAAM;AACX,UAAI/Q,OAAJ,EAAa;AACXA,QAAAA,OAAO,CAACiR,mBAAR,CAA4BP,WAA5B,EAAyCI,eAAzC;AACA9Q,QAAAA,OAAO,CAACiR,mBAAR,CAA4BN,WAA5B,EAAyCI,cAAzC;AACD;AACF,KALD;AAMD,GAZQ,CAAT;AAaD,CA5BD;;ACmBA,IAAMG,MAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;AACA,IAAMC,kBAAgB,GAAG,KAAzB;AACA,IAAMC,gBAAc,GAAG,KAAvB;AAEe,SAASC,OAAT,CAAiB7H,KAAjB,EAAwB;AACrC,MACEE,SADF,GAiBIF,KAjBJ,CACEE,SADF;AAAA,MAEEzT,OAFF,GAiBIuT,KAjBJ,CAEEvT,OAFF;AAAA,MAGEqb,MAHF,GAiBI9H,KAjBJ,CAGE8H,MAHF;AAAA,MAIEpW,MAJF,GAiBIsO,KAjBJ,CAIEtO,MAJF;AAAA,MAKEqW,aALF,GAiBI/H,KAjBJ,CAKE+H,aALF;AAAA,MAMEC,QANF,GAiBIhI,KAjBJ,CAMEgI,QANF;AAAA,MAOEC,QAPF,GAiBIjI,KAjBJ,CAOEiI,QAPF;AAAA,MAQEC,UARF,GAiBIlI,KAjBJ,CAQEkI,UARF;AAAA,MASEzF,MATF,GAiBIzC,KAjBJ,CASEyC,MATF;AAAA,MAUE3I,WAVF,GAiBIkG,KAjBJ,CAUElG,WAVF;AAAA,MAWE8K,WAXF,GAiBI5E,KAjBJ,CAWE4E,WAXF;AAAA,MAYEC,UAZF,GAiBI7E,KAjBJ,CAYE6E,UAZF;AAAA,MAaEvD,cAbF,GAiBItB,KAjBJ,CAaEsB,cAbF;AAAA,MAcEwD,sBAdF,GAiBI9E,KAjBJ,CAcE8E,sBAdF;AAAA,MAeEqD,QAfF,GAiBInI,KAjBJ,CAeEmI,QAfF;AAAA,MAgBEC,WAhBF,GAiBIpI,KAjBJ,CAgBEoI,WAhBF;AAmBA,MAAI,CAAC3b,OAAL,EAAc,OAAO,IAAP;AAEd,MAAM4b,2BAA2B,GAAG/B,wBAAsB,CAAC;AACzDpG,IAAAA,SAAS,EAAE,4BAD8C;AAEzDzT,IAAAA,OAAO,EAAEA,OAAO,CAACA,OAFwC;AAGzD8Z,IAAAA,SAAS,EAAE9Z,OAAO,CAAC8Z;AAHsC,GAAD,CAA1D;AAKA,MAAM+B,2BAA2B,GAAGhC,wBAAsB,CAAC;AACzDpG,IAAAA,SAAS,EAAE,4BAD8C;AAEzDzT,IAAAA,OAAO,EAAEA,OAAO,CAACA,OAFwC;AAGzD8Z,IAAAA,SAAS,EAAE9Z,OAAO,CAAC8Z,SAHsC;AAIzDC,IAAAA,QAAQ,EAAE;AAJ+C,GAAD,CAA1D;AAOA,sBACE1G;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,kBAFS,4BAGU4H,MAAM,GAAG,YAAH,GAAkB,YAHlC,IAITtH,IAJS,CAIJ,GAJI;AADb,KAQIsH,MAAM,gBAEFhI,6BAAC,mBAAD;AACE,IAAA,MAAM,EAAEpO,MADV;AAEE,IAAA,OAAO,EAAEjF,OAFX;AAGE,IAAA,aAAa,EAAEsb,aAHjB;AAIE,IAAA,QAAQ,EAAEC,QAJZ;AAKE,IAAA,QAAQ,EAAEC,QALZ;AAME,IAAA,UAAU,EAAEC,UANd;AAOE,IAAA,MAAM,EAAEzF,MAPV;AAQE,IAAA,WAAW,EAAE3I,WARf;AASE,IAAA,WAAW,EAAE8K,WATf;AAUE,IAAA,UAAU,EAAEC,UAVd;AAWE,IAAA,cAAc,EAAEvD,cAXlB;AAYE,IAAA,mBAAmB,EAAE+G,2BAZvB;AAaE,IAAA,sBAAsB,EAAEvD,sBAb1B;AAcE,IAAA,QAAQ,EAAEqD,QAdZ;AAeE,IAAA,WAAW,EAAEC;AAff,IAFE,gBAqBFtI,6BAAC,mBAAD;AACE,IAAA,MAAM,EAAEpO,MADV;AAEE,IAAA,OAAO,EAAEjF,OAFX;AAGE,IAAA,WAAW,EAAEqN,WAHf;AAIE,IAAA,WAAW,EAAE8K,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,mBAAmB,EAAEgH,2BAPvB;AAQE,IAAA,sBAAsB,EAAExD,sBAR1B;AASE,IAAA,QAAQ,EAAEqD,QATZ;AAUE,IAAA,WAAW,EAAEC;AAVf,IA7BR,CADF;AA8CD;AAEDP,OAAO,CAACnH,SAAR,GAAoB;AAClBoH,EAAAA,MAAM,EAAEnH,SAAS,CAACK,IADA;AAElBgH,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAFF;AAGlBtP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAHA;AAIlBpU,EAAAA,OAAO,EAAEkU,SAAS,CAAC4H,QAAV,CAAmB5H,SAAS,CAACC,SAAV,CAAoB,CAC9CD,SAAS,CAACE,MADoC,EAE9CF,SAAS,CAACI,MAFoC,EAG9CJ,SAAS,CAACK,IAHoC,EAI9CL,SAAS,CAAC6H,KAJoC,EAK9C7H,SAAS,CAAC8H,MALoC,CAApB,CAAnB,EAMLtH,UAVc;AAWlBjB,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CAXO;AAelBoH,EAAAA,QAAQ,EAAEtH,SAAS,CAACM,IAfF;AAgBlBwB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MAhBA;AAiBlBqH,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IAjBJ;AAkBlB8G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAlBP;AAmBlBnH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UAnBV;AAoBlByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CApBK;AAqBlBsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CArBM;AAsBlB+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAtBR;AAuBlB6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAvBhB;AAwBlBkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAxBF;AAyBlBoH,EAAAA,WAAW,EAAEzH,SAAS,CAACK;AAzBL,CAApB;AA4BA6G,OAAO,CAACzG,YAAR,GAAuB;AACrB0G,EAAAA,MAAM,EAAE,KADa;AAErBE,EAAAA,QAAQ,EAAE,KAFW;AAGrBtW,EAAAA,MAAM,EAAE,EAHa;AAIrBqW,EAAAA,aAAa,EAAEL,MAJM;AAKrBxH,EAAAA,SAAS,EAAE,EALU;AAMrB+H,EAAAA,QAAQ,EAAEP,MANW;AAOrBQ,EAAAA,UAAU,EAAER,MAPS;AAQrBjF,EAAAA,MAAM,EAAE,EARa;AASrBmC,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EATQ;AAUrBsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EAVS;AAWrB+S,EAAAA,cAAc,EAAEoG,MAXK;AAYrB5C,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA,GAZH;AAarBqD,EAAAA,QAAQ,EAAE,KAbW;AAcrBC,EAAAA,WAAW,EAAE;AAdQ,CAAvB;;AAiBA,SAASM,mBAAT,OAgBG;AAAA,MAfDhX,MAeC,QAfDA,MAeC;AAAA,MAdDjF,OAcC,QAdDA,OAcC;AAAA,MAbDwb,QAaC,QAbDA,QAaC;AAAA,MAZDD,QAYC,QAZDA,QAYC;AAAA,MAXDE,UAWC,QAXDA,UAWC;AAAA,MAVDzF,MAUC,QAVDA,MAUC;AAAA,MATDsF,aASC,QATDA,aASC;AAAA,MARDjO,WAQC,QARDA,WAQC;AAAA,MAPD8K,WAOC,QAPDA,WAOC;AAAA,MANDC,UAMC,QANDA,UAMC;AAAA,MALDvD,cAKC,QALDA,cAKC;AAAA,MAJDqH,mBAIC,QAJDA,mBAIC;AAAA,MAHD7D,sBAGC,QAHDA,sBAGC;AAAA,MAFDqD,QAEC,QAFDA,QAEC;AAAA,MADDC,WACC,QADDA,WACC;AACD,MAAMQ,mBAAmB,GAAGD,mBAA5B;AACA,MAAM5D,sBAAsB,GAAGD,sBAA/B,CAFC;;AAID,MAAM+D,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAM4M,kBAAkB,GAAG5M,MAAM,CAAC,IAAD,CAAjC;AACA,MAAM6M,cAAc,GAAG7M,MAAM,CAAC,IAAD,CAA7B;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;;AACA,kBAAoCkI,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAA4C/E,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOgF,cAAP;AAAA,MAAuBC,iBAAvB;;AAEA,MAAMC,aAAa,GAAGC,qBAAmB,CAAC9G,MAAD,CAAzC;AACA,MAAM+G,qBAAqB,GAAG1P,WAAW,IACnC8K,WAAW,CAACoB,IAAZ,GAAmB,CADK,IAEzByD,4BAA0B,CAAChd,OAAD,CAF/B;;AAGA,MAAMid,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAC,iCADZ;AAEE,IAAA,GAAG,EAAE+I,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,kBAAH,GAAsBC,gBADrC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,kBAAH,GAAsBC;AAF3C;AAHT,kBAQE9H;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC,6BAAf;AAA6C,IAAA,GAAG,EAAE4B;AAAlD,kBACE5B,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,SAAS,EAAC,mCADZ;AAEE,QAAA,GAAG,EAAEiJ,cAFP;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC,MAJT;AAKE,QAAA,OAAO,EAAE,mBAAM;AACb9C,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SATH;AAUE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAZH,sBAcE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAAC2H,IADlB;AAEE,QAAA,SAAS,EAAE7G,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAdF,CADW;AAAA,KADf;AAwBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC;AACC;AACpB;AACA;AACA;AAJkB;AAKE,QAAA,SAAS,EAAEiJ,cALb;AAME,QAAA,gBAAgB,EAAErH,gBANpB;AAOE,QAAA,aAAa,EAAEC,aAPjB;AAQE,QAAA,QAAQ;AARV,SAWI2H,aAAa,iBACXxJ,6BAAC,QAAD;AACE,QAAA,SAAS,EAAC,6BADZ;AAEE,QAAA,OAAO,EAAE,mBAAM;AAAEmK,UAAAA,iBAAe,CAACxd,OAAO,CAACA,OAAT,CAAf;AAAkCkV,UAAAA,aAAa;AAAK;AAFvE,gBAZN,EAqBI2H,aAAa,iBACXxJ,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAIkI,QAAJ,EAAc;AAAE;AAAS;;AACzBC,UAAAA,QAAQ,CAAC,IAAD,CAAR;AACAtG,UAAAA,aAAa;AACd;AALH,gBAtBN,EAkCKlV,OAAO,IAAIA,OAAO,CAACkP,YAAnB,IAAmClP,OAAO,CAACkP,YAAR,EAApC,iBACEmE,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACbiI,UAAAA,aAAa,CAACtb,OAAD,CAAb;AACAkV,UAAAA,aAAa;AACd;AAJH,kBAnCN,eA6CE7B,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAIkI,QAAJ,EAAc;AAAE;AAAS;;AACzBE,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAvG,UAAAA,aAAa;AACd;AALH,kBA7CF,CADF;AAyDD;AAtFH,IADF,EA0FK2H,aAAa,IAAIE,qBAAlB,iBAEE1J,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,SAAS,EAAC,2CADZ;AAEE,QAAA,GAAG,EAAEgJ,kBAFP;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC,MAJT;AAKE,QAAA,OAAO,EAAE,mBAAM;AACb7C,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SATH;AAUE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAZH,sBAcE7J,6BAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UAHlB;AAIE,QAAA,SAAS,EAAElD,UAAU,CAAC8G;AAJxB,QAdF,CADW;AAAA,KADf;AAwBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC,sBAAD;AACE,QAAA,OAAO,EAAErT,OADX;AAEE,QAAA,SAAS,EAAEqc,kBAFb;AAGE,QAAA,gBAAgB,EAAEpH,gBAHpB;AAIE,QAAA,aAAa,EAAEC,aAJjB;AAKE,QAAA,gBAAgB,EAAE;AAAEyE,UAAAA,CAAC,EAAE;AAAL;AALpB,QADF;AASD;AAtCH,IA5FN,CADF,EAyII,CAACgC,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAd,IAA4BE,cAA9B,CAAhB,iBACEtJ;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,aAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,MAAM,EAAEgW;AAFV,IADF,CA1IN,CADF,eAoJE3C;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,8DADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MAFxB;AAGE,IAAA,KAAK,EAAE7D,WAAW,CAACmB;AAHrB,kBAKElE,6BAAC,mBAAD,OALF,CADF,CADF,EAWKhG,WAAW,IAAIrN,OAAO,CAACsV,SAAvB,IAAoCtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAAhE,iBAEEoP,6BAAC,cAAD;AACE,IAAA,SAAS,EAAC,6DADZ;AAEE,IAAA,MAAM,EAAEpO,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,WAAW,EAAEmY,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IAbN,CADF,CApJF,CARF,CADF;AA2LD;;AAED,SAASoF,mBAAT,QAWG;AAAA,MAVDxY,MAUC,SAVDA,MAUC;AAAA,MATDjF,OASC,SATDA,OASC;AAAA,MARDqN,WAQC,SARDA,WAQC;AAAA,MAPD8K,WAOC,SAPDA,WAOC;AAAA,MANDC,UAMC,SANDA,UAMC;AAAA,MALDvD,cAKC,SALDA,cAKC;AAAA,MAJDqH,mBAIC,SAJDA,mBAIC;AAAA,MAHD7D,sBAGC,SAHDA,sBAGC;AAAA,MAFDqD,QAEC,SAFDA,QAEC;AAAA,MADDC,WACC,SADDA,WACC;AACD,MAAMQ,mBAAmB,GAAGD,mBAA5B;AACA,MAAM5D,sBAAsB,GAAGD,sBAA/B;AACA,MAAM+D,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAM4M,kBAAkB,GAAG5M,MAAM,CAAC,IAAD,CAAjC;AACA,MAAM6M,cAAc,GAAG7M,MAAM,CAAC,IAAD,CAA7B;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;AACA,MAAMiO,SAAS,GAAGjO,MAAM,CAAC,IAAD,CAAxB;;AACA,0BAGI4D,cAAK,CAACqF,UAAN,CAAiBiF,kBAAjB,CAHJ;AAAA,MACEC,kBADF,qBACEA,kBADF;AAAA,MAEEC,iBAFF,qBAEEA,iBAFF;;AAIA,mBAAoClG,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,oBAA4C/E,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOgF,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,MAAMG,qBAAqB,GAAG1P,WAAW,IAAI8K,WAAf,IAA+BA,WAAW,CAACoB,IAAZ,GAAmB,CAAhF;AACA,MAAMuE,kBAAkB,GAAIzQ,WAAW,IAAIrN,OAAO,CAACsV,SAAvB,IAAoCtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAA3F;;AAEA,MAAMgZ,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,GAAG,EAAE+I,UADP;AAEE,IAAA,SAAS,EAAC,iCAFZ;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,kBAAH,GAAsBC,gBADrC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,kBAAH,GAAsBC;AAF3C;AAHT,kBAQE9H;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACsI,WAAD,iBACEtI,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,MAAD;AACE,QAAA,GAAG,EAAEqK,SADP;AAEE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAI,CAACE,kBAAL,EAAyB;AACvBpE,YAAAA,cAAc;AACf;AACF,SANH;AAOE,QAAA,SAAS,EAAC,+BAPZ;AAQE,QAAA,GAAG,EAAEuE,qBAAmB,CAAC/d,OAAD,CAR1B;AASE,QAAA,KAAK,EAAC,MATR;AAUE,QAAA,MAAM,EAAC;AAVT,QADW;AAAA,KADf;AAeE,IAAA,SAAS,EAAE,mBAACkV,aAAD;AAAA,0BACT7B,6BAAC;AACC;AACpB;AACA;AACA;AAJkB;AAKE,QAAA,SAAS,EAAEqK,SALb;AAME,QAAA,gBAAgB,EAAEA,SANpB;AAOE,QAAA,aAAa,EAAExI,aAPjB;AAQE,QAAA,KAAK,EAAE;AAAEiI,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AART,SAWIS,iBAAiB,GACbA,iBAAiB,CAAC;AAClBG,QAAAA,IAAI,EAAEhe,OAAO,CAACwF,MADI;AAElB+X,QAAAA,KAAK,EAAErI;AAFW,OAAD,CADJ,gBAMb7B,6BAAC4K,oBAAD;AACE,QAAA,IAAI,EAAEje,OAAO,CAACwF,MADhB;AAEE,QAAA,SAAS,EAAE0P;AAFb,QAjBR,CADS;AAAA;AAfb,IAHN,EAgDI,CAACwG,QAAD,iBACErI,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,oCADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAFxB;AAGE,IAAA,KAAK,EAAElB,WAAW,CAACC;AAHrB,KAKG6H,eAAa,CAACle,OAAD,CALhB,CAjDN,eA0DEqT;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,8DADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MAFxB;AAGE,IAAA,KAAK,EAAE7D,WAAW,CAACgB;AAHrB,kBAKE/D,6BAAC,mBAAD,OALF,CADF,CADF,EAWIyK,kBAAkB,iBAChBzK,6BAAC,cAAD;AACE,IAAA,SAAS,EAAC,6DADZ;AAEE,IAAA,MAAM,EAAEpO,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,WAAW,EAAEmY,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IAZN,CADF,CA1DF,CADF,eAsFEhF;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AACE,IAAA,SAAS,EAAC,6BADZ;AAEE,IAAA,GAAG,EAAE4B,gBAFP;AAGE,IAAA,KAAK,EAAE;AAAEkJ,MAAAA,GAAG,EAAEzC,QAAQ,GAAG,KAAH,GAAW;AAA1B;AAHT,KAMIqB,qBAAqB,iBAEnB1J,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEgJ,kBADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACb7C,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UAHlB;AAIE,QAAA,SAAS,EAAElD,UAAU,CAAC8G;AAJxB,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC,sBAAD;AACE,QAAA,SAAS,EAAEgJ,kBADb;AAEE,QAAA,gBAAgB,EAAEpH,gBAFpB;AAGE,QAAA,aAAa,EAAEC,aAHjB;AAIE,QAAA,OAAO,EAAElV,OAJX;AAKE,QAAA,gBAAgB,EAAE;AAAE2Z,UAAAA,CAAC,EAAE;AAAL;AALpB,QADF;AASD;AArCH,IARN,eAiDEtG,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEiJ,cADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACb9C,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEqC,SAAS,CAAC2H,IAHlB;AAIE,QAAA,SAAS,EAAE7G,UAAU,CAAC8G;AAJxB,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC,SAAD;AACE,QAAA,SAAS,EAAEiJ,cADb;AAEE,QAAA,gBAAgB,EAAErH,gBAFpB;AAGE,QAAA,aAAa,EAAEC;AAHjB,sBAKE7B,6BAAC,QAAD;AACE,QAAA,SAAS,EAAC,6BADZ;AAEE,QAAA,OAAO,EAAE,mBAAM;AAAEmK,UAAAA,iBAAe,CAACxd,OAAO,CAACA,OAAT,CAAf;AAAkCkV,UAAAA,aAAa;AAAK;AAFvE,gBALF,CADF;AAcD;AA1CH,IAjDF,CADF,EAgGI,CAACyG,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAd,IAA4BE,cAA9B,CAAhB,iBACEtJ,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,gCADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGlR,qBAAmB,CAACnF,OAAD,CALtB,CAjGN,CAtFF,CARF,CADF;AA6MD;;AAEDyd,mBAAmB,CAACxJ,SAApB,GAAgC;AAC9BhP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UADK;AAE9B1U,EAAAA,OAAO,EAAEkU,SAAS,CAAC4H,QAAV,CAAmB5H,SAAS,CAACC,SAAV,CAAoB,CAC9CD,SAAS,CAACE,MADoC,EAE9CF,SAAS,CAACI,MAFoC,EAG9CJ,SAAS,CAACK,IAHoC,EAI9CL,SAAS,CAAC6H,KAJoC,EAK9C7H,SAAS,CAAC8H,MALoC,CAApB,CAAnB,CAFqB;AAS9B3O,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UATE;AAU9ByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAViB;AAW9BsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAXkB;AAY9B+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAZI;AAa9B0H,EAAAA,mBAAmB,EAAEhI,SAAS,CAACM,IAAV,CAAeE,UAbN;AAc9B2D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAdJ;AAe9BkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAfK;AAgB9BiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AAhBE,CAAhC;AAmBA+I,mBAAmB,CAAC9I,YAApB,GAAmC;AACjC3U,EAAAA,OAAO,EAAE,EADwB;AAEjCmY,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EAFoB;AAGjCsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EAHqB;AAIjC+S,EAAAA,cAAc,EAAEoG,MAJiB;AAKjC5C,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA;AALS,CAAnC;AAQA4D,mBAAmB,CAAChI,SAApB,GAAgC;AAC9BhP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UADK;AAE9B1U,EAAAA,OAAO,EAAEkU,SAAS,CAAC4H,QAAV,CAAmB5H,SAAS,CAACC,SAAV,CAAoB,CAC9CD,SAAS,CAACE,MADoC,EAE9CF,SAAS,CAACI,MAFoC,EAG9CJ,SAAS,CAACK,IAHoC,EAI9CL,SAAS,CAAC6H,KAJoC,EAK9C7H,SAAS,CAAC8H,MALoC,CAApB,CAAnB,CAFqB;AAS9BR,EAAAA,QAAQ,EAAEtH,SAAS,CAACM,IATU;AAU9BiH,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IAVQ;AAW9B+G,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAXU;AAY9B+G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAZK;AAa9BwB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MAAV,CAAiBM,UAbK;AAc9BrH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UAdE;AAe9ByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAfiB;AAgB9BsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAhBkB;AAiB9B+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAjBI;AAkB9B0H,EAAAA,mBAAmB,EAAEhI,SAAS,CAACM,IAAV,CAAeE,UAlBN;AAmB9B2D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAnBJ;AAoB9BkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UApBK;AAqB9BiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AArBE,CAAhC;AAwBAuH,mBAAmB,CAACtH,YAApB,GAAmC;AACjC3U,EAAAA,OAAO,EAAE,EADwB;AAEjCsb,EAAAA,aAAa,EAAEL,MAFkB;AAGjCO,EAAAA,QAAQ,EAAEP,MAHuB;AAIjCQ,EAAAA,UAAU,EAAER,MAJqB;AAKjCM,EAAAA,QAAQ,EAAE,KALuB;AAMjCpD,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EANoB;AAOjCsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EAPqB;AAQjC+S,EAAAA,cAAc,EAAEoG,MARiB;AASjC5C,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA;AATS,CAAnC;;ACzqBe,SAAS+F,YAAT,OAGZ;AAAA,MAFD3K,SAEC,QAFDA,SAEC;AAAA,MADDzT,OACC,QADDA,OACC;;AACD,MAAI,EAAEA,OAAO,CAACI,cAAR,IAA0BJ,OAAO,CAACE,WAApC,KAAoD,CAACF,OAAO,CAACI,cAAR,EAArD,IAAiFJ,OAAO,CAACE,WAAR,KAAwB,OAA7G,EAAsH;AACpH,WAAO,IAAP;AACD;;AACD,sBACEmT;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,wBAFS,GAGTM,IAHS,CAGJ,GAHI;AADb,kBAMEV,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,8BADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAFxB;AAGE,IAAA,KAAK,EAAElB,WAAW,CAACC;AAHrB,KAKGrW,OAAO,CAACA,OALX,CANF,CADF;AAgBD;AAEDoe,YAAY,CAACnK,SAAb,GAAyB;AACvBjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvB7W,IAAAA,OAAO,EAAEkU,SAAS,CAACE,MADI;AAEvBlU,IAAAA,WAAW,EAAEgU,SAAS,CAACE,MAFA;AAGvBhU,IAAAA,cAAc,EAAE8T,SAAS,CAACM;AAHH,GAAhB,CADc;AAMvBf,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB;AANY,CAAzB;AAYAgK,YAAY,CAACzJ,YAAb,GAA4B;AAC1B3U,EAAAA,OAAO,EAAE,EADiB;AAE1ByT,EAAAA,SAAS,EAAE;AAFe,CAA5B;;ACxCO,IAAMtO,qBAAmB,GAAG,SAAtBA,mBAAsB,CAACnF,OAAD;AAAA,SAAaoF,MAAM,CAACpF,OAAO,CAACqF,SAAT,EAAoB,GAApB,CAAnB;AAAA,CAA5B;AAEA,IAAMyX,qBAAmB,GAAG,SAAtBA,mBAAsB,CAAC9G,MAAD;AAAA,SACjCA,MAAM,KAAKpT,iBAAiB,CAACC,IAA7B,IACGmT,MAAM,KAAKpT,iBAAiB,CAACO,SADhC,IAEG6S,MAAM,KAAKpT,iBAAiB,CAACI,IAHC;AAAA,CAA5B;AAMA,IAAMga,4BAA0B,GAAG,SAA7BA,0BAA6B,GAAkB;AAAA,MAAjBhd,OAAiB,uEAAP,EAAO;;AAC1D,MAAIA,OAAO,CAACyF,aAAR,IAAyB,OAAOzF,OAAO,CAACyF,aAAf,KAAiC,QAA9D,EAAwE;AACtE,WAAOzF,OAAO,CAACyF,aAAR,KAA0B,MAA1B,IAAoCzF,OAAO,CAACyF,aAAR,KAA0B,WAArE;AACD;;AACD,SAAO,KAAP;AACD,CALM;;AC0BP,IAAMwV,MAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;AAEA,IAAMoD,0BAA0B,GAAG,qCAAnC;AACA,IAAMC,0BAA0B,GAAG,qCAAnC;AACA,IAAMpD,kBAAgB,GAAG,KAAzB;AACA,IAAMC,gBAAc,GAAG,KAAvB;AAEe,SAASoD,gBAAT,OAgBZ;AAAA,0BAfDve,OAeC;AAAA,MAfDA,OAeC,6BAfS,EAeT;AAAA,MAdDiF,MAcC,QAdDA,MAcC;AAAA,MAbDsW,QAaC,QAbDA,QAaC;AAAA,MAZDF,MAYC,QAZDA,MAYC;AAAA,MAXD1H,OAWC,QAXDA,OAWC;AAAA,MAVD8H,UAUC,QAVDA,UAUC;AAAA,MATDzF,MASC,QATDA,MASC;AAAA,MARDsF,aAQC,QARDA,aAQC;AAAA,MAPDjO,WAOC,QAPDA,WAOC;AAAA,MAND8K,WAMC,QANDA,WAMC;AAAA,MALDC,UAKC,QALDA,UAKC;AAAA,MAJDvD,cAIC,QAJDA,cAIC;AAAA,MAHDwD,sBAGC,QAHDA,sBAGC;AAAA,MAFDqD,QAEC,QAFDA,QAEC;AAAA,MADDC,WACC,QADDA,WACC;AACD,SACEN,MAAM,gBAEFhI,6BAAC,wBAAD;AACE,IAAA,MAAM,EAAEpO,MADV;AAEE,IAAA,MAAM,EAAE+Q,MAFV;AAGE,IAAA,OAAO,EAAEhW,OAHX;AAIE,IAAA,OAAO,EAAE2T,OAJX;AAKE,IAAA,QAAQ,EAAE4H,QALZ;AAME,IAAA,QAAQ,EAAEG,QANZ;AAOE,IAAA,UAAU,EAAED,UAPd;AAQE,IAAA,UAAU,EAAErD,UARd;AASE,IAAA,WAAW,EAAEuD,WATf;AAUE,IAAA,WAAW,EAAEtO,WAVf;AAWE,IAAA,WAAW,EAAE8K,WAXf;AAYE,IAAA,aAAa,EAAEmD,aAZjB;AAaE,IAAA,cAAc,EAAEzG,cAblB;AAcE,IAAA,sBAAsB,EAAEwD;AAd1B,IAFE,gBAoBFhF,6BAAC,wBAAD;AACE,IAAA,MAAM,EAAEpO,MADV;AAEE,IAAA,MAAM,EAAE+Q,MAFV;AAGE,IAAA,OAAO,EAAEhW,OAHX;AAIE,IAAA,OAAO,EAAE2T,OAJX;AAKE,IAAA,QAAQ,EAAE+H,QALZ;AAME,IAAA,UAAU,EAAEtD,UANd;AAOE,IAAA,WAAW,EAAEuD,WAPf;AAQE,IAAA,WAAW,EAAEtO,WARf;AASE,IAAA,WAAW,EAAE8K,WATf;AAUE,IAAA,cAAc,EAAEtD,cAVlB;AAWE,IAAA,sBAAsB,EAAEwD;AAX1B,IArBN;AAoCD;AAEM,SAASmG,wBAAT,QAeJ;AAAA,4BAdDxe,OAcC;AAAA,MAdDA,OAcC,8BAdS,EAcT;AAAA,MAbDiF,MAaC,SAbDA,MAaC;AAAA,MAZDsW,QAYC,SAZDA,QAYC;AAAA,MAXD5H,OAWC,SAXDA,OAWC;AAAA,MAVD8H,UAUC,SAVDA,UAUC;AAAA,MATDzF,MASC,SATDA,MASC;AAAA,MARDsF,aAQC,SARDA,aAQC;AAAA,MAPDjO,WAOC,SAPDA,WAOC;AAAA,MAND8K,WAMC,SANDA,WAMC;AAAA,MALDC,UAKC,SALDA,UAKC;AAAA,MAJDvD,cAIC,SAJDA,cAIC;AAAA,MAHDwD,sBAGC,SAHDA,sBAGC;AAAA,MAFDqD,QAEC,SAFDA,QAEC;AAAA,MADDC,WACC,SADDA,WACC;AACD,MACEpb,IADF,GAKIP,OALJ,CACEO,IADF;AAAA,MAEE6B,GAFF,GAKIpC,OALJ,CAEEoC,GAFF;AAAA,MAGEoQ,QAHF,GAKIxS,OALJ,CAGEwS,QAHF;AAAA,MAIEiM,UAJF,GAKIze,OALJ,CAIEye,UAJF;AAMA,MAAMC,YAAY,GAAID,UAAU,IAAIA,UAAU,CAACxa,MAAX,GAAoB,CAAlC,IAAuCwa,UAAU,CAAC,CAAD,CAAV,CAAcrc,GAAtD,IAA8D,IAAnF;;AACA,oBAAsBsW,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAMwD,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;AACA,MAAMkP,OAAO,GAAGlP,MAAM,CAAC,IAAD,CAAtB;AACA,MAAMmP,cAAc,GAAGnP,MAAM,CAAC,IAAD,CAA7B;;AACA,kBAAoCkI,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAA4C/E,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOgF,cAAP;AAAA,MAAuBC,iBAAvB;AACA;;;AACA,MAAMiC,6BAA6B,GAAG9J,OAAO,CAAC;AAAA,WAAM,UAAC+J,QAAD;AAAA,aAAc;AAAA,YAAGC,KAAH,SAAGA,KAAH;AAAA,4BAChE1L;AAAK,UAAA,KAAK,EAAE0L;AAAZ,wBACE1L,6BAAC,IAAD;AACE,UAAA,IAAI,EAAEyL,QADR;AAEE,UAAA,SAAS,EAAEtI,UAAU,CAACwI,eAFxB;AAGE,UAAA,KAAK,EAAC,MAHR;AAIE,UAAA,MAAM,EAAC;AAJT,UADF,CADgE;AAAA,OAAd;AAAA,KAAN;AAAA,GAAD,EAS1C,EAT0C,CAA7C;AAWA,MAAMjC,qBAAqB,GAAG1P,WAAW,IACpC8K,WADyB,IAExBA,WAAW,CAACoB,IAAZ,GAAmB,CAFK,IAGzByD,4BAA0B,CAAChd,OAAD,CAH/B;AAIA,MAAMsY,sBAAsB,GAAGD,sBAA/B;AACA,MAAMwE,aAAa,GAAGC,qBAAmB,CAAC9G,MAAD,CAAzC;;AAEA,MAAMiH,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAEgL,0BADb;AAEE,IAAA,GAAG,EAAEjC,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,kBAAH,GAAsBC,gBADrC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,kBAAH,GAAsBC;AAF3C;AAHT,kBAQE9H;AAAK,IAAA,SAAS,YAAKgL,0BAAL;AAAd,kBACEhL;AAAK,IAAA,SAAS,YAAKgL,0BAAL;AAAd,kBACEhL;AACE,IAAA,SAAS,YAAKgL,0BAAL,wBADX;AAEE,IAAA,GAAG,EAAEpJ;AAFP,kBAIE5B,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEsL,OADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACbnF,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAAC2H,IADlB;AAEE,QAAA,SAAS,EAAE7G,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC;AACC;AACpB;AACA;AACA;AAJkB;AAKE,QAAA,SAAS,EAAEsL,OALb;AAME,QAAA,gBAAgB,EAAE1J,gBANpB;AAOE,QAAA,aAAa,EAAEC,aAPjB;AAQE,QAAA,QAAQ;AARV,SAWKlV,OAAO,IAAIA,OAAO,CAACkP,YAAnB,IAAmClP,OAAO,CAACkP,YAAR,EAApC,iBACEmE,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACbiI,UAAAA,aAAa,CAACtb,OAAD,CAAb;AACAkV,UAAAA,aAAa;AACd;AAJH,SAMG0D,SAAS,CAACqG,6BANb,CAZN,eAsBE5L,6BAAC,QAAD;AAAU,QAAA,OAAO,EAAE,mBAAM;AACvB,cAAIkI,QAAJ,EAAc;AAAE;AAAS;;AACzBE,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAvG,UAAAA,aAAa;AACd;AAJD,SAMG0D,SAAS,CAACsG,6BANb,CAtBF,CADF;AAiCD;AA7DH,IAJF,EAoEKrC,aAAa,IAAIE,qBAAlB,iBAEE1J,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEuL,cADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACbpF,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UADlB;AAEE,QAAA,SAAS,EAAElD,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC,sBAAD;AACE,QAAA,OAAO,EAAErT,OADX;AAEE,QAAA,SAAS,EAAE4e,cAFb;AAGE,QAAA,gBAAgB,EAAE3J,gBAHpB;AAIE,QAAA,aAAa,EAAEC,aAJjB;AAKE,QAAA,gBAAgB,EAAE;AAAEyE,UAAAA,CAAC,EAAE;AAAL;AALpB,QADF;AASD;AArCH,IAtEN,CADF,EAkHK,CAACgC,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAd,IAA4BE,cAA9B,CAAjB,iBACEtJ,6BAAC,aAAD;AACE,IAAA,SAAS,YAAKgL,0BAAL,0BADX;AAEE,IAAA,OAAO,EAAEre,OAFX;AAGE,IAAA,MAAM,EAAEgW;AAHV,IAnHN,CADF,eA4HE3C;AAAK,IAAA,SAAS,YAAKgL,0BAAL;AAAd,kBACEhL;AACE,IAAA,SAAS,YAAKgL,0BAAL;AADX,kBAGEhL;AACE,IAAA,SAAS,YAAKgL,0BAAL,uBADX;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAExB,aAAa,GAAG;AAAA,aAAMlJ,OAAO,CAAC,IAAD,CAAb;AAAA,KAAH,GAAyB,YAAM,EAHvD;AAIE,IAAA,SAAS,EAAEkJ,aAAa,GAAG;AAAA,aAAMlJ,OAAO,CAAC,IAAD,CAAb;AAAA,KAAH,GAAyB,YAAM,EAJzD;AAKE,IAAA,QAAQ,EAAE;AALZ,KAQInT,OAAO,CAACD,IAAD,CAAP,iBACE8S,4DAEKqL,YAAD,gBAEIrL,6BAAC,aAAD;AACE,IAAA,SAAS,YAAKgL,0BAAL,iBADX;AAEE,IAAA,GAAG,EAAEK,YAFP;AAGE,IAAA,GAAG,EAAC,iBAHN;AAIE,IAAA,KAAK,EAAC,OAJR;AAKE,IAAA,MAAM,EAAC,OALT;AAME,IAAA,gBAAgB,eACdrL;AAAK,MAAA,SAAS,YAAKgL,0BAAL;AAAd,oBACEhL,6BAAC,IAAD;AACE,MAAA,IAAI,EAAEqC,SAAS,CAACyJ,IADlB;AAEE,MAAA,SAAS,EAAE3I,UAAU,CAACwI,eAFxB;AAGE,MAAA,KAAK,EAAC,MAHR;AAIE,MAAA,MAAM,EAAC;AAJT,MADF,CAPJ;AAgBE,IAAA,WAAW,EAAEH,6BAA6B,CAACnJ,SAAS,CAACyJ,IAAX;AAhB5C,IAFJ;AAAA;;AAsBI;AACA;AAAO,IAAA,SAAS,YAAKd,0BAAL;AAAhB,kBACEhL;AAAQ,IAAA,GAAG,EAAEjR,GAAG,IAAIoQ,QAApB;AAA8B,IAAA,IAAI,EAAEjS;AAApC,IADF,CAzBR,eA8BE8S;AAAK,IAAA,SAAS,YAAKgL,0BAAL;AAAd,kBACEhL,6BAAC,IAAD;AACE,IAAA,SAAS,YAAKgL,0BAAL,sBADX;AAEE,IAAA,IAAI,EAAE3I,SAAS,CAACyJ,IAFlB;AAGE,IAAA,SAAS,EAAE3I,UAAU,CAACwI,eAHxB;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IADF,CA9BF,CATN,EAoDI1e,OAAO,CAACC,IAAD,CAAP,iBACE8S,yEACEA,6BAAC,aAAD;AACE,IAAA,SAAS,YAAKgL,0BAAL,eADX;AAEE,IAAA,GAAG,EAAEK,YAAY,IAAItc,GAAhB,IAAuBoQ,QAF9B;AAGE,IAAA,GAAG,EAAC,iBAHN;AAIE,IAAA,KAAK,EAAC,OAJR;AAKE,IAAA,MAAM,EAAC,OALT;AAME,IAAA,gBAAgB,eACda;AAAK,MAAA,SAAS,YAAKgL,0BAAL;AAAd,oBACEhL,6BAAC,IAAD;AACE,MAAA,IAAI,EAAEqC,SAAS,CAAC0J,KADlB;AAEE,MAAA,SAAS,EAAE5I,UAAU,CAACwI,eAFxB;AAGE,MAAA,KAAK,EAAC,MAHR;AAIE,MAAA,MAAM,EAAC;AAJT,MADF,CAPJ;AAgBE,IAAA,WAAW,EAAEH,6BAA6B,CAACnJ,SAAS,CAAC0J,KAAX;AAhB5C,IADF,EAoBIC,KAAK,CAAC9e,IAAD,CAAL,iBACE8S;AAAK,IAAA,SAAS,YAAKgL,0BAAL;AAAd,kBACEhL,6BAAC,IAAD;AACE,IAAA,SAAS,YAAKgL,0BAAL,oBADX;AAEE,IAAA,IAAI,EAAE3I,SAAS,CAAC4J,GAFlB;AAGE,IAAA,SAAS,EAAE9I,UAAU,CAACwI,eAHxB;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IADF,CArBN,CArDN,EAyFIO,WAAW,CAAChf,IAAD,CAAX,iBACE8S;AAAK,IAAA,SAAS,YAAKgL,0BAAL;AAAd,KACGzF,SAAS,CAAC4G,6BADb,CA1FN,eA+FEnM;AAAK,IAAA,SAAS,YAAKgL,0BAAL;AAAd,IA/FF,CAHF,EAqGKhR,WAAW,IAAIrN,OAAO,CAACsV,SAAvB,IAAoCtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAAhE,iBAEEoP,6BAAC,cAAD;AACE,IAAA,SAAS,YAAKgL,0BAAL,iCADX;AAEE,IAAA,MAAM,EAAEpZ,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,WAAW,EAAEmY,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IAvGN,CADF,CA5HF,CARF,CADF;AA6PD;AAEM,SAASoH,wBAAT,QAYJ;AAAA,4BAXDzf,OAWC;AAAA,MAXDA,OAWC,8BAXS,EAWT;AAAA,MAVDiF,MAUC,SAVDA,MAUC;AAAA,MATD0O,OASC,SATDA,OASC;AAAA,MARDqC,MAQC,SARDA,MAQC;AAAA,MAPD3I,WAOC,SAPDA,WAOC;AAAA,MAND8K,WAMC,SANDA,WAMC;AAAA,MALDC,UAKC,SALDA,UAKC;AAAA,MAJDvD,cAIC,SAJDA,cAIC;AAAA,MAHDwD,sBAGC,SAHDA,sBAGC;AAAA,MAFDqD,QAEC,SAFDA,QAEC;AAAA,MADDC,WACC,SADDA,WACC;AACD,MACEpb,IADF,GAKIP,OALJ,CACEO,IADF;AAAA,MAEE6B,GAFF,GAKIpC,OALJ,CAEEoC,GAFF;AAAA,MAGEoQ,QAHF,GAKIxS,OALJ,CAGEwS,QAHF;AAAA,MAIEiM,UAJF,GAKIze,OALJ,CAIEye,UAJF;AAMA,MAAMC,YAAY,GAAID,UAAU,IAAIA,UAAU,CAACxa,MAAX,GAAoB,CAAlC,IAAuCwa,UAAU,CAAC,CAAD,CAAV,CAAcrc,GAAtD,IAA8D,IAAnF;;AACA,0BAGIiR,cAAK,CAACqF,UAAN,CAAiBiF,kBAAjB,CAHJ;AAAA,MACEC,kBADF,qBACEA,kBADF;AAAA,MAEEC,iBAFF,qBAEEA,iBAFF;;AAIA,qBAAsBnF,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,gBAAQA,SAAR;;AACA,MAAMwD,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;AACA,MAAMmP,cAAc,GAAGnP,MAAM,CAAC,IAAD,CAA7B;AACA,MAAMiO,SAAS,GAAGjO,MAAM,CAAC,IAAD,CAAxB;;AACA,mBAAoCkI,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,oBAA4C/E,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOgF,cAAP;AAAA,MAAuBC,iBAAvB;AACA;;;AACA,MAAMiC,6BAA6B,GAAG9J,OAAO,CAAC;AAAA,WAAM,UAAC+J,QAAD;AAAA,aAAc;AAAA,YAAGC,KAAH,SAAGA,KAAH;AAAA,4BAChE1L;AAAK,UAAA,KAAK,EAAE0L;AAAZ,wBACE1L,6BAAC,IAAD;AACE,UAAA,IAAI,EAAEyL,QADR;AAEE,UAAA,SAAS,EAAEtI,UAAU,CAACwI,eAFxB;AAGE,UAAA,KAAK,EAAC,MAHR;AAIE,UAAA,MAAM,EAAC;AAJT,UADF,CADgE;AAAA,OAAd;AAAA,KAAN;AAAA,GAAD,EAS1C,EAT0C,CAA7C;AAWA,MAAMjC,qBAAqB,GAAI1P,WAAW,IAAI8K,WAAf,IAA8BA,WAAW,CAACoB,IAAZ,GAAmB,CAAhF;AACA,MAAMjB,sBAAsB,GAAGD,sBAA/B;AACA,MAAMwE,aAAa,GAAGC,qBAAmB,CAAC9G,MAAD,CAAzC;;AAEA,MAAMiH,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAEiL,0BADb;AAEE,IAAA,GAAG,EAAElC,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,kBAAH,GAAsBC,gBADrC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,kBAAH,GAAsBC;AAF3C;AAHT,KASI,CAACO,QAAD,iBACErI,6BAAC,KAAD;AACE,IAAA,SAAS,YAAKiL,0BAAL,kBADX;AAEE,IAAA,IAAI,EAAEpI,eAAe,CAACoB,SAFxB;AAGE,IAAA,KAAK,EAAElB,WAAW,CAACC;AAHrB,KAKG6H,eAAa,CAACle,OAAD,CAAb,IAA0B,EAL7B,CAVN,eAmBEqT;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,kBACEjL;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,kBACEjL;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,KAEI,CAAC3C,WAAD,iBACEtI,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,MAAD;AACE,QAAA,SAAS,YAAKiL,0BAAL,aADX;AAEE,QAAA,GAAG,EAAEZ,SAFP;AAGE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAI,CAACE,kBAAL,EAAyB;AACvBpE,YAAAA,cAAc;AACf;AACF,SAPH;AAQE,QAAA,GAAG,EAAEuE,qBAAmB,CAAC/d,OAAD,CAR1B;AASE,QAAA,KAAK,EAAC,MATR;AAUE,QAAA,MAAM,EAAC;AAVT,QADW;AAAA,KADf;AAeE,IAAA,SAAS,EAAE,mBAACkV,aAAD;AAAA,0BACT7B,6BAAC;AACC;AACtB;AACA;AACA;AAJoB;AAKE,QAAA,SAAS,EAAEqK,SALb;AAME,QAAA,gBAAgB,EAAEA,SANpB;AAOE,QAAA,aAAa,EAAExI,aAPjB;AAQE,QAAA,KAAK,EAAE;AAAEiI,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AART,SAWIS,iBAAiB,GACbA,iBAAiB,CAAC;AAClBG,QAAAA,IAAI,EAAEhe,OAAO,CAACwF,MADI;AAElB+X,QAAAA,KAAK,EAAErI;AAFW,OAAD,CADJ,gBAMb7B,6BAAC4K,oBAAD;AACE,QAAA,IAAI,EAAEje,OAAO,CAACwF,MADhB;AAEE,QAAA,SAAS,EAAE0P;AAFb,QAjBR,CADS;AAAA;AAfb,IAHN,eA+CE7B;AACE,IAAA,SAAS,YAAKiL,0BAAL,uBADX;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAEzB,aAAa,GAAG;AAAA,aAAMlJ,OAAO,CAAC,IAAD,CAAb;AAAA,KAAH,GAAyB,YAAM,EAHvD;AAIE,IAAA,SAAS,EAAEkJ,aAAa,GAAG;AAAA,aAAMlJ,OAAO,CAAC,IAAD,CAAb;AAAA,KAAH,GAAyB,YAAM,EAJzD;AAKE,IAAA,QAAQ,EAAE;AALZ,KAQInT,OAAO,CAACD,IAAD,CAAP,iBACE8S,4DAEKqL,YAAD,gBAEIrL,6BAAC,aAAD;AACE,IAAA,SAAS,YAAKiL,0BAAL,YADX;AAEE,IAAA,GAAG,EAAEI,YAFP;AAGE,IAAA,GAAG,EAAC,iBAHN;AAIE,IAAA,KAAK,EAAC,OAJR;AAKE,IAAA,MAAM,EAAC,OALT;AAME,IAAA,gBAAgB,eACdrL;AAAK,MAAA,SAAS,YAAKiL,0BAAL;AAAd,oBACEjL,6BAAC,IAAD;AACE,MAAA,IAAI,EAAEqC,SAAS,CAACyJ,IADlB;AAEE,MAAA,SAAS,EAAE3I,UAAU,CAACwI,eAFxB;AAGE,MAAA,KAAK,EAAC,MAHR;AAIE,MAAA,MAAM,EAAC;AAJT,MADF,CAPJ;AAgBE,IAAA,WAAW,EAAEH,6BAA6B,CAACnJ,SAAS,CAACyJ,IAAX;AAhB5C,IAFJ;AAAA;;AAsBI;AACA;AAAO,IAAA,SAAS,YAAKb,0BAAL;AAAhB,kBACEjL;AAAQ,IAAA,GAAG,EAAEjR,GAAG,IAAIoQ,QAApB;AAA8B,IAAA,IAAI,EAAEjS;AAApC,IADF,CAzBR,eA8BE8S;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,kBACEjL,6BAAC,IAAD;AACE,IAAA,SAAS,YAAKiL,0BAAL,iBADX;AAEE,IAAA,IAAI,EAAE5I,SAAS,CAACyJ,IAFlB;AAGE,IAAA,SAAS,EAAE3I,UAAU,CAACwI,eAHxB;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IADF,CA9BF,CATN,EAoDI1e,OAAO,CAACC,IAAD,CAAP,iBACE8S,yEACEA,6BAAC,aAAD;AACE,IAAA,SAAS,YAAKiL,0BAAL,UADX;AAEE,IAAA,GAAG,EAAEI,YAAY,IAAItc,GAAhB,IAAuBoQ,QAF9B;AAGE,IAAA,GAAG,EAAC,iBAHN;AAIE,IAAA,KAAK,EAAC,OAJR;AAKE,IAAA,MAAM,EAAC,OALT;AAME,IAAA,gBAAgB,eACda;AAAK,MAAA,SAAS,YAAKiL,0BAAL;AAAd,oBACEjL,6BAAC,IAAD;AACE,MAAA,IAAI,EAAEqC,SAAS,CAAC0J,KADlB;AAEE,MAAA,SAAS,EAAE5I,UAAU,CAACwI,eAFxB;AAGE,MAAA,KAAK,EAAC,MAHR;AAIE,MAAA,MAAM,EAAC;AAJT,MADF,CAPJ;AAgBE,IAAA,WAAW,EAAEH,6BAA6B,CAACnJ,SAAS,CAAC0J,KAAX;AAhB5C,IADF,EAoBIC,KAAK,CAAC9e,IAAD,CAAL,iBACE8S;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,kBACEjL,6BAAC,IAAD;AACE,IAAA,SAAS,YAAKiL,0BAAL,eADX;AAEE,IAAA,IAAI,EAAE5I,SAAS,CAAC4J,GAFlB;AAGE,IAAA,SAAS,EAAE9I,UAAU,CAACwI,eAHxB;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IADF,CArBN,CArDN,EAyFIO,WAAW,CAAChf,IAAD,CAAX,iBACE8S;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,KACG1F,SAAS,CAAC4G,6BADb,CA1FN,eA+FEnM;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,IA/FF,CA/CF,EAiJKjR,WAAW,IAAIrN,OAAO,CAACsV,SAAvB,IAAoCtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAAhE,iBAEEoP,6BAAC,cAAD;AACE,IAAA,SAAS,YAAKiL,0BAAL,4BADX;AAEE,IAAA,MAAM,EAAErZ,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,WAAW,EAAEmY,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IAnJN,CADF,CADF,eAkKEhF;AAAK,IAAA,SAAS,YAAKiL,0BAAL;AAAd,KAEI,CAAC3C,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAd,IAA4BE,cAA9B,CAAhB,iBACEtJ,6BAAC,KAAD;AACE,IAAA,SAAS,YAAKiL,0BAAL,cADX;AAEE,IAAA,IAAI,EAAEpI,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGlR,qBAAmB,CAACnF,OAAD,CALtB,CAHN,eAYEqT;AACE,IAAA,SAAS,YAAKiL,0BAAL,WADX;AAEE,IAAA,GAAG,EAAErJ;AAFP,KAKI8H,qBAAqB,iBACnB1J,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEuL,cADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACbpF,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UADlB;AAEE,QAAA,SAAS,EAAElD,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC,sBAAD;AACE,QAAA,OAAO,EAAErT,OADX;AAEE,QAAA,SAAS,EAAE4e,cAFb;AAGE,QAAA,gBAAgB,EAAE3J,gBAHpB;AAIE,QAAA,aAAa,EAAEC,aAJjB;AAKE,QAAA,gBAAgB,EAAE;AAAEyE,UAAAA,CAAC,EAAE;AAAL;AALpB,QADF;AASD;AArCH,IANN,CAZF,CAlKF,CAnBF,CADF;AAsPD;AAED4E,gBAAgB,CAACtK,SAAjB,GAA6B;AAC3BjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvBtW,IAAAA,IAAI,EAAE2T,SAAS,CAACE,MADO;AAEvBhS,IAAAA,GAAG,EAAE8R,SAAS,CAACE,MAFQ;AAGvB5B,IAAAA,QAAQ,EAAE0B,SAAS,CAACE;AAHG,GAAhB,EAINM,UALwB;AAM3BzP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MANS;AAO3BkH,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAPE;AAQ3BwB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MARS;AAS3BiH,EAAAA,MAAM,EAAEnH,SAAS,CAACK,IATS;AAU3BgH,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAVO;AAW3BZ,EAAAA,OAAO,EAAEO,SAAS,CAACM,IAXQ;AAY3BiH,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IAZK;AAa3BnH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UAbD;AAc3ByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAdc;AAe3BsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAfe;AAgB3B+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAhBC;AAiB3B6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAjBP;AAkB3BkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAlBO;AAmB3BoH,EAAAA,WAAW,EAAEzH,SAAS,CAACK;AAnBI,CAA7B;AAqBAgK,gBAAgB,CAAC5J,YAAjB,GAAgC;AAC9B0G,EAAAA,MAAM,EAAE,KADsB;AAE9BE,EAAAA,QAAQ,EAAE,KAFoB;AAG9BD,EAAAA,aAAa,EAAEL,MAHe;AAI9BtH,EAAAA,OAAO,EAAEsH,MAJqB;AAK9BQ,EAAAA,UAAU,EAAER,MALkB;AAM9BjF,EAAAA,MAAM,EAAE,EANsB;AAO9B/Q,EAAAA,MAAM,EAAE,EAPsB;AAQ9BkT,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EARiB;AAS9BsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EATkB;AAU9B+S,EAAAA,cAAc,EAAEoG,MAVc;AAW9B5C,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA,GAXM;AAY9BqD,EAAAA,QAAQ,EAAE,KAZoB;AAa9BC,EAAAA,WAAW,EAAE;AAbiB,CAAhC;AAgBA6C,wBAAwB,CAACvK,SAAzB,GAAqC;AACnCjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvBtW,IAAAA,IAAI,EAAE2T,SAAS,CAACE,MADO;AAEvBhS,IAAAA,GAAG,EAAE8R,SAAS,CAACE,MAFQ;AAGvB5B,IAAAA,QAAQ,EAAE0B,SAAS,CAACE;AAHG,GAAhB,EAINM,UALgC;AAMnCzP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UANU;AAOnC6G,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAAV,CAAeG,UAPU;AAQnC4G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAAV,CAAeE,UARK;AASnCsB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MATiB;AAUnCT,EAAAA,OAAO,EAAEO,SAAS,CAACM,IAAV,CAAeE,UAVW;AAWnC+G,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IAAV,CAAeE,UAXQ;AAYnCrH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UAZO;AAanCyD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAbJ;AAcnC0D,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAdH;AAenCG,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAAV,CAAeE,UAfI;AAgBnC2D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAAV,CAAeE,UAhBJ;AAiBnCgH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAjBU;AAkBnCiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AAlBO,CAArC;AAoBA8J,wBAAwB,CAAC7J,YAAzB,GAAwC;AACtCqB,EAAAA,MAAM,EAAE;AAD8B,CAAxC;AAIAyJ,wBAAwB,CAACxL,SAAzB,GAAqC;AACnCjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvBtW,IAAAA,IAAI,EAAE2T,SAAS,CAACE,MADO;AAEvBhS,IAAAA,GAAG,EAAE8R,SAAS,CAACE,MAFQ;AAGvB5B,IAAAA,QAAQ,EAAE0B,SAAS,CAACE;AAHG,GAAhB,EAINM,UALgC;AAMnCzP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UANU;AAOnCf,EAAAA,OAAO,EAAEO,SAAS,CAACM,IAAV,CAAeE,UAPW;AAQnCsB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MARiB;AASnC/G,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UATO;AAUnCyD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAVJ;AAWnC0D,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAXH;AAYnCG,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAAV,CAAeE,UAZI;AAanC2D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAAV,CAAeE,UAbJ;AAcnCgH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAdU;AAenCiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AAfO,CAArC;AAiBA+K,wBAAwB,CAAC9K,YAAzB,GAAwC;AACtCqB,EAAAA,MAAM,EAAE;AAD8B,CAAxC;;AC3wBA,IAAM0J,mBAAmB,GAAG,EAA5B;AACA,IAAMC,iBAAiB,GAAG,KAA1B;AACA,IAAMxE,gBAAc,GAAG,KAAvB;;AACA,IAAMF,MAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;AAEA,SAAS2E,aAAT,CAAuBC,OAAvB,EAAgC;AAC9B,MAAIC,MAAM,GAAG,IAAb;AACA,MAAMC,SAAS,GAAG,oCAAlB;AACA,MAAMC,SAAS,GAAG,WAAlB;;AACA,MAAID,SAAS,CAACE,IAAV,CAAeJ,OAAf,CAAJ,EAA6B;AAC3BC,IAAAA,MAAM,GAAGpK,SAAS,CAACwK,aAAnB;AACD,GAFD,MAEO,IAAIF,SAAS,CAACC,IAAV,CAAeJ,OAAf,CAAJ,EAA6B;AAClCC,IAAAA,MAAM,GAAGpK,SAAS,CAACyK,UAAnB;AACD;;AACD,SAAOL,MAAP;AACD;;AAED,IAAMM,aAAa,GAAG,SAAhBA,aAAgB;AAAA,MACpBpgB,OADoB,QACpBA,OADoB;AAAA,MAEpBiF,MAFoB,QAEpBA,MAFoB;AAAA,MAGpBsW,QAHoB,QAGpBA,QAHoB;AAAA,MAIpBF,MAJoB,QAIpBA,MAJoB;AAAA,MAKpBI,UALoB,QAKpBA,UALoB;AAAA,MAMpBzF,MANoB,QAMpBA,MANoB;AAAA,MAOpBsF,aAPoB,QAOpBA,aAPoB;AAAA,MAQpBjO,WARoB,QAQpBA,WARoB;AAAA,MASpB8K,WAToB,QASpBA,WAToB;AAAA,MAUpBC,UAVoB,QAUpBA,UAVoB;AAAA,MAWpBvD,cAXoB,QAWpBA,cAXoB;AAAA,MAYpBwD,sBAZoB,QAYpBA,sBAZoB;AAAA,MAapBqD,QAboB,QAapBA,QAboB;AAAA,MAcpBC,WAdoB,QAcpBA,WAdoB;AAAA,sBAgBpBtI;AAAK,IAAA,SAAS,iCAA0BgI,MAAM,GAAG,YAAH,GAAkB,YAAlD;AAAd,KAEIA,MAAM,gBAEFhI,6BAAC,mBAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,MAAM,EAAEiF,MAFV;AAGE,IAAA,QAAQ,EAAEsW,QAHZ;AAIE,IAAA,UAAU,EAAEE,UAJd;AAKE,IAAA,MAAM,EAAEzF,MALV;AAME,IAAA,aAAa,EAAEsF,aANjB;AAOE,IAAA,WAAW,EAAEjO,WAPf;AAQE,IAAA,WAAW,EAAE8K,WARf;AASE,IAAA,UAAU,EAAEC,UATd;AAUE,IAAA,cAAc,EAAEvD,cAVlB;AAWE,IAAA,sBAAsB,EAAEwD,sBAX1B;AAYE,IAAA,QAAQ,EAAEqD,QAZZ;AAaE,IAAA,WAAW,EAAEC;AAbf,IAFE,gBAmBFtI,6BAAC,mBAAD;AACE,IAAA,MAAM,EAAEpO,MADV;AAEE,IAAA,OAAO,EAAEjF,OAFX;AAGE,IAAA,WAAW,EAAEqN,WAHf;AAIE,IAAA,WAAW,EAAE8K,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD,sBAP1B;AAQE,IAAA,QAAQ,EAAEqD,QARZ;AASE,IAAA,WAAW,EAAEC;AATf,IArBR,CAhBoB;AAAA,CAAtB;;AAqDAyE,aAAa,CAACnM,SAAd,GAA0B;AACxBjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CADe;AAExB5R,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAFM;AAGxBiH,EAAAA,MAAM,EAAEnH,SAAS,CAACK,IAHM;AAIxBgH,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAJI;AAKxBkH,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IALE;AAMxB8G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAND;AAOxBwB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MAAV,CAAiBM,UAPD;AAQxBrH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UARJ;AASxByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CATW;AAUxBsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAVY;AAWxB+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAXF;AAYxB6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAZV;AAaxBkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAbI;AAcxBoH,EAAAA,WAAW,EAAEzH,SAAS,CAACK;AAdC,CAA1B;AAiBA6L,aAAa,CAACzL,YAAd,GAA6B;AAC3B3U,EAAAA,OAAO,EAAE,EADkB;AAE3Bqb,EAAAA,MAAM,EAAE,KAFmB;AAG3BE,EAAAA,QAAQ,EAAE,KAHiB;AAI3BE,EAAAA,UAAU,EAAER,MAJe;AAK3BK,EAAAA,aAAa,EAAEL,MALY;AAM3BhW,EAAAA,MAAM,EAAE,EANmB;AAO3BkT,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EAPc;AAQ3BsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EARe;AAS3B+S,EAAAA,cAAc,EAAEoG,MATW;AAU3B5C,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA,GAVG;AAW3BqD,EAAAA,QAAQ,EAAE,KAXiB;AAY3BC,EAAAA,WAAW,EAAE;AAZc,CAA7B;AAeO,SAAS0E,mBAAT,QAcJ;AAAA,MAbDrgB,OAaC,SAbDA,OAaC;AAAA,MAZDiF,MAYC,SAZDA,MAYC;AAAA,MAXD+Q,MAWC,SAXDA,MAWC;AAAA,MAVDyF,UAUC,SAVDA,UAUC;AAAA,MATDF,QASC,SATDA,QASC;AAAA,MARDD,aAQC,SARDA,aAQC;AAAA,MAPDjO,WAOC,SAPDA,WAOC;AAAA,MAND8K,WAMC,SANDA,WAMC;AAAA,MALDC,UAKC,SALDA,UAKC;AAAA,MAJDvD,cAIC,SAJDA,cAIC;AAAA,MAHDwD,sBAGC,SAHDA,sBAGC;AAAA,MAFDqD,QAEC,SAFDA,QAEC;AAAA,MADDC,WACC,SADDA,WACC;AACD,MAAQvZ,GAAR,GAAgBpC,OAAhB,CAAQoC,GAAR;;AACA,MAAMke,WAAW,GAAG,SAAdA,WAAc,GAAM;AAAEC,IAAAA,MAAM,CAACC,IAAP,CAAYpe,GAAZ;AAAmB,GAA/C;;AACA,MAAMga,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;AACA,MAAMkP,OAAO,GAAGlP,MAAM,CAAC,IAAD,CAAtB;AACA,MAAMgR,oBAAoB,GAAGhR,MAAM,CAAC,IAAD,CAAnC;;AACA,kBAAoCkI,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAA4C/E,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOgF,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,MAAMtE,sBAAsB,GAAGD,sBAA/B;AACA,MAAMwE,aAAa,GAAGC,qBAAmB,CAAC9G,MAAD,CAAzC;AACA,MAAM+G,qBAAqB,GAAG1P,WAAW,IACpC8K,WADyB,IAExBA,WAAW,CAACoB,IAAZ,GAAmB,CAFK,IAGzByD,4BAA0B,CAAChd,OAAD,CAH/B;AAIA,MAAM8d,kBAAkB,GAAGjB,aAAa,IACnCxP,WADsB,IAEtBrN,OAAO,CAACsV,SAFc,IAGrBtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAHN,IAItB+Y,4BAA0B,CAAChd,OAAD,CAJ/B;;AAMA,MAAMid,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAC,iCADZ;AAEE,IAAA,GAAG,EAAE+I,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGiE,iBAAH,GAAuBxE,gBADtC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGgE,iBAAH,GAAuBxE;AAF5C;AAHT,kBAQE9H;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AACE,IAAA,SAAS,EAAC,qDADZ;AAEE,IAAA,GAAG,EAAE4B;AAFP,kBAIE5B,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEsL,OADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACbnF,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAAC2H,IADlB;AAEE,QAAA,SAAS,EAAE7G,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC;AACC;AACpB;AACA;AACA;AAJkB;AAKE,QAAA,SAAS,EAAEsL,OALb;AAME,QAAA,gBAAgB,EAAE1J,gBANpB;AAOE,QAAA,aAAa,EAAEC,aAPjB;AAQE,QAAA,QAAQ;AARV,SAWKlV,OAAO,IAAIA,OAAO,CAACkP,YAAnB,IAAmClP,OAAO,CAACkP,YAAR,EAApC,iBACEmE,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACbiI,UAAAA,aAAa,CAACtb,OAAD,CAAb;AACAkV,UAAAA,aAAa;AACd;AAJH,kBAZN,eAsBE7B,6BAAC,QAAD;AAAU,QAAA,OAAO,EAAE,mBAAM;AACvB,cAAIkI,QAAJ,EAAc;AAAE;AAAS;;AACzBE,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAvG,UAAAA,aAAa;AACd;AAJD,kBAtBF,CADF;AAiCD;AA7DH,IAJF,EAoEI6H,qBAAqB,iBACnB1J,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEoN,oBADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACbjH,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UADlB;AAEE,QAAA,SAAS,EAAElD,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC,sBAAD;AACE,QAAA,OAAO,EAAErT,OADX;AAEE,QAAA,SAAS,EAAEygB,oBAFb;AAGE,QAAA,gBAAgB,EAAExL,gBAHpB;AAIE,QAAA,aAAa,EAAEC,aAJjB;AAKE,QAAA,gBAAgB,EAAE;AAAEyE,UAAAA,CAAC,EAAE;AAAL;AALpB,QADF;AASD;AArCH,IArEN,CADF,EAiHI,CAACgC,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAd,IAA4BE,cAA9B,CAAhB,iBACEtJ;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,aAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,MAAM,EAAEgW;AAFV,IADF,CAlHN,CADF,eA4HE3C;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KAEIuM,aAAa,CAACxd,GAAD,CAAb,gBAEIiR;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,IAAD;AACE,IAAA,SAAS,EAAC,0DADZ;AAEE,IAAA,IAAI,EAAEuM,aAAa,CAACxd,GAAD,CAFrB;AAGE,IAAA,SAAS,EAAEoU,UAAU,CAACC,OAHxB;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IADF,CAFJ,GAYI,IAdR,eAgBEpD,6BAAC,UAAD;AACE,IAAA,SAAS,EAAC,gDADZ;AAEE,IAAA,OAAO,EAAEiN,WAFX;AAGE,IAAA,KAAK,EAAElK,WAAW,CAACmB;AAHrB,kBAKElE,6BAAC,KAAD;AACE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MADxB;AAEE,IAAA,KAAK,EAAE7D,WAAW,CAACmB;AAFrB,KAIGmJ,QAAQ,CAAC1gB,OAAO,CAACoS,IAAR,IAAgBpS,OAAO,CAACoC,GAAzB,EAA8Bsd,mBAA9B,CAJX,CALF,CAhBF,CADF,EA+BI5B,kBAAkB,iBAChBzK,6BAAC,cAAD;AACE,IAAA,SAAS,EAAC,2DADZ;AAEE,IAAA,MAAM,EAAEpO,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,WAAW,EAAEmY,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IAhCN,CA5HF,CARF,CADF;AAoLD;AAEM,SAASsI,mBAAT,QAUJ;AAAA,MATD3gB,OASC,SATDA,OASC;AAAA,MARDiF,MAQC,SARDA,MAQC;AAAA,MAPDoI,WAOC,SAPDA,WAOC;AAAA,MAND8K,WAMC,SANDA,WAMC;AAAA,MALDC,UAKC,SALDA,UAKC;AAAA,MAJDvD,cAIC,SAJDA,cAIC;AAAA,MAHDwD,sBAGC,SAHDA,sBAGC;AAAA,MAFDqD,QAEC,SAFDA,QAEC;AAAA,MADDC,WACC,SADDA,WACC;;AACD,MAAM2E,WAAW,GAAG,SAAdA,WAAc,GAAM;AAAEC,IAAAA,MAAM,CAACC,IAAP,CAAYxgB,OAAO,CAACoC,GAApB;AAA2B,GAAvD;;AACA,MAAMga,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;;AACA,0BAGI4D,cAAK,CAACqF,UAAN,CAAiBiF,kBAAjB,CAHJ;AAAA,MACEC,kBADF,qBACEA,kBADF;AAAA,MAEEC,iBAFF,qBAEEA,iBAFF;;AAIA,MAAM5I,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;AACA,MAAMiO,SAAS,GAAGjO,MAAM,CAAC,IAAD,CAAxB;AACA,MAAMgR,oBAAoB,GAAGhR,MAAM,CAAC,IAAD,CAAnC;;AACA,mBAAoCkI,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,oBAA4C/E,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOgF,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,MAAMG,qBAAqB,GAAG1P,WAAW,IAAI8K,WAAf,IAA+BA,WAAW,CAACoB,IAAZ,GAAmB,CAAhF;AACA,MAAMjB,sBAAsB,GAAGD,sBAA/B;;AAEA,MAAM4E,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAC,iCADZ;AAEE,IAAA,GAAG,EAAE+I,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGiE,iBAAH,GAAuBxE,gBADtC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGgE,iBAAH,GAAuBxE;AAF5C;AAHT,kBAQE9H;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACsI,WAAD,iBACEtI,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,MAAD;AACE,QAAA,GAAG,EAAEqK,SADP;AAEE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAI,CAACE,kBAAL,EAAyB;AACvBpE,YAAAA,cAAc;AACf;AACF,SANH;AAOE,QAAA,SAAS,EAAC,+CAPZ;AAQE,QAAA,GAAG,EAAEuE,qBAAmB,CAAC/d,OAAD,CAR1B;AASE,QAAA,KAAK,EAAC,MATR;AAUE,QAAA,MAAM,EAAC;AAVT,QADW;AAAA,KADf;AAeE,IAAA,SAAS,EAAE,mBAACkV,aAAD;AAAA,0BACT7B,6BAAC;AACC;AACpB;AACA;AACA;AAJkB;AAKE,QAAA,SAAS,EAAEqK,SALb;AAME,QAAA,gBAAgB,EAAEA,SANpB;AAOE,QAAA,aAAa,EAAExI,aAPjB;AAQE,QAAA,KAAK,EAAE;AAAEiI,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AART,SAWIS,iBAAiB,GACbA,iBAAiB,CAAC;AAClBG,QAAAA,IAAI,EAAEhe,OAAO,CAACwF,MADI;AAElB+X,QAAAA,KAAK,EAAErI;AAFW,OAAD,CADJ,gBAMb7B,6BAAC4K,oBAAD;AACE,QAAA,IAAI,EAAEje,OAAO,CAACwF,MADhB;AAEE,QAAA,SAAS,EAAE0P;AAFb,QAjBR,CADS;AAAA;AAfb,IAHN,EAgDI,CAACwG,QAAD,iBACErI,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,oDADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAFxB;AAGE,IAAA,KAAK,EAAElB,WAAW,CAACC;AAHrB,KAKG6H,eAAa,CAACle,OAAD,CALhB,CAjDN,eA0DEqT;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KAEIuM,aAAa,CAAC5f,OAAO,CAACoC,GAAT,CAAb,gBAEIiR;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,IAAD;AACE,IAAA,SAAS,EAAC,gEADZ;AAEE,IAAA,IAAI,EAAEuM,aAAa,CAAC5f,OAAO,CAACoC,GAAT,CAFrB;AAGE,IAAA,SAAS,EAAEoU,UAAU,CAACC,OAHxB;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IADF,CAFJ,GAYI,IAdR,eAgBEpD,6BAAC,UAAD;AACE,IAAA,SAAS,EAAC,sDADZ;AAEE,IAAA,OAAO,EAAEiN;AAFX,kBAIEjN,6BAAC,KAAD;AACE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MADxB;AAEE,IAAA,KAAK,EAAE7D,WAAW,CAACgB;AAFrB,KAIGsJ,QAAQ,CAAC1gB,OAAO,CAACoS,IAAR,IAAgBpS,OAAO,CAACoC,GAAzB,EAA8Bsd,mBAA9B,CAJX,CAJF,CAhBF,CADF,EA8BKrS,WAAW,IAAIrN,OAAO,CAACsV,SAAvB,IAAqCtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAAjE,iBACEoP,6BAAC,cAAD;AACE,IAAA,SAAS,EAAC,iEADZ;AAEE,IAAA,MAAM,EAAEpO,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,WAAW,EAAEmY,WAJf;AAKE,IAAA,UAAU,EAAEC,UALd;AAME,IAAA,cAAc,EAAEvD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IA/BN,CA1DF,CADF,eAuGEhF;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AACE,IAAA,SAAS,EAAC,sDADZ;AAEE,IAAA,GAAG,EAAE4B,gBAFP;AAGE,IAAA,KAAK,EAAE;AAAEkJ,MAAAA,GAAG,EAAEzC,QAAQ,GAAG,CAAH,GAAO;AAAtB;AAHT,KAMIqB,qBAAqB,iBACnB1J,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEoN,oBADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACbjH,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UAHlB;AAIE,QAAA,SAAS,EAAElD,UAAU,CAAC8G;AAJxB,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC,sBAAD;AACE,QAAA,OAAO,EAAErT,OADX;AAEE,QAAA,SAAS,EAAEygB,oBAFb;AAGE,QAAA,gBAAgB,EAAExL,gBAHpB;AAIE,QAAA,aAAa,EAAEC,aAJjB;AAKE,QAAA,gBAAgB,EAAE;AAAEyE,UAAAA,CAAC,EAAE;AAAL;AALpB,QADF;AASD;AArCH,IAPN,CADF,EAmDI,CAACgC,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAd,IAA4BE,cAA9B,CAAhB,iBACEtJ,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,yDADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGlR,qBAAmB,CAACnF,OAAD,CALtB,CApDN,CAvGF,CARF,CADF;AAiLD;AAEDqgB,mBAAmB,CAACpM,SAApB,GAAgC;AAC9BjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC4H,QAAV,CAAmB5H,SAAS,CAACC,SAAV,CAAoB,CAC9CD,SAAS,CAACE,MADoC,EAE9CF,SAAS,CAACI,MAFoC,EAG9CJ,SAAS,CAACK,IAHoC,EAI9CL,SAAS,CAAC6H,KAJoC,EAK9C7H,SAAS,CAAC8H,MALoC,CAApB,CAAnB,CADqB;AAQ9B/W,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MARY;AAS9B4B,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MATY;AAU9BqH,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IAVQ;AAW9B8G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAXK;AAY9BnH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UAZE;AAa9B6G,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAbU;AAc9B4D,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAdiB;AAe9BsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAfkB;AAgB9B+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAhBI;AAiB9B6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAjBJ;AAkB9BkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAlBK;AAmB9BiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AAnBE,CAAhC;AAsBA2L,mBAAmB,CAAC1L,YAApB,GAAmC;AACjCqB,EAAAA,MAAM,EAAE,EADyB;AAEjCyF,EAAAA,UAAU,EAAER,MAFqB;AAGjCK,EAAAA,aAAa,EAAEL,MAHkB;AAIjCjb,EAAAA,OAAO,EAAE,EAJwB;AAKjCiF,EAAAA,MAAM,EAAE,EALyB;AAMjCsW,EAAAA,QAAQ,EAAE,KANuB;AAOjCpD,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EAPoB;AAQjCsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EARqB;AASjC+S,EAAAA,cAAc,EAAEoG,MATiB;AAUjC5C,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA;AAVS,CAAnC;AAaAsI,mBAAmB,CAAC1M,SAApB,GAAgC;AAC9BjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC4H,QAAV,CAAmB5H,SAAS,CAACC,SAAV,CAAoB,CAC9CD,SAAS,CAACE,MADoC,EAE9CF,SAAS,CAACI,MAFoC,EAG9CJ,SAAS,CAACK,IAHoC,EAI9CL,SAAS,CAAC6H,KAJoC,EAK9C7H,SAAS,CAAC8H,MALoC,CAApB,CAAnB,CADqB;AAQ9B/W,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MARY;AAS9B/G,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UATE;AAU9ByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAViB;AAW9BsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CAXkB;AAY9B+S,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAZI;AAa9B6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAbJ;AAc9BkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAdK;AAe9BiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AAfE,CAAhC;AAkBAiM,mBAAmB,CAAChM,YAApB,GAAmC;AACjC3U,EAAAA,OAAO,EAAE,EADwB;AAEjCiF,EAAAA,MAAM,EAAE,EAFyB;AAGjCkT,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EAHoB;AAIjCsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EAJqB;AAKjC+S,EAAAA,cAAc,EAAEoG,MALiB;AAMjC5C,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA;AANS,CAAnC;;AC3mBA,IAAMuI,aAAa,GAAG,SAAhBA,aAAgB,CAACrN,KAAD,EAAW;AAC/B,MACEsN,YADF,GAGItN,KAHJ,CACEsN,YADF;AAAA,MAEEC,eAFF,GAGIvN,KAHJ,CAEEuN,eAFF;;AAIA,oBAAsBpI,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,sBACEvF,6BAAC,KAAD;AACE,IAAA,QAAQ,EAAEwN,YADZ;AAEE,IAAA,QAAQ,EAAEC,eAFZ;AAGE,IAAA,UAAU,EAAC,QAHb;AAIE,IAAA,SAAS,EAAElI,SAAS,CAACmI;AAJvB,IADF;AAQD,CAdD;;AAgBAH,aAAa,CAAC3M,SAAd,GAA0B;AACxB4M,EAAAA,YAAY,EAAE3M,SAAS,CAACM,IAAV,CAAeE,UADL;AAExBoM,EAAAA,eAAe,EAAE5M,SAAS,CAACM,IAAV,CAAeE;AAFR,CAA1B;;ACpBO,IAAMvP,qBAAmB,GAAG,SAAtBA,mBAAsB,CAACnF,OAAD;AAAA,SAAaoF,MAAM,CAACpF,OAAO,CAACqF,SAAT,EAAoB,GAApB,CAAnB;AAAA,CAA5B;;ACeP,IAAM6V,kBAAgB,GAAG,KAAzB;AACA,IAAMC,cAAc,GAAG,KAAvB;AAEe,SAAS6F,cAAT,OAQZ;AAAA,MAPDhhB,OAOC,QAPDA,OAOC;AAAA,MANDqb,MAMC,QANDA,MAMC;AAAA,MALDrF,MAKC,QALDA,MAKC;AAAA,MAJDvC,SAIC,QAJDA,SAIC;AAAA,MAHDgI,UAGC,QAHDA,UAGC;AAAA,MAFDC,QAEC,QAFDA,QAEC;AAAA,MADDC,WACC,QADDA,WACC;AACD,sBACEtI;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,0BAFS,oCAGkB4H,MAAM,GAAG,YAAH,GAAkB,YAH1C,IAITtH,IAJS,CAIJ,GAJI;AADb,KAQIsH,MAAM,gBAEFhI,6BAAC,sBAAD;AACE,IAAA,MAAM,EAAE2C,MADV;AAEE,IAAA,OAAO,EAAEhW,OAFX;AAGE,IAAA,QAAQ,EAAE0b,QAHZ;AAIE,IAAA,UAAU,EAAED,UAJd;AAKE,IAAA,WAAW,EAAEE;AALf,IAFE,gBAWFtI,6BAAC,sBAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,QAAQ,EAAE0b,QAFZ;AAGE,IAAA,WAAW,EAAEC;AAHf,IAnBR,CADF;AA6BD;AAEDqF,cAAc,CAAC/M,SAAf,GAA2B;AACzBjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,EAAoBnC,UADJ;AAEzB2G,EAAAA,MAAM,EAAEnH,SAAS,CAACK,IAFO;AAGzByB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MAHO;AAIzBX,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CAJc;AAQzBqH,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IARG;AASzBkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IATK;AAUzBoH,EAAAA,WAAW,EAAEzH,SAAS,CAACK;AAVE,CAA3B;AAaAyM,cAAc,CAACrM,YAAf,GAA8B;AAC5B0G,EAAAA,MAAM,EAAE,KADoB;AAE5BrF,EAAAA,MAAM,EAAE,EAFoB;AAG5BvC,EAAAA,SAAS,EAAE,EAHiB;AAI5BgI,EAAAA,UAAU,EAAE,sBAAM,EAJU;AAK5BC,EAAAA,QAAQ,EAAE,KALkB;AAM5BC,EAAAA,WAAW,EAAE;AANe,CAA9B;;AASA,SAASsF,sBAAT,QAMG;AAAA,MALDjhB,OAKC,SALDA,OAKC;AAAA,MAJDgW,MAIC,SAJDA,MAIC;AAAA,MAHDyF,UAGC,SAHDA,UAGC;AAAA,MAFDC,QAEC,SAFDA,QAEC;AAAA,MADDC,WACC,SADDA,WACC;AACD,MAAMS,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;AACA,MAAMkP,OAAO,GAAGlP,MAAM,CAAC,IAAD,CAAtB;;AACA,kBAAoCkI,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAA4C/E,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOgF,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,oBAAsBlE,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAMqE,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAC,mCADZ;AAEE,IAAA,GAAG,EAAE+I,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,kBAAH,GAAsBC,cADrC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,kBAAH,GAAsBC;AAF3C;AAHT,kBAQE9H;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AACE,IAAA,SAAS,EAAC,yCADZ;AAEE,IAAA,GAAG,EAAE4B;AAFP,kBAIE5B,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,SAAS,EAAC,+CADZ;AAEE,QAAA,GAAG,EAAEsL,OAFP;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC,MAJT;AAKE,QAAA,OAAO,EAAE,mBAAM;AACbnF,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACnBL,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,SATH;AAUE,QAAA,MAAM,EAAE,kBAAM;AACZM,UAAAA,kBAAkB;AACnB;AAZH,sBAcE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAAC2H,IADlB;AAEE,QAAA,SAAS,EAAE7G,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAdF,CADW;AAAA,KADf;AAwBE,IAAA,SAAS,EAAE,mBAACC,KAAD,EAAW;AACpB,UAAMrI,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BqI,QAAAA,KAAK;AACLX,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAHD;;AAIA,0BACEvJ,6BAAC;AACC;AACpB;AACA;AACA;AAJkB;AAKE,QAAA,SAAS,EAAEsL,OALb;AAME,QAAA,gBAAgB,EAAE1J,gBANpB;AAOE,QAAA,aAAa,EAAEC,aAPjB;AAQE,QAAA,QAAQ;AARV,sBAUE7B,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AAAEoI,UAAAA,UAAU,CAAC,IAAD,CAAV;AAAkBvG,UAAAA,aAAa;AAAK;AADvD,kBAVF,CADF;AAkBD;AA/CH,IAJF,CADF,EAwDK,CAACyG,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAd,IAA4BE,cAA9B,CAAjB,iBACEtJ;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,aAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,MAAM,EAAEgW;AAFV,IADF,CAzDN,CADF,eAmEE3C;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,+DADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MAFxB;AAGE,IAAA,KAAK,EAAE7D,WAAW,CAACgB;AAHrB,KAKGwB,SAAS,CAAC4G,6BALb,CADF,eAQEnM,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,oEADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MAFxB;AAGE,IAAA,KAAK,EAAE7D,WAAW,CAACC;AAHrB,KAKGuC,SAAS,CAACsI,4BALb,CARF,CADF,CAnEF,CARF,CADF;AAiGD;;AAED,SAASC,sBAAT,QAIG;AAAA,MAHDnhB,OAGC,SAHDA,OAGC;AAAA,MAFD0b,QAEC,SAFDA,QAEC;AAAA,MADDC,WACC,SADDA,WACC;AACD,MAAQnW,MAAR,GAAmBxF,OAAnB,CAAQwF,MAAR;AACA,MAAMkY,SAAS,GAAGjO,MAAM,CAAC,IAAD,CAAxB;;AACA,qBAAsBiJ,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,gBAAQA,SAAR;;AACA,0BAGIvF,cAAK,CAACqF,UAAN,CAAiBiF,kBAAjB,CAHJ;AAAA,MACEC,kBADF,qBACEA,kBADF;AAAA,MAEEC,iBAFF,qBAEEA,iBAFF;;AAIA,sBACExK;AACE,IAAA,SAAS,EAAC,mCADZ;AAEE,IAAA,KAAK,EAAE;AACL8J,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,kBAAH,GAAsBC,cADrC;AAELiC,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,kBAAH,GAAsBC;AAF3C;AAFT,kBAOE9H;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACsI,WAAD,iBACEtI,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,MAAD;AACE,QAAA,SAAS,EAAC,+DADZ;AAEE,QAAA,GAAG,EAAEqK,SAFP;AAGE,QAAA,GAAG,EAAElY,MAAM,CAACuR,UAHd;AAIE,QAAA,GAAG,EAAC,sBAJN;AAKE,QAAA,KAAK,EAAC,MALR;AAME,QAAA,MAAM,EAAC,MANT;AAOE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAI,CAAC6G,kBAAL,EAAyB;AACvBpE,YAAAA,cAAc;AACf;AACF;AAXH,QADW;AAAA,KADf;AAgBE,IAAA,SAAS,EAAE,mBAACtE,aAAD;AAAA,0BACT7B,6BAAC;AACC;AACpB;AACA;AACA;AAJkB;AAKE,QAAA,SAAS,EAAEqK,SALb;AAME,QAAA,gBAAgB,EAAEA,SANpB;AAOE,QAAA,aAAa,EAAExI,aAPjB;AAQE,QAAA,KAAK,EAAE;AAAEiI,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AART,SAWIS,iBAAiB,GACbA,iBAAiB,CAAC;AAClBG,QAAAA,IAAI,EAAEhe,OAAO,CAACwF,MADI;AAElB+X,QAAAA,KAAK,EAAErI;AAFW,OAAD,CADJ,gBAMb7B,6BAAC4K,oBAAD;AACE,QAAA,IAAI,EAAEje,OAAO,CAACwF,MADhB;AAEE,QAAA,SAAS,EAAE0P;AAFb,QAjBR,CADS;AAAA;AAhBb,IAHN,CADF,eAkDE7B;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACqI,QAAD,iBACErI,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,sDADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAFxB;AAGE,IAAA,KAAK,EAAElB,WAAW,CAACC;AAHrB,KAKG7Q,MAAM,CAACN,QAAP,IAAmB0T,SAAS,CAACwI,OALhC,CAHN,eAYE/N;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,+DADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MAFxB;AAGE,IAAA,KAAK,EAAE7D,WAAW,CAACgB;AAHrB,KAKGwB,SAAS,CAAC4G,6BALb,CADF,eAQEnM,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,oEADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MAFxB;AAGE,IAAA,KAAK,EAAE7D,WAAW,CAACC;AAHrB,KAKGuC,SAAS,CAACsI,4BALb,CARF,CAZF,CAlDF,eA+EE7N;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACsI,WAAD,iBACEtI,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,4CADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGrJ,qBAAA,CAA0BhN,OAA1B,CALH,CAHN,CA/EF,CAPF,CADF;AAuGD;;AAEDihB,sBAAsB,CAAChN,SAAvB,GAAmC;AACjCjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,EAAoBnC,UADI;AAEjCsB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MAAV,CAAiBM,UAFQ;AAGjC+G,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IAHW;AAIjCkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAJQ;AAKjCiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AALK,CAAnC;AAQAuM,sBAAsB,CAACtM,YAAvB,GAAsC;AACpC8G,EAAAA,UAAU,EAAE,sBAAM;AADkB,CAAtC;AAIA0F,sBAAsB,CAAClN,SAAvB,GAAmC;AACjCjU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvBrR,IAAAA,MAAM,EAAE0O,SAAS,CAAC2C,KAAV,CAAgB;AACtB3R,MAAAA,QAAQ,EAAEgP,SAAS,CAACE,MADE;AAEtB2C,MAAAA,UAAU,EAAE7C,SAAS,CAACE;AAFA,KAAhB;AADe,GAAhB,EAKNM,UAN8B;AAOjCgH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAPQ;AAQjCiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AARK,CAAnC;;AC7UO,IAAM2M,eAAe,GAAG,SAAlBA,eAAkB,CAACC,MAAD;AAAA,SAAY,UAAClT,IAAD;AAAA,WAAUkT,MAAM,CAACrB,IAAP,CAAY7R,IAAZ,CAAV;AAAA,GAAZ;AAAA,CAAxB;AAEA,IAAM0O,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAC9G,MAAD;AAAA,SACjCA,MAAM,KAAKpT,iBAAiB,CAACC,IAA7B,IACGmT,MAAM,KAAKpT,iBAAiB,CAACO,SADhC,IAEG6S,MAAM,KAAKpT,iBAAiB,CAACI,IAHC;AAAA,CAA5B;AAMA,IAAMwa,eAAe,GAAG,SAAlBA,eAAkB,CAACpP,IAAD,EAAU;AACvC,MAAI;AACF,QAAImS,MAAM,CAACgB,aAAP,IAAwBhB,MAAM,CAACgB,aAAP,CAAqBC,OAAjD,EAA0D;AACxD;AACA;AACA,aAAOjB,MAAM,CAACgB,aAAP,CAAqBC,OAArB,CAA6B,MAA7B,EAAqCpT,IAArC,CAAP;AACD;;AACD,QAAIrN,QAAQ,CAAC0gB,qBAAT,IAAkC1gB,QAAQ,CAAC0gB,qBAAT,CAA+B,MAA/B,CAAtC,EAA8E;AAC5E,UAAMC,QAAQ,GAAG3gB,QAAQ,CAAC+P,aAAT,CAAuB,UAAvB,CAAjB;AACA4Q,MAAAA,QAAQ,CAACC,WAAT,GAAuBvT,IAAvB;AACAsT,MAAAA,QAAQ,CAAC3C,KAAT,CAAe6C,QAAf,GAA0B,OAA1B,CAH4E;;AAI5E7gB,MAAAA,QAAQ,CAAC8gB,IAAT,CAAcC,WAAd,CAA0BJ,QAA1B;AACAA,MAAAA,QAAQ,CAACK,MAAT;;AACA,UAAI;AACF,eAAOhhB,QAAQ,CAACihB,WAAT,CAAqB,MAArB,CAAP,CADE;AAEH,OAFD,CAEE,OAAOC,EAAP,EAAW;AACX,eAAO,KAAP;AACD,OAJD,SAIU;AACRlhB,QAAAA,QAAQ,CAAC8gB,IAAT,CAAcK,WAAd,CAA0BR,QAA1B;AACD;AACF;;AACD,WAAO,KAAP;AACD,GArBD,CAqBE,OAAO/V,GAAP,EAAY;AACZ,WAAOA,GAAP;AACD;AACF,CAzBM;AA2BA,IAAMoS,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAC/d,OAAD;AAAA,SAAaA,OAAO,CAACwF,MAAR,IAAkBxF,OAAO,CAACwF,MAAR,CAAeuR,UAA9C;AAAA,CAA5B;AAEA,IAAMmH,aAAa,GAAG,SAAhBA,aAAgB,CAACle,OAAD;AAAA,SAC3BA,OAAO,CAACwF,MAAR,KACExF,OAAO,CAACwF,MAAR,CAAesR,UAAf,IACG9W,OAAO,CAACwF,MAAR,CAAeN,QADlB,IAEGlF,OAAO,CAACwF,MAAR,CAAeP,MAHpB,CAD2B;AAAA,CAAtB;AAQA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACnF,OAAD;AAAA,SAAaoF,MAAM,CAACpF,OAAO,CAACqF,SAAT,EAAoB,GAApB,CAAnB;AAAA,CAA5B;AAEA,IAAM8c,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACniB,OAAD,EAAa;AAC3C,MAAQG,UAAR,GAAuBH,OAAvB,CAAQG,UAAR;;AACA,MAAI,CAACA,UAAL,EAAiB;AACf,WAAO,KAAP;AACD;;AACD,MAAQiC,GAAR,GAAgBjC,UAAhB,CAAQiC,GAAR;;AACA,MAAI,CAACA,GAAL,EAAU;AACR,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD,CAVM;AAYA,IAAM4a,0BAA0B,GAAG,SAA7BA,0BAA6B,GAAkB;AAAA,MAAjBhd,OAAiB,uEAAP,EAAO;;AAC1D,MAAIA,OAAO,CAACyF,aAAR,IAAyB,OAAOzF,OAAO,CAACyF,aAAf,KAAiC,QAA9D,EAAwE;AACtE,WAAOzF,OAAO,CAACyF,aAAR,KAA0B,MAA1B,IAAoCzF,OAAO,CAACyF,aAAR,KAA0B,WAArE;AACD;;AACD,SAAO,KAAP;AACD,CALM;;AC9DA,IAAM2c,OAAO,GAAG,kFAAhB;;ACSP,IAAMC,KAAK,GAAGhB,eAAe,CAACe,OAAD,CAA7B;AAEe,SAASvI,sBAAT,OAKZ;AAAA,MAJD7Z,OAIC,QAJDA,OAIC;AAAA,MAHD8Z,SAGC,QAHDA,SAGC;AAAA,MAFDrG,SAEC,QAFDA,SAEC;AAAA,2BADDsG,QACC;AAAA,MADDA,QACC,8BADU,KACV;;AACD,oBAAsBrB,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAMoB,eAAe,GAAG9D,eAAe,CAAC+D,MAAxC;AACA,MAAMqI,UAAU,GAAGvI,QAAQ,GAAG3D,WAAW,CAACgB,cAAf,GAAgChB,WAAW,CAACmB,WAAvE;AACA,MAAM2C,YAAY,GAAGH,QAAQ,GAAG3D,WAAW,CAACC,cAAf,GAAgCD,WAAW,CAAC+D,WAAzE;AACA,SAAOpF,OAAO,CAAC;AAAA,WAAM,YAAM;AACzB,UAAMqF,YAAY,GAAGpa,OAAO,CAACqa,KAAR,CAAc,GAAd,CAArB;AACA,UAAMC,cAAc,GAAGF,YAAY,CAChChU,GADoB,CAChB,UAACmU,IAAD;AAAA,eACH8H,KAAK,CAAC9H,IAAD,CAAL,gBAEIlH,6BAAC,SAAD;AACE,UAAA,GAAG,EAAE1J,MAAM,EADb;AAEE,UAAA,SAAS,EAAE8J,SAFb;AAGE,UAAA,GAAG,EAAE8G,IAHP;AAIE,UAAA,IAAI,EAAEP,eAJR;AAKE,UAAA,KAAK,EAAEsI;AALT,WAOG/H,IAPH,CAFJ,gBAaIlH,6BAAC,KAAD;AACE,UAAA,GAAG,EAAE1J,MAAM,EADb;AAEE,UAAA,SAAS,EAAE8J,SAFb;AAGE,UAAA,IAAI,EAAEuG,eAHR;AAIE,UAAA,KAAK,EAAEsI;AAJT,WAMG/H,IANH,CAdD;AAAA,OADgB,CAAvB;;AAyBA,UAAIT,SAAS,GAAG,CAAhB,EAAmB;AACjBQ,QAAAA,cAAc,CAAClW,IAAf,eACEiP,6BAAC,KAAD;AACE,UAAA,GAAG,EAAE1J,MAAM,EADb;AAEE,UAAA,SAAS,EAAE8J,SAFb;AAGE,UAAA,IAAI,EAAEuG,eAHR;AAIE,UAAA,KAAK,EAAEE;AAJT,WAMGtB,SAAS,CAAC4B,cANb,CADF;AAUD;;AACD,aAAOF,cAAP;AACD,KAxCc;AAAA,GAAD,EAwCX,CAACta,OAAD,EAAU8Z,SAAV,EAAqBrG,SAArB,CAxCW,CAAd;AAyCD;;ACjCD,IAAMyH,gBAAgB,GAAG,KAAzB;AACA,IAAMqH,cAAc,GAAG,KAAvB;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,OAiBlB;AAAA,MAhBJ/O,SAgBI,QAhBJA,SAgBI;AAAA,MAfJ4H,MAeI,QAfJA,MAeI;AAAA,MAdJpW,MAcI,QAdJA,MAcI;AAAA,MAbJ+Q,MAaI,QAbJA,MAaI;AAAA,MAZJhW,OAYI,QAZJA,OAYI;AAAA,MAXJub,QAWI,QAXJA,QAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJE,QASI,QATJA,QASI;AAAA,MARJtD,UAQI,QARJA,UAQI;AAAA,MAPJqD,UAOI,QAPJA,UAOI;AAAA,MANJpO,WAMI,QANJA,WAMI;AAAA,MALJ8K,WAKI,QALJA,WAKI;AAAA,MAJJwD,WAII,QAJJA,WAII;AAAA,MAHJL,aAGI,QAHJA,aAGI;AAAA,MAFJzG,cAEI,QAFJA,cAEI;AAAA,MADJwD,sBACI,QADJA,sBACI;AACJ,MAAQlY,UAAR,GAAuBH,OAAvB,CAAQG,UAAR;;AAEA,MAAMsiB,QAAQ,GAAG,SAAXA,QAAW,GAAM;AACrB,QAAIN,gBAAgB,CAACniB,OAAD,CAApB,EAA+B;AAC7B,UAAQoC,GAAR,GAAgBjC,UAAhB,CAAQiC,GAAR;AACAme,MAAAA,MAAM,CAACC,IAAP,CAAYpe,GAAZ;AACD;AACF,GALD;;AAOA,MAAMsgB,0BAA0B,GAAG7I,sBAAsB,CAAC;AACxD7Z,IAAAA,OAAO,EAAEA,OAAO,CAACA,OADuC;AAExD8Z,IAAAA,SAAS,EAAE9Z,OAAO,CAAC8Z,SAFqC;AAGxDrG,IAAAA,SAAS,EAAE;AAH6C,GAAD,CAAzD;AAKA,MAAMoI,2BAA2B,GAAGhC,sBAAsB,CAAC;AACzD7Z,IAAAA,OAAO,EAAEA,OAAO,CAACA,OADwC;AAEzD8Z,IAAAA,SAAS,EAAE9Z,OAAO,CAAC8Z,SAFsC;AAGzDrG,IAAAA,SAAS,EAAE,0BAH8C;AAIzDsG,IAAAA,QAAQ,EAAE;AAJ+C,GAAD,CAA1D;AAOA,sBACE1G;AACE,IAAA,SAAS,EAAE,6BACLQ,KAAK,CAACC,OAAN,CAAcL,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,IAET,qBAFS,+BAGa4H,MAAM,GAAG,YAAH,GAAkB,YAHrC,IAITtH,IAJS,CAIJ,GAJI;AADb,KAQIsH,MAAM,gBAEFhI,6BAAC,iBAAD;AACE,IAAA,MAAM,EAAE2C,MADV;AAEE,IAAA,MAAM,EAAE/Q,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,QAAQ,EAAEub,QAJZ;AAKE,IAAA,QAAQ,EAAEkH,QALZ;AAME,IAAA,QAAQ,EAAEjH,QANZ;AAOE,IAAA,QAAQ,EAAEE,QAPZ;AAQE,IAAA,UAAU,EAAED,UARd;AASE,IAAA,UAAU,EAAErD,UATd;AAUE,IAAA,WAAW,EAAEuD,WAVf;AAWE,IAAA,WAAW,EAAEtO,WAXf;AAYE,IAAA,WAAW,EAAE8K,WAZf;AAaE,IAAA,aAAa,EAAEmD,aAbjB;AAcE,IAAA,cAAc,EAAEzG,cAdlB;AAeE,IAAA,mBAAmB,EAAE6N,0BAfvB;AAgBE,IAAA,sBAAsB,EAAErK;AAhB1B,IAFE,gBAsBFhF,6BAAC,iBAAD;AACE,IAAA,MAAM,EAAEpO,MADV;AAEE,IAAA,OAAO,EAAEjF,OAFX;AAGE,IAAA,QAAQ,EAAEyiB,QAHZ;AAIE,IAAA,QAAQ,EAAE/G,QAJZ;AAKE,IAAA,UAAU,EAAEtD,UALd;AAME,IAAA,WAAW,EAAEuD,WANf;AAOE,IAAA,WAAW,EAAEtO,WAPf;AAQE,IAAA,WAAW,EAAE8K,WARf;AASE,IAAA,cAAc,EAAEtD,cATlB;AAUE,IAAA,mBAAmB,EAAEgH,2BAVvB;AAWE,IAAA,sBAAsB,EAAExD;AAX1B,IA9BR,CADF;AAgDD,CAvFD;;AAyFA,SAASsK,iBAAT,CAA2BpP,KAA3B,EAAkC;AAChC,MACEyC,MADF,GAiBIzC,KAjBJ,CACEyC,MADF;AAAA,MAEE/Q,MAFF,GAiBIsO,KAjBJ,CAEEtO,MAFF;AAAA,MAGEjF,OAHF,GAiBIuT,KAjBJ,CAGEvT,OAHF;AAAA,MAIEub,QAJF,GAiBIhI,KAjBJ,CAIEgI,QAJF;AAAA,MAKEkH,QALF,GAiBIlP,KAjBJ,CAKEkP,QALF;AAAA,MAMEjH,QANF,GAiBIjI,KAjBJ,CAMEiI,QANF;AAAA,MAOEE,QAPF,GAiBInI,KAjBJ,CAOEmI,QAPF;AAAA,MAQED,UARF,GAiBIlI,KAjBJ,CAQEkI,UARF;AAAA,MASErD,UATF,GAiBI7E,KAjBJ,CASE6E,UATF;AAAA,MAUEuD,WAVF,GAiBIpI,KAjBJ,CAUEoI,WAVF;AAAA,MAWExD,WAXF,GAiBI5E,KAjBJ,CAWE4E,WAXF;AAAA,MAYE9K,WAZF,GAiBIkG,KAjBJ,CAYElG,WAZF;AAAA,MAaEiO,aAbF,GAiBI/H,KAjBJ,CAaE+H,aAbF;AAAA,MAcEzG,cAdF,GAiBItB,KAjBJ,CAcEsB,cAdF;AAAA,MAeEqH,mBAfF,GAiBI3I,KAjBJ,CAeE2I,mBAfF;AAAA,MAgBE7D,sBAhBF,GAiBI9E,KAjBJ,CAgBE8E,sBAhBF;AAkBA,MACElY,UADF,GAEIH,OAFJ,CACEG,UADF;AAGA,MACEyiB,YADF,GAEIziB,UAFJ,CACEyiB,YADF;AAGA,MAAMzG,mBAAmB,GAAGD,mBAA5B;AACA,MAAM5D,sBAAsB,GAAGD,sBAA/B;;AACA,oBAAsBK,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAMiE,aAAa,GAAGC,mBAAmB,CAAC9G,MAAD,CAAzC;AACA,MAAM8H,kBAAkB,GAAGzQ,WAAW,IACjCrN,OAAO,CAACsV,SADc,IAEtBtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAFL,IAGtB+Y,0BAA0B,CAAChd,OAAD,CAH/B;AAKA,MAAMoc,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;AACA,MAAM6M,cAAc,GAAG7M,MAAM,CAAC,IAAD,CAA7B;AACA,MAAM4M,kBAAkB,GAAG5M,MAAM,CAAC,IAAD,CAAjC;;AACA,kBAAoCkI,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,MAAMO,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAC,8BADZ;AAEE,IAAA,GAAG,EAAE+I,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,gBAAH,GAAsBqH,cADrC;AAELnF,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,gBAAH,GAAsBqH;AAF3C;AAHT,kBAQElP;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC,oCAAf;AAAoD,IAAA,GAAG,EAAE4B;AAAzD,kBACE5B,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,SAAS,EAAC,0CADZ;AAEE,QAAA,GAAG,EAAEiJ,cAFP;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC,MAJT;AAKE,QAAA,OAAO,EAAE,mBAAM;AACb9C,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACpB,SARH;AASE,QAAA,MAAM,EAAE,kBAAM;AACZC,UAAAA,kBAAkB;AACnB;AAXH,sBAaE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAAC2H,IADlB;AAEE,QAAA,SAAS,EAAE7G,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAbF,CADW;AAAA,KADf;AAuBE,IAAA,SAAS,EAAE,mBAACpI,aAAD;AAAA,0BACT7B,6BAAC,SAAD;AACE,QAAA,SAAS,EAAEiJ,cADb;AAAA;AAGE,QAAA,gBAAgB,EAAErH,gBAHpB;AAAA;AAKE,QAAA,aAAa,EAAEC,aALjB;AAME,QAAA,QAAQ;AANV,SASI2H,aAAa,iBACXxJ,6BAAC,QAAD;AACE,QAAA,SAAS,EAAC,gDADZ;AAEE,QAAA,OAAO,EAAE,mBAAM;AACbmK,UAAAA,eAAe,CAACxd,OAAO,CAACA,OAAT,CAAf;AACAkV,UAAAA,aAAa;AACd;AALH,SAOG0D,SAAS,CAACiK,2BAPb,CAVN,EAsBIhG,aAAa,iBACXxJ,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAIkI,QAAJ,EAAc;AAAE;AAAS;;AACzBC,UAAAA,QAAQ,CAAC,IAAD,CAAR;AACAtG,UAAAA,aAAa;AACd;AALH,SAOG0D,SAAS,CAACkK,2BAPb,CAvBN,EAmCK9iB,OAAO,IAAIA,OAAO,CAACkP,YAAnB,IAAmClP,OAAO,CAACkP,YAAR,EAApC,iBACEmE,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACbiI,UAAAA,aAAa,CAACtb,OAAD,CAAb;AACAkV,UAAAA,aAAa;AACd;AAJH,SAMG0D,SAAS,CAACqG,6BANb,CApCN,eA8CE5L,6BAAC,QAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAIkI,QAAJ,EAAc;AAAE;AAAS;;AACzBE,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAvG,UAAAA,aAAa;AACd;AALH,SAOG0D,SAAS,CAACsG,6BAPb,CA9CF,CADS;AAAA;AAvBb,IADF,EAoFKrC,aAAa,IAAIxP,WAAjB,IAAiC8K,WAAW,CAACoB,IAAZ,GAAmB,CAArD,iBAEElG,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,SAAS,EAAC,kDADZ;AAEE,QAAA,GAAG,EAAEgJ,kBAFP;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC,MAJT;AAKE,QAAA,OAAO,EAAE7C;AALX,sBAOEnG,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UADlB;AAEE,QAAA,SAAS,EAAElD,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAPF,CADW;AAAA,KADf;AAiBE,IAAA,SAAS,EAAE,mBAACpI,aAAD;AAAA,0BACT7B,6BAAC,sBAAD;AACE,QAAA,OAAO,EAAErT,OADX;AAEE,QAAA,SAAS,EAAEqc,kBAFb;AAGE,QAAA,gBAAgB,EAAEpH,gBAHpB;AAIE,QAAA,aAAa,EAAEC,aAJjB;AAKE,QAAA,gBAAgB,EAAE;AAAEyE,UAAAA,CAAC,EAAE;AAAL;AALpB,QADS;AAAA;AAjBb,IAtFN,CADF,EAsHI,CAACgC,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAhB,CAAhB,iBACEpJ;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,aAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,MAAM,EAAEgW;AAFV,IADF,CAvHN,CADF,eAiIE3C;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,mBAAD,OADF,CADF,eAIEA;AACE,IAAA,SAAS,EAAE,CACT,yCADS,EAET8O,gBAAgB,CAACniB,OAAD,CAAhB,GAA4B,EAA5B,GAAiC,mDAFxB,EAGT+T,IAHS,CAGJ,GAHI,CADb;AAKE,IAAA,IAAI,EAAC,QALP;AAME,IAAA,OAAO,EAAE0O,QANX;AAOE,IAAA,SAAS,EAAEA,QAPb;AAQE,IAAA,QAAQ,EAAE;AARZ,KAWIG,YAAY,iBACVvP,6BAAC,aAAD;AACE,IAAA,SAAS,EAAC,gDADZ;AAEE,IAAA,GAAG,EAAEuP,YAAY,CAACxgB,GAAb,IAAoB,EAF3B;AAGE,IAAA,GAAG,EAAEwgB,YAAY,CAACG,GAHpB;AAIE,IAAA,KAAK,EAAC,OAJR;AAKE,IAAA,MAAM,EAAC,OALT;AAME,IAAA,gBAAgB,eACd1P;AAAK,MAAA,SAAS,EAAC;AAAf,oBACEA,6BAAC,IAAD;AACE,MAAA,IAAI,EAAEqC,SAAS,CAACsN,cADlB;AAEE,MAAA,KAAK,EAAC,MAFR;AAGE,MAAA,MAAM,EAAC;AAHT,MADF;AAPJ,IAZN,CAJF,eAmCE3P;AACE,IAAA,SAAS,EAAE,CACT,sCADS,EAET8O,gBAAgB,CAACniB,OAAD,CAAhB,GAA4B,EAA5B,GAAiC,gDAFxB,EAGT+T,IAHS,CAGJ,GAHI,CADb;AAKE,IAAA,IAAI,EAAC,QALP;AAME,IAAA,OAAO,EAAE0O,QANX;AAOE,IAAA,SAAS,EAAEA,QAPb;AAQE,IAAA,QAAQ,EAAE;AARZ,KAWItiB,UAAU,CAAC8iB,KAAX,iBACE5P;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AAAO,IAAA,IAAI,EAAE6C,eAAe,CAACgN,UAA7B;AAAyC,IAAA,KAAK,EAAE9M,WAAW,CAACgB;AAA5D,KACGjX,UAAU,CAAC8iB,KADd,CADF,CAZN,EAoBI9iB,UAAU,CAACgjB,WAAX,iBACE9P;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,0DADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACkN,MAFxB;AAGE,IAAA,KAAK,EAAEhN,WAAW,CAACgB;AAHrB,KAKGjX,UAAU,CAACgjB,WALd,CADF,CArBN,EAiCIhjB,UAAU,CAACiC,GAAX,iBACEiR,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,2CADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGlW,UAAU,CAACiC,GALd,CAlCN,EA4CI0b,kBAAkB,iBAEhBzK;AACE,IAAA,SAAS,EAAC,gEADZ;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAE,iBAACgQ,KAAD;AAAA,aAAWA,KAAK,CAACC,eAAN,EAAX;AAAA,KAHX;AAIE,IAAA,SAAS,EAAE,mBAACD,KAAD;AAAA,aAAWA,KAAK,CAACC,eAAN,EAAX;AAAA,KAJb;AAKE,IAAA,QAAQ,EAAE;AALZ,kBAOEjQ,6BAAC,cAAD;AACE,IAAA,SAAS,EAAC,uDADZ;AAEE,IAAA,MAAM,EAAEpO,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,UAAU,EAAEoY,UAJd;AAKE,IAAA,WAAW,EAAED,WALf;AAME,IAAA,cAAc,EAAEtD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IAPF,CA9CN,CAnCF,CAjIF,CARF,CADF;AAmPD;;AAED,SAASkL,iBAAT,CAA2BhQ,KAA3B,EAAkC;AAChC,MACEtO,MADF,GAYIsO,KAZJ,CACEtO,MADF;AAAA,MAEEjF,OAFF,GAYIuT,KAZJ,CAEEvT,OAFF;AAAA,MAGEyiB,QAHF,GAYIlP,KAZJ,CAGEkP,QAHF;AAAA,MAIE/G,QAJF,GAYInI,KAZJ,CAIEmI,QAJF;AAAA,MAKEtD,UALF,GAYI7E,KAZJ,CAKE6E,UALF;AAAA,MAMEuD,WANF,GAYIpI,KAZJ,CAMEoI,WANF;AAAA,MAOEtO,WAPF,GAYIkG,KAZJ,CAOElG,WAPF;AAAA,MAQE8K,WARF,GAYI5E,KAZJ,CAQE4E,WARF;AAAA,MASEtD,cATF,GAYItB,KAZJ,CASEsB,cATF;AAAA,MAUEqH,mBAVF,GAYI3I,KAZJ,CAUE2I,mBAVF;AAAA,MAWE7D,sBAXF,GAYI9E,KAZJ,CAWE8E,sBAXF;AAaA,MACElY,UADF,GAEIH,OAFJ,CACEG,UADF;AAGA,MACEyiB,YADF,GAEIziB,UAFJ,CACEyiB,YADF;;AAGA,qBAAsBlK,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,gBAAQA,SAAR;;AACA,MAAMuD,mBAAmB,GAAGD,mBAA5B;AACA,MAAM5D,sBAAsB,GAAGD,sBAA/B;AACA,MAAMyF,kBAAkB,GAAIzQ,WAAW,IAAIrN,OAAO,CAACsV,SAAvB,IAAoCtV,OAAO,CAACsV,SAAR,CAAkBrR,MAAlB,GAA2B,CAA3F;AACA,MAAM8Y,qBAAqB,GAAG1P,WAAW,IAAI8K,WAAf,IAA+BA,WAAW,CAACoB,IAAZ,GAAmB,CAAhF;AAEA,MAAM6C,UAAU,GAAG3M,MAAM,CAAC,IAAD,CAAzB;AACA,MAAMiO,SAAS,GAAGjO,MAAM,CAAC,IAAD,CAAxB;AACA,MAAM4M,kBAAkB,GAAG5M,MAAM,CAAC,IAAD,CAAjC;AACA,MAAM6M,cAAc,GAAG7M,MAAM,CAAC,IAAD,CAA7B;AACA,MAAMwF,gBAAgB,GAAGxF,MAAM,CAAC,IAAD,CAA/B;;AACA,0BAGI4D,cAAK,CAACqF,UAAN,CAAiBiF,kBAAjB,CAHJ;AAAA,MACEC,kBADF,qBACEA,kBADF;AAAA,MAEEC,iBAFF,qBAEEA,iBAFF;;AAIA,mBAAoClG,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO4E,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAAoC7E,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8E,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,MAAMO,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChCP,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFD;;AAGA,MAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BR,IAAAA,aAAa,CAAC,KAAD,CAAb;AACD,GAFD;;AAIA/B,EAAAA,aAAa,CAAC;AACZnH,IAAAA,GAAG,EAAE4I,UADO;AAEZxB,IAAAA,QAAQ,EAAE4B;AAFE,GAAD,CAAb;AAKA,sBACEnJ;AACE,IAAA,SAAS,EAAC,8BADZ;AAEE,IAAA,GAAG,EAAE+I,UAFP;AAGE,IAAA,KAAK,EAAE;AACLe,MAAAA,UAAU,EAAEzB,QAAQ,GAAGR,gBAAH,GAAsBqH,cADrC;AAELnF,MAAAA,aAAa,EAAEzB,WAAW,GAAGT,gBAAH,GAAsBqH;AAF3C;AAHT,kBAQElP;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACsI,WAAD,iBACEtI,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,MAAD;AACE,QAAA,GAAG,EAAEqK,SADP;AAEE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAI,CAACE,kBAAL,EAAyB;AACvBpE,YAAAA,cAAc;AACf;AACF,SANH;AAOE,QAAA,SAAS,EAAC,sCAPZ;AAQE,QAAA,GAAG,EAAEuE,mBAAmB,CAAC/d,OAAD,CAR1B;AASE,QAAA,GAAG,EAAC,sBATN;AAUE,QAAA,KAAK,EAAC,MAVR;AAWE,QAAA,MAAM,EAAC;AAXT,QADW;AAAA,KADf;AAgBE,IAAA,SAAS,EAAE,mBAACkV,aAAD;AAAA,0BACT7B,6BAAC,SAAD;AACE,QAAA,SAAS,EAAEqK,SADb;AAAA;AAGE,QAAA,gBAAgB,EAAEA,SAHpB;AAAA;AAKE,QAAA,aAAa,EAAExI,aALjB;AAME,QAAA,KAAK,EAAE;AAAEiI,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AANT,SASIS,iBAAiB,GACbA,iBAAiB,CAAC;AAClBG,QAAAA,IAAI,EAAEhe,OAAO,CAACwF,MADI;AAElB+X,QAAAA,KAAK,EAAErI;AAFW,OAAD,CADJ,gBAMb7B,6BAAC4K,oBAAD;AACE,QAAA,IAAI,EAAEje,OAAO,CAACwF,MADhB;AAEE,QAAA,SAAS,EAAE0P;AAFb,QAfR,CADS;AAAA;AAhBb,IAHN,EA+CI,CAACwG,QAAD,iBACErI,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,2CADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAFxB;AAGE,IAAA,KAAK,EAAElB,WAAW,CAACC;AAHrB,KAKG6H,aAAa,CAACle,OAAD,CALhB,CAhDN,eAyDEqT;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,mBAAD,OADF,CAzDF,eA4DEA;AACE,IAAA,SAAS,EAAE,CACT,yCADS,EAET8O,gBAAgB,CAACniB,OAAD,CAAhB,GAA4B,EAA5B,GAAiC,mDAFxB,EAGT+T,IAHS,CAGJ,GAHI,CADb;AAKE,IAAA,IAAI,EAAC,QALP;AAME,IAAA,OAAO,EAAE0O,QANX;AAOE,IAAA,SAAS,EAAEA,QAPb;AAQE,IAAA,QAAQ,EAAE;AARZ,KAWIG,YAAY,iBACVvP,6BAAC,aAAD;AACE,IAAA,GAAG,EAAEuP,YAAY,CAACxgB,GAAb,IAAoB,EAD3B;AAEE,IAAA,GAAG,EAAEwgB,YAAY,CAACG,GAAb,IAAoB,EAF3B;AAGE,IAAA,SAAS,EAAC,gDAHZ;AAIE,IAAA,KAAK,EAAC,OAJR;AAKE,IAAA,MAAM,EAAC,OALT;AAME,IAAA,gBAAgB,eACd1P;AAAK,MAAA,SAAS,EAAC;AAAf,oBACEA,6BAAC,IAAD;AACE,MAAA,IAAI,EAAEqC,SAAS,CAACsN,cADlB;AAEE,MAAA,KAAK,EAAC,MAFR;AAGE,MAAA,MAAM,EAAC;AAHT,MADF;AAPJ,IAZN,CA5DF,eA2FE3P;AACE,IAAA,SAAS,EAAE,CACT,sCADS,EAET8O,gBAAgB,CAACniB,OAAD,CAAhB,GAA4B,EAA5B,GAAiC,gDAFxB,EAGT+T,IAHS,CAGJ,GAHI,CADb;AAKE,IAAA,IAAI,EAAC,QALP;AAME,IAAA,OAAO,EAAE0O,QANX;AAOE,IAAA,SAAS,EAAEA,QAPb;AAQE,IAAA,QAAQ,EAAE;AARZ,KAWItiB,UAAU,CAAC8iB,KAAX,iBACE5P;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,IAAI,EAAE6C,eAAe,CAACgN,UADxB;AAEE,IAAA,KAAK,EAAE9M,WAAW,CAACgB;AAFrB,KAIGjX,UAAU,CAAC8iB,KAJd,CADF,CAZN,EAuBI9iB,UAAU,CAACgjB,WAAX,iBACE9P;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,0DADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACkN,MAFxB;AAGE,IAAA,KAAK,EAAEhN,WAAW,CAACgB;AAHrB,KAKGjX,UAAU,CAACgjB,WALd,CADF,CAxBN,EAoCIhjB,UAAU,CAACiC,GAAX,iBACEiR;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,kDADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGlW,UAAU,CAACiC,GALd,CADF,CArCN,EAiDI0b,kBAAkB,iBAEhBzK;AACE,IAAA,SAAS,EAAC,gEADZ;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAE,iBAACgQ,KAAD;AAAA,aAAWA,KAAK,CAACC,eAAN,EAAX;AAAA,KAHX;AAIE,IAAA,SAAS,EAAE,mBAACD,KAAD;AAAA,aAAWA,KAAK,CAACC,eAAN,EAAX;AAAA,KAJb;AAKE,IAAA,QAAQ,EAAE;AALZ,kBAOEjQ,6BAAC,cAAD;AACE,IAAA,SAAS,EAAC,uDADZ;AAEE,IAAA,MAAM,EAAEpO,MAFV;AAGE,IAAA,OAAO,EAAEjF,OAHX;AAIE,IAAA,UAAU,EAAEoY,UAJd;AAKE,IAAA,WAAW,EAAED,WALf;AAME,IAAA,cAAc,EAAEtD,cANlB;AAOE,IAAA,sBAAsB,EAAEwD;AAP1B,IAPF,CAnDN,CA3FF,CADF,eAoKEhF;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACsI,WAAD,IAAgB,EAAEY,UAAU,IAAIE,UAAhB,CAAhB,iBACEpJ,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,uCADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGlR,mBAAmB,CAACnF,OAAD,CALtB,CAHN,eAYEqT;AAAK,IAAA,SAAS,EAAC,oCAAf;AAAoD,IAAA,GAAG,EAAE4B;AAAzD,KAEI8H,qBAAqB,iBAEnB1J,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEgJ,kBADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACb7C,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACpB,SAPH;AAQE,QAAA,MAAM,EAAE,kBAAM;AACZC,UAAAA,kBAAkB;AACnB;AAVH,sBAYE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAACgE,UADlB;AAEE,QAAA,SAAS,EAAElD,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAZF,CADW;AAAA,KADf;AAsBE,IAAA,SAAS,EAAE,mBAACpI,aAAD;AAAA,0BACT7B,6BAAC,sBAAD;AACE,QAAA,SAAS,EAAEgJ,kBADb;AAEE,QAAA,gBAAgB,EAAEpH,gBAFpB;AAGE,QAAA,aAAa,EAAEC,aAHjB;AAIE,QAAA,OAAO,EAAElV,OAJX;AAKE,QAAA,gBAAgB,EAAE;AAAE2Z,UAAAA,CAAC,EAAE;AAAL;AALpB,QADS;AAAA;AAtBb,IAJN,eAsCEtG,6BAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACmG,cAAD;AAAA,0BACXnG,6BAAC,UAAD;AACE,QAAA,GAAG,EAAEiJ,cADP;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE,mBAAM;AACb9C,UAAAA,cAAc;AACdyD,UAAAA,mBAAmB;AACpB,SAPH;AAQE,QAAA,MAAM,EAAE,kBAAM;AACZC,UAAAA,kBAAkB;AACnB;AAVH,sBAYE7J,6BAAC,IAAD;AACE,QAAA,IAAI,EAAEqC,SAAS,CAAC2H,IADlB;AAEE,QAAA,SAAS,EAAE7G,UAAU,CAAC8G,eAFxB;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC;AAJT,QAZF,CADW;AAAA,KADf;AAsBE,IAAA,SAAS,EAAE,mBAACpI,aAAD;AAAA,0BACT7B,6BAAC,SAAD;AACE,QAAA,SAAS,EAAEiJ,cADb;AAEE,QAAA,gBAAgB,EAAErH,gBAFpB;AAGE,QAAA,aAAa,EAAEC;AAHjB,sBAKE7B,6BAAC,QAAD;AACE,QAAA,SAAS,EAAC,gDADZ;AAEE,QAAA,OAAO,EAAE,mBAAM;AAAEmK,UAAAA,eAAe,CAACxd,OAAO,CAACA,OAAT,CAAf;AAAkCkV,UAAAA,aAAa;AAAK;AAFvE,SAIG0D,SAAS,CAACiK,2BAJb,CALF,CADS;AAAA;AAtBb,IAtCF,CAZF,CApKF,CARF,CADF;AAyQD;;AAID,IAAM5H,MAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;AAEAuH,eAAe,CAACvO,SAAhB,GAA4B;AAC1BoH,EAAAA,MAAM,EAAEnH,SAAS,CAACK,IAAV,CAAeG,UADG;AAE1BzP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UAFC;AAG1B1U,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvB7W,IAAAA,OAAO,EAAEkU,SAAS,CAACE,MADI;AAEvB5O,IAAAA,MAAM,EAAE0O,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAFe;AAGvB1W,IAAAA,UAAU,EAAE+T,SAAS,CAAC2C,KAAV,CAAgB;AAC1BoM,MAAAA,KAAK,EAAE/O,SAAS,CAACE,MADS;AAE1B+O,MAAAA,WAAW,EAAEjP,SAAS,CAACE,MAFG;AAG1BhS,MAAAA,GAAG,EAAE8R,SAAS,CAACE,MAHW;AAI1BwO,MAAAA,YAAY,EAAE1O,SAAS,CAAC2C,KAAV,CAAgB;AAC5BzU,QAAAA,GAAG,EAAE8R,SAAS,CAACE,MADa;AAE5B2O,QAAAA,GAAG,EAAE7O,SAAS,CAACE;AAFa,OAAhB;AAJY,KAAhB,CAHW;AAYvBkB,IAAAA,SAAS,EAAEpB,SAAS,CAAC6H,KAZE;AAavBjC,IAAAA,SAAS,EAAE5F,SAAS,CAACI;AAbE,GAAhB,EAcNI,UAjBuB;AAkB1BrH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UAlBF;AAmB1BjB,EAAAA,SAAS,EAAES,SAAS,CAACC,SAAV,CAAoB,CAC7BD,SAAS,CAACE,MADmB,EAE7BF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAF6B,CAApB,CAnBe;AAuB1B4B,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MAvBQ;AAwB1BmH,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAxBM;AAyB1BiH,EAAAA,QAAQ,EAAEtH,SAAS,CAACM,IAzBM;AA0B1BiH,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IA1BI;AA2B1B8G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IA3BC;AA4B1BK,EAAAA,cAAc,EAAEX,SAAS,CAACM,IA5BA;AA6B1B4D,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CA7Bc;AA8B1BqW,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CA9Ba;AA+B1BuW,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IA/BR;AAgC1BkH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAhCM;AAiC1BoH,EAAAA,WAAW,EAAEzH,SAAS,CAACK;AAjCG,CAA5B;AAoCAiO,eAAe,CAAC7N,YAAhB,GAA+B;AAC7BlB,EAAAA,SAAS,EAAE,EADkB;AAE7BuC,EAAAA,MAAM,EAAE,EAFqB;AAG7BuF,EAAAA,QAAQ,EAAE,KAHmB;AAI7BC,EAAAA,QAAQ,EAAEP,MAJmB;AAK7BQ,EAAAA,UAAU,EAAER,MALiB;AAM7BK,EAAAA,aAAa,EAAEL,MANc;AAO7BpG,EAAAA,cAAc,EAAEoG,MAPa;AAQ7B7C,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EARiB;AAS7BqW,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EATgB;AAU7BuW,EAAAA,sBAAsB,EAAE4C,MAVK;AAW7BS,EAAAA,QAAQ,EAAE,KAXmB;AAY7BC,EAAAA,WAAW,EAAE;AAZgB,CAA/B;AAeAgH,iBAAiB,CAAC1O,SAAlB,GAA8B;AAC5B+B,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MADU;AAE5BnP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UAFG;AAG5B1U,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvB7W,IAAAA,OAAO,EAAEkU,SAAS,CAACE,MADI;AAEvBjU,IAAAA,UAAU,EAAE+T,SAAS,CAAC2C,KAAV,CAAgB;AAC1BoM,MAAAA,KAAK,EAAE/O,SAAS,CAACE,MADS;AAE1B+O,MAAAA,WAAW,EAAEjP,SAAS,CAACE,MAFG;AAG1BhS,MAAAA,GAAG,EAAE8R,SAAS,CAACE,MAHW;AAI1BwO,MAAAA,YAAY,EAAE1O,SAAS,CAAC2C,KAAV,CAAgB;AAC5BzU,QAAAA,GAAG,EAAE8R,SAAS,CAACE,MADa;AAE5B2O,QAAAA,GAAG,EAAE7O,SAAS,CAACE;AAFa,OAAhB;AAJY,KAAhB,CAFW;AAWvBkB,IAAAA,SAAS,EAAEpB,SAAS,CAAC6H,KAXE;AAYvBjC,IAAAA,SAAS,EAAE5F,SAAS,CAACI,MAZE;AAavBpF,IAAAA,YAAY,EAAEgF,SAAS,CAACM,IAbD;AAcvBgP,IAAAA,SAAS,EAAEtP,SAAS,CAACI;AAdE,GAAhB,EAeNI,UAlByB;AAmB5B6G,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAAV,CAAeG,UAnBG;AAoB5B+N,EAAAA,QAAQ,EAAEvO,SAAS,CAACM,IAAV,CAAeE,UApBG;AAqB5B8G,EAAAA,QAAQ,EAAEtH,SAAS,CAACM,IAAV,CAAeE,UArBG;AAsB5B+G,EAAAA,UAAU,EAAEvH,SAAS,CAACM,IAAV,CAAeE,UAtBC;AAuB5B0D,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAvBV;AAwB5ByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAxBX;AAyB5BrH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UAzBA;AA0B5B4G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAAV,CAAeE,UA1BF;AA2B5BG,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAAV,CAAeE,UA3BH;AA4B5BwH,EAAAA,mBAAmB,EAAEhI,SAAS,CAACM,IAAV,CAAeE,UA5BR;AA6B5B2D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAAV,CAAeE,UA7BX;AA8B5BgH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UA9BG;AA+B5BiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AA/BA,CAA9B;AAkCAiO,iBAAiB,CAAChO,YAAlB,GAAiC;AAC/BqB,EAAAA,MAAM,EAAE;AADuB,CAAjC;AAIAuN,iBAAiB,CAACtP,SAAlB,GAA8B;AAC5BhP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UADG;AAE5B1U,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvB7W,IAAAA,OAAO,EAAEkU,SAAS,CAACE,MADI;AAEvB5O,IAAAA,MAAM,EAAE0O,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAFe;AAGvB1W,IAAAA,UAAU,EAAE+T,SAAS,CAAC2C,KAAV,CAAgB;AAC1BoM,MAAAA,KAAK,EAAE/O,SAAS,CAACE,MADS;AAE1B+O,MAAAA,WAAW,EAAEjP,SAAS,CAACE,MAFG;AAG1BhS,MAAAA,GAAG,EAAE8R,SAAS,CAACE,MAHW;AAI1BwO,MAAAA,YAAY,EAAE1O,SAAS,CAAC2C,KAAV,CAAgB;AAC5BzU,QAAAA,GAAG,EAAE8R,SAAS,CAACE,MADa;AAE5B2O,QAAAA,GAAG,EAAE7O,SAAS,CAACE;AAFa,OAAhB;AAJY,KAAhB,CAHW;AAYvBkB,IAAAA,SAAS,EAAEpB,SAAS,CAAC6H,KAZE;AAavBjC,IAAAA,SAAS,EAAE5F,SAAS,CAACI;AAbE,GAAhB,EAcNI,UAhByB;AAiB5B+N,EAAAA,QAAQ,EAAEvO,SAAS,CAACM,IAAV,CAAeE,UAjBG;AAkB5B0D,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAlBV;AAmB5ByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAnBX;AAoB5BrH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UApBA;AAqB5BG,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAAV,CAAeE,UArBH;AAsB5BwH,EAAAA,mBAAmB,EAAEhI,SAAS,CAACM,IAAV,CAAeE,UAtBR;AAuB5B2D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM,IAAV,CAAeE,UAvBX;AAwB5BgH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UAxBG;AAyB5BiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG;AAzBA,CAA9B;;ACtyBe,SAAS+O,UAAT,OAoBZ;AAAA;;AAAA,MAnBDzjB,OAmBC,QAnBDA,OAmBC;AAAA,MAlBDiF,MAkBC,QAlBDA,MAkBC;AAAA,MAjBDsW,QAiBC,QAjBDA,QAiBC;AAAA,MAhBDmI,YAgBC,QAhBDA,YAgBC;AAAA,MAfDC,YAeC,QAfDA,YAeC;AAAA,MAdD1V,aAcC,QAdDA,aAcC;AAAA,MAbD2V,aAaC,QAbDA,aAaC;AAAA,MAZD5N,MAYC,QAZDA,MAYC;AAAA,MAXDsF,aAWC,QAXDA,aAWC;AAAA,MAVDjO,WAUC,QAVDA,WAUC;AAAA,MATDqO,QASC,QATDA,QASC;AAAA,MARDC,WAQC,QARDA,WAQC;AAAA,MAPDxD,WAOC,QAPDA,WAOC;AAAA,MANDC,UAMC,QANDA,UAMC;AAAA,MALDyL,oBAKC,QALDA,oBAKC;AAAA,MAJDhP,cAIC,QAJDA,cAIC;AAAA,MAHDwD,sBAGC,QAHDA,sBAGC;AAAA,MAFDyL,mBAEC,QAFDA,mBAEC;AAAA,MADDphB,mBACC,QADDA,mBACC;AACD,wBAAwB1C,OAAxB,CAAQwF,MAAR;AAAA,MAAQA,MAAR,gCAAiB,EAAjB;;AACA,kBAAgCmS,QAAQ,CAAC,KAAD,CAAxC;AAAA;AAAA,MAAO6D,QAAP;AAAA,MAAiBuI,WAAjB;;AACA,mBAAoCpM,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAO8D,UAAP;AAAA,MAAmBuI,aAAnB;;AACA,mBAA4CrM,QAAQ,CAAC,KAAD,CAApD;AAAA;AAAA,MAAOsM,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,mBAAoCvM,QAAQ,CAAC,KAAD,CAA5C;AAAA;AAAA,MAAOwM,UAAP;AAAA,MAAmBC,aAAnB;;AACA,MAAMC,mBAAmB,GAAG5U,MAAM,CAAC,IAAD,CAAlC;AACA,MAAM6U,mBAAmB,GAAG7U,MAAM,CAAC,IAAD,CAAlC;AAEA8U,EAAAA,eAAe,CAAC,YAAM;AACpB,QAAIV,oBAAoB,KAAK7jB,OAAO,CAACwC,SAArC,EAAgD;AAC9C,UAAI8hB,mBAAmB,IAAIA,mBAAmB,CAACva,OAA/C,EAAwD;AACtDua,QAAAA,mBAAmB,CAACva,OAApB,CAA4Bya,cAA5B,CAA2C;AACzCC,UAAAA,KAAK,EAAE,QADkC;AAEzCC,UAAAA,MAAM,EAAE;AAFiC,SAA3C;AAIAtjB,QAAAA,UAAU,CAAC,YAAM;AACfgjB,UAAAA,aAAa,CAAC,IAAD,CAAb;AACD,SAFS,EAEP,GAFO,CAAV;AAGD;AACF,KAVD,MAUO;AACLA,MAAAA,aAAa,CAAC,KAAD,CAAb;AACD;AACF,GAdc,EAcZ,CAACP,oBAAD,EAAuBS,mBAAmB,CAACva,OAA3C,EAAoD/J,OAAO,CAACwC,SAA5D,CAdY,CAAf;AAeA,MAAMmiB,eAAe,GAAG5P,OAAO,CAAC,YAAM;AACpC,QAAI+O,mBAAJ,EAAyB;AACvB,aAAOA,mBAAmB,CAAC9jB,OAAD,EAAU0C,mBAAV,EAA+BgZ,QAA/B,EAAyCC,WAAzC,CAA1B,CADuB;AAGxB;;AACD,WAAO,IAAP;AACD,GAN8B,EAM5B,CAAC3b,OAAD,EAAUA,OAAO,CAACA,OAAlB,EAA2B8jB,mBAA3B,CAN4B,CAA/B;AAQA,MAAMzI,MAAM,GAAIpW,MAAM,KAAKO,MAAM,CAACP,MAAnB,IACTjF,OAAO,CAAC2C,YAAR,KAAyB,SADhB,IAET3C,OAAO,CAAC2C,YAAR,KAAyB,QAF/B;;AAIA,MAAIgiB,eAAJ,EAAqB;AACnB,wBACEtR;AACE,MAAA,GAAG,EAAEiR,mBADP;AAEE,MAAA,SAAS,6EAELH,UAAU,GAAG,+BAAH,GAAqC,EAF1C;AAFX,OASIR,YAAY,iBACVtQ,6BAAC,aAAD,qBACEA,6BAAC,KAAD;AAAO,MAAA,IAAI,EAAE6C,eAAe,CAACoB,SAA7B;AAAwC,MAAA,KAAK,EAAElB,WAAW,CAACC;AAA3D,OACGjR,MAAM,CAACpF,OAAO,CAACqF,SAAT,EAAoB,eAApB,CADT,CADF,CAVN,eAiBEgO,6BAAC,eAAD;AAAiB,MAAA,OAAO,EAAErT;AAA1B,MAjBF,CADF;AAqBD;;AAED,MAAIwb,QAAJ,EAAc;AACZ,wBACEnI,6BAAC,YAAD;AACE,MAAA,MAAM,MADR;AAEE,MAAA,QAAQ,EAAEqQ,YAFZ;AAGE,MAAA,GAAG,EAAEW,mBAHP;AAIE,MAAA,IAAI,EAAErkB,OAAO,CAACwC,SAJhB;AAKE,MAAA,aAAa,EAAEohB,aALjB;AAME,MAAA,YAAY,EAAE,wBAAM;AAAEG,QAAAA,WAAW,CAAC,KAAD,CAAX;AAAqB,OAN7C;AAOE,MAAA,KAAK,EAAE/jB,OAAO,CAACA;AAPjB,MADF;AAWD;;AAED,sBACEqT;AACE,IAAA,GAAG,EAAEiR,mBADP;AAEE,IAAA,SAAS,yEAELH,UAAU,GAAG,4BAAH,GAAkC,EAFvC;AAFX,KASIR,YAAY,iBACVtQ,6BAAC,aAAD,qBACEA,6BAAC,KAAD;AAAO,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAA7B;AAAwC,IAAA,KAAK,EAAElB,WAAW,CAACC;AAA3D,KACGjR,MAAM,CAACpF,OAAO,CAACqF,SAAT,EAAoB,eAApB,CADT,CADF,CAVN,EAmBI,oEACGjG,YAAY,CAACC,KADhB,eACwBgU,6BAAC,YAAD;AAAc,IAAA,OAAO,EAAErT;AAAvB,IADxB,0CAEGZ,YAAY,CAACG,IAFhB,eAGI8T,6BAACuR,aAAD;AACE,IAAA,OAAO,EAAE5kB,OADX;AAEE,IAAA,MAAM,EAAEiF,MAFV;AAGE,IAAA,QAAQ,EAAEsW,QAHZ;AAIE,IAAA,MAAM,EAAEF,MAJV;AAKE,IAAA,UAAU,EAAE2I,aALd;AAME,IAAA,aAAa,EAAE1I,aANjB;AAOE,IAAA,MAAM,EAAEtF,MAPV;AAQE,IAAA,WAAW,EAAE3I,WARf;AASE,IAAA,WAAW,EAAE8K,WATf;AAUE,IAAA,UAAU,EAAEC,UAVd;AAWE,IAAA,cAAc,EAAEvD,cAXlB;AAYE,IAAA,sBAAsB,EAAEwD,sBAZ1B;AAaE,IAAA,QAAQ,EAAEqD,QAbZ;AAcE,IAAA,WAAW,EAAEC;AAdf,IAHJ,0CAoBGvc,YAAY,CAACK,EApBhB,eAqBI4T,6BAACwR,eAAD;AACE,IAAA,OAAO,EAAE7kB,OADX;AAEE,IAAA,MAAM,EAAEgW,MAFV;AAGE,IAAA,MAAM,EAAEqF,MAHV;AAIE,IAAA,MAAM,EAAEpW,MAJV;AAKE,IAAA,QAAQ,EAAE8e,WALZ;AAME,IAAA,QAAQ,EAAExI,QANZ;AAOE,IAAA,UAAU,EAAEyI,aAPd;AAQE,IAAA,aAAa,EAAE1I,aARjB;AASE,IAAA,WAAW,EAAEjO,WATf;AAUE,IAAA,WAAW,EAAE8K,WAVf;AAWE,IAAA,UAAU,EAAEC,UAXd;AAYE,IAAA,cAAc,EAAEvD,cAZlB;AAaE,IAAA,sBAAsB,EAAEwD,sBAb1B;AAcE,IAAA,QAAQ,EAAEqD,QAdZ;AAeE,IAAA,WAAW,EAAEC;AAff,IArBJ,0CAuCGvc,YAAY,CAACI,SAvChB,eAwCI6T,6BAAC,gBAAD;AACE,IAAA,QAAQ,EAAEkI,QADZ;AAEE,IAAA,OAAO,EAAEvb,OAFX;AAGE,IAAA,MAAM,EAAEiF,MAHV;AAIE,IAAA,MAAM,EAAEoW,MAJV;AAKE,IAAA,UAAU,EAAE2I,aALd;AAME,IAAA,aAAa,EAAE1I,aANjB;AAOE,IAAA,OAAO,EAAE4I,iBAPX;AAQE,IAAA,MAAM,EAAElO,MARV;AASE,IAAA,WAAW,EAAE3I,WATf;AAUE,IAAA,WAAW,EAAE8K,WAVf;AAWE,IAAA,UAAU,EAAEC,UAXd;AAYE,IAAA,cAAc,EAAEvD,cAZlB;AAaE,IAAA,sBAAsB,EAAEwD,sBAb1B;AAcE,IAAA,QAAQ,EAAEqD,QAdZ;AAeE,IAAA,WAAW,EAAEC;AAff,IAxCJ,0CA0DGvc,YAAY,CAACE,IA1DhB,eA2DI+T,6BAAC,OAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,QAAQ,EAAEub,QAFZ;AAGE,IAAA,MAAM,EAAEF,MAHV;AAIE,IAAA,MAAM,EAAEpW,MAJV;AAKE,IAAA,QAAQ,EAAE8e,WALZ;AAME,IAAA,UAAU,EAAEC,aANd;AAOE,IAAA,aAAa,EAAE1I,aAPjB;AAQE,IAAA,MAAM,EAAEtF,MARV;AASE,IAAA,WAAW,EAAE3I,WATf;AAUE,IAAA,WAAW,EAAE8K,WAVf;AAWE,IAAA,UAAU,EAAEC,UAXd;AAYE,IAAA,cAAc,EAAEvD,cAZlB;AAaE,IAAA,sBAAsB,EAAEwD,sBAb1B;AAcE,IAAA,QAAQ,EAAEqD,QAdZ;AAeE,IAAA,WAAW,EAAEC;AAff,IA3DJ,0BA6EE5b,cAAc,CAACC,OAAD,CA7EhB,CAnBJ,EAoGIyb,UAAU,iBACRpI,6BAACyR,aAAD;AACE,IAAA,YAAY,EAAE;AAAA,aAAMd,aAAa,CAAC,KAAD,CAAnB;AAAA,KADhB;AAEE,IAAA,eAAe,EAAE,2BAAM;AACrB/V,MAAAA,aAAa,CAACjO,OAAD,CAAb;AACD;AAJH,IArGN,EA8GIikB,cAAc,iBACZ5Q,6BAAC,UAAD;AACE,IAAA,OAAO,EAAE;AAAA,aAAM6Q,iBAAiB,CAAC,KAAD,CAAvB;AAAA,KADX;AAEE,IAAA,OAAO,EAAElkB,OAFX;AAGE,IAAA,QAAQ,EAAE,oBAAM;AACdiO,MAAAA,aAAa,CAACjO,OAAD,EAAU,YAAM;AAC3BkkB,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OAFY,CAAb;AAGD,KAPH;AAQE,IAAA,MAAM,EAAE7I;AARV,IA/GN,EA4HI,EAAGrb,OAAO,CAACK,aAAR,IAAyBL,OAAO,CAACK,aAAR,EAA1B,IAAsDL,OAAO,CAACE,WAAR,KAAwB,MAAhF,KACG,EAAEF,OAAO,CAACI,cAAR,IAA0BJ,OAAO,CAACI,cAAR,EAA5B,CADH,IAEG,EAAIJ,OAAO,CAACC,aAAR,IAAyBD,OAAO,CAACC,aAAR,EAA1B,IAAsDD,OAAO,CAACE,WAAR,KAAwB,MAAjF,CAFH,IAGG,CAAE+jB,cAHL,iBAKE5Q,6BAAC,cAAD;AACE,IAAA,OAAO,EAAErT,OADX;AAEE,IAAA,MAAM,EAAEgW,MAFV;AAGE,IAAA,MAAM,EAAEqF,MAHV;AAIE,IAAA,UAAU,EAAE2I,aAJd;AAKE,IAAA,QAAQ,EAAEtI,QALZ;AAME,IAAA,WAAW,EAAEC;AANf,IAjIN,CADF;AA8ID;AAED8H,UAAU,CAACxP,SAAX,GAAuB;AACrBhP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MADG;AAErBpU,EAAAA,OAAO,EAAEkU,SAAS,CAAC2C,KAAV,CAAgB;AACvBxW,IAAAA,aAAa,EAAE6T,SAAS,CAACM,IADF;AAEvBpU,IAAAA,cAAc,EAAE8T,SAAS,CAACM,IAFH;AAGvBvU,IAAAA,aAAa,EAAEiU,SAAS,CAACM,IAHF;AAIvBuQ,IAAAA,eAAe,EAAE7Q,SAAS,CAACM,IAJJ;AAKvB;AACAhS,IAAAA,SAAS,EAAE0R,SAAS,CAACI,MANE;AAOvB/T,IAAAA,IAAI,EAAE2T,SAAS,CAACE,MAPO;AAQvB/O,IAAAA,SAAS,EAAE6O,SAAS,CAACI,MARE;AASvBtU,IAAAA,OAAO,EAAEkU,SAAS,CAACE,MATI;AAUvBzR,IAAAA,YAAY,EAAEuR,SAAS,CAACE,MAVD;AAWvBlU,IAAAA,WAAW,EAAEgU,SAAS,CAACE,MAXA;AAYvB5O,IAAAA,MAAM,EAAE0O,SAAS,CAAC2C,KAAV,CAAgB;AAAE5R,MAAAA,MAAM,EAAEiP,SAAS,CAACE;AAApB,KAAhB,CAZe;AAavBjU,IAAAA,UAAU,EAAE+T,SAAS,CAAC2C,KAAV,CAAgB,EAAhB;AAbW,GAAhB,CAFY;AAiBrBgN,EAAAA,oBAAoB,EAAE3P,SAAS,CAACC,SAAV,CAAoB,CACxCD,SAAS,CAACE,MAD8B,EAExCF,SAAS,CAACI,MAF8B,CAApB,CAjBD;AAqBrBwP,EAAAA,mBAAmB,EAAE5P,SAAS,CAACM,IArBV;AAsBrB9R,EAAAA,mBAAmB,EAAEwR,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAtBA;AAuBrB8M,EAAAA,YAAY,EAAEzP,SAAS,CAACK,IAvBH;AAwBrBgH,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAxBC;AAyBrBmP,EAAAA,YAAY,EAAExP,SAAS,CAACK,IAzBH;AA0BrBtG,EAAAA,aAAa,EAAEiG,SAAS,CAACM,IAAV,CAAeE,UA1BT;AA2BrBkP,EAAAA,aAAa,EAAE1P,SAAS,CAACM,IAAV,CAAeE,UA3BT;AA4BrB4G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAAV,CAAeE,UA5BT;AA6BrBsB,EAAAA,MAAM,EAAE9B,SAAS,CAACE,MA7BG;AA8BrB/G,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAAV,CAAeG,UA9BP;AA+BrBgH,EAAAA,QAAQ,EAAExH,SAAS,CAACK,IAAV,CAAeG,UA/BJ;AAgCrBiH,EAAAA,WAAW,EAAEzH,SAAS,CAACK,IAAV,CAAeG,UAhCP;AAiCrByD,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAjClB;AAkCrB0D,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,EAA0B4S,UAlCjB;AAmCrBG,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAnCL;AAoCrB6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM;AApCb,CAAvB;AAuCAiP,UAAU,CAAC9O,YAAX,GAA0B;AACxB1P,EAAAA,MAAM,EAAE,EADgB;AAExBye,EAAAA,YAAY,EAAE,KAFU;AAGxBI,EAAAA,mBAAmB,EAAE,IAHG;AAIxBphB,EAAAA,mBAAmB,EAAE,EAJG;AAKxB1C,EAAAA,OAAO,EAAE,EALe;AAMxB2jB,EAAAA,YAAY,EAAE,KANU;AAOxBpI,EAAAA,QAAQ,EAAE,KAPc;AAQxBsI,EAAAA,oBAAoB,EAAE,IARE;AASxB7N,EAAAA,MAAM,EAAE,EATgB;AAUxBnB,EAAAA,cAAc,EAAE,0BAAM,EAVE;AAWxBwD,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA;AAXA,CAA1B;;IC7RqB2M;;;;;;;;;;;;;;;;+DACR,UAACxZ,CAAD,EAAO;AAChB,wBAOI,MAAK+H,KAPT;AAAA,UACE/J,SADF,eACEA,SADF;AAAA,UAEExC,OAFF,eAEEA,OAFF;AAAA,UAGEqC,kBAHF,eAGEA,kBAHF;AAAA,UAIE4b,QAJF,eAIEA,QAJF;AAAA,UAKEC,YALF,eAKEA,YALF;AAAA,UAMExiB,mBANF,eAMEA,mBANF;AASA,UAAM+R,OAAO,GAAGjJ,CAAC,CAAC2Z,MAAlB;AACA,UACElkB,SADF,GAIIwT,OAJJ,CACExT,SADF;AAAA,UAEEmkB,YAFF,GAII3Q,OAJJ,CAEE2Q,YAFF;AAAA,UAGElkB,YAHF,GAIIuT,OAJJ,CAGEvT,YAHF;;AAKA,UAAID,SAAS,KAAK,CAAlB,EAAqB;AACnB,YAAI,CAAC+F,OAAL,EAAc;AACZ;AACD;;AACD,YAAMqe,KAAK,GAAG7b,SAAS,CAACO,OAAV,CAAkBub,gBAAlB,CAAmC,2BAAnC,CAAd;AACA,YAAMC,KAAK,GAAGF,KAAK,IAAIA,KAAK,CAAC,CAAD,CAA5B;AACAJ,QAAAA,QAAQ,CAAC,gBAAgB;AAAA;AAAA,cAAd3e,QAAc;;AACvB,cAAIA,QAAJ,EAAc;AACZ;AACA,gBAAI;AACFif,cAAAA,KAAK,CAACf,cAAN;AACD,aAFD,CAEE,OAAOrjB,KAAP,EAAc;AAEf;AACF;AACF,SATO,CAAR;AAUD;;AAED,UAAIikB,YAAY,GAAGnkB,SAAf,KAA6BC,YAAjC,EAA+C;AAC7C,YAAMmkB,MAAK,GAAG7b,SAAS,CAACO,OAAV,CAAkBub,gBAAlB,CAAmC,2BAAnC,CAAd;;AACA,YAAME,IAAI,GAAGH,MAAK,IAAIA,MAAK,CAACA,MAAK,CAACphB,MAAN,GAAe,CAAhB,CAA3B;AACAihB,QAAAA,YAAY,CAAC,iBAAgB;AAAA;AAAA,cAAd5e,QAAc;;AAC3B,cAAIA,QAAJ,EAAc;AACZ;AACA,gBAAI;AACFkf,cAAAA,IAAI,CAAChB,cAAL;AACD,aAFD,CAEE,OAAOrjB,KAAP,EAAc;AAEf;AACF;AACF,SATW,CAAZ;AAUD,OA/Ce;;;AAkDhBC,MAAAA,UAAU,CAAC,YAAM;AACf;AACA,YAAIgkB,YAAY,GAAGnkB,SAAf,KAA6BC,YAAjC,EAA+C;AAC7CmI,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K;AADW,WAAD,CAAlB;AAGA5I,UAAAA,mBAAmB,CAACwH,UAApB;AACD;AACF,OARS,EAQP,GARO,CAAV;AASD;;;;;;;WAED,kBAAS;AACP,yBAuBI,KAAKqJ,KAvBT;AAAA,UACEtO,MADF,gBACEA,MADF;AAAA,UAEEsW,QAFF,gBAEEA,QAFF;AAAA,UAGE/R,SAHF,gBAGEA,SAHF;AAAA,UAIEpC,UAJF,gBAIEA,UAJF;AAAA,UAKEgR,UALF,gBAKEA,UALF;AAAA,UAMEnS,WANF,gBAMEA,WANF;AAAA,UAOEoH,WAPF,gBAOEA,WAPF;AAAA,UAQE8K,WARF,gBAQEA,WARF;AAAA,UASEuL,YATF,gBASEA,YATF;AAAA,UAUEzV,aAVF,gBAUEA,aAVF;AAAA,UAWE2V,aAXF,gBAWEA,aAXF;AAAA,UAYEtI,aAZF,gBAYEA,aAZF;AAAA,UAaEwI,mBAbF,gBAaEA,mBAbF;AAAA,UAcE2B,cAdF,gBAcEA,cAdF;AAAA,UAeE5B,oBAfF,gBAeEA,oBAfF;AAAA,UAgBEjgB,cAhBF,gBAgBEA,cAhBF;AAAA,UAiBEiR,cAjBF,gBAiBEA,cAjBF;AAAA,UAkBE6Q,kBAlBF,gBAkBEA,kBAlBF;AAAA,UAmBEhjB,mBAnBF,gBAmBEA,mBAnBF;AAAA,UAoBE2V,sBApBF,gBAoBEA,sBApBF;AAAA,UAqBEsN,aArBF,gBAqBEA,aArBF;AAAA,UAsBEC,gBAtBF,gBAsBEA,gBAtBF;;AAyBA,UAAI3f,WAAW,CAAChC,MAAZ,GAAqB,CAAzB,EAA4B;AAC1B,4BACEoP,6BAAC,WAAD;AACE,UAAA,SAAS,EAAC,oCADZ;AAEE,UAAA,IAAI,EAAEwS,gBAAgB,CAACC;AAFzB,UADF;AAMD;;AAED,0BACEzS;AAAK,QAAA,SAAS,EAAC;AAAf,sBACEA;AACE,QAAA,GAAG,EAAE7J,SADP;AAEE,QAAA,SAAS,EAAC,yCAFZ;AAGE,QAAA,QAAQ,EAAE,KAAKyb;AAHjB,sBAKE5R;AAAK,QAAA,SAAS,EAAC;AAAf,QALF,eAaEA;AAAK,QAAA,SAAS,EAAC;AAAf,SAEIpN,WAAW,CAACG,GAAZ,CACE,UAACyB,CAAD,EAAIke,GAAJ,EAAY;AACV,YAAMC,eAAe,GAAG/f,WAAW,CAAC8f,GAAG,GAAG,CAAP,CAAnC;AACA,YAAMlgB,WAAW,GAAGI,WAAW,CAAC8f,GAAG,GAAG,CAAP,CAA/B;;AACA,oBAAgCL,kBAAkB,GAC9ChgB,0BAA0B,CAACsgB,eAAD,EAAkBne,CAAlB,EAAqBhC,WAArB,CADoB,GAE9C,CAAC,KAAD,EAAQ,KAAR,CAFJ;AAAA;AAAA,YAAO6V,QAAP;AAAA,YAAiBC,WAAjB;;AAGA,YAAMsK,wBAAwB,GAAGD,eAAe,IAAIA,eAAe,CAAC3gB,SAApE;AACA,YAAM6gB,gBAAgB,GAAGre,CAAC,CAACxC,SAA3B,CAPU;;AASV,YAAMse,YAAY,GAAG,EAAEsC,wBAAwB,IAC7CE,SAAS,CAACD,gBAAD,EAAmBD,wBAAnB,CADU,CAArB;;AAGA,YAAIR,cAAJ,EAAoB;AAClB,8BACEpS;AACE,YAAA,GAAG,EAAExL,CAAC,CAACrF,SAAF,IAAeqF,CAAC,CAACW,KADxB;AAEE,YAAA,SAAS,EAAC;AAFZ,aAKIid,cAAc,CAAC;AACbzlB,YAAAA,OAAO,EAAE6H,CADI;AAEbgc,YAAAA,oBAAoB,EAApBA,oBAFa;AAGb1hB,YAAAA,OAAO,EAAEO,mBAHI;AAIboe,YAAAA,eAAe,EAAE7S,aAJJ;AAKbmY,YAAAA,eAAe,EAAExC,aALJ;AAMbyC,YAAAA,eAAe,EAAE/K,aANJ;AAOb1X,YAAAA,cAAc,EAAdA,cAPa;AAQb8X,YAAAA,QAAQ,EAARA,QARa;AASbC,YAAAA,WAAW,EAAXA;AATa,WAAD,CALlB,CADF;AAoBD;;AAED,4BACEtI,6BAACiT,UAAD;AACE,UAAA,oBAAoB,EAAEzC,oBADxB;AAEE,UAAA,mBAAmB,EAAEC,mBAFvB;AAGE,UAAA,GAAG,EAAEjc,CAAC,CAACrF,SAAF,IAAeqF,CAAC,CAACW,KAHxB;AAIE,UAAA,MAAM,EAAEvD,MAJV;AAKE,UAAA,MAAM,EAAEmC,UAAU,CAACS,CAAC,CAACrF,SAAH,CAAV,IAA2BC,eAAe,CAACoF,CAAD,EAAInF,mBAAJ,CALpD;AAAA;AAOE,UAAA,OAAO,EAAEmF,CAPX;AAQE,UAAA,mBAAmB,EAAEnF,mBARvB;AASE,UAAA,QAAQ,EAAE6Y,QATZ;AAUE,UAAA,UAAU,EAAEnD,UAVd;AAWE,UAAA,QAAQ,EAAEsD,QAXZ;AAYE,UAAA,WAAW,EAAErO,WAZf;AAaE,UAAA,WAAW,EAAE8K,WAbf;AAcE,UAAA,YAAY,EAAEuL,YAdhB;AAeE,UAAA,YAAY,EAAEC,YAfhB;AAgBE,UAAA,WAAW,EAAEhI,WAhBf;AAiBE,UAAA,aAAa,EAAEiI,aAjBjB;AAkBE,UAAA,aAAa,EAAE3V,aAlBjB;AAmBE,UAAA,aAAa,EAAEqN,aAnBjB;AAoBE,UAAA,cAAc,EAAEzG,cApBlB;AAqBE,UAAA,sBAAsB,EAAEwD;AArB1B,UADF;AAyBD,OA7DH,CAFJ,CAbF,CADF,EAmFIsN,aAAa,iBACXtS;AACE,QAAA,SAAS,EAAC,6CADZ;AAEE,QAAA,OAAO,EAAEuS,gBAFX;AAGE,QAAA,SAAS,EAAEA,gBAHb;AAIE,QAAA,QAAQ,EAAE,CAJZ;AAKE,QAAA,IAAI,EAAC;AALP,sBAOEvS,6BAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEqC,SAAS,CAAC6Q,YAHlB;AAIE,QAAA,SAAS,EAAE/P,UAAU,CAACC;AAJxB,QAPF,CApFN,CADF;AAuGD;;;;EAxM6C+P;AA2MhDxB,kBAAkB,CAAC/Q,SAAnB,GAA+B;AAC7B;AACAzK,EAAAA,SAAS,EAAE0K,SAAS,CAAC2C,KAAV,CAAgB;AACzB9M,IAAAA,OAAO,EAAEmK,SAAS,CAACC,SAAV,CAAoB,CAC3BD,SAAS,CAACO,OADiB,EAE3BP,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAF2B,CAApB;AADgB,GAAhB,EAKRnC,UAP0B;AAQ7B1N,EAAAA,OAAO,EAAEkN,SAAS,CAACK,IARU;AAS7BlL,EAAAA,kBAAkB,EAAE6K,SAAS,CAACM,IAAV,CAAeE,UATN;AAU7BuQ,EAAAA,QAAQ,EAAE/Q,SAAS,CAACM,IAVS;AAW7B0Q,EAAAA,YAAY,EAAEhR,SAAS,CAACM,IAXK;AAY7BkP,EAAAA,YAAY,EAAExP,SAAS,CAACK,IAZK;AAa7BgH,EAAAA,QAAQ,EAAErH,SAAS,CAACK,IAbS;AAc7BtP,EAAAA,MAAM,EAAEiP,SAAS,CAACE,MAdW;AAe7BnO,EAAAA,WAAW,EAAEiO,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAAC2C,KAAV,CAAgB;AAC7CxR,IAAAA,SAAS,EAAE6O,SAAS,CAACI;AADwB,GAAhB,CAAlB,EAETI,UAjByB;AAkB7BzG,EAAAA,aAAa,EAAEiG,SAAS,CAACM,IAAV,CAAeE,UAlBD;AAmB7B4G,EAAAA,aAAa,EAAEpH,SAAS,CAACM,IAAV,CAAeE,UAnBD;AAoB7BkP,EAAAA,aAAa,EAAE1P,SAAS,CAACM,IAAV,CAAeE,UApBD;AAqB7BtN,EAAAA,UAAU,EAAE8M,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,EAAoBnC,UArBH;AAsB7BhS,EAAAA,mBAAmB,EAAEwR,SAAS,CAAC2C,KAAV,CAAgB;AACnC3M,IAAAA,UAAU,EAAEgK,SAAS,CAACM,IADa;AAEnC1P,IAAAA,OAAO,EAAEoP,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAAlB;AAF0B,GAAhB,EAGlBnC,UAzB0B;AA0B7BmP,EAAAA,oBAAoB,EAAE3P,SAAS,CAACC,SAAV,CAAoB,CACxCD,SAAS,CAACE,MAD8B,EAExCF,SAAS,CAACI,MAF8B,CAApB,CA1BO;AA8B7BmR,EAAAA,cAAc,EAAEvR,SAAS,CAACO,OA9BG;AA+B7BqP,EAAAA,mBAAmB,EAAE5P,SAAS,CAACM,IA/BF;AAgC7BnH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAhCM;AAiC7BoR,EAAAA,aAAa,EAAEzR,SAAS,CAACK,IAjCI;AAkC7BqR,EAAAA,gBAAgB,EAAE1R,SAAS,CAACM,IAlCC;AAmC7B5Q,EAAAA,cAAc,EAAEsQ,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAnCa;AAoC7BsB,EAAAA,WAAW,EAAEjE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CApCgB;AAqC7BsW,EAAAA,UAAU,EAAElE,SAAS,CAAC0F,UAAV,CAAqB9X,GAArB,CArCiB;AAsC7B4jB,EAAAA,kBAAkB,EAAExR,SAAS,CAACK,IAtCD;AAuC7BM,EAAAA,cAAc,EAAEX,SAAS,CAACM,IAvCG;AAwC7B6D,EAAAA,sBAAsB,EAAEnE,SAAS,CAACM;AAxCL,CAA/B;AA2CAwQ,kBAAkB,CAACrQ,YAAnB,GAAkC;AAChC3N,EAAAA,OAAO,EAAE,KADuB;AAEhC0c,EAAAA,YAAY,EAAE,KAFkB;AAGhCnI,EAAAA,QAAQ,EAAE,KAHsB;AAIhCtW,EAAAA,MAAM,EAAE,EAJwB;AAKhC6e,EAAAA,mBAAmB,EAAE,IALW;AAMhC2B,EAAAA,cAAc,EAAE,IANgB;AAOhC5B,EAAAA,oBAAoB,EAAE,IAPU;AAQhCoB,EAAAA,QAAQ,EAAE,IARsB;AAShCC,EAAAA,YAAY,EAAE,IATkB;AAUhC7X,EAAAA,WAAW,EAAE,IAVmB;AAWhCzJ,EAAAA,cAAc,EAAE,EAXgB;AAYhC+hB,EAAAA,aAAa,EAAE,KAZiB;AAahCC,EAAAA,gBAAgB,EAAE,4BAAM,EAbQ;AAchCzN,EAAAA,WAAW,EAAE,IAAIrW,GAAJ,EAdmB;AAehCsW,EAAAA,UAAU,EAAE,IAAItW,GAAJ,EAfoB;AAgBhC4jB,EAAAA,kBAAkB,EAAE,IAhBY;AAiBhC7Q,EAAAA,cAAc,EAAE,0BAAM,EAjBU;AAkBhCwD,EAAAA,sBAAsB,EAAE;AAAA,WAAM,EAAN;AAAA;AAlBQ,CAAlC;;AC7Pe,SAASoO,YAAT,OAIZ;AAAA,MAHDxP,KAGC,QAHDA,KAGC;AAAA,MAFDyP,IAEC,QAFDA,IAEC;AAAA,MADD/S,OACC,QADDA,OACC;;AACD,oBAAsB+E,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAM+N,SAAS,GAAGD,IAAI,CAACrM,KAAL,CAAW,GAAX,CAAlB;AACAsM,EAAAA,SAAS,CAACpgB,MAAV,CAAiB,CAAC,CAAlB,EAAqB,CAArB,EAAwBqS,SAAS,CAACgO,uCAAlC;AACA;AAAA;AACE;AACA;AAAK,MAAA,SAAS,EAAC,uBAAf;AAAuC,MAAA,OAAO,EAAEjT;AAAhD,oBACEN,6BAAC,KAAD;AAAO,MAAA,SAAS,EAAC,6BAAjB;AAA+C,MAAA,KAAK,EAAE+C,WAAW,CAACmB,WAAlE;AAA+E,MAAA,IAAI,EAAErB,eAAe,CAACoB;AAArG,iBACML,KADN,QAEG2B,SAAS,CAACiO,gDAFb,aAGOF,SAAS,CAAC5S,IAAV,CAAe,GAAf,CAHP,EADF,eAMEV,6BAAC,IAAD;AACE,MAAA,KAAK,EAAC,MADR;AAEE,MAAA,MAAM,EAAC,MAFT;AAGE,MAAA,IAAI,EAAEqC,SAAS,CAAC6Q,YAHlB;AAIE,MAAA,SAAS,EAAE/P,UAAU,CAACsQ;AAJxB,MANF;AAFF;AAgBD;AAEDL,YAAY,CAACxS,SAAb,GAAyB;AACvBgD,EAAAA,KAAK,EAAE/C,SAAS,CAACC,SAAV,CAAoB,CACzBD,SAAS,CAACE,MADe,EAEzBF,SAAS,CAACI,MAFe,CAApB,CADgB;AAKvBoS,EAAAA,IAAI,EAAExS,SAAS,CAACE,MALO;AAMvBT,EAAAA,OAAO,EAAEO,SAAS,CAACM,IAAV,CAAeE;AAND,CAAzB;AASA+R,YAAY,CAAC9R,YAAb,GAA4B;AAC1BsC,EAAAA,KAAK,EAAE,CADmB;AAE1ByP,EAAAA,IAAI,EAAE;AAFoB,CAA5B;;ACpCA,IAAMK,kBAAkB,GAAG,SAArBA,kBAAqB;AACjB,MAAAnO,SAAS,GAAKF,UAAU,CAACC,mBAAD,CAAV,UAAd;AACR,sBACEtF;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,6BADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoB;AAFxB,KAIGsB,SAAS,CAACoO,cAJb,CADF,CADF;AAUD,CAZD;;ACAA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,OAAiB;AAAA,MAAdniB,OAAc,QAAdA,OAAc;;AAC3C,oBAAsB4T,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAI,CAAC9T,OAAD,IAAYA,OAAO,CAACb,MAAR,KAAmB,CAAnC,EAAsC;AACpC,WAAO,EAAP;AACD;;AAED,MAAIa,OAAO,IAAIA,OAAO,CAACb,MAAR,KAAmB,CAAlC,EAAqC;AACnC,qBAAUa,OAAO,CAAC,CAAD,CAAP,CAAWI,QAArB,cAAiC0T,SAAS,CAACsO,2BAA3C;AACD;;AAED,MAAIpiB,OAAO,IAAIA,OAAO,CAACb,MAAR,KAAmB,CAAlC,EAAqC;AACnC,qBAAUa,OAAO,CAAC,CAAD,CAAP,CAAWI,QAArB,cAAiC0T,SAAS,CAACuO,qBAA3C,cAAoEriB,OAAO,CAAC,CAAD,CAAP,CAAWI,QAA/E,cAA2F0T,SAAS,CAACwO,4BAArG;AACD;;AAED,SAAOxO,SAAS,CAACyO,iCAAjB;AACD,CAfD;;AAiBA,SAASC,eAAT,QAAqD;AAAA,MAA1B3lB,UAA0B,SAA1BA,UAA0B;AAAA,MAAd4lB,EAAc,SAAdA,EAAc;AAAA,MAAVhe,MAAU,SAAVA,MAAU;;AACnD,kBAAkCoO,QAAQ,CAAChO,MAAM,EAAP,CAA1C;AAAA;AAAA,MAAOwJ,SAAP;AAAA,MAAkBqU,YAAlB;;AACA,mBAA0C7P,QAAQ,CAAC,EAAD,CAAlD;AAAA;AAAA,MAAO8P,aAAP;AAAA,MAAsBC,gBAAtB;;AAEAje,EAAAA,SAAS,CAAC,YAAM;AACd,QAAI8d,EAAE,IAAIA,EAAE,CAAC3d,cAAb,EAA6B;AAC3B2d,MAAAA,EAAE,CAACtc,oBAAH,CAAwBkI,SAAxB;AACA,UAAMwU,YAAY,GAAGhe,MAAM,EAA3B;AACA,UAAMmJ,OAAO,GAAG,IAAIyU,EAAE,CAAC3d,cAAP,EAAhB,CAH2B;;AAK3BkJ,MAAAA,OAAO,CAAC8U,qBAAR,GAAgC,UAACvkB,YAAD,EAAkB;AAChDkG,QAAAA,MAAM,CAACM,IAAP,CAAY,mDAAZ,EAAiExG,YAAjE;AACA,YAAMyB,OAAO,GAAGzB,YAAY,CAACwkB,gBAAb,EAAhB;;AACA,YAAIxkB,YAAY,CAACjB,GAAb,KAAqBT,UAAzB,EAAqC;AACnC+lB,UAAAA,gBAAgB,CAAC5iB,OAAD,CAAhB;AACD;AACF,OAND;;AAOAyiB,MAAAA,EAAE,CAACvc,iBAAH,CAAqB2c,YAArB,EAAmC7U,OAAnC;AACA0U,MAAAA,YAAY,CAACG,YAAD,CAAZ;AACD;;AAED,WAAO,YAAM;AACXD,MAAAA,gBAAgB,CAAC,EAAD,CAAhB;;AACA,UAAIH,EAAE,IAAIA,EAAE,CAACtc,oBAAb,EAAmC;AACjCsc,QAAAA,EAAE,CAACtc,oBAAH,CAAwBkI,SAAxB;AACD;AACF,KALD;AAMD,GAvBQ,EAuBN,CAACxR,UAAD,CAvBM,CAAT;AAyBA,sBACE0R,6BAAC,KAAD;AAAO,IAAA,IAAI,EAAE6C,eAAe,CAACoB,SAA7B;AAAwC,IAAA,KAAK,EAAElB,WAAW,CAACC;AAA3D,kBACEhD,6BAAC,mBAAD;AAAqB,IAAA,OAAO,EAAEoU;AAA9B,IADF,CADF;AAKD;;AAEDH,eAAe,CAACrT,SAAhB,GAA4B;AAC1BtS,EAAAA,UAAU,EAAEuS,SAAS,CAACE,MAAV,CAAiBM,UADH;AAE1B6S,EAAAA,EAAE,EAAErT,SAAS,CAAC2C,KAAV,CAAgB;AAClBjN,IAAAA,cAAc,EAAEsK,SAAS,CAACM,IADR;AAElBvJ,IAAAA,oBAAoB,EAAEiJ,SAAS,CAACM,IAFd;AAGlBxJ,IAAAA,iBAAiB,EAAEkJ,SAAS,CAACM;AAHX,GAAhB,EAIDE,UANuB;AAO1BnL,EAAAA,MAAM,EAAE2K,SAAS,CAAC2C,KAAV,CAAgB;AACtBhN,IAAAA,IAAI,EAAEqK,SAAS,CAACM;AADM,GAAhB,EAELE;AATuB,CAA5B;;AC5DA;;AAqBA,IAAMoT,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,EAAD,EAQlBvU,GARkB;MAC1BrR,OAAO;MACP6b,IAAI;MACJgK,aAAa;MACbC,YAAY;MACZC,kBAAkB;MAClBhb,QAAQ;MACRpG,WAAW;AAEH,MAAA8R,SAAS,GAAKF,UAAU,CAACC,mBAAD,CAAV,UAAd;AACR,MAAM4C,QAAQ,GAAG,CAACzU,WAAD,IACZkG,uBAAA,CAA8B7K,OAA9B,CADY,IAEZ6K,sBAAA,CAA6B7K,OAA7B,CAFY,IAGZ,CAAC+K,QAHN;AAKA,MAAM9J,YAAU,GAAG4J,UAAA,CAAiB7K,OAAjB,CAAnB;AACQ,MAAAgmB,WAAW,GAAKhmB,OAAO,YAAvB;;AAGR,MAAI+lB,kBAAJ,EAAwB;AACtB,WAAOA,kBAAkB,CAAC;AAAE/lB,MAAAA,OAAO,SAAT;AAAW6b,MAAAA,IAAI,MAAf;AAAiBzC,MAAAA,QAAQ;AAAzB,KAAD,CAAzB;AACD;;;AAGD,MAAI4M,WAAW,IAAI,CAAC/kB,YAApB,EAAgC;AAC9B,WAAO,IAAP;AACD;;;AAGD,sBACEiQ,6BAAC,YAAD;AACE,IAAA,WAAW,EAAGrG,uBAAA,CAA8B7K,OAA9B,KACTyW,SAAS,CAACwP,8CADF,IAEPpb,sBAAA,CAA6B7K,OAA7B,KACCyW,SAAS,CAACyP,2CAJnB;AAOE,IAAA,GAAG,EAAE7U,GAPP;AAQE,IAAA,QAAQ,EAAE+H,QARZ;AASE,IAAA,aAAa,EAAE;AACbpZ,MAAAA,OAAO,CAACmmB,WAAR;AACD,KAXH;AAYE,IAAA,aAAa,EAAEN,aAZjB;AAaE,IAAA,YAAY,EAAEC;AAbhB,IADF;AAiBD,CA9CD;;AAgDA,yCAAe5U,cAAK,CAACC,UAAN,CAAiBwU,mBAAjB,CAAf;;AC7DA,SAASS,gBAAT,GAA4B;AAC1B,oBAAsB7P,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,sBACEvF;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,KAAD;AACE,IAAA,IAAI,EAAE6C,eAAe,CAACkN,MADxB;AAEE,IAAA,KAAK,EAAEhN,WAAW,CAACC;AAFrB,KAIGuC,SAAS,CAAC4P,iBAJb,CADF,eAOEnV,6BAAC,IAAD;AACE,IAAA,IAAI,EAAEqC,SAAS,CAAC+S,YADlB;AAEE,IAAA,SAAS,EAAEjS,UAAU,CAAC3T,IAFxB;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC;AAJT,IAPF,CADF;AAgBD;;ACrBM,IAAM6lB,eAAe,GAAG,SAAlBA,eAAkB,GAA6D;AAAA,MAA5DvmB,OAA4D,uEAAlD,EAAkD;AAAA,MAA9C+W,aAA8C;AAAA,MAA/BN,SAA+B,uEAAnB+P,cAAmB;;AAC1F,MAAI,CAACxmB,OAAD,IAAa,CAACA,OAAO,CAACiQ,IAAT,IAAiB,CAACjQ,OAAO,CAAC2C,OAA3C,EAAqD;AACnD,WAAO8T,SAAS,CAACgQ,QAAjB;AACD;;AACD,MAAIzmB,OAAO,CAACiQ,IAAR,IAAgBjQ,OAAO,CAACiQ,IAAR,KAAiB,eAArC,EAAsD;AACpD,WAAOjQ,OAAO,CAACiQ,IAAf;AACD;;AAED,MAAIjQ,OAAO,CAAC2C,OAAR,CAAgBb,MAAhB,KAA2B,CAA/B,EAAkC;AAChC,WAAO2U,SAAS,CAACiQ,UAAjB;AACD;;AAED,SAAO1mB,OAAO,CAAC2C,OAAR,CACJP,MADI,CACG;AAAA,QAAGU,MAAH,QAAGA,MAAH;AAAA,WAAgBA,MAAM,KAAKiU,aAA3B;AAAA,GADH,EAEJ9S,GAFI,CAEA;AAAA,QAAGlB,QAAH,SAAGA,QAAH;AAAA,WAAmBA,QAAQ,IAAI0T,SAAS,CAACwI,OAAzC;AAAA,GAFA,EAGJrN,IAHI,CAGC,IAHD,CAAP;AAID,CAhBM;;ACOP,IAAMkH,MAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;AACe,SAAS6N,UAAT,CAAoBvV,KAApB,EAA2B;AACxC,MACE7Q,mBADF,GAUI6Q,KAVJ,CACE7Q,mBADF;AAAA,MAEEqmB,WAFF,GAUIxV,KAVJ,CAEEwV,WAFF;AAAA,MAGE9F,KAHF,GAUI1P,KAVJ,CAGE0P,KAHF;AAAA,MAIE+F,QAJF,GAUIzV,KAVJ,CAIEyV,QAJF;AAAA,MAKEC,OALF,GAUI1V,KAVJ,CAKE0V,OALF;AAAA,MAMEC,KANF,GAUI3V,KAVJ,CAME2V,KANF;AAAA,MAOEC,cAPF,GAUI5V,KAVJ,CAOE4V,cAPF;AAAA,MAQEC,aARF,GAUI7V,KAVJ,CAQE6V,aARF;AAAA,MASEC,aATF,GAUI9V,KAVJ,CASE8V,aATF;AAWA,MAAQpkB,MAAR,GAAmB8jB,WAAnB,CAAQ9jB,MAAR;;AACA,oBAAsByT,UAAU,CAACC,mBAAD,CAAhC;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,sBACEvF;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,aAAD;AACE,IAAA,KAAK,EAAE6V,KADT;AAEE,IAAA,OAAO,EAAExmB,mBAFX;AAGE,IAAA,MAAM,EAAEuC,MAHV;AAIE,IAAA,MAAM,EAAE,EAJV;AAKE,IAAA,KAAK,EAAE;AALT,IADF,eAQEoO,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,mCADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAACoT,GAFxB;AAGE,IAAA,KAAK,EAAElT,WAAW,CAACgB;AAHrB,KAKG6L,KAAK,IAAIjW,eAAA,CAAsBtK,mBAAtB,EAA2CuC,MAA3C,EAAmD2T,SAAnD,CALZ,CARF,eAeEvF,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,sCADZ;AAEE,IAAA,IAAI,EAAE6C,eAAe,CAAC+D,MAFxB;AAGE,IAAA,KAAK,EAAE7D,WAAW,CAACC;AAHrB,KAKG2S,QALH,CAfF,CADF,eAwBE3V;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAAE,OAAO4V,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,KAAK,MAA5C,IAAwD,OAAOA,OAAP,KAAmB,SAAnB,IAAgCA,OAAzF,kBAEI5V,6BAAC,IAAD;AACE,IAAA,SAAS,EAAC,mCADZ;AAEE,IAAA,IAAI,EAAEqC,SAAS,CAAC6T,wBAFlB;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC;AAJT,IAJR,EAaIJ,cAAc,iBACZ9V,6BAAC,UAAD;AACE,IAAA,SAAS,EAAC,qCADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,OAAO,EAAE+V;AAJX,kBAME/V,6BAAC,IAAD;AACE,IAAA,IAAI,EAAEqC,SAAS,CAAC8T,MADlB;AAEE,IAAA,SAAS,EAAEhT,UAAU,CAACC,OAFxB;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC;AAJT,IANF,CAdN,eA6BEpD,6BAAC,UAAD;AACE,IAAA,SAAS,EAAC,mCADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,OAAO,EAAEgW;AAJX,kBAMEhW,6BAAC,IAAD;AACE,IAAA,IAAI,EAAEqC,SAAS,CAAC+T,IADlB;AAEE,IAAA,SAAS,EAAEjT,UAAU,CAACC,OAFxB;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC;AAJT,IANF,CA7BF,CAxBF,CADF;AAsED;AAEDqS,UAAU,CAAC7U,SAAX,GAAuB;AACrBvR,EAAAA,mBAAmB,EAAEwR,SAAS,CAAC2C,KAAV,CAAgB;AACnC/R,IAAAA,OAAO,EAAEoP,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAAC2C,KAAV,CAAgB,EAAhB,CAAlB,CAD0B;AAEnC6S,IAAAA,QAAQ,EAAExV,SAAS,CAACE;AAFe,GAAhB,CADA;AAKrB2U,EAAAA,WAAW,EAAE7U,SAAS,CAAC2C,KAAV,CAAgB;AAC3B5R,IAAAA,MAAM,EAAEiP,SAAS,CAACE;AADS,GAAhB,CALQ;AAQrB6O,EAAAA,KAAK,EAAE/O,SAAS,CAACE,MARI;AASrB4U,EAAAA,QAAQ,EAAE9U,SAAS,CAACC,SAAV,CAAoB,CAC5BD,SAAS,CAACK,IADkB,EAE5BL,SAAS,CAACE,MAFkB,CAApB,CATW;AAarB6U,EAAAA,OAAO,EAAE/U,SAAS,CAACC,SAAV,CAAoB,CAC3BD,SAAS,CAACE,MADiB,EAE3BF,SAAS,CAACK,IAFiB,CAApB,CAbY;AAiBrB2U,EAAAA,KAAK,EAAEhV,SAAS,CAACE,MAjBI;AAkBrB+U,EAAAA,cAAc,EAAEjV,SAAS,CAACK,IAlBL;AAmBrB6U,EAAAA,aAAa,EAAElV,SAAS,CAACM,IAnBJ;AAoBrB6U,EAAAA,aAAa,EAAEnV,SAAS,CAACM;AApBJ,CAAvB;AAuBAsU,UAAU,CAACnU,YAAX,GAA0B;AACxBjS,EAAAA,mBAAmB,EAAE,EADG;AAExBqmB,EAAAA,WAAW,EAAE,EAFW;AAGxB9F,EAAAA,KAAK,EAAE,EAHiB;AAIxB+F,EAAAA,QAAQ,EAAE,EAJc;AAKxBC,EAAAA,OAAO,EAAE,KALe;AAMxBC,EAAAA,KAAK,EAAE,OANiB;AAOxBC,EAAAA,cAAc,EAAE,KAPQ;AAQxBC,EAAAA,aAAa,EAAEnO,MARS;AASxBoO,EAAAA,aAAa,EAAEpO;AATS,CAA1B;;AChFA,IAAMA,IAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;IAEa0O,iBAAiB,GAAG,SAApBA,iBAAoB,CAACpW,KAAD,EAAW;AAC1C,MACE5R,UADF,GA+BI4R,KA/BJ,CACE5R,UADF;AAAA,sBA+BI4R,KA/BJ,CAEEqW,MAFF;AAAA,MAEYC,QAFZ,iBAEYA,QAFZ;AAAA,MAEsBC,SAFtB,iBAEsBA,SAFtB;AAAA,sBA+BIvW,KA/BJ,CAGEwW,MAHF;AAAA,MAII9kB,MAJJ,iBAIIA,MAJJ;AAAA,MAKIsE,MALJ,iBAKIA,MALJ;AAAA,MAMI3H,MANJ,iBAMIA,MANJ;AAAA,MAOIsL,QAPJ,iBAOIA,QAPJ;AAAA,MAQIgc,KARJ,iBAQIA,KARJ;AAAA,MASIhZ,gBATJ,iBASIA,gBATJ;AAAA,MAYI8Z,SAZJ,GA+BIzW,KA/BJ,CAWE0W,WAXF,CAYID,SAZJ;AAAA,uBA+BIzW,KA/BJ,CAcE2W,OAdF;AAAA,MAcEA,OAdF,+BAcY,EAdZ;AAAA,MAeEC,aAfF,GA+BI5W,KA/BJ,CAeE4W,aAfF;AAAA,MAgBEC,kBAhBF,GA+BI7W,KA/BJ,CAgBE6W,kBAhBF;AAAA,MAiBE/c,WAjBF,GA+BIkG,KA/BJ,CAiBElG,WAjBF;AAAA,MAkBE8b,cAlBF,GA+BI5V,KA/BJ,CAkBE4V,cAlBF;AAAA,MAmBEC,aAnBF,GA+BI7V,KA/BJ,CAmBE6V,aAnBF;AAAA,MAoBE3D,cApBF,GA+BIlS,KA/BJ,CAoBEkS,cApBF;AAAA,MAqBE4E,gBArBF,GA+BI9W,KA/BJ,CAqBE8W,gBArBF;AAAA,MAsBEvG,mBAtBF,GA+BIvQ,KA/BJ,CAsBEuQ,mBAtBF;AAAA,MAuBEjG,iBAvBF,GA+BItK,KA/BJ,CAuBEsK,iBAvBF;AAAA,MAwBED,kBAxBF,GA+BIrK,KA/BJ,CAwBEqK,kBAxBF;AAAA,MAyBEsK,kBAzBF,GA+BI3U,KA/BJ,CAyBE2U,kBAzBF;AAAA,MA0BExC,kBA1BF,GA+BInS,KA/BJ,CA0BEmS,kBA1BF;AAAA,MA2BE4E,uBA3BF,GA+BI/W,KA/BJ,CA2BE+W,uBA3BF;AAAA,MA4BE/a,uBA5BF,GA+BIgE,KA/BJ,CA4BEhE,uBA5BF;AAAA,MA6BEU,uBA7BF,GA+BIsD,KA/BJ,CA6BEtD,uBA7BF;AAAA,MA8BE9B,yBA9BF,GA+BIoF,KA/BJ,CA8BEpF,yBA9BF;AAiCA,MAAQ7E,GAAR,GAAgBugB,QAAhB,CAAQvgB,GAAR;AACA,MAAQygB,MAAR,GAAmBxW,KAAnB,CAAQwW,MAAR;AACA,MAAMQ,QAAQ,GAAGV,QAAQ,CAAC1oB,KAA1B;AACA,MAAMiI,OAAO,GAAGygB,QAAQ,CAAC/iB,WAAzB;AACA,MAAQkX,IAAR,GAAiB8L,SAAjB,CAAQ9L,IAAR;;AACA,MAAIkM,OAAO,CAACM,gBAAZ,EAA8B;AAC5B;AACAnb,IAAAA,OAAO,CAACob,IAAR,CAAa,4EAAb;AACD;;AAED,kBAA8C9S,QAAQ,CAACwS,aAAD,CAAtD;AAAA;AAAA,MAAOje,eAAP;AAAA,MAAwBwe,kBAAxB;;AACAjhB,EAAAA,SAAS,CAAC,YAAM;AACdihB,IAAAA,kBAAkB,CAACP,aAAD,CAAlB;AACD,GAFQ,EAEN,CAACA,aAAD,EAAgBxoB,UAAhB,CAFM,CAAT;;AAGA,mBAAwDgW,QAAQ,CAACyS,kBAAD,CAAhE;AAAA;AAAA,MAAOvG,oBAAP;AAAA,MAA6B8G,uBAA7B;;AACAlhB,EAAAA,SAAS,CAAC,YAAM;AACdkhB,IAAAA,uBAAuB,CAACP,kBAAD,CAAvB;AACD,GAFQ,EAEN,CAACA,kBAAD,CAFM,CAAT;AAGA,MAAMne,0BAA0B,GAAGie,OAAO,CAAC3iB,iBAA3C;;AAEA,oBAA4CqjB,UAAU,CAACC,OAAD,EAAkBC,oBAAlB,CAAtD;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsB1hB,kBAAtB;;AACA,MAAMG,SAAS,GAAGiG,MAAM,CAAC,IAAD,CAAxB;AAEA,MACExJ,WADF,GAcI8kB,aAdJ,CACE9kB,WADF;AAAA,MAEEc,OAFF,GAcIgkB,aAdJ,CAEEhkB,OAFF;AAAA,MAGED,WAHF,GAcIikB,aAdJ,CAGEjkB,WAHF;AAAA,MAIEhE,WAJF,GAcIioB,aAdJ,CAIEjoB,WAJF;AAAA,MAKEuE,WALF,GAcI0jB,aAdJ,CAKE1jB,WALF;AAAA,MAMEC,SANF,GAcIyjB,aAdJ,CAMEzjB,SANF;AAAA,8BAcIyjB,aAdJ,CAOEroB,mBAPF;AAAA,MAOEA,mBAPF,sCAOwB,EAPxB;AAAA,MAQEsE,OARF,GAcI+jB,aAdJ,CAQE/jB,OARF;AAAA,MASEC,oBATF,GAcI8jB,aAdJ,CASE9jB,oBATF;AAAA,MAUEC,eAVF,GAcI6jB,aAdJ,CAUE7jB,eAVF;AAAA,MAWEC,6BAXF,GAcI4jB,aAdJ,CAWE5jB,6BAXF;AAAA,MAYEvD,cAZF,GAcImnB,aAdJ,CAYEnnB,cAZF;AAAA,MAaEwD,UAbF,GAcI2jB,aAdJ,CAaE3jB,UAbF;AAeA,MAAQ5D,QAAR,GAA2Cd,mBAA3C,CAAQc,QAAR;AAAA,MAAkB2kB,WAAlB,GAA2CzlB,mBAA3C,CAAkBylB,WAAlB;AAAA,MAA+B6C,OAA/B,GAA2CtoB,mBAA3C,CAA+BsoB,OAA/B;AACA,qBAAyB1hB,GAAzB,CAAQ8D,OAAR;AAAA,MAAQA,OAAR,6BAAkB,EAAlB;AACA,MAAM6d,aAAa,GACjB7d,OAAO,CAACE,eAAR,IAA2B,CAAC6a,WAA5B,IAA2C,CAAC6C,OAA5C,IAAuD3d,WADzD;AAIA,MAAM6d,6BAA6B,GAAGtN,kBAAkB,IAAImM,MAAM,CAACnM,kBAAnE;AACA,MAAMuN,wBAAwB,GAAGtN,iBAAiB,IAAIkM,MAAM,CAAClM,iBAA7D;AACA,MAAM8H,aAAa,GAAGze,eAAtB;AACA,MAAMiR,WAAW,GAAGpD,OAAO,CAAC;AAAA,WAC1BkW,aAAa,GACTje,iCAAA,CAAwCpJ,cAAxC,CADS,GAET,IAAI9B,GAAJ,EAHsB;AAAA,GAAD,EAIxB,CAAC8B,cAAD,CAJwB,CAA3B;AAMA,MAAMkR,YAAY,GAAGC,OAAO,CAAC;AAAA,WAC3BkW,aAAa,GACTje,gCAAA,CAAqCpJ,cAArC,CADS,GAET,EAHuB;AAAA,GAAD,EAIzB,CAACA,cAAD,CAJyB,CAA5B;AAMA,MAAMmB,YAAY,GAAGgQ,OAAO,CAAC;AAAA,WAC3BkW,aAAa,GACTje,0BAAA,CAAiCtK,mBAAmB,CAACoC,OAArD,CADS,GAET,IAAIhD,GAAJ,EAHuB;AAAA,GAAD,EAIzB,CAACY,mBAAmB,CAACoC,OAArB,CAJyB,CAA5B,CA7F0C;;AAoG1C,MAAMsmB,gBAAgB,GAAG5d,iBAAiB,CAAC;AACzC9K,IAAAA,mBAAmB,EAAnBA,mBADyC;AACpBuE,IAAAA,oBAAoB,EAApBA,oBADoB;AACEgF,IAAAA,0BAA0B,EAA1BA;AADF,GAAD,EAEvC;AACDjF,IAAAA,OAAO,EAAPA,OADC;AAEDuC,IAAAA,MAAM,EAANA,MAFC;AAGDF,IAAAA,kBAAkB,EAAlBA,kBAHC;AAIDC,IAAAA,GAAG,EAAHA;AAJC,GAFuC,CAA1C,CApG0C;AA8G1C;AACA;;AACA,MAAM+hB,oBAAoB,GAAGvd,qBAAqB,CAAC;AACjDpL,IAAAA,mBAAmB,EAAnBA,mBADiD;AAEjDyE,IAAAA,6BAA6B,EAA7BA,6BAFiD;AAGjD8E,IAAAA,0BAA0B,EAA1BA,0BAHiD;AAIjD/E,IAAAA,eAAe,EAAfA;AAJiD,GAAD,EAK/C;AACDqC,IAAAA,MAAM,EAANA,MADC;AAEDF,IAAAA,kBAAkB,EAAlBA,kBAFC;AAGDC,IAAAA,GAAG,EAAHA;AAHC,GAL+C,CAAlD;AAWA,MAAMuL,cAAc,GAAGe,yBAAyB,CAAC;AAAElT,IAAAA,mBAAmB,EAAnBA;AAAF,GAAD,EAA0B;AAAE6G,IAAAA,MAAM,EAANA;AAAF,GAA1B,CAAhD;AAEA,MAAM8O,sBAAsB,GAAGzD,yBAAyB,CAAC;AACvDhR,IAAAA,cAAc,EAAdA,cADuD;AACvCiR,IAAAA,cAAc,EAAdA;AADuC,GAAD,EAErD;AACDxH,IAAAA,WAAW,EAAE4d,aADZ;AAED1hB,IAAAA,MAAM,EAANA,MAFC;AAGDtE,IAAAA,MAAM,EAANA,MAHC;AAID6P,IAAAA,YAAY,EAAZA;AAJC,GAFqD,CAAxD,CA7H0C;AAuI1C;;AACAwW,EAAAA,aAAa,CACX;AAAE3pB,IAAAA,UAAU,EAAVA,UAAF;AAAcyH,IAAAA,OAAO,EAAPA;AAAd,GADW,EAEX;AAAEC,IAAAA,kBAAkB,EAAlBA,kBAAF;AAAsBC,IAAAA,GAAG,EAAHA,GAAtB;AAA2BC,IAAAA,MAAM,EAANA;AAA3B,GAFW,CAAb,CAxI0C;;AA8I1CJ,EAAAA,sBAAsB,CACpB;AAAEzG,IAAAA,mBAAmB,EAAnBA,mBAAF;AAAuB0G,IAAAA,OAAO,EAAPA,OAAvB;AAAgClC,IAAAA,eAAe,EAAfA;AAAhC,GADoB,EAEpB;AACEmC,IAAAA,kBAAkB,EAAlBA,kBADF;AAEEC,IAAAA,GAAG,EAAHA,GAFF;AAGEC,IAAAA,MAAM,EAANA,MAHF;AAIEC,IAAAA,SAAS,EAATA;AAJF,GAFoB,CAAtB,CA9I0C;AAyJ1C;AACA;AACA;;AACAwC,EAAAA,uBAAuB,CAAC;AACtBtJ,IAAAA,mBAAmB,EAAnBA,mBADsB;AAEtBuJ,IAAAA,0BAA0B,EAA1BA,0BAFsB;AAGtBC,IAAAA,eAAe,EAAfA;AAHsB,GAAD,EAIpB;AACD5C,IAAAA,GAAG,EAAHA,GADC;AAEDC,IAAAA,MAAM,EAANA,MAFC;AAGDF,IAAAA,kBAAkB,EAAlBA;AAHC,GAJoB,CAAvB,CA5J0C;;AAuK1CI,EAAAA,SAAS,CAAC,YAAM;AACd,QAAM8hB,UAAU,GAAGve,aAAA,CAAoBrL,UAApB,EAAgCC,MAAhC,EAAwCyH,kBAAxC,CAAnB;AACA,WAAO,YAAM;AACX2D,MAAAA,mBAAA,CAA0Bue,UAA1B;AACD,KAFD;AAGD,GALQ,EAKN,CAAC5pB,UAAD,EAAayH,OAAb,CALM,CAAT,CAvK0C;;AA+K1CqJ,EAAAA,gBAAgB,CACd;AAAExM,IAAAA,WAAW,EAAXA,WAAF;AAAevD,IAAAA,mBAAmB,EAAnBA;AAAf,GADc,EAEd;AAAE2G,IAAAA,kBAAkB,EAAlBA,kBAAF;AAAsBC,IAAAA,GAAG,EAAHA,GAAtB;AAA2BC,IAAAA,MAAM,EAANA;AAA3B,GAFc,CAAhB,CA/K0C;;AAqL1C0D,EAAAA,kBAAkB,CAAC;AAAEC,IAAAA,QAAQ,EAARA;AAAF,GAAD,EAAe;AAC/B3D,IAAAA,MAAM,EAANA,MAD+B;AAE/BD,IAAAA,GAAG,EAAHA,GAF+B;AAG/B5G,IAAAA,mBAAmB,EAAnBA,mBAH+B;AAI/B2G,IAAAA,kBAAkB,EAAlBA,kBAJ+B;AAK/B4C,IAAAA,0BAA0B,EAA1BA;AAL+B,GAAf,CAAlB,CArL0C;;AA8L1C,MAAMgC,aAAa,GAAGD,wBAAwB,CAAC;AAAEtL,IAAAA,mBAAmB,EAAnBA,mBAAF;AAAuB2G,IAAAA,kBAAkB,EAAlBA;AAAvB,GAAD,EAC5C;AAAEE,IAAAA,MAAM,EAANA;AAAF,GAD4C,CAA9C;AAEA,MAAMqa,aAAa,GAAG1V,wBAAwB,CAC5C;AAAExL,IAAAA,mBAAmB,EAAnBA,mBAAF;AAAuB2G,IAAAA,kBAAkB,EAAlBA,kBAAvB;AAA2C8E,IAAAA,yBAAyB,EAAzBA;AAA3C,GAD4C,EAE5C;AAAE5E,IAAAA,MAAM,EAANA,MAAF;AAAUD,IAAAA,GAAG,EAAHA,GAAV;AAAe1H,IAAAA,MAAM,EAANA;AAAf,GAF4C,CAA9C;AAIA,MAAM0Z,aAAa,GAAGvM,wBAAwB,CAC5C;AAAErM,IAAAA,mBAAmB,EAAnBA,mBAAF;AAAuB2G,IAAAA,kBAAkB,EAAlBA;AAAvB,GAD4C,EAE5C;AAAEE,IAAAA,MAAM,EAANA;AAAF,GAF4C,CAA9C;;AAIA,8BAAyC+F,sBAAsB,CAC7D;AAAE5M,IAAAA,mBAAmB,EAAnBA,mBAAF;AAAuB6M,IAAAA,uBAAuB,EAAvBA;AAAvB,GAD6D,EAE7D;AACEjG,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,MAAM,EAANA,MAFF;AAGE3H,IAAAA,MAAM,EAANA,MAHF;AAIEyH,IAAAA,kBAAkB,EAAlBA;AAJF,GAF6D,CAA/D;AAAA;AAAA,MAAOmG,eAAP;AAAA,MAAwBwY,aAAxB;;AASA,8BAA4BhY,0BAA0B,CACpD;AAAEtN,IAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBuN,IAAAA,uBAAuB,EAAvBA,uBAAvB;AAAgDC,IAAAA,gBAAgB,EAAhBA;AAAhD,GADoD,EAEpD;AACE5G,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,MAAM,EAANA,MAFF;AAGE3H,IAAAA,MAAM,EAANA,MAHF;AAIEyH,IAAAA,kBAAkB,EAAlBA;AAJF,GAFoD,CAAtD;AAAA;AAAA,MAAOmiB,iBAAP;;AAUA,MAAI,CAAC7pB,UAAL,EAAiB;AACf,wBAAQ0R;AAAK,MAAA,SAAS,EAAC;AAAf,oBAAuCA,6BAAC,WAAD;AAAa,MAAA,IAAI,EAAEwS,gBAAgB,CAAC4F;AAApC,MAAvC,CAAR;AACD;;AACD,MAAInkB,SAAJ,EAAe;AACb,wBAAQ+L;AAAK,MAAA,SAAS,EAAC;AAAf,oBAAuCA,6BAAC,WAAD;AAAa,MAAA,IAAI,EAAEwS,gBAAgB,CAAC6F;AAApC,MAAvC,CAAR;AACD;;AACD,MAAInB,QAAJ,EAAc;AACZ,wBACElX;AAAK,MAAA,SAAS,EAAC;AAAf,oBACEA,6BAAC,WAAD;AACE,MAAA,IAAI,EAAEwS,gBAAgB,CAAC6F,KADzB;AAEE,MAAA,cAAc,EAAE,0BAAM;AACpBniB,QAAAA,MAAM,CAACM,IAAP,CAAY,uBAAZ;AACAmgB,QAAAA,SAAS;AACV;AALH,MADF,CADF;AAWD;;AACD,sBACE3W,6BAAC,mBAAD;AACE,IAAA,SAAS,EAAC,uBADZ;AAEE,IAAA,kBAAkB,EAAE6X,6BAFtB;AAGE,IAAA,iBAAiB,EAAEC;AAHrB,KAMId,gBAAgB,GACZA,gBAAgB,CAAC;AAAEloB,IAAAA,OAAO,EAAEO,mBAAX;AAAgCsb,IAAAA,IAAI,EAAJA;AAAhC,GAAD,CADJ,gBAGZ3K,6BAAC,UAAD;AACE,IAAA,KAAK,EAAE6V,KADT;AAEE,IAAA,mBAAmB,EAAExmB,mBAFvB;AAGE,IAAA,WAAW,EAAEsb,IAHf;AAIE,IAAA,cAAc,EAAEmL,cAJlB;AAKE,IAAA,aAAa,EAAEC,aALjB;AAME,IAAA,aAAa,EAAEkB,uBANjB;AAOE,IAAA,QAAQ,EAAE5nB,mBAAmB,CAACoC,OAApB,IAA+BpC,mBAAmB,CAACoC,OAApB,CAA4Bb,MAA5B,KAAuC,CAPlF;AAQE,IAAA,OAAO,EAAE;AARX,IATR,EAsBIT,QAAQ,iBACN6P,6BAAC,kBAAD,OAvBN,EA2BIvQ,WAAW,GAAG,CAAd,iBACEuQ,6BAAC,YAAD;AACE,IAAA,KAAK,EAAEvQ,WADT;AAEE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAIoJ,eAAJ,EAAqB;AACnBwe,QAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACAC,QAAAA,uBAAuB,CAAC,IAAD,CAAvB;AACD,OAHD,MAGO;AACL3d,QAAAA,cAAA,GADK;;AAGL,YAAIxD,SAAS,CAACO,OAAV,CAAkB9I,SAAlB,KAAgC,CAApC,EAAuC;AACrCyB,UAAAA,mBAAmB,CAACwH,UAApB;AACAb,UAAAA,kBAAkB,CAAC;AACjB9I,YAAAA,IAAI,EAAE+K;AADW,WAAD,CAAlB;AAGD;AACF;AACF,KAhBH;AAiBE,IAAA,IAAI,EAAEjE;AAjBR,IA5BN,EAkDIN,OAAO,gBAEHsM;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,WAAD;AAAa,IAAA,IAAI,EAAEwS,gBAAgB,CAAC8F;AAApC,IADF,CAFG,gBAMHtY,6BAAC,kBAAD;AACE,IAAA,UAAU,EACR/J,GAAG,IAAIA,GAAG,CAACuF,qBAAX,IAAoCvF,GAAG,CAACuF,qBAAJ,EAFxC;AAIE,IAAA,oBAAoB,EAAEgV,oBAJxB;AAKE,IAAA,MAAM,EAAE5e,MALV;AAME,IAAA,OAAO,EAAE+B,OANX;AAOE,IAAA,QAAQ,EAAE,CAACkG,QAPb;AAQE,IAAA,QAAQ,EAAEke,gBARZ;AASE,IAAA,YAAY,EAAEC,oBAThB;AAUE,IAAA,SAAS,EAAE7hB,SAVb;AAWE,IAAA,UAAU,EAAEpC,UAXd;AAYE,IAAA,WAAW,EAAE6jB,aAZf;AAaE,IAAA,WAAW,EAAEhlB,WAbf;AAcE,IAAA,WAAW,EAAEkS,WAdf;AAeE,IAAA,UAAU,EAAEpT,YAfd;AAgBE,IAAA,YAAY,EAAEiI,uBAAA,CAA8BtK,mBAA9B,CAhBhB;AAiBE,IAAA,aAAa,EAAEuL,aAjBjB;AAkBE,IAAA,aAAa,EAAE2V,aAlBjB;AAmBE,IAAA,aAAa,EAAEtI,aAnBjB;AAoBE,IAAA,cAAc,EAAEzG,cApBlB;AAqBE,IAAA,cAAc,EAAEjR,cArBlB;AAsBE,IAAA,cAAc,EAAE6hB,cAtBlB;AAuBE,IAAA,aAAa,EAAEE,aAvBjB;AAwBE,IAAA,gBAAgB,EAAE,4BAAM;AACtB+E,MAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACAC,MAAAA,uBAAuB,CAAC,IAAD,CAAvB;AACD,KA3BH;AA4BE,IAAA,mBAAmB,EAAE7G,mBA5BvB;AA6BE,IAAA,kBAAkB,EAAE4B,kBA7BtB;AA8BE,IAAA,kBAAkB,EAAErc,kBA9BtB;AA+BE,IAAA,mBAAmB,EAAE3G,mBA/BvB;AAgCE,IAAA,sBAAsB,EAAE2V;AAhC1B,IAxDR,eA4FEhF;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAACyU,qBAAD;AACE,IAAA,OAAO,EAAEplB,mBADX;AAEE,IAAA,IAAI,EAAEsb,IAFR;AAGE,IAAA,GAAG,EAAExO,eAHP;AAIE,IAAA,aAAa,EAAEwY,aAJjB;AAKE,IAAA,YAAY,EAAEwD,iBALhB;AAME,IAAA,kBAAkB,EAAEtD,kBANtB;AAOE,IAAA,QAAQ,EAAEhb,QAPZ;AAQE,IAAA,WAAW,EAAEpG;AARf,IADF,eAWEuM;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,eAAD;AAAiB,IAAA,UAAU,EAAE1R,UAA7B;AAAyC,IAAA,EAAE,EAAE2H,GAA7C;AAAkD,IAAA,MAAM,EAAEC;AAA1D,IADF,CAXF,EAeI,CAAC2D,QAAD,iBACEmG,6BAAC,gBAAD;AAAkB,IAAA,OAAO,EAAEjK,OAA3B;AAAoC,IAAA,EAAE,EAAEE,GAAxC;AAA6C,IAAA,MAAM,EAAEC;AAArD,IAhBN,CA5FF,CADF;AAmHD;AAEDogB,iBAAiB,CAAC1V,SAAlB,GAA8B;AAC5BtS,EAAAA,UAAU,EAAEuS,SAAS,CAACE,MADM;AAE5BwV,EAAAA,MAAM,EAAE1V,SAAS,CAAC2C,KAAV,CAAgB;AACtBgT,IAAAA,QAAQ,EAAE3V,SAAS,CAAC2C,KAAV,CAAgB;AACxB/P,MAAAA,WAAW,EAAEoN,SAAS,CAACK,IADC;AAExBjL,MAAAA,GAAG,EAAE4K,SAAS,CAAC2C,KAAV,CAAgB;AACnBhI,QAAAA,qBAAqB,EAAEqF,SAAS,CAACM,IADd;AAEnBvJ,QAAAA,oBAAoB,EAAEiJ,SAAS,CAACM,IAFb;AAGnBrJ,QAAAA,YAAY,EAAE+I,SAAS,CAAC0X,GAHL;AAInBhiB,QAAAA,cAAc,EAAEsK,SAAS,CAAC0X,GAJP;AAKnB5gB,QAAAA,iBAAiB,EAAEkJ,SAAS,CAACM,IALV;AAMnBhG,QAAAA,iBAAiB,EAAE0F,SAAS,CAAC0X,GANV;AAOnBhb,QAAAA,iBAAiB,EAAEsD,SAAS,CAAC0X,GAPV;AAQnBngB,QAAAA,WAAW,EAAEyI,SAAS,CAACM,IARJ;AASnBpH,QAAAA,OAAO,EAAE8G,SAAS,CAAC2C,KAAV,CAAgB,EAAhB;AATU,OAAhB,CAFmB;AAaxB1V,MAAAA,KAAK,EAAE+S,SAAS,CAACK;AAbO,KAAhB,CADY;AAgBtBuV,IAAAA,SAAS,EAAE5V,SAAS,CAAC2C,KAAV,CAAgB;AACzBmH,MAAAA,IAAI,EAAE9J,SAAS,CAAC2C,KAAV,CAAgB,EAAhB;AADmB,KAAhB;AAhBW,GAAhB,EAmBLnC,UArByB;AAsB5BuV,EAAAA,WAAW,EAAE/V,SAAS,CAAC2C,KAAV,CAAgB;AAC3BmT,IAAAA,SAAS,EAAE9V,SAAS,CAACM;AADM,GAAhB,EAEVE,UAxByB;AAyB5BqV,EAAAA,MAAM,EAAE7V,SAAS,CAAC2C,KAAV,CAAgB;AACtB+G,IAAAA,kBAAkB,EAAE1J,SAAS,CAACK,IADR;AAEtBsJ,IAAAA,iBAAiB,EAAE3J,SAAS,CAACM,IAFP;AAGtBvP,IAAAA,MAAM,EAAEiP,SAAS,CAACE,MAAV,CAAiBM,UAHH;AAItBxH,IAAAA,QAAQ,EAAEgH,SAAS,CAACK,IAAV,CAAeG,UAJH;AAKtBwU,IAAAA,KAAK,EAAEhV,SAAS,CAACE,MALK;AAMtB7K,IAAAA,MAAM,EAAE2K,SAAS,CAAC2C,KAAV,CAAgB;AACtBhN,MAAAA,IAAI,EAAEqK,SAAS,CAACM,IADM;AAEtBrT,MAAAA,KAAK,EAAE+S,SAAS,CAACM,IAFK;AAGtBrK,MAAAA,OAAO,EAAE+J,SAAS,CAACM;AAHG,KAAhB,CANc;AAWtB5S,IAAAA,MAAM,EAAEsS,SAAS,CAAC2C,KAAV,CAAgB;AACtB9U,MAAAA,SAAS,EAAEmS,SAAS,CAACM,IADC;AAEtB1F,MAAAA,OAAO,EAAEoF,SAAS,CAACM;AAFG,KAAhB,CAXc;AAetBtE,IAAAA,gBAAgB,EAAEgE,SAAS,CAAC2C,KAAV,CAAgB;AAChC1G,MAAAA,eAAe,EAAE+D,SAAS,CAACI,MADK;AAEhClE,MAAAA,aAAa,EAAE8D,SAAS,CAACC,SAAV,CAAoB,CACjCD,SAAS,CAACI,MADuB,EAEjCJ,SAAS,CAACE,MAFuB,CAApB,CAFiB;AAMhC/D,MAAAA,cAAc,EAAE6D,SAAS,CAACC,SAAV,CAAoB,CAClCD,SAAS,CAACI,MADwB,EAElCJ,SAAS,CAACE,MAFwB,CAApB;AANgB,KAAhB;AAfI,GAAhB,EA0BLM,UAnDyB;AAoD5BwV,EAAAA,OAAO,EAAEhW,SAAS,CAAC2C,KAAV,CAAgB;AACvBtP,IAAAA,iBAAiB,EAAE2M,SAAS,CAAC2C,KAAV,CAAgB;AACjCgV,MAAAA,gBAAgB,EAAE3X,SAAS,CAACK,IADK;AAEjCuX,MAAAA,wBAAwB,EAAE5X,SAAS,CAACK,IAFH;AAGjC/H,MAAAA,eAAe,EAAE0H,SAAS,CAACK,IAHM;AAIjChI,MAAAA,cAAc,EAAE2H,SAAS,CAACK,IAJO;AAKjCwX,MAAAA,iBAAiB,EAAE7X,SAAS,CAACK,IALI;AAMjCyX,MAAAA,KAAK,EAAE9X,SAAS,CAACI,MANgB;AAOjC2X,MAAAA,OAAO,EAAE/X,SAAS,CAACK,IAPc;AAQjC2X,MAAAA,mBAAmB,EAAEhY,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B;AARY,KAAhB;AADI,GAAhB,CApDmB;AAgE5B+V,EAAAA,aAAa,EAAEjW,SAAS,CAACI,MAhEG;AAiE5B8V,EAAAA,kBAAkB,EAAElW,SAAS,CAACC,SAAV,CAAoB,CACtCD,SAAS,CAACE,MAD4B,EAEtCF,SAAS,CAACI,MAF4B,CAApB,CAjEQ;AAqE5B/E,EAAAA,uBAAuB,EAAE2E,SAAS,CAACM,IArEP;AAqEa;AACzCvE,EAAAA,uBAAuB,EAAEiE,SAAS,CAACM,IAtEP;AAsEa;AACzCrG,EAAAA,yBAAyB,EAAE+F,SAAS,CAACM,IAvET;AAwE5BiR,EAAAA,cAAc,EAAEvR,SAAS,CAACC,SAAV,CAAoB,CAClCD,SAAS,CAACO,OADwB,EAElCP,SAAS,CAACM,IAFwB,CAApB,CAxEY;AA4E5BsP,EAAAA,mBAAmB,EAAE5P,SAAS,CAACM,IA5EH;AA6E5B0T,EAAAA,kBAAkB,EAAEhU,SAAS,CAACC,SAAV,CAAoB,CACtCD,SAAS,CAACO,OAD4B,EAEtCP,SAAS,CAACM,IAF4B,CAApB,CA7EQ;AAiF5B6V,EAAAA,gBAAgB,EAAEnW,SAAS,CAACC,SAAV,CAAoB,CACpCD,SAAS,CAACO,OAD0B,EAEpCP,SAAS,CAACM,IAF0B,CAApB,CAjFU;AAqF5B2U,EAAAA,cAAc,EAAEjV,SAAS,CAACK,IArFE;AAsF5B6U,EAAAA,aAAa,EAAElV,SAAS,CAACM,IAtFG;AAuF5B8V,EAAAA,uBAAuB,EAAEpW,SAAS,CAACM,IAvFP;AAwF5BnH,EAAAA,WAAW,EAAE6G,SAAS,CAACK,IAxFK;AAyF5BqJ,EAAAA,kBAAkB,EAAE1J,SAAS,CAACK,IAzFF;AA0F5BsJ,EAAAA,iBAAiB,EAAE3J,SAAS,CAACM,IA1FD;AA2F5BkR,EAAAA,kBAAkB,EAAExR,SAAS,CAACK;AA3FF,CAA9B;AA8FAoV,iBAAiB,CAAChV,YAAlB,GAAiC;AAC/BhT,EAAAA,UAAU,EAAE,IADmB;AAE/BuoB,EAAAA,OAAO,EAAE,EAFsB;AAG/B3a,EAAAA,uBAAuB,EAAE,IAHM;AAI/BU,EAAAA,uBAAuB,EAAE,IAJM;AAK/B9B,EAAAA,yBAAyB,EAAE,IALI;AAM/Bgc,EAAAA,aAAa,EAAE,IANgB;AAO/BC,EAAAA,kBAAkB,EAAE,IAPW;AAQ/B3E,EAAAA,cAAc,EAAE,IARe;AAS/B3B,EAAAA,mBAAmB,EAAE,IATU;AAU/BoE,EAAAA,kBAAkB,EAAE,IAVW;AAW/BmC,EAAAA,gBAAgB,EAAE,IAXa;AAY/Bhd,EAAAA,WAAW,EAAE,IAZkB;AAa/B8b,EAAAA,cAAc,EAAE,KAbe;AAc/BC,EAAAA,aAAa,EAAEnO,IAdgB;AAe/B2C,EAAAA,kBAAkB,EAAE,KAfW;AAgB/BC,EAAAA,iBAAiB,EAAE,IAhBY;AAiB/B6H,EAAAA,kBAAkB,EAAE,IAjBW;AAkB/B4E,EAAAA,uBAAuB,EAAErP;AAlBM,CAAjC;IAsBEtX,oCADK,GAIHqJ,sCAJG;AAAA,IAELlJ,8BAFK,GAIHkJ,gCAJG;AAAA,IAGL3I,2BAHK,GAIH2I;AAEJ,mBAAemf,mBAAmB,CAACxC,iBAAD,CAAlC;;;;;"}