{"version":3,"sources":["libs/project-tracker/src/lib/project-tracker-interface.ts","libs/project-tracker/src/lib/ask-question-dialog/ask-question-dialog-interface.ts","node_modules/@vendasta/task/fesm2020/vendasta-task.mjs","libs/project-tracker/src/lib/assets/i18n/en_devel.json","libs/project-tracker/src/lib/shared/constants.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.service.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.component.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.component.html","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/fulfillment-subtasks.pipes.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/fulfillment-subtasks.component.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/fulfillment-subtasks.component.html","libs/project-tracker/src/lib/fulfillment-tracker/fulfillment-tracker.component.ts","libs/project-tracker/src/lib/fulfillment-tracker/fulfillment-tracker.component.html","libs/project-tracker/src/lib/project-comments/project-comments.directives.ts","libs/project-tracker/src/lib/shared/pipes/name-initials.pipe.ts","libs/project-tracker/src/lib/project-comments/project-comments.component.ts","libs/project-tracker/src/lib/project-comments/project-comments.component.html","libs/project-tracker/src/lib/shared/services/sidenav.service.ts","libs/project-tracker/src/lib/shared/utils.ts","libs/project-tracker/src/lib/project-tracker-comments/project-tracker-comments.component.ts","libs/project-tracker/src/lib/project-tracker-comments/project-tracker-comments.component.html","libs/project-tracker/src/lib/project-tracker-sidenav-container.component.ts","libs/project-tracker/src/lib/project-tracker-sidenav-container.component.html","libs/project-tracker/src/lib/shared/tracker-subtasks/tracker-subtasks.component.ts","libs/project-tracker/src/lib/shared/tracker-subtasks/tracker-subtasks.component.html","libs/project-tracker/src/lib/shared/services/projects-and-subtasks-by-products.service.ts","libs/project-tracker/src/lib/simple-project-tracker/simple-project-tracker.component.ts","libs/project-tracker/src/lib/simple-project-tracker/simple-project-tracker.component.html","libs/project-tracker/src/lib/project-tracker.module.ts","libs/project-tracker/src/lib/index.ts","libs/project-tracker/src/index.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FileUploaderInterface } from '@vendasta/forms';\nimport { Observable } from 'rxjs';\nimport { AttachmentInterface, ProjectTrackerUserDetails } from './shared/interfaces';\n\nexport const ProjectTrackerServiceInterfaceToken: InjectionToken =\n new InjectionToken('ProjectTrackerServiceInterface');\n\nexport interface ProjectTrackerServiceInterface {\n activeUser$: Observable;\n partnerId$: Observable;\n sendFeedback(partnerId: string, accountGroupId: string, taskId: string, feedback: string): Observable;\n uploadFile(partnerId: string, accountGroupId: string, taskId: string, file: AttachmentInterface): Observable;\n removeFile(partnerId: string, accountGroupId: string, taskId: string, file: AttachmentInterface): Observable;\n approveTask(partnerId: string, accountGroupId: string, taskId: string): Observable;\n undoApproveTask(partnerId: string, accountGroupId: string, taskId: string): Observable;\n}\n\nexport const ProjectTrackerFileUploadServiceInterfaceToken: InjectionToken =\n new InjectionToken('ProjectTrackerFileUploadServiceInterface');\n","import { InjectionToken } from '@angular/core';\nimport { TaskIdentityInterface } from '@vendasta/task-manager';\nimport { Observable } from 'rxjs';\n\nexport const AskQuestionServiceInterfaceToken: InjectionToken =\n new InjectionToken('AskQuestionServiceInterface');\n\nexport interface AskQuestionServiceInterface {\n askQuestion(question: string, taskIdentity: TaskIdentityInterface): Observable;\n}\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject } from '@angular/core';\nimport { map, mapTo, filter, take, switchMap, retry } from 'rxjs/operators';\nimport * as uuid from 'uuid';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport * as i4 from 'rxjs';\nimport { throwError, forkJoin } from 'rxjs';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar PersonaType = /*#__PURE__*/function (PersonaType) {\n PersonaType[PersonaType[\"PERSONA_TYPE_UNSET\"] = 0] = \"PERSONA_TYPE_UNSET\";\n PersonaType[PersonaType[\"PERSONA_TYPE_PARTNER\"] = 1] = \"PERSONA_TYPE_PARTNER\";\n PersonaType[PersonaType[\"PERSONA_TYPE_SALES_PERSON\"] = 2] = \"PERSONA_TYPE_SALES_PERSON\";\n PersonaType[PersonaType[\"PERSONA_TYPE_DIGITAL_AGENT\"] = 3] = \"PERSONA_TYPE_DIGITAL_AGENT\";\n PersonaType[PersonaType[\"PERSONA_TYPE_SMB\"] = 4] = \"PERSONA_TYPE_SMB\";\n return PersonaType;\n}(PersonaType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar KeyValueField = /*#__PURE__*/function (KeyValueField) {\n KeyValueField[KeyValueField[\"KEY_VALUE_FIELD_UNSET\"] = 0] = \"KEY_VALUE_FIELD_UNSET\";\n KeyValueField[KeyValueField[\"KEY_VALUE_FIELD_DATA\"] = 1] = \"KEY_VALUE_FIELD_DATA\";\n KeyValueField[KeyValueField[\"KEY_VALUE_FIELD_METADATA\"] = 2] = \"KEY_VALUE_FIELD_METADATA\";\n return KeyValueField;\n}(KeyValueField || {});\nvar Metric = /*#__PURE__*/function (Metric) {\n Metric[Metric[\"METRIC_NAMESPACE\"] = 0] = \"METRIC_NAMESPACE\";\n Metric[Metric[\"METRIC_TYPE\"] = 1] = \"METRIC_TYPE\";\n Metric[Metric[\"METRIC_TAG\"] = 2] = \"METRIC_TAG\";\n Metric[Metric[\"METRIC_STATUS\"] = 3] = \"METRIC_STATUS\";\n Metric[Metric[\"METRIC_ASSIGNEE\"] = 4] = \"METRIC_ASSIGNEE\";\n Metric[Metric[\"METRIC_OLDEST_DUE_DATE\"] = 5] = \"METRIC_OLDEST_DUE_DATE\";\n Metric[Metric[\"METRIC_STATUS_PER_TYPE\"] = 6] = \"METRIC_STATUS_PER_TYPE\";\n Metric[Metric[\"METRIC_TYPE_PER_ASSIGNEE\"] = 7] = \"METRIC_TYPE_PER_ASSIGNEE\";\n Metric[Metric[\"METRIC_STATUS_PER_ASSIGNEE_PER_TYPE\"] = 8] = \"METRIC_STATUS_PER_ASSIGNEE_PER_TYPE\";\n Metric[Metric[\"METRIC_UNUSED\"] = 9] = \"METRIC_UNUSED\";\n Metric[Metric[\"METRIC_STATUS_PER_ASSIGNEE\"] = 10] = \"METRIC_STATUS_PER_ASSIGNEE\";\n Metric[Metric[\"METRIC_PARTNER\"] = 11] = \"METRIC_PARTNER\";\n Metric[Metric[\"METRIC_PER_DAY\"] = 12] = \"METRIC_PER_DAY\";\n Metric[Metric[\"METRIC_FULFILLING_PARTNER\"] = 13] = \"METRIC_FULFILLING_PARTNER\";\n Metric[Metric[\"METRIC_TYPE_PER_DAY\"] = 14] = \"METRIC_TYPE_PER_DAY\";\n Metric[Metric[\"METRIC_TAG_PER_DAY\"] = 15] = \"METRIC_TAG_PER_DAY\";\n Metric[Metric[\"METRIC_COUNT_BY_DATE_RANGE\"] = 16] = \"METRIC_COUNT_BY_DATE_RANGE\";\n Metric[Metric[\"METRIC_TASKS_COMPLETED_BY_DELAY\"] = 17] = \"METRIC_TASKS_COMPLETED_BY_DELAY\";\n Metric[Metric[\"METRIC_TASKS_OVERDUE_BY_DELAY\"] = 18] = \"METRIC_TASKS_OVERDUE_BY_DELAY\";\n return Metric;\n}(Metric || {});\nvar RangeField = /*#__PURE__*/function (RangeField) {\n RangeField[RangeField[\"RANGE_FIELD_DUE_DATE\"] = 0] = \"RANGE_FIELD_DUE_DATE\";\n RangeField[RangeField[\"RANGE_FIELD_COMPLETION_DATE\"] = 1] = \"RANGE_FIELD_COMPLETION_DATE\";\n RangeField[RangeField[\"RANGE_FIELD_CREATED_DATE\"] = 2] = \"RANGE_FIELD_CREATED_DATE\";\n return RangeField;\n}(RangeField || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"SORT_DIRECTION_DESCENDING\"] = 0] = \"SORT_DIRECTION_DESCENDING\";\n SortDirection[SortDirection[\"SORT_DIRECTION_ASCENDING\"] = 1] = \"SORT_DIRECTION_ASCENDING\";\n return SortDirection;\n}(SortDirection || {});\n// *********************************\n\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AccessPermissions {\n static fromProto(proto) {\n let m = new AccessPermissions();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.read !== 'undefined') {\n toReturn['read'] = this.read;\n }\n if (typeof this.write !== 'undefined') {\n toReturn['write'] = this.write;\n }\n if (typeof this.delete !== 'undefined') {\n toReturn['delete'] = this.delete;\n }\n return toReturn;\n }\n}\nclass Attachment {\n static fromProto(proto) {\n let m = new Attachment();\n m = Object.assign(m, proto);\n if (proto.filePermissions) {\n m.filePermissions = AccessPermissions.fromProto(proto.filePermissions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.contentType !== 'undefined') {\n toReturn['contentType'] = this.contentType;\n }\n if (typeof this.uploadingPersonaType !== 'undefined') {\n toReturn['uploadingPersonaType'] = this.uploadingPersonaType;\n }\n if (typeof this.filePermissions !== 'undefined' && this.filePermissions !== null) {\n toReturn['filePermissions'] = 'toApiJson' in this.filePermissions ? this.filePermissions.toApiJson() : this.filePermissions;\n }\n return toReturn;\n }\n}\nclass Conversation {\n static fromProto(proto) {\n let m = new Conversation();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.persona) {\n m.persona = enumStringToValue$2(PersonaType, proto.persona);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sendFrom !== 'undefined') {\n toReturn['sendFrom'] = this.sendFrom;\n }\n if (typeof this.sendTo !== 'undefined') {\n toReturn['sendTo'] = this.sendTo;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.source !== 'undefined') {\n toReturn['source'] = this.source;\n }\n if (typeof this.isPublic !== 'undefined') {\n toReturn['isPublic'] = this.isPublic;\n }\n if (typeof this.persona !== 'undefined') {\n toReturn['persona'] = this.persona;\n }\n return toReturn;\n }\n}\nclass History {\n static fromProto(proto) {\n let m = new History();\n m = Object.assign(m, proto);\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.user !== 'undefined') {\n toReturn['user'] = this.user;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n return toReturn;\n }\n}\nclass KeyValuesKeyValue {\n static fromProto(proto) {\n let m = new KeyValuesKeyValue();\n m = Object.assign(m, proto);\n if (proto.values) {\n m.values = proto.values.map(KeyValuesKeyValueValue.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.values !== 'undefined' && this.values !== null) {\n toReturn['values'] = 'toApiJson' in this.values ? this.values.toApiJson() : this.values;\n }\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n return toReturn;\n }\n}\nclass KeyValues {\n static fromProto(proto) {\n let m = new KeyValues();\n m = Object.assign(m, proto);\n if (proto.keyValues) {\n m.keyValues = proto.keyValues.map(KeyValuesKeyValue.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.keyValues !== 'undefined' && this.keyValues !== null) {\n toReturn['keyValues'] = 'toApiJson' in this.keyValues ? this.keyValues.toApiJson() : this.keyValues;\n }\n return toReturn;\n }\n}\nclass Task {\n static fromProto(proto) {\n let m = new Task();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.history) {\n m.history = proto.history.map(History.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.modified) {\n m.modified = new Date(proto.modified);\n }\n if (proto.completionDate) {\n m.completionDate = new Date(proto.completionDate);\n }\n if (proto.subtasks) {\n m.subtasks = proto.subtasks.map(TaskIdentity.fromProto);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.conversations) {\n m.conversations = proto.conversations.map(Conversation.fromProto);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.attachment) {\n m.attachment = proto.attachment.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.history !== 'undefined' && this.history !== null) {\n toReturn['history'] = 'toApiJson' in this.history ? this.history.toApiJson() : this.history;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.modified !== 'undefined' && this.modified !== null) {\n toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n }\n if (typeof this.completionDate !== 'undefined' && this.completionDate !== null) {\n toReturn['completionDate'] = 'toApiJson' in this.completionDate ? this.completionDate.toApiJson() : this.completionDate;\n }\n if (typeof this.subtasks !== 'undefined' && this.subtasks !== null) {\n toReturn['subtasks'] = 'toApiJson' in this.subtasks ? this.subtasks.toApiJson() : this.subtasks;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n return toReturn;\n }\n}\nclass TaskIdentity {\n static fromProto(proto) {\n let m = new TaskIdentity();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentPath !== 'undefined') {\n toReturn['parentPath'] = this.parentPath;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n return toReturn;\n }\n}\nclass TaskTree {\n static fromProto(proto) {\n let m = new TaskTree();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.history) {\n m.history = proto.history.map(History.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.modified) {\n m.modified = new Date(proto.modified);\n }\n if (proto.completionDate) {\n m.completionDate = new Date(proto.completionDate);\n }\n if (proto.subtasks) {\n m.subtasks = proto.subtasks.map(TaskTree.fromProto);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.conversations) {\n m.conversations = proto.conversations.map(Conversation.fromProto);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.attachment) {\n m.attachment = proto.attachment.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.history !== 'undefined' && this.history !== null) {\n toReturn['history'] = 'toApiJson' in this.history ? this.history.toApiJson() : this.history;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.modified !== 'undefined' && this.modified !== null) {\n toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n }\n if (typeof this.completionDate !== 'undefined' && this.completionDate !== null) {\n toReturn['completionDate'] = 'toApiJson' in this.completionDate ? this.completionDate.toApiJson() : this.completionDate;\n }\n if (typeof this.subtasks !== 'undefined' && this.subtasks !== null) {\n toReturn['subtasks'] = 'toApiJson' in this.subtasks ? this.subtasks.toApiJson() : this.subtasks;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n return toReturn;\n }\n}\nclass KeyValuesKeyValueValue {\n static fromProto(proto) {\n let m = new KeyValuesKeyValueValue();\n m = Object.assign(m, proto);\n if (proto.int64Value) {\n m.int64Value = parseInt(proto.int64Value, 10);\n }\n if (proto.timeValue) {\n m.timeValue = new Date(proto.timeValue);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.stringValue !== 'undefined') {\n toReturn['stringValue'] = this.stringValue;\n }\n if (typeof this.int64Value !== 'undefined') {\n toReturn['int64Value'] = this.int64Value;\n }\n if (typeof this.boolValue !== 'undefined') {\n toReturn['boolValue'] = this.boolValue;\n }\n if (typeof this.doubleValue !== 'undefined') {\n toReturn['doubleValue'] = this.doubleValue;\n }\n if (typeof this.timeValue !== 'undefined' && this.timeValue !== null) {\n toReturn['timeValue'] = 'toApiJson' in this.timeValue ? this.timeValue.toApiJson() : this.timeValue;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AddAssigneeRequest {\n static fromProto(proto) {\n let m = new AddAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.assignee !== 'undefined') {\n toReturn['assignee'] = this.assignee;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddAttachmentRequest {\n static fromProto(proto) {\n let m = new AddAttachmentRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.attachment) {\n m.attachment = Attachment.fromProto(proto.attachment);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddConversationRequest {\n static fromProto(proto) {\n let m = new AddConversationRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.persona) {\n m.persona = enumStringToValue$1(PersonaType, proto.persona);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.sendFrom !== 'undefined') {\n toReturn['sendFrom'] = this.sendFrom;\n }\n if (typeof this.sendTo !== 'undefined') {\n toReturn['sendTo'] = this.sendTo;\n }\n if (typeof this.source !== 'undefined') {\n toReturn['source'] = this.source;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n if (typeof this.isPublic !== 'undefined') {\n toReturn['isPublic'] = this.isPublic;\n }\n if (typeof this.persona !== 'undefined') {\n toReturn['persona'] = this.persona;\n }\n return toReturn;\n }\n}\nclass AddCustomTagsRequest {\n static fromProto(proto) {\n let m = new AddCustomTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddHistoryRequest {\n static fromProto(proto) {\n let m = new AddHistoryRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddMultiAssigneeRequest {\n static fromProto(proto) {\n let m = new AddMultiAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.addRequests) {\n m.addRequests = proto.addRequests.map(AddAssigneeRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.addRequests !== 'undefined' && this.addRequests !== null) {\n toReturn['addRequests'] = 'toApiJson' in this.addRequests ? this.addRequests.toApiJson() : this.addRequests;\n }\n return toReturn;\n }\n}\nclass AddMultipleSubtasksRequest {\n static fromProto(proto) {\n let m = new AddMultipleSubtasksRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.subtaskRequests) {\n m.subtaskRequests = proto.subtaskRequests.map(AddSubtaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.subtaskRequests !== 'undefined' && this.subtaskRequests !== null) {\n toReturn['subtaskRequests'] = 'toApiJson' in this.subtaskRequests ? this.subtaskRequests.toApiJson() : this.subtaskRequests;\n }\n return toReturn;\n }\n}\nclass AddSubtaskRequest {\n static fromProto(proto) {\n let m = new AddSubtaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddTagsRequest {\n static fromProto(proto) {\n let m = new AddTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass CommandResponse {\n static fromProto(proto) {\n let m = new CommandResponse();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n return toReturn;\n }\n}\nclass CountMetricResponse {\n static fromProto(proto) {\n let m = new CountMetricResponse();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass DeleteMultiTaskRequest {\n static fromProto(proto) {\n let m = new DeleteMultiTaskRequest();\n m = Object.assign(m, proto);\n if (proto.deleteRequests) {\n m.deleteRequests = proto.deleteRequests.map(DeleteTaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.deleteRequests !== 'undefined' && this.deleteRequests !== null) {\n toReturn['deleteRequests'] = 'toApiJson' in this.deleteRequests ? this.deleteRequests.toApiJson() : this.deleteRequests;\n }\n return toReturn;\n }\n}\nclass DeleteTaskRequest {\n static fromProto(proto) {\n let m = new DeleteTaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass MultiCommandRequestEvent {\n static fromProto(proto) {\n let m = new MultiCommandRequestEvent();\n m = Object.assign(m, proto);\n if (proto.generate) {\n m.generate = GenerateTaskRequest.fromProto(proto.generate);\n }\n if (proto.addSubtask) {\n m.addSubtask = AddSubtaskRequest.fromProto(proto.addSubtask);\n }\n if (proto.setTitle) {\n m.setTitle = SetTitleRequest.fromProto(proto.setTitle);\n }\n if (proto.setType) {\n m.setType = SetTypeRequest.fromProto(proto.setType);\n }\n if (proto.addAssignee) {\n m.addAssignee = AddAssigneeRequest.fromProto(proto.addAssignee);\n }\n if (proto.removeAssignee) {\n m.removeAssignee = RemoveAssigneeRequest.fromProto(proto.removeAssignee);\n }\n if (proto.setDueDate) {\n m.setDueDate = SetDueDateRequest.fromProto(proto.setDueDate);\n }\n if (proto.setStatus) {\n m.setStatus = SetStatusRequest.fromProto(proto.setStatus);\n }\n if (proto.setKeyValue) {\n m.setKeyValue = SetKeyValue.fromProto(proto.setKeyValue);\n }\n if (proto.addHistory) {\n m.addHistory = AddHistoryRequest.fromProto(proto.addHistory);\n }\n if (proto.addConversation) {\n m.addConversation = AddConversationRequest.fromProto(proto.addConversation);\n }\n if (proto.addTags) {\n m.addTags = AddTagsRequest.fromProto(proto.addTags);\n }\n if (proto.removeTags) {\n m.removeTags = RemoveTagsRequest.fromProto(proto.removeTags);\n }\n if (proto.setNotes) {\n m.setNotes = SetNotesRequest.fromProto(proto.setNotes);\n }\n if (proto.setDescription) {\n m.setDescription = SetDescriptionRequest.fromProto(proto.setDescription);\n }\n if (proto.delete) {\n m.delete = DeleteTaskRequest.fromProto(proto.delete);\n }\n if (proto.restore) {\n m.restore = RestoreTaskRequest.fromProto(proto.restore);\n }\n if (proto.reorder) {\n m.reorder = ReorderSubtaskRequest.fromProto(proto.reorder);\n }\n if (proto.addAttachment) {\n m.addAttachment = AddAttachmentRequest.fromProto(proto.addAttachment);\n }\n if (proto.removeAttachment) {\n m.removeAttachment = RemoveAttachmentRequest.fromProto(proto.removeAttachment);\n }\n if (proto.addCustomTags) {\n m.addCustomTags = AddCustomTagsRequest.fromProto(proto.addCustomTags);\n }\n if (proto.removeCustomTags) {\n m.removeCustomTags = RemoveCustomTagsRequest.fromProto(proto.removeCustomTags);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.generate !== 'undefined' && this.generate !== null) {\n toReturn['generate'] = 'toApiJson' in this.generate ? this.generate.toApiJson() : this.generate;\n }\n if (typeof this.addSubtask !== 'undefined' && this.addSubtask !== null) {\n toReturn['addSubtask'] = 'toApiJson' in this.addSubtask ? this.addSubtask.toApiJson() : this.addSubtask;\n }\n if (typeof this.setTitle !== 'undefined' && this.setTitle !== null) {\n toReturn['setTitle'] = 'toApiJson' in this.setTitle ? this.setTitle.toApiJson() : this.setTitle;\n }\n if (typeof this.setType !== 'undefined' && this.setType !== null) {\n toReturn['setType'] = 'toApiJson' in this.setType ? this.setType.toApiJson() : this.setType;\n }\n if (typeof this.addAssignee !== 'undefined' && this.addAssignee !== null) {\n toReturn['addAssignee'] = 'toApiJson' in this.addAssignee ? this.addAssignee.toApiJson() : this.addAssignee;\n }\n if (typeof this.removeAssignee !== 'undefined' && this.removeAssignee !== null) {\n toReturn['removeAssignee'] = 'toApiJson' in this.removeAssignee ? this.removeAssignee.toApiJson() : this.removeAssignee;\n }\n if (typeof this.setDueDate !== 'undefined' && this.setDueDate !== null) {\n toReturn['setDueDate'] = 'toApiJson' in this.setDueDate ? this.setDueDate.toApiJson() : this.setDueDate;\n }\n if (typeof this.setStatus !== 'undefined' && this.setStatus !== null) {\n toReturn['setStatus'] = 'toApiJson' in this.setStatus ? this.setStatus.toApiJson() : this.setStatus;\n }\n if (typeof this.setKeyValue !== 'undefined' && this.setKeyValue !== null) {\n toReturn['setKeyValue'] = 'toApiJson' in this.setKeyValue ? this.setKeyValue.toApiJson() : this.setKeyValue;\n }\n if (typeof this.addHistory !== 'undefined' && this.addHistory !== null) {\n toReturn['addHistory'] = 'toApiJson' in this.addHistory ? this.addHistory.toApiJson() : this.addHistory;\n }\n if (typeof this.addConversation !== 'undefined' && this.addConversation !== null) {\n toReturn['addConversation'] = 'toApiJson' in this.addConversation ? this.addConversation.toApiJson() : this.addConversation;\n }\n if (typeof this.addTags !== 'undefined' && this.addTags !== null) {\n toReturn['addTags'] = 'toApiJson' in this.addTags ? this.addTags.toApiJson() : this.addTags;\n }\n if (typeof this.removeTags !== 'undefined' && this.removeTags !== null) {\n toReturn['removeTags'] = 'toApiJson' in this.removeTags ? this.removeTags.toApiJson() : this.removeTags;\n }\n if (typeof this.setNotes !== 'undefined' && this.setNotes !== null) {\n toReturn['setNotes'] = 'toApiJson' in this.setNotes ? this.setNotes.toApiJson() : this.setNotes;\n }\n if (typeof this.setDescription !== 'undefined' && this.setDescription !== null) {\n toReturn['setDescription'] = 'toApiJson' in this.setDescription ? this.setDescription.toApiJson() : this.setDescription;\n }\n if (typeof this.delete !== 'undefined' && this.delete !== null) {\n toReturn['delete'] = 'toApiJson' in this.delete ? this.delete.toApiJson() : this.delete;\n }\n if (typeof this.restore !== 'undefined' && this.restore !== null) {\n toReturn['restore'] = 'toApiJson' in this.restore ? this.restore.toApiJson() : this.restore;\n }\n if (typeof this.reorder !== 'undefined' && this.reorder !== null) {\n toReturn['reorder'] = 'toApiJson' in this.reorder ? this.reorder.toApiJson() : this.reorder;\n }\n if (typeof this.addAttachment !== 'undefined' && this.addAttachment !== null) {\n toReturn['addAttachment'] = 'toApiJson' in this.addAttachment ? this.addAttachment.toApiJson() : this.addAttachment;\n }\n if (typeof this.removeAttachment !== 'undefined' && this.removeAttachment !== null) {\n toReturn['removeAttachment'] = 'toApiJson' in this.removeAttachment ? this.removeAttachment.toApiJson() : this.removeAttachment;\n }\n if (typeof this.addCustomTags !== 'undefined' && this.addCustomTags !== null) {\n toReturn['addCustomTags'] = 'toApiJson' in this.addCustomTags ? this.addCustomTags.toApiJson() : this.addCustomTags;\n }\n if (typeof this.removeCustomTags !== 'undefined' && this.removeCustomTags !== null) {\n toReturn['removeCustomTags'] = 'toApiJson' in this.removeCustomTags ? this.removeCustomTags.toApiJson() : this.removeCustomTags;\n }\n return toReturn;\n }\n}\nclass GenerateTaskRequest {\n static fromProto(proto) {\n let m = new GenerateTaskRequest();\n m = Object.assign(m, proto);\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass GetMetricsFilters {\n static fromProto(proto) {\n let m = new GetMetricsFilters();\n m = Object.assign(m, proto);\n if (proto.rangeStart) {\n m.rangeStart = new Date(proto.rangeStart);\n }\n if (proto.rangeEnd) {\n m.rangeEnd = new Date(proto.rangeEnd);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.dateRangeField) {\n m.dateRangeField = enumStringToValue$1(RangeField, proto.dateRangeField);\n }\n if (proto.metadataGroups) {\n m.metadataGroups = GroupedMetadata.fromProto(proto.metadataGroups);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentPathFuzzy !== 'undefined') {\n toReturn['parentPathFuzzy'] = this.parentPathFuzzy;\n }\n if (typeof this.parentPathExact !== 'undefined') {\n toReturn['parentPathExact'] = this.parentPathExact;\n }\n if (typeof this.titleFuzzy !== 'undefined') {\n toReturn['titleFuzzy'] = this.titleFuzzy;\n }\n if (typeof this.titleExact !== 'undefined') {\n toReturn['titleExact'] = this.titleExact;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.rangeStart !== 'undefined' && this.rangeStart !== null) {\n toReturn['rangeStart'] = 'toApiJson' in this.rangeStart ? this.rangeStart.toApiJson() : this.rangeStart;\n }\n if (typeof this.rangeEnd !== 'undefined' && this.rangeEnd !== null) {\n toReturn['rangeEnd'] = 'toApiJson' in this.rangeEnd ? this.rangeEnd.toApiJson() : this.rangeEnd;\n }\n if (typeof this.types !== 'undefined') {\n toReturn['types'] = this.types;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.dateRangeField !== 'undefined') {\n toReturn['dateRangeField'] = this.dateRangeField;\n }\n if (typeof this.access !== 'undefined') {\n toReturn['access'] = this.access;\n }\n if (typeof this.metadataGroups !== 'undefined' && this.metadataGroups !== null) {\n toReturn['metadataGroups'] = 'toApiJson' in this.metadataGroups ? this.metadataGroups.toApiJson() : this.metadataGroups;\n }\n return toReturn;\n }\n}\nclass GetMetricsRequest {\n static fromProto(proto) {\n let m = new GetMetricsRequest();\n m = Object.assign(m, proto);\n if (proto.requests) {\n m.requests = proto.requests.map(GetMetricsRequestMetricRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.requests !== 'undefined' && this.requests !== null) {\n toReturn['requests'] = 'toApiJson' in this.requests ? this.requests.toApiJson() : this.requests;\n }\n return toReturn;\n }\n}\nclass GetMetricsResponse {\n static fromProto(proto) {\n let m = new GetMetricsResponse();\n m = Object.assign(m, proto);\n if (proto.metrics) {\n m.metrics = proto.metrics.map(v => enumStringToValue$1(Metric, v));\n }\n if (proto.responses) {\n m.responses = proto.responses.map(MetricResponses.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metrics !== 'undefined') {\n toReturn['metrics'] = this.metrics;\n }\n if (typeof this.responses !== 'undefined' && this.responses !== null) {\n toReturn['responses'] = 'toApiJson' in this.responses ? this.responses.toApiJson() : this.responses;\n }\n if (typeof this.names !== 'undefined') {\n toReturn['names'] = this.names;\n }\n return toReturn;\n }\n}\nclass GetTaskRequest {\n static fromProto(proto) {\n let m = new GetTaskRequest();\n m = Object.assign(m, proto);\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.returnDeleted !== 'undefined') {\n toReturn['returnDeleted'] = this.returnDeleted;\n }\n return toReturn;\n }\n}\nclass GetTaskResponse {\n static fromProto(proto) {\n let m = new GetTaskResponse();\n m = Object.assign(m, proto);\n if (proto.task) {\n m.task = Task.fromProto(proto.task);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.task !== 'undefined' && this.task !== null) {\n toReturn['task'] = 'toApiJson' in this.task ? this.task.toApiJson() : this.task;\n }\n return toReturn;\n }\n}\nclass GetTasksRequest {\n static fromProto(proto) {\n let m = new GetTasksRequest();\n m = Object.assign(m, proto);\n if (proto.identities) {\n m.identities = proto.identities.map(TaskIdentity.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identities !== 'undefined' && this.identities !== null) {\n toReturn['identities'] = 'toApiJson' in this.identities ? this.identities.toApiJson() : this.identities;\n }\n if (typeof this.returnDeleted !== 'undefined') {\n toReturn['returnDeleted'] = this.returnDeleted;\n }\n if (typeof this.excludeDeleted !== 'undefined') {\n toReturn['excludeDeleted'] = this.excludeDeleted;\n }\n return toReturn;\n }\n}\nclass GetTasksResponse {\n static fromProto(proto) {\n let m = new GetTasksResponse();\n m = Object.assign(m, proto);\n if (proto.tasks) {\n m.tasks = proto.tasks.map(Task.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tasks !== 'undefined' && this.tasks !== null) {\n toReturn['tasks'] = 'toApiJson' in this.tasks ? this.tasks.toApiJson() : this.tasks;\n }\n return toReturn;\n }\n}\nclass GetTreeRequest {\n static fromProto(proto) {\n let m = new GetTreeRequest();\n m = Object.assign(m, proto);\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n return toReturn;\n }\n}\nclass GetTreeResponse {\n static fromProto(proto) {\n let m = new GetTreeResponse();\n m = Object.assign(m, proto);\n if (proto.tasks) {\n m.tasks = TaskTree.fromProto(proto.tasks);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tasks !== 'undefined' && this.tasks !== null) {\n toReturn['tasks'] = 'toApiJson' in this.tasks ? this.tasks.toApiJson() : this.tasks;\n }\n return toReturn;\n }\n}\nclass GroupedMetadata {\n static fromProto(proto) {\n let m = new GroupedMetadata();\n m = Object.assign(m, proto);\n if (proto.metadataGroup) {\n m.metadataGroup = proto.metadataGroup.map(KeyValues.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metadataGroup !== 'undefined' && this.metadataGroup !== null) {\n toReturn['metadataGroup'] = 'toApiJson' in this.metadataGroup ? this.metadataGroup.toApiJson() : this.metadataGroup;\n }\n return toReturn;\n }\n}\nclass GroupedTags {\n static fromProto(proto) {\n let m = new GroupedTags();\n m = Object.assign(m, proto);\n if (proto.groups) {\n m.groups = proto.groups.map(TagGroup.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.groups !== 'undefined' && this.groups !== null) {\n toReturn['groups'] = 'toApiJson' in this.groups ? this.groups.toApiJson() : this.groups;\n }\n return toReturn;\n }\n}\nclass GetMetricsRequestMetricRequest {\n static fromProto(proto) {\n let m = new GetMetricsRequestMetricRequest();\n m = Object.assign(m, proto);\n if (proto.metric) {\n m.metric = enumStringToValue$1(Metric, proto.metric);\n }\n if (proto.filters) {\n m.filters = GetMetricsFilters.fromProto(proto.filters);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metric !== 'undefined') {\n toReturn['metric'] = this.metric;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass MetricResponsesMetricResponse {\n static fromProto(proto) {\n let m = new MetricResponsesMetricResponse();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = CountMetricResponse.fromProto(proto.count);\n }\n if (proto.value) {\n m.value = ValueMetricResponse.fromProto(proto.value);\n }\n if (proto.subMetricResponses) {\n m.subMetricResponses = proto.subMetricResponses.map(MetricResponses.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.count !== 'undefined' && this.count !== null) {\n toReturn['count'] = 'toApiJson' in this.count ? this.count.toApiJson() : this.count;\n }\n if (typeof this.value !== 'undefined' && this.value !== null) {\n toReturn['value'] = 'toApiJson' in this.value ? this.value.toApiJson() : this.value;\n }\n if (typeof this.subMetricResponses !== 'undefined' && this.subMetricResponses !== null) {\n toReturn['subMetricResponses'] = 'toApiJson' in this.subMetricResponses ? this.subMetricResponses.toApiJson() : this.subMetricResponses;\n }\n return toReturn;\n }\n}\nclass MetricResponses {\n static fromProto(proto) {\n let m = new MetricResponses();\n m = Object.assign(m, proto);\n if (proto.metricResponses) {\n m.metricResponses = proto.metricResponses.map(MetricResponsesMetricResponse.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metricResponses !== 'undefined' && this.metricResponses !== null) {\n toReturn['metricResponses'] = 'toApiJson' in this.metricResponses ? this.metricResponses.toApiJson() : this.metricResponses;\n }\n return toReturn;\n }\n}\nclass MultiCommandRequest {\n static fromProto(proto) {\n let m = new MultiCommandRequest();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(MultiCommandRequestEvent.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass MultiCommandResponsesMultiCommandResponse {\n static fromProto(proto) {\n let m = new MultiCommandResponsesMultiCommandResponse();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n return toReturn;\n }\n}\nclass MultiCommandResponses {\n static fromProto(proto) {\n let m = new MultiCommandResponses();\n m = Object.assign(m, proto);\n if (proto.responses) {\n m.responses = proto.responses.map(MultiCommandResponsesMultiCommandResponse.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.responses !== 'undefined' && this.responses !== null) {\n toReturn['responses'] = 'toApiJson' in this.responses ? this.responses.toApiJson() : this.responses;\n }\n return toReturn;\n }\n}\nclass MultiSearchTaskRequest {\n static fromProto(proto) {\n let m = new MultiSearchTaskRequest();\n m = Object.assign(m, proto);\n if (proto.searchRequests) {\n m.searchRequests = proto.searchRequests.map(SearchTaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.searchRequests !== 'undefined' && this.searchRequests !== null) {\n toReturn['searchRequests'] = 'toApiJson' in this.searchRequests ? this.searchRequests.toApiJson() : this.searchRequests;\n }\n return toReturn;\n }\n}\nclass RemoveAssigneeRequest {\n static fromProto(proto) {\n let m = new RemoveAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.assignee !== 'undefined') {\n toReturn['assignee'] = this.assignee;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RemoveAttachmentRequest {\n static fromProto(proto) {\n let m = new RemoveAttachmentRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.attachment) {\n m.attachment = Attachment.fromProto(proto.attachment);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RemoveCustomTagsRequest {\n static fromProto(proto) {\n let m = new RemoveCustomTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RemoveMultiAssigneeRequest {\n static fromProto(proto) {\n let m = new RemoveMultiAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.removeRequests) {\n m.removeRequests = proto.removeRequests.map(RemoveAssigneeRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.removeRequests !== 'undefined' && this.removeRequests !== null) {\n toReturn['removeRequests'] = 'toApiJson' in this.removeRequests ? this.removeRequests.toApiJson() : this.removeRequests;\n }\n return toReturn;\n }\n}\nclass RemoveTagsRequest {\n static fromProto(proto) {\n let m = new RemoveTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass ReorderSubtaskRequest {\n static fromProto(proto) {\n let m = new ReorderSubtaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.currentPosition) {\n m.currentPosition = parseInt(proto.currentPosition, 10);\n }\n if (proto.newPosition) {\n m.newPosition = parseInt(proto.newPosition, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.currentPosition !== 'undefined') {\n toReturn['currentPosition'] = this.currentPosition;\n }\n if (typeof this.newPosition !== 'undefined') {\n toReturn['newPosition'] = this.newPosition;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RestoreMultiTaskRequest {\n static fromProto(proto) {\n let m = new RestoreMultiTaskRequest();\n m = Object.assign(m, proto);\n if (proto.restoreRequests) {\n m.restoreRequests = proto.restoreRequests.map(RestoreTaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.restoreRequests !== 'undefined' && this.restoreRequests !== null) {\n toReturn['restoreRequests'] = 'toApiJson' in this.restoreRequests ? this.restoreRequests.toApiJson() : this.restoreRequests;\n }\n return toReturn;\n }\n}\nclass RestoreTaskRequest {\n static fromProto(proto) {\n let m = new RestoreTaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SearchTaskRequest {\n static fromProto(proto) {\n let m = new SearchTaskRequest();\n m = Object.assign(m, proto);\n if (proto.rangeStart) {\n m.rangeStart = new Date(proto.rangeStart);\n }\n if (proto.rangeEnd) {\n m.rangeEnd = new Date(proto.rangeEnd);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.sortDirection) {\n m.sortDirection = enumStringToValue$1(SortDirection, proto.sortDirection);\n }\n if (proto.dateRangeField) {\n m.dateRangeField = enumStringToValue$1(RangeField, proto.dateRangeField);\n }\n if (proto.sorts) {\n m.sorts = proto.sorts.map(Sort.fromProto);\n }\n if (proto.tagGroups) {\n m.tagGroups = GroupedTags.fromProto(proto.tagGroups);\n }\n if (proto.metadataGroups) {\n m.metadataGroups = GroupedMetadata.fromProto(proto.metadataGroups);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentPathFuzzy !== 'undefined') {\n toReturn['parentPathFuzzy'] = this.parentPathFuzzy;\n }\n if (typeof this.parentPathExact !== 'undefined') {\n toReturn['parentPathExact'] = this.parentPathExact;\n }\n if (typeof this.titleFuzzy !== 'undefined') {\n toReturn['titleFuzzy'] = this.titleFuzzy;\n }\n if (typeof this.titleExact !== 'undefined') {\n toReturn['titleExact'] = this.titleExact;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.rangeStart !== 'undefined' && this.rangeStart !== null) {\n toReturn['rangeStart'] = 'toApiJson' in this.rangeStart ? this.rangeStart.toApiJson() : this.rangeStart;\n }\n if (typeof this.rangeEnd !== 'undefined' && this.rangeEnd !== null) {\n toReturn['rangeEnd'] = 'toApiJson' in this.rangeEnd ? this.rangeEnd.toApiJson() : this.rangeEnd;\n }\n if (typeof this.types !== 'undefined') {\n toReturn['types'] = this.types;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.sortField !== 'undefined') {\n toReturn['sortField'] = this.sortField;\n }\n if (typeof this.sortDirection !== 'undefined') {\n toReturn['sortDirection'] = this.sortDirection;\n }\n if (typeof this.dateRangeField !== 'undefined') {\n toReturn['dateRangeField'] = this.dateRangeField;\n }\n if (typeof this.access !== 'undefined') {\n toReturn['access'] = this.access;\n }\n if (typeof this.sorts !== 'undefined' && this.sorts !== null) {\n toReturn['sorts'] = 'toApiJson' in this.sorts ? this.sorts.toApiJson() : this.sorts;\n }\n if (typeof this.excludeHistory !== 'undefined') {\n toReturn['excludeHistory'] = this.excludeHistory;\n }\n if (typeof this.deletedOnly !== 'undefined') {\n toReturn['deletedOnly'] = this.deletedOnly;\n }\n if (typeof this.tagGroups !== 'undefined' && this.tagGroups !== null) {\n toReturn['tagGroups'] = 'toApiJson' in this.tagGroups ? this.tagGroups.toApiJson() : this.tagGroups;\n }\n if (typeof this.metadataGroups !== 'undefined' && this.metadataGroups !== null) {\n toReturn['metadataGroups'] = 'toApiJson' in this.metadataGroups ? this.metadataGroups.toApiJson() : this.metadataGroups;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n return toReturn;\n }\n}\nclass SearchTaskResponse {\n static fromProto(proto) {\n let m = new SearchTaskResponse();\n m = Object.assign(m, proto);\n if (proto.tasks) {\n m.tasks = proto.tasks.map(Task.fromProto);\n }\n if (proto.hits) {\n m.hits = parseInt(proto.hits, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tasks !== 'undefined' && this.tasks !== null) {\n toReturn['tasks'] = 'toApiJson' in this.tasks ? this.tasks.toApiJson() : this.tasks;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.hits !== 'undefined') {\n toReturn['hits'] = this.hits;\n }\n return toReturn;\n }\n}\nclass SetDescriptionRequest {\n static fromProto(proto) {\n let m = new SetDescriptionRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetDueDateRequest {\n static fromProto(proto) {\n let m = new SetDueDateRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetKeyValue {\n static fromProto(proto) {\n let m = new SetKeyValue();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.keyValueData) {\n m.keyValueData = KeyValues.fromProto(proto.keyValueData);\n }\n if (proto.field) {\n m.field = enumStringToValue$1(KeyValueField, proto.field);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.keyValueData !== 'undefined' && this.keyValueData !== null) {\n toReturn['keyValueData'] = 'toApiJson' in this.keyValueData ? this.keyValueData.toApiJson() : this.keyValueData;\n }\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n return toReturn;\n }\n}\nclass SetKeyValuesRequest {\n static fromProto(proto) {\n let m = new SetKeyValuesRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.keyValueData) {\n m.keyValueData = KeyValues.fromProto(proto.keyValueData);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.keyValueData !== 'undefined' && this.keyValueData !== null) {\n toReturn['keyValueData'] = 'toApiJson' in this.keyValueData ? this.keyValueData.toApiJson() : this.keyValueData;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetMultiDueDateRequest {\n static fromProto(proto) {\n let m = new SetMultiDueDateRequest();\n m = Object.assign(m, proto);\n if (proto.dueDateRequests) {\n m.dueDateRequests = proto.dueDateRequests.map(SetDueDateRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.dueDateRequests !== 'undefined' && this.dueDateRequests !== null) {\n toReturn['dueDateRequests'] = 'toApiJson' in this.dueDateRequests ? this.dueDateRequests.toApiJson() : this.dueDateRequests;\n }\n return toReturn;\n }\n}\nclass SetMultiNotesRequest {\n static fromProto(proto) {\n let m = new SetMultiNotesRequest();\n m = Object.assign(m, proto);\n if (proto.notesRequests) {\n m.notesRequests = proto.notesRequests.map(SetNotesRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.notesRequests !== 'undefined' && this.notesRequests !== null) {\n toReturn['notesRequests'] = 'toApiJson' in this.notesRequests ? this.notesRequests.toApiJson() : this.notesRequests;\n }\n return toReturn;\n }\n}\nclass SetMultiStatusRequest {\n static fromProto(proto) {\n let m = new SetMultiStatusRequest();\n m = Object.assign(m, proto);\n if (proto.statusRequests) {\n m.statusRequests = proto.statusRequests.map(SetStatusRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.statusRequests !== 'undefined' && this.statusRequests !== null) {\n toReturn['statusRequests'] = 'toApiJson' in this.statusRequests ? this.statusRequests.toApiJson() : this.statusRequests;\n }\n return toReturn;\n }\n}\nclass SetNotesRequest {\n static fromProto(proto) {\n let m = new SetNotesRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetStatusRequest {\n static fromProto(proto) {\n let m = new SetStatusRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetTitleRequest {\n static fromProto(proto) {\n let m = new SetTitleRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetTypeRequest {\n static fromProto(proto) {\n let m = new SetTypeRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass Sort {\n static fromProto(proto) {\n let m = new Sort();\n m = Object.assign(m, proto);\n if (proto.direction) {\n m.direction = enumStringToValue$1(SortDirection, proto.direction);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n if (typeof this.direction !== 'undefined') {\n toReturn['direction'] = this.direction;\n }\n return toReturn;\n }\n}\nclass TagGroup {\n static fromProto(proto) {\n let m = new TagGroup();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n return toReturn;\n }\n}\nclass ValueMetricResponse {\n static fromProto(proto) {\n let m = new ValueMetricResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Access {\n static fromProto(proto) {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.scope !== 'undefined') {\n toReturn['scope'] = this.scope;\n }\n if (typeof this.public !== 'undefined') {\n toReturn['public'] = this.public;\n }\n return toReturn;\n }\n}\n\n// *********************************\n\nconst environment$1 = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'task-demo.apigateway.co',\n 'test': '',\n 'demo': 'task-api-demo.apigateway.co',\n 'prod': 'task-api-prod.apigateway.co',\n 'production': 'task-api-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment$1.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet TaskCommandApiService = /*#__PURE__*/(() => {\n class TaskCommandApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n generate(r) {\n const request = r.toApiJson ? r : new GenerateTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/Generate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addSubtask(r) {\n const request = r.toApiJson ? r : new AddSubtaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddSubtask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addMultipleSubtasks(r) {\n const request = r.toApiJson ? r : new AddMultipleSubtasksRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddMultipleSubtasks\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setTitle(r) {\n const request = r.toApiJson ? r : new SetTitleRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetTitle\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setStatus(r) {\n const request = r.toApiJson ? r : new SetStatusRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMultiStatus(r) {\n const request = r.toApiJson ? r : new SetMultiStatusRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMultiStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n setDueDate(r) {\n const request = r.toApiJson ? r : new SetDueDateRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetDueDate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMultiDueDate(r) {\n const request = r.toApiJson ? r : new SetMultiDueDateRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMultiDueDate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n addAssignee(r) {\n const request = r.toApiJson ? r : new AddAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addMultiAssignee(r) {\n const request = r.toApiJson ? r : new AddMultiAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddMultiAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n removeAssignee(r) {\n const request = r.toApiJson ? r : new RemoveAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeMultiAssignee(r) {\n const request = r.toApiJson ? r : new RemoveMultiAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveMultiAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n addTags(r) {\n const request = r.toApiJson ? r : new AddTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeTags(r) {\n const request = r.toApiJson ? r : new RemoveTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addCustomTags(r) {\n const request = r.toApiJson ? r : new AddCustomTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddCustomTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeCustomTags(r) {\n const request = r.toApiJson ? r : new RemoveCustomTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveCustomTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setNotes(r) {\n const request = r.toApiJson ? r : new SetNotesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetNotes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMultiNotes(r) {\n const request = r.toApiJson ? r : new SetMultiNotesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMultiNotes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n setDescription(r) {\n const request = r.toApiJson ? r : new SetDescriptionRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetDescription\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addHistory(r) {\n const request = r.toApiJson ? r : new AddHistoryRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddHistory\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n deleteTask(r) {\n const request = r.toApiJson ? r : new DeleteTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/DeleteTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n deleteMultiTask(r) {\n const request = r.toApiJson ? r : new DeleteMultiTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/DeleteMultiTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n restoreTask(r) {\n const request = r.toApiJson ? r : new RestoreTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RestoreTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n restoreMultiTask(r) {\n const request = r.toApiJson ? r : new RestoreMultiTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RestoreMultiTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n setData(r) {\n const request = r.toApiJson ? r : new SetKeyValuesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetData\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMetadata(r) {\n const request = r.toApiJson ? r : new SetKeyValuesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMetadata\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addConversation(r) {\n const request = r.toApiJson ? r : new AddConversationRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddConversation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n reorderSubtask(r) {\n const request = r.toApiJson ? r : new ReorderSubtaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/ReorderSubtask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addAttachment(r) {\n const request = r.toApiJson ? r : new AddAttachmentRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddAttachment\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeAttachment(r) {\n const request = r.toApiJson ? r : new RemoveAttachmentRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveAttachment\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setType(r) {\n const request = r.toApiJson ? r : new SetTypeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetType\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n multiCommand(r) {\n const request = r.toApiJson ? r : new MultiCommandRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/MultiCommand\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n TaskCommandApiService.ɵfac = function TaskCommandApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TaskCommandApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n TaskCommandApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskCommandApiService,\n factory: TaskCommandApiService.ɵfac,\n providedIn: 'root'\n });\n return TaskCommandApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet TaskQueryApiService = /*#__PURE__*/(() => {\n class TaskQueryApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n get(r) {\n const request = r.toApiJson ? r : new GetTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/Get\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTaskResponse.fromProto(resp)));\n }\n getMulti(r) {\n const request = r.toApiJson ? r : new GetTasksRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTasksResponse.fromProto(resp)));\n }\n getTree(r) {\n const request = r.toApiJson ? r : new GetTreeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/GetTree\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTreeResponse.fromProto(resp)));\n }\n search(r) {\n const request = r.toApiJson ? r : new SearchTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/Search\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchTaskResponse.fromProto(resp)));\n }\n multiSearch(r) {\n const request = r.toApiJson ? r : new MultiSearchTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/MultiSearch\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchTaskResponse.fromProto(resp)));\n }\n getMetrics(r) {\n const request = r.toApiJson ? r : new GetMetricsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/GetMetrics\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMetricsResponse.fromProto(resp)));\n }\n }\n TaskQueryApiService.ɵfac = function TaskQueryApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TaskQueryApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n TaskQueryApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskQueryApiService,\n factory: TaskQueryApiService.ɵfac,\n providedIn: 'root'\n });\n return TaskQueryApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n\nvar Persona = /*#__PURE__*/function (Persona) {\n Persona[\"salesPerson\"] = \"sales_person\";\n Persona[\"digitalAgent\"] = \"digital_agent\";\n return Persona;\n}(Persona || {});\nvar GoType = /*#__PURE__*/function (GoType) {\n GoType[\"STRING\"] = \"string\";\n GoType[\"INT\"] = \"int64\";\n GoType[\"FLOAT\"] = \"float64\";\n GoType[\"BOOL\"] = \"bool\";\n GoType[\"TIME\"] = \"time\";\n return GoType;\n}(GoType || {});\n/**\n * Enum of the standard Task statuses. No longer enforced as the only allowable statuses\n */\nvar Status = /*#__PURE__*/function (Status) {\n Status[\"Open\"] = \"Open\";\n Status[\"InProgress\"] = \"In Progress\";\n Status[\"WaitingOnCustomer\"] = \"Waiting on Customer\";\n Status[\"Completed\"] = \"Completed\";\n return Status;\n}(Status || {});\nvar KeyValueTypes = /*#__PURE__*/function (KeyValueTypes) {\n KeyValueTypes[\"INT64\"] = \"int64\";\n KeyValueTypes[\"DOUBLE\"] = \"double\";\n KeyValueTypes[\"BOOL\"] = \"bool\";\n KeyValueTypes[\"STRING\"] = \"string\";\n KeyValueTypes[\"TIME\"] = \"time\";\n return KeyValueTypes;\n}(KeyValueTypes || {});\nconst TASK_DELIM = '/';\nfunction buildNamespace(keyValuePairs) {\n const pairs = new Array();\n Object.keys(keyValuePairs).forEach(key => {\n const value = keyValuePairs[key];\n if (value.includes(TASK_DELIM) || key.includes(TASK_DELIM)) {\n throw new Error('keys/values cannot contain slashes');\n }\n if (typeof value !== 'string') {\n throw new TypeError('values must be strings');\n }\n pairs.push(key + TASK_DELIM + value);\n });\n return pairs.join(TASK_DELIM);\n}\nfunction buildParentPath(taskIds) {\n return taskIds.reduce((path, value) => {\n if (value.includes(TASK_DELIM)) {\n throw new Error('values cannot contain slashes');\n }\n return path + value + TASK_DELIM;\n }, TASK_DELIM);\n}\nfunction newGuid() {\n return uuid.v4().replace(/-/g, '');\n}\nlet TaskSdkService = /*#__PURE__*/(() => {\n class TaskSdkService {\n static buildAccountGroupNamespace(partnerId, accountGroupId) {\n return buildNamespace({\n partner: partnerId,\n 'account-group': accountGroupId\n });\n }\n static buildPartnerNamespace(partnerId) {\n return buildNamespace({\n partner: partnerId\n });\n }\n static generateTaskId() {\n return 'TK-' + newGuid();\n }\n constructor(commandApi, queryApi) {\n this.commandApi = commandApi;\n this.queryApi = queryApi;\n }\n generate(args) {\n const access = new KeyValuesKeyValue({\n key: 'access',\n values: [{\n stringValue: args.access,\n type: GoType.STRING\n }]\n });\n let metadata = {\n keyValues: [access]\n };\n if (args.metadata && args.metadata.keyValues) {\n args.metadata.keyValues.push(access);\n metadata = {\n keyValues: args.metadata.keyValues\n };\n }\n args.metadata = new KeyValues(metadata);\n return this.commandApi.generate(new GenerateTaskRequest(args)).pipe(map(res => res.version));\n }\n addSubTask(args) {\n const metadata = args.metadata ? DomainKeyValue.fromKeyValue(args.metadata) : new DomainKeyValue();\n metadata.set('access', [args.access], KeyValueTypes.STRING);\n args.metadata = metadata.toKeyValue();\n return this.commandApi.addSubtask(new AddSubtaskRequest(args)).pipe(map(res => res.version));\n }\n addMultipleSubtasks(addMultipleSubtaskRequests) {\n const requests = addMultipleSubtaskRequests?.subtaskRequests?.map(value => {\n const metadata = value.metadata ? DomainKeyValue.fromKeyValue(value.metadata) : new DomainKeyValue();\n metadata.set('access', [value.access], KeyValueTypes.STRING);\n value.metadata = metadata.toKeyValue();\n return new AddSubtaskRequest(value).toApiJson();\n });\n return this.commandApi.addMultipleSubtasks(new AddMultipleSubtasksRequest({\n subtaskRequests: requests\n })).pipe(map(res => res.version ?? 0));\n }\n /**\n * Gets the task matching the given identity\n * Since data is only soft deleted Getting a deleted Task will return the task, it is up to the client to ignore them\n */\n getTask(namespace, parentPath, taskId, returnDeleted) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new GetTaskRequest({\n identity: identity,\n returnDeleted: returnDeleted\n });\n return this.queryApi.get(request).pipe(map(res => res.task));\n }\n /**\n * Gets a task, will include all the subtasks on the object as well\n * Since data is only soft deleted Getting a deleted Task will return the task, it is up to the client to ignore them\n */\n getTree(namespace, parentPath, taskId) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new GetTreeRequest({\n identity\n });\n return this.queryApi.getTree(request).pipe(map(res => res.tasks));\n }\n setTitle(namespace, parentPath, taskId, newTitle, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetTitleRequest({\n identity: identity,\n title: newTitle,\n version: newVersion\n });\n return this.commandApi.setTitle(request).pipe(map(res => res.version));\n }\n setStatus(namespace, parentPath, taskId, newStatus, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetStatusRequest({\n status: newStatus,\n identity: identity,\n version: newVersion\n });\n return this.commandApi.setStatus(request).pipe(map(res => res.version));\n }\n setMultipleStatus(requests) {\n const multiReq = new SetMultiStatusRequest({\n statusRequests: requests\n });\n return this.commandApi.setMultiStatus(multiReq);\n }\n setDueDate(namespace, parentPath, taskId, newDueDate, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetDueDateRequest({\n identity: identity,\n dueDate: newDueDate,\n version: newVersion\n });\n return this.commandApi.setDueDate(request).pipe(map(res => res.version));\n }\n setMultipleDueDates(requests) {\n const multiReq = new SetMultiDueDateRequest({\n dueDateRequests: requests\n });\n return this.commandApi.setMultiDueDate(multiReq);\n }\n setDescription(namespace, parentPath, taskId, newDescription, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetDescriptionRequest({\n identity: identity,\n description: newDescription,\n version: newVersion\n });\n return this.commandApi.setDescription(request).pipe(map(res => res.version));\n }\n addHistory(namespace, parentPath, taskId, message, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new AddHistoryRequest({\n identity: identity,\n message: message,\n version: newVersion\n });\n return this.commandApi.addHistory(request).pipe(map(res => res.version));\n }\n addAssignee(namespace, parentPath, taskId, assignee, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new AddAssigneeRequest({\n identity: identity,\n assignee: assignee,\n version: newVersion\n });\n return this.commandApi.addAssignee(request).pipe(map(res => res.version));\n }\n addMultipleAssignees(requests) {\n const add = new AddMultiAssigneeRequest({\n addRequests: requests\n });\n return this.commandApi.addMultiAssignee(add);\n }\n removeAssignee(namespace, parentPath, taskId, assignee, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new RemoveAssigneeRequest({\n identity: identity,\n assignee: assignee,\n version: newVersion\n });\n return this.commandApi.removeAssignee(request).pipe(map(res => res.version));\n }\n removeMultipleAssignees(requests) {\n const rem = new RemoveMultiAssigneeRequest({\n removeRequests: requests\n });\n return this.commandApi.removeMultiAssignee(rem);\n }\n addTags(namespace, parentPath, taskId, newTags, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new AddTagsRequest({\n identity: identity,\n tags: newTags,\n version: newVersion\n });\n return this.commandApi.addTags(request).pipe(map(res => res.version));\n }\n removeTags(namespace, parentPath, taskId, removeTags, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new RemoveTagsRequest({\n identity: identity,\n tags: removeTags,\n version: newVersion\n });\n return this.commandApi.removeTags(request).pipe(map(res => res.version));\n }\n reorderTask(namespace, parentPath, taskId, currentPosition, newPosition, version) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new ReorderSubtaskRequest({\n identity: identity,\n currentPosition: currentPosition,\n newPosition: newPosition,\n version: version\n });\n return this.commandApi.reorderSubtask(request).pipe(map(res => res.version));\n }\n deleteTask(namespace, parentPath, taskId, version) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new DeleteTaskRequest({\n identity,\n version\n });\n return this.commandApi.deleteTask(request).pipe(map(res => res.version));\n }\n deleteMultipleTasks(requests) {\n const del = new DeleteMultiTaskRequest({\n deleteRequests: requests\n });\n return this.commandApi.deleteMultiTask(del);\n }\n restoreTask(namespace, parentPath, taskId, version) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new RestoreTaskRequest({\n identity,\n version\n });\n return this.commandApi.restoreTask(request).pipe(map(res => res.version));\n }\n restoreMultipleTasks(requests) {\n const req = new RestoreMultiTaskRequest({\n restoreRequests: requests\n });\n return this.commandApi.restoreMultiTask(req);\n }\n addAttachment(namespace, parentPath, taskId, attachment) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const req = new AddAttachmentRequest({\n identity,\n attachment\n });\n return this.commandApi.addAttachment(req).pipe(map(res => res.version));\n }\n removeAttachment(namespace, parentPath, taskId, attachment) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const req = new RemoveAttachmentRequest({\n identity,\n attachment\n });\n return this.commandApi.removeAttachment(req).pipe(map(res => res.version));\n }\n multiCommand(events) {\n const req = new MultiCommandRequest({\n events\n });\n return this.commandApi.multiCommand(req).pipe(mapTo(null));\n }\n search(request) {\n return this.queryApi.search(request);\n }\n multiProductSearch(request) {\n const multiReq = new MultiSearchTaskRequest();\n multiReq.searchRequests = [];\n const requestMetadata = DomainKeyValue.fromKeyValue(request.metadata);\n const productIds = request.productIds;\n productIds.forEach(productId => {\n const searchRequest = new SearchTaskRequest(request);\n searchRequest.metadata = new KeyValues(requestMetadata.set('ProductId', [productId], KeyValueTypes.STRING).toKeyValue());\n multiReq.searchRequests.push(searchRequest);\n });\n return this.queryApi.multiSearch(multiReq);\n }\n multiPartnerSearch(request) {\n const multiReq = new MultiSearchTaskRequest();\n multiReq.searchRequests = [];\n const requestMetadata = DomainKeyValue.fromKeyValue(request.metadata);\n const partnerIds = request.partnerIds;\n partnerIds.forEach(partnerId => {\n const searchRequest = new SearchTaskRequest(request);\n searchRequest.metadata = new KeyValues(requestMetadata.set('partner', [partnerId], KeyValueTypes.STRING).toKeyValue());\n multiReq.searchRequests.push(searchRequest);\n });\n return this.queryApi.multiSearch(multiReq);\n }\n /**\n * Gets the tasks matching the given identities\n * Since data is only soft deleted Getting a deleted Task will return the task, it is up to the client to ignore them\n */\n getMulti(request) {\n return this.queryApi.getMulti(request);\n }\n /**\n * Get a single Task Metric (aggregation query) from the Enum of available aggregations\n * @param metric - the metric you wish to request\n * @param filters - any filters to be applied\n */\n getMetric(metric, filters) {\n const request = {\n requests: [{\n metric,\n filters,\n name: 'metric'\n }]\n };\n return this.queryApi.getMetrics(request).pipe(map(r => {\n return r.responses[0].metricResponses;\n }));\n }\n /**\n * Issue a command to set values on the Data field of a Task, note the setdata command is not a clobber operation,\n * only keys specified on the request will be updated\n */\n setData(request) {\n return this.commandApi.setData(request).pipe(map(res => res.version));\n }\n /**\n * Issue a command to set values on the MetaData field of a Task, note the setMetadata command is not a clobber\n * operation, only keys specified on the request will be updated\n */\n setMetadata(request) {\n return this.commandApi.setMetadata(request).pipe(map(res => res.version));\n }\n setMultipleNotes(requests) {\n const multiReq = new SetMultiNotesRequest({\n notesRequests: requests\n });\n return this.commandApi.setMultiNotes(multiReq);\n }\n addConversation(request) {\n return this.commandApi.addConversation(request);\n }\n setType(request) {\n return this.commandApi.setType(request);\n }\n }\n TaskSdkService.ɵfac = function TaskSdkService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TaskSdkService)(i0.ɵɵinject(TaskCommandApiService), i0.ɵɵinject(TaskQueryApiService));\n };\n TaskSdkService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskSdkService,\n factory: TaskSdkService.ɵfac,\n providedIn: 'root'\n });\n return TaskSdkService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DomainKeyValue = /*#__PURE__*/(() => {\n class DomainKeyValue {\n /**\n * Convert a KeyValuesInterface to DomainKeyValue\n */\n static fromKeyValue(keyValues) {\n const result = new DomainKeyValue();\n const flattenedKeyValues = [];\n if (!keyValues) {\n keyValues = {\n keyValues: []\n };\n }\n if (!keyValues.keyValues) {\n return result;\n }\n for (const keyValue of keyValues.keyValues) {\n const key = keyValue.key;\n const flattenedKeyValue = {\n key: key,\n stringValues: [],\n boolValues: [],\n int64Values: [],\n doubleValues: [],\n timeValues: []\n };\n if (keyValue.values) {\n for (const value of keyValue.values) {\n if (value.stringValue !== undefined && value.stringValue !== null) {\n flattenedKeyValue.stringValues.push(value.stringValue);\n } else if (value.boolValue !== undefined && value.boolValue !== null) {\n flattenedKeyValue.boolValues.push(value.boolValue);\n } else if (value.int64Value !== undefined && value.int64Value !== null) {\n flattenedKeyValue.int64Values.push(value.int64Value);\n } else if (value.doubleValue !== undefined && value.doubleValue !== null) {\n flattenedKeyValue.doubleValues.push(value.doubleValue);\n } else if (value.timeValue !== undefined && value.timeValue !== null) {\n flattenedKeyValue.timeValues.push(value.timeValue);\n }\n }\n flattenedKeyValues.push(flattenedKeyValue);\n }\n }\n result.keyValues = flattenedKeyValues;\n return result;\n }\n constructor() {\n this.keyValues = [];\n }\n set(key, values, type) {\n if (values !== null && values.length > 0) {\n for (const keyValue of this.keyValues) {\n if (keyValue.key === key) {\n switch (type) {\n case KeyValueTypes.BOOL:\n keyValue.boolValues = values;\n break;\n case KeyValueTypes.DOUBLE:\n keyValue.doubleValues = values;\n break;\n case KeyValueTypes.INT64:\n keyValue.int64Values = values;\n break;\n case KeyValueTypes.STRING:\n keyValue.stringValues = values;\n break;\n case KeyValueTypes.TIME:\n keyValue.timeValues = values;\n break;\n }\n return this;\n }\n }\n const typeValues = {\n key: key,\n boolValues: [],\n stringValues: [],\n int64Values: [],\n doubleValues: [],\n timeValues: []\n };\n switch (type) {\n case KeyValueTypes.BOOL:\n typeValues.boolValues = values;\n break;\n case KeyValueTypes.DOUBLE:\n typeValues.doubleValues = values;\n break;\n case KeyValueTypes.INT64:\n typeValues.int64Values = values;\n break;\n case KeyValueTypes.STRING:\n typeValues.stringValues = values;\n break;\n case KeyValueTypes.TIME:\n typeValues.timeValues = values;\n break;\n }\n this.keyValues.push(typeValues);\n }\n return this;\n }\n get(key, type) {\n for (const keyValue of this.keyValues) {\n if (keyValue.key === key) {\n switch (type) {\n case KeyValueTypes.BOOL:\n return keyValue.boolValues;\n case KeyValueTypes.DOUBLE:\n return keyValue.doubleValues;\n case KeyValueTypes.INT64:\n return keyValue.int64Values;\n case KeyValueTypes.STRING:\n return keyValue.stringValues;\n case KeyValueTypes.TIME:\n return keyValue.timeValues;\n }\n }\n }\n return [];\n }\n /**\n * Convert current instance of DomainKeyValue to KeyValuesInterface that can be used for making SetData requests.\n * If a key has no values that key will not appear on the returned KeyValuesInterface\n */\n toKeyValue() {\n const keyValues = new KeyValues({\n keyValues: []\n });\n for (const flattenedKeyValue of this.keyValues) {\n const keyValue = new KeyValuesKeyValue({\n key: flattenedKeyValue.key,\n values: []\n });\n if (flattenedKeyValue.stringValues) {\n for (const val of flattenedKeyValue.stringValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n stringValue: val,\n type: KeyValueTypes.STRING\n }));\n }\n }\n if (flattenedKeyValue.boolValues) {\n for (const val of flattenedKeyValue.boolValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n boolValue: val,\n type: KeyValueTypes.BOOL\n }));\n }\n }\n if (flattenedKeyValue.int64Values) {\n for (const val of flattenedKeyValue.int64Values) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n int64Value: val,\n type: KeyValueTypes.INT64\n }));\n }\n }\n if (flattenedKeyValue.doubleValues) {\n for (const val of flattenedKeyValue.doubleValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n doubleValue: val,\n type: KeyValueTypes.DOUBLE\n }));\n }\n }\n if (flattenedKeyValue.timeValues) {\n for (const val of flattenedKeyValue.timeValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n timeValue: val,\n type: KeyValueTypes.TIME\n }));\n }\n }\n if (keyValue.values.length > 0) {\n keyValues.keyValues.push(keyValue);\n }\n }\n return keyValues;\n }\n }\n DomainKeyValue.ɵfac = function DomainKeyValue_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DomainKeyValue)();\n };\n DomainKeyValue.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainKeyValue,\n factory: DomainKeyValue.ɵfac,\n providedIn: 'root'\n });\n return DomainKeyValue;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB\nconst SUPPORTED_DOC_FILE_TYPES = ['application/pdf', 'application/vnd.ms-excel', 'application/vnd.ms-excel.addin.macroEnabled.12', 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', 'application/vnd.ms-excel.sheet.macroEnabled.12', 'application/vnd.ms-excel.template.macroEnabled.12', 'application/vnd.ms-powerpoint', 'application/vnd.ms-powerpoint.addin.macroEnabled.12', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', 'application/vnd.ms-powerpoint.slide.macroEnabled.12', 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', 'application/vnd.ms-powerpoint.template.macroEnabled.12', 'application/msword', 'application/vnd.ms-word.document.macroEnabled.12', 'application/vnd.ms-word.template.macroEnabled.12', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.openxmlformats-officedocument.presentationml.slide', 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', 'application/vnd.openxmlformats-officedocument.presentationml.template', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'];\nconst AttachmentServiceDataInterfaceToken = new InjectionToken('task-sdk AttachmentServiceDataInterfaceToken');\nlet TaskAttachmentService = /*#__PURE__*/(() => {\n class TaskAttachmentService {\n constructor(serviceData, http, taskService, hostService) {\n this.serviceData = serviceData;\n this.http = http;\n this.taskService = taskService;\n this.hostService = hostService;\n serviceData.pipe(filter(data => !!data.partnerId), take(1)).subscribe(data => {\n this.partnerId = data.partnerId;\n });\n }\n uploadFile(file) {\n if (!this.isFileValid(file)) {\n return throwError('Invalid file type or size');\n }\n return this.generatePutUrl(file.type, file.name).pipe(switchMap(generatePutResponse => {\n return this.http.post(this.hostService.hostWithScheme + '/task-attachment/upload', file, {\n headers: {\n 'Content-Type': file.type\n },\n observe: 'body',\n responseType: 'blob',\n withCredentials: true,\n params: {\n putUrl: generatePutResponse.generatedUrl,\n partnerId: this.partnerId\n }\n }).pipe(map(() => {\n return {\n name: file.name,\n url: generatePutResponse.shareableUrl\n };\n }));\n }));\n }\n getArmHost() {\n switch (environment) {\n case 'demo':\n return 'https://arm-demo.appspot.com/';\n case 'prod':\n case 'production':\n return 'https://task-manager.biz/';\n default:\n return 'https://arm-demo.appspot.com/';\n }\n }\n isFileValid(file) {\n if (file.size > MAX_FILE_SIZE) {\n return false;\n }\n const group = file.type.split('/')[0];\n return group === 'image' || group === 'video' || SUPPORTED_DOC_FILE_TYPES.includes(file.type);\n }\n getSecretFromURL(url) {\n // URL is formatted as https://[host]/[partnerId]/tasks/attachment/[sharedSecret]/[fileName]\n return url.split('/')[6];\n }\n getFileNameFromURL(url) {\n // URL is formatted as https://[host]/[partnerId]/tasks/attachment/[sharedSecret]/[fileName]\n return url.split('/')[7];\n }\n addAttachment(identity, attachment) {\n return this.taskService.addAttachment(identity.namespace, identity.parentPath, identity.taskId, attachment);\n }\n removeAttachment(identity, attachment) {\n return forkJoin([this.taskService.removeAttachment(identity.namespace, identity.parentPath, identity.taskId, attachment), this.generateDeleteUrl(this.getSecretFromURL(attachment.url)).pipe(switchMap(attachmentAccessResponse => {\n return this.http.delete(attachmentAccessResponse.generatedUrl);\n }))]).pipe(retry(1), map(([version, _]) => {\n return version;\n }));\n }\n generatePutUrl(type, name) {\n const host = this.getArmHost() + 'internalApi/v3/storage/generate/put-url/';\n const body = {\n partnerId: this.partnerId,\n contentType: type,\n fileName: name\n };\n return this.http.post(host, body, {\n withCredentials: true\n }).pipe(map(response => response.data));\n }\n generateGetUrl(secret) {\n return this.generateAccessUrl('get', secret);\n }\n generateDeleteUrl(secret) {\n return this.generateAccessUrl('delete', secret);\n }\n generateAccessUrl(method, secret) {\n const host = this.getArmHost() + 'internalApi/v3/storage/generate/' + method + '-url/';\n const body = {\n partnerId: this.partnerId,\n sharedSecret: secret\n };\n return this.http.post(host, body, {\n withCredentials: true\n }).pipe(map(response => response.data));\n }\n }\n TaskAttachmentService.ɵfac = function TaskAttachmentService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TaskAttachmentService)(i0.ɵɵinject(AttachmentServiceDataInterfaceToken), i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(TaskSdkService), i0.ɵɵinject(HostService));\n };\n TaskAttachmentService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskAttachmentService,\n factory: TaskAttachmentService.ɵfac,\n providedIn: 'root'\n });\n return TaskAttachmentService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, AccessPermissions, AddAssigneeRequest, AddAttachmentRequest, AddConversationRequest, AddCustomTagsRequest, AddHistoryRequest, AddMultiAssigneeRequest, AddMultipleSubtasksRequest, AddSubtaskRequest, AddTagsRequest, Attachment, AttachmentServiceDataInterfaceToken, CommandResponse, Conversation, CountMetricResponse, DeleteMultiTaskRequest, DeleteTaskRequest, DomainKeyValue, GenerateTaskRequest, GetMetricsFilters, GetMetricsRequest, GetMetricsRequestMetricRequest, GetMetricsResponse, GetTaskRequest, GetTaskResponse, GetTasksRequest, GetTasksResponse, GetTreeRequest, GetTreeResponse, GoType, GroupedMetadata, GroupedTags, History, HostService, KeyValueField, KeyValueTypes, KeyValues, KeyValuesKeyValue, KeyValuesKeyValueValue, Metric, MetricResponses, MetricResponsesMetricResponse, MultiCommandRequest, MultiCommandRequestEvent, MultiCommandResponses, MultiCommandResponsesMultiCommandResponse, MultiSearchTaskRequest, Persona, PersonaType, RangeField, RemoveAssigneeRequest, RemoveAttachmentRequest, RemoveCustomTagsRequest, RemoveMultiAssigneeRequest, RemoveTagsRequest, ReorderSubtaskRequest, RestoreMultiTaskRequest, RestoreTaskRequest, SearchTaskRequest, SearchTaskResponse, SetDescriptionRequest, SetDueDateRequest, SetKeyValue, SetKeyValuesRequest, SetMultiDueDateRequest, SetMultiNotesRequest, SetMultiStatusRequest, SetNotesRequest, SetStatusRequest, SetTitleRequest, SetTypeRequest, Sort, SortDirection, Status, TagGroup, Task, TaskAttachmentService, TaskCommandApiService, TaskIdentity, TaskQueryApiService, TaskSdkService, TaskTree, ValueMetricResponse, buildNamespace, buildParentPath, newGuid };\n","{\n \"PROJECT_TRACKER\": {\n \"ASK_A_QUESTION\": \"Ask a question\",\n \"COMPLETED_ON\": \"Completed on {{date}}\",\n \"IN_PROGRESS\": \"In Progress\",\n \"ESTIMATED_COMPLETION\": \"Estimated completion {{date}}\",\n \"WAITING_ON_CUSTOMER\": \"Waiting on Customer\",\n \"YOU_APPROVED\": \"You approved {{title}}\",\n \"YOU_REQUESTED_REVISIONS\": \"You requested revisions for {{title}} with the message:\",\n \"FULFILLMENT_TEAM_MESSAGE\": \"Your fulfillment team sent a message:\",\n \"GENERIC_MESSAGE\": \"A message was sent:\",\n \"REVISIONS\": \"Revisions\",\n \"FILE_UPLOAD_PROMPT\": \"Attach a file...\",\n \"PROVIDE_FEEDBACK\": \"Provide Feedback\",\n \"APPROVE\": \"Approve task\",\n \"CANCEL\": \"Cancel\",\n \"SEND_FEEDBACK\": \"Send feedback\",\n \"UNDO\": \"Undo\",\n \"REOPEN_TASK\": \"Re-open task\",\n \"FILES\": \"Files\",\n \"FILE_DISCLAIMER\": \"Max file size 10MB. Max upload limit 10 files. Only images, videos, and documents are supported\",\n \"SUCCESS\": {\n \"FILE_UPLOAD\": \"File successfully uploaded\",\n \"FILE_UPLOAD_UNDO\": \"File upload successfully undone\",\n \"FILE_REMOVE\": \"File successfully removed\",\n \"FILE_REMOVE_UNDO\": \"File removal successfully undone\",\n \"APPROVE_TASK\": \"Task approved\",\n \"APPROVE_TASK_UNDO\": \"Task approval successfully undone\",\n \"FEEDBACK_PROVIDED\": \"Feedback provided\"\n },\n \"ERROR\": {\n \"ATTACHMENT\": \"Attachment type is not supported or exceeds the maximum file size. Only images, videos, and pdfs under 10MB are accepted\",\n \"FILE_UPLOAD\": \"There was a problem uploading the file\",\n \"FILE_UPLOAD_UNDO\": \"There was a problem undoing file upload\",\n \"FAIL_TO_ADD\": \"Failed to add attachment\",\n \"FILE_REMOVE\": \"There was a problem removing the file\",\n \"FILE_REMOVE_UNDO\": \"There was a problem undoing file removal\",\n \"APPROVE_TASK\": \"There was an error approving the task\",\n \"APPROVE_TASK_UNDO\": \"There was an error undoing task approval\",\n \"FEEDBACK_PROVIDED\": \"There was a problem publishing the feedback\"\n },\n \"PERCENTAGE_DONE\": \"{{percentage}}% done\",\n \"FULFILLMENT\": \"Fulfillment\",\n \"TASKS_COMPLETED\": \"{{numberTasks}} tasks completed\",\n \"UPLOADED_BY_YOU\": \"Uploaded by you\",\n \"UPLOADED_BY_FULFILLMENT_TEAM\": \"Uploaded by fulfillment team\"\n },\n \"ASK_QUESTION\": {\n \"TITLE\": \"Ask us a question about your ordered service\",\n \"TEXTAREA_TITLE\": \"Compose message\",\n \"SEND_MESSAGE\": \"Send message\",\n \"ASK_QUESTION_SUCCESS\": \"Successfully asked question\",\n \"ASK_QUESTION_ERROR\": \"There was an error asking your question\"\n },\n \"COMMENT\": {\n \"TITLE\": \"Comments\",\n \"NEW_COMMENT\": {\n \"LABEL\": \"Start typing to ask a question\",\n \"ACTION\": \"Submit\",\n \"SUBMIT_SUCCESS\": \"Successfully submitted question\",\n \"SUBMIT_ERROR\": \"There was an error submitting your question\",\n \"MAKE_PUBLIC\": \"Make comment public\"\n },\n \"FROM_STEP\": \"From step\",\n \"FULFILLMENT_AGENT\": \"Fulfillment Agent\",\n \"ERROR_LOADING_COMMENT\": \"Error loading details\",\n \"FROM\": \"from\",\n \"PUBLIC\": \"Public\"\n },\n \"FULFILLMENT_TRACKER\": {\n \"PROGRESS\": \"{{completed}}/{{total}} Tasks completed\",\n \"ASK_A_QUESTION\": \"Ask a question\"\n },\n \"SEND_MESSAGE_DIALOG\": {\n \"CHOOSE_RECIPIENT\": \"Choose recipient\",\n \"MESSAGE\": \"Message\",\n \"LABELS\": {\n \"VENDOR\": \"Vendor\",\n \"PARTNER\": \"Partner\",\n \"ACCOUNT\": \"Account\",\n \"CUSTOMER\": \"Customer\",\n \"INACTIVE\": \"Inactive\",\n \"ACCOUNT_DELETED\": \"Account Deleted\"\n }\n },\n \"COMMON\": {\n \"DUE\": {\n \"OVERDUE\": \"Overdue\",\n \"DUE_SOON\": \"Due Soon\"\n },\n \"STATUS\": {\n \"OPEN\": \"Open\",\n \"IN_PROGRESS\": \"In Progress\",\n \"WAITING_ON_CUSTOMER\": \"Waiting on Customer\",\n \"COMPLETED\": \"Completed\"\n }\n },\n \"PROJECT_LIST_CARD\": {\n \"TITLE\": \"Projects\",\n \"NO_PROJECTS\": \"There are no projects.\",\n \"VIEW_ALL\": \"View all\",\n \"DUE_DATE\": \"Due {{dueDate}}\",\n \"COMPLETED_DATE\": \"Completed {{completedDate}}\",\n \"INBOX_PREFILLED_MESSAGE\": \"Re: {{taskType}} - {{title}} ({{taskId}}) | {{companyName}} ({{accountGroupId}})\"\n }\n}\n","import { PersonaType } from '@vendasta/iam';\n\nexport const MILESTONE_IN_PROGRESS = 'In Progress';\nexport const MILESTONE_COMPLETED = 'Completed';\nexport const MILESTONE_WAITING_ON_CUSTOMER = 'Waiting on Customer';\nexport const MILESTONE_APPROVED_TAG = 'Approved';\nexport const MILESTONE_FEEDBACK_TAG = 'Revisions requested';\nexport const PRODUCT_ID_METADATA_KEY = 'ProductId';\nexport const ORDER_ID_METADATA_KEY = 'OrderId';\nexport const FULFILLMENT_ORDER_ID_METADATA_KEY = 'fulfillment_order_id';\nexport const PROJECT_TYPE = 'Project';\nexport const VISIBLE_TAG = 'BCVisible';\nexport const DEPENDENT_TAG = 'Dependent';\nexport const TASK_DATA_FEEDBACK_KEY = 'EnableSmbFeedback';\nexport const MAX_COMMENT_LENGTH = 2000;\n\n// feature flag list used to fetch all features flags on project tracker\nexport const FEATURE_FLAG_LIST = [];\n\nexport const PROJECTS_ICON_GREEN = '#3C9A63';\nexport const DEFAULT_PAGE_SIZE = 4;\nexport const ACCESS = [PersonaType.digital_agent]; //It wasnt export before\n\n// FulfillingPartnerId metadata key\nexport const FULFILLING_PARTNER_ID = 'FulfillingPartnerId'; //It wasnt export before\n\n// partner metadata key\nexport const PARTNER = 'partner';\n\n// account-group metadata key\nexport const ACCOUNT_GROUP = 'account-group';\n\n// task Types\nexport const GENERIC = 'Generic';\nexport const CLIENT_REVIEW = 'ClientReview';\nexport const SCHEDULE_SOCIAL_POSTS = 'ScheduleSocialPosts';\n\nexport const ONBOARDING = 'Onboarding';\nexport const REVIEW = 'Review';\nexport const SOCIAL_POST = 'SocialPost';\nexport const SOCIALIZE = 'Socialize';\nexport const LISTINGS = 'Visibility';\nexport const MENTIONS = 'Mention';\nexport const MEETING = 'Meeting';\nexport const GOOGLE_QA = 'QuestionAndAnswer';\n\nexport const DEFAULT_TASK_LIST_TYPES = [\n REVIEW,\n SOCIAL_POST,\n SOCIALIZE,\n ONBOARDING,\n GENERIC,\n CLIENT_REVIEW,\n SCHEDULE_SOCIAL_POSTS,\n MEETING,\n GOOGLE_QA,\n LISTINGS,\n MENTIONS,\n];\n\nexport enum TaskStatus {\n OPEN = 'Open',\n WAITING_ON_CUSTOMER = 'Waiting on Customer',\n IN_PROGRESS = 'In Progress',\n COMPLETED = 'Completed',\n}\n\nexport enum TaskType {\n CUSTOM = 'Custom',\n ONBOARDING = 'Onboarding',\n REVIEW = 'Review',\n SOCIAL_POST = 'SocialPost',\n SOCIALIZE = 'Socialize',\n LISTING = 'Visibility',\n MENTION = 'Mention',\n GOOGLE_QA = 'QuestionAndAnswer',\n MEETING = 'Meeting',\n GENERIC = 'Generic',\n PROJECT = 'Project',\n SOCIAL_CALENDAR = 'Social Calendar',\n NON_AGGREGATE = 'NonAggregate', // Special case for the task list icon, not a real task type\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, WritableSignal, signal } from '@angular/core';\nimport { FileInfo, GalaxyUploaderService, UploadResponse } from '@vendasta/galaxy/uploader';\nimport { TaskAttachmentService } from '@vendasta/task';\nimport { Observable, map } from 'rxjs';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n@Injectable({ providedIn: 'root' })\nexport class SubtasksUploaderService extends GalaxyUploaderService {\n private _loading: WritableSignal = signal(false);\n public readonly loading$ = toObservable(this._loading);\n\n constructor(\n private httpClient: HttpClient,\n private taskAttachmentService: TaskAttachmentService,\n ) {\n super(httpClient);\n }\n\n buildRequest(fileInfo: FileInfo): Observable {\n return this.taskAttachmentService\n .uploadFile(fileInfo.file)\n .pipe(map((resp) => ({ data: { url: resp.url } }) as UploadResponse));\n }\n}\n","import { Component, EventEmitter, Input, Output, WritableSignal, signal } from '@angular/core';\nimport { Subtask } from '../../../shared/interfaces';\nimport {\n FileInfo,\n FileUploadError,\n GALAXY_UPLOADER_SERVICE_TOKEN,\n GalaxyUploaderModule,\n} from '@vendasta/galaxy/uploader';\nimport { SubtasksUploaderService } from './subtasks-uploader.service';\nimport { TaskAttachmentService, TaskIdentity, TaskSdkService } from '@vendasta/task';\nimport { TaskIdentityInterface } from '@vendasta/task-manager';\nimport { retry, take } from 'rxjs';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\n\n@Component({\n selector: 'project-tracker-subtasks-uploader',\n imports: [GalaxyUploaderModule, GalaxyLoadingSpinnerModule],\n templateUrl: './subtasks-uploader.component.html',\n providers: [{ provide: GALAXY_UPLOADER_SERVICE_TOKEN, useClass: SubtasksUploaderService }],\n})\nexport class SubtasksUploaderComponent {\n @Input() subtask: Subtask;\n @Output() fileUploaded: EventEmitter = new EventEmitter();\n @Output() fileUploadError: EventEmitter = new EventEmitter();\n\n TEN_MB = 10 * 1024 * 1024;\n loading: WritableSignal = signal(false);\n\n constructor(\n private attachmentService: TaskAttachmentService,\n private snackbarService: SnackbarService,\n ) {}\n\n handleFileUploaded(fileInfo: FileInfo): void {\n this.loading.set(true);\n const namespace = TaskSdkService.buildAccountGroupNamespace(this.subtask.partnerId, this.subtask.accountGroupId);\n // subtaskID is in format \"// \"\n const subtaskIdParts: string[] = this.subtask.subtaskId.split('/');\n if (subtaskIdParts?.length !== 3) {\n this.fileUploadError.emit({\n fileInfo,\n error: new Error('Invalid subtaskId'),\n });\n }\n const parentPath = '/' + subtaskIdParts[1] + '/';\n const taskId = subtaskIdParts[2];\n const identity: TaskIdentityInterface = {\n namespace,\n parentPath,\n taskId,\n };\n\n this.attachmentService\n .addAttachment(new TaskIdentity(identity), {\n name: fileInfo.name,\n url: fileInfo.url,\n uploadingPersonaType: 'smb',\n })\n .pipe(take(1), retry({ count: 3, delay: 1000 }))\n .subscribe({\n next: () => {\n this.snackbarService.openSuccessSnack('ATTACHMENTS.ADD_SUCCESS');\n this.fileUploaded.emit(fileInfo);\n this.loading.set(false);\n },\n error: (error) => {\n this.fileUploadError.emit(error);\n this.loading.set(false);\n },\n });\n }\n\n handleFileUploadErrored(error: FileUploadError): void {\n this.fileUploadError.emit(error);\n }\n}\n","@if (loading() === false) {\n \n} @else {\n \n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AttachmentInterface } from '../../shared/interfaces';\nimport { PersonaType as IAMPersonaType } from '@vendasta/iam';\nimport { PersonaType } from '@vendasta/task-manager';\n\n@Pipe({\n name: 'uploadedBy',\n standalone: true,\n})\nexport class UploadedByPipe implements PipeTransform {\n transform(attachment: AttachmentInterface): string {\n return attachment?.uploadingPersonaType === IAMPersonaType.smb\n ? 'PROJECT_TRACKER.UPLOADED_BY_YOU'\n : 'PROJECT_TRACKER.UPLOADED_BY_FULFILLMENT_TEAM';\n }\n}\n\n@Pipe({\n name: 'canDeleteFile',\n standalone: true,\n})\nexport class CanDeleteFilePipe implements PipeTransform {\n transform(attachment: AttachmentInterface, userPersona: string): boolean {\n return attachment?.filePermissions?.delete?.includes(convertUserPersona(userPersona));\n }\n}\n\n@Pipe({\n name: 'filterAndSortFulfillmentFiles',\n standalone: true,\n})\nexport class FilterAndSortFulfillmentFiles implements PipeTransform {\n transform(attachments: AttachmentInterface[], userPersona: string): AttachmentInterface[] {\n userPersona = convertUserPersona(userPersona);\n return (\n attachments\n ?.filter((attachment) => attachment?.filePermissions?.read?.includes(userPersona))\n ?.sort(sortSmbFilesToEnd) || []\n );\n }\n}\n\nfunction sortSmbFilesToEnd(a: AttachmentInterface, b: AttachmentInterface): number {\n if (a.uploadingPersonaType === 'smb' && b.uploadingPersonaType !== 'smb') {\n return 1; // Move \"smb\" uploadingPersonaType to the end\n }\n if (a.uploadingPersonaType !== 'smb' && b.uploadingPersonaType === 'smb') {\n return -1; // Move \"smb\" uploadingPersonaType to the end\n }\n return 0; // Keep the order unchanged if both have the same uploadingPersonaType value\n}\n\nexport function convertUserPersona(userPersona: string | PersonaType): IAMPersonaType {\n if (typeof userPersona === 'string') {\n return (\n [\n IAMPersonaType.smb,\n IAMPersonaType.digital_agent,\n IAMPersonaType.sales_person,\n IAMPersonaType.partner,\n IAMPersonaType.crm_role,\n ].find((persona) => persona.toString() === userPersona) || IAMPersonaType.smb\n );\n }\n switch (userPersona) {\n case PersonaType.PERSONA_TYPE_SMB:\n return IAMPersonaType.smb;\n case PersonaType.PERSONA_TYPE_DIGITAL_AGENT:\n return IAMPersonaType.digital_agent;\n case PersonaType.PERSONA_TYPE_SALES_PERSON:\n return IAMPersonaType.sales_person;\n case PersonaType.PERSONA_TYPE_PARTNER:\n return IAMPersonaType.partner;\n default:\n return IAMPersonaType.smb;\n }\n}\n","import { Component, Inject, Input, OnInit, WritableSignal, signal } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { PersonaType, TaskManagerSdkService } from '@vendasta/task-manager';\nimport { EMPTY, Observable } from 'rxjs';\nimport { catchError, finalize, map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { ProjectTrackerServiceInterface, ProjectTrackerServiceInterfaceToken } from '../../project-tracker-interface';\nimport { AttachmentInterface, Subtask } from '../../shared/interfaces';\nimport { FileInfo, FileUploadError } from '@vendasta/galaxy/uploader';\nimport { TaskStatus } from '../../shared/constants';\nimport { TaskAttachmentService, TaskIdentity, TaskSdkService } from '@vendasta/task';\n\ntype LoadingState = { index: number; loading: boolean; subtaskId?: string } | undefined;\n\n@Component({\n selector: 'project-tracker-fulfillment-subtasks',\n templateUrl: './fulfillment-subtasks.component.html',\n styleUrls: ['./fulfillment-subtasks.component.scss'],\n standalone: false,\n})\nexport class FulfillmentSubtasksComponent implements OnInit {\n @Input() subtasks: Subtask[] = [];\n COMPLETED_STATUS = TaskStatus.COMPLETED;\n PersonaType = PersonaType;\n TEN_MB = 10 * 1024 * 1024;\n attachmentLoading: WritableSignal = signal(undefined);\n deleteAttachmentLoading: WritableSignal = signal(undefined);\n feedbackSaving: WritableSignal = signal(undefined);\n approveSaving: WritableSignal = signal(undefined);\n undoApproveSaving: WritableSignal = signal(undefined);\n userPersonaAsString$: Observable;\n\n constructor(\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n private snackbarService: SnackbarService,\n private fb: UntypedFormBuilder,\n private translateService: TranslateService,\n private attachmentService: TaskAttachmentService,\n private taskManagerSdkService: TaskManagerSdkService,\n ) {}\n\n ngOnInit(): void {\n this.subtasks\n ?.map((subtask: Subtask) => {\n if (subtask?.feedback && !subtask?.conversations) {\n return {\n ...subtask,\n conversations: subtask.feedback.map((message) => ({ message })),\n };\n }\n return subtask;\n })\n ?.forEach((subtask: Subtask, index: number) => {\n const feedbackControlName = this.getFeedbackControlName(index);\n const controls = {};\n controls[feedbackControlName] = '';\n subtask.form = this.fb.group(controls);\n });\n this.userPersonaAsString$ = this.projectTrackerService.activeUser$.pipe(\n map((user) => user?.personaType?.toString()),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n\n getFeedbackControlName(index: number): string {\n return 'feedback' + index;\n }\n\n onFileError(): void {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FAIL_TO_ADD');\n }\n\n approveTask(index: number): void {\n this.approveSaving.set({ index, loading: true });\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = true;\n this.projectTrackerService\n .approveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(\n take(1),\n tap(() => this.approveSaving.set(undefined)),\n switchMap(() =>\n this.snackbarService\n .openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK', {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoApproveTask(subtask)),\n catchError(() => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK');\n subtask.approved = false;\n this.approveSaving.set(undefined);\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n undoApproveTask(subtask: Subtask): void {\n this.undoApproveSaving.set({ index: this.subtasks.indexOf(subtask), loading: true });\n subtask.approved = false;\n this.projectTrackerService\n .undoApproveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK_UNDO');\n this.undoApproveSaving.set(undefined);\n },\n error: () => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK_UNDO');\n subtask.approved = true;\n this.undoApproveSaving.set(undefined);\n },\n });\n }\n\n saveFeedback(index: number): void {\n this.feedbackSaving.set({ index, loading: true });\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = false;\n if (!subtask?.conversations?.length) {\n subtask.conversations = [];\n }\n const feedback = subtask.form.get(this.getFeedbackControlName(index)).value;\n\n this.projectTrackerService\n .sendFeedback(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, feedback)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FEEDBACK_PROVIDED');\n subtask.form.get(this.getFeedbackControlName(index)).patchValue('');\n this.feedbackSaving.set(undefined);\n subtask.conversations.push({\n message: feedback,\n sendTo: 'Digital Agent',\n source: 'smb',\n created: new Date(),\n isPublic: true,\n });\n },\n error: () => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FEEDBACK_PROVIDED');\n subtask.conversations.pop();\n this.feedbackSaving.set(undefined);\n },\n });\n }\n\n handleFileDeleted(subtask: Subtask, attachmentToRemove: AttachmentInterface, indexSetLoading: number): void {\n this.deleteAttachmentLoading.set({ index: indexSetLoading, loading: true });\n this.projectTrackerService\n .removeFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachmentToRemove)\n .pipe(take(1))\n .subscribe({\n next: () => {\n const index = subtask.files.findIndex((file) => file === attachmentToRemove);\n if (index !== -1) {\n subtask.files.splice(index, 1);\n subtask.files = [...subtask.files];\n }\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_REMOVE');\n this.deleteAttachmentLoading.set(undefined);\n },\n error: () => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_REMOVE');\n this.deleteAttachmentLoading.set(undefined);\n },\n });\n }\n\n handleFileUploaded(fileInfo: FileInfo, subtask: Subtask): void {\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_UPLOAD');\n this.userPersonaAsString$.pipe(take(1)).subscribe((userPersona) => {\n if (!subtask.files) subtask.files = [];\n subtask.files = [\n ...subtask.files,\n {\n name: fileInfo?.name,\n url: fileInfo?.url,\n contentType: fileInfo?.file?.type,\n filePermissions: {\n read: [userPersona],\n delete: [userPersona],\n write: [userPersona],\n },\n uploadingPersonaType: userPersona,\n },\n ];\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n handleFileUploadErrored(error: FileUploadError): void {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FAIL_TO_ADD');\n }\n\n handleFileNameClicked(file: AttachmentInterface, subtask: Subtask, index: number): void {\n this.attachmentLoading.set({ index: index, subtaskId: subtask.subtaskId, loading: true });\n const secret = this.attachmentService.getSecretFromURL(file.url);\n\n const namespace = TaskSdkService.buildAccountGroupNamespace(subtask.partnerId, subtask.accountGroupId);\n // subtaskID is in format \"// \"\n const subtaskIdParts: string[] = subtask.subtaskId.split('/');\n if (subtaskIdParts?.length !== 3) {\n this.snackbarService.openErrorSnack('There was an error downloading the file.');\n return;\n }\n const parentPath = '/' + subtaskIdParts[1] + '/';\n const taskId = subtaskIdParts[2];\n\n this.taskManagerSdkService\n .getAttachmentUrl(new TaskIdentity({ namespace, parentPath, taskId }), secret)\n .pipe(\n map((resp) => resp?.url),\n take(1),\n finalize(() => this.attachmentLoading.set({ index: index, subtaskId: '', loading: false })),\n )\n .subscribe((generatedUrl) => {\n try {\n const anchor = document.createElement('a');\n anchor.href = generatedUrl;\n anchor.download = file.name;\n anchor.target = '_blank';\n anchor.click();\n window.URL.revokeObjectURL(generatedUrl);\n } catch (e) {\n this.snackbarService.openErrorSnack('There was an error downloading the file.');\n }\n });\n }\n}\n","\n
\n
\n
\n
\n \n check\n \n \n \n {{ (i + 1).toString() }}\n \n \n
\n
\n {{ subtask.title }}\n
\n
\n
\n
\n
\n
\n {{ 'PROJECT_TRACKER.COMPLETED_ON' | translate: { date: (subtask.completionDate | date: 'longDate') } }}\n
\n
\n \n {{ 'PROJECT_TRACKER.IN_PROGRESS' | translate }}\n \n -\n \n
\n
\n {{ 'PROJECT_TRACKER.WAITING_ON_CUSTOMER' | translate }}\n
\n
\n \n
\n
0\">\n
\n {{ subtask.notes }}\n
\n
\n \n \n {{ 'PROJECT_TRACKER.YOU_REQUESTED_REVISIONS' | translate: { title: subtask.title } }}\n
\n
\n {{ 'PROJECT_TRACKER.FULFILLMENT_TEAM_MESSAGE' | translate }}\n
\n \n {{ 'PROJECT_TRACKER.GENERIC_MESSAGE' | translate }}\n
\n
\n \n
\n
\n\n @if (subtask.feedbackEnabled) {\n
\n
\n @if (subtask.status !== COMPLETED_STATUS) {\n \n \n {{ 'PROJECT_TRACKER.PROVIDE_FEEDBACK' | translate }}\n \n \n \n
\n \n \n {{ 'PROJECT_TRACKER.SEND_FEEDBACK' | translate }}\n \n \n
\n }\n\n
{{ 'PROJECT_TRACKER.FILES' | translate }}
\n
{{ 'PROJECT_TRACKER.FILE_DISCLAIMER' | translate }}
\n\n @if (subtask.files?.length > 0) {\n \n @for (\n file of subtask.files | filterAndSortFulfillmentFiles: (userPersonaAsString$ | async);\n track file\n ) {\n \n
\n
\n @if (\n attachmentLoading()?.loading &&\n attachmentLoading()?.index === $index &&\n attachmentLoading()?.subtaskId === subtask.subtaskId\n ) {\n \n } @else {\n attachment\n }\n {{\n file.name\n }}\n
\n
\n {{ file | uploadedBy | translate }}\n @if (file | canDeleteFile: (userPersonaAsString$ | async)) {\n @if (deleteAttachmentLoading()?.loading && deleteAttachmentLoading()?.index === $index) {\n \n } @else {\n \n }\n } @else {\n
\n }\n
\n
\n
\n }\n
\n }\n\n @if (\n ((subtask.files | filterAndSortFulfillmentFiles: (userPersonaAsString$ | async))?.length || 0) < 10\n ) {\n \n }\n \n @if (subtask.approved) {\n
\n
\n check\n {{ 'PROJECT_TRACKER.YOU_APPROVED' | translate: { title: subtask.title } }}\n
\n @if (subtask.status !== COMPLETED_STATUS) {\n \n }\n
\n }\n
\n } @else {\n \n @if (subtask.files?.length > 0) {\n
\n
{{ 'PROJECT_TRACKER.FILES' | translate }}
\n \n @for (\n file of subtask.files | filterAndSortFulfillmentFiles: (userPersonaAsString$ | async);\n track file\n ) {\n \n
\n
\n @if (\n attachmentLoading()?.loading &&\n attachmentLoading()?.index === $index &&\n attachmentLoading()?.subtaskId === subtask.subtaskId\n ) {\n \n } @else {\n attachment\n }\n {{ file.name }}\n
\n
\n {{ file | uploadedBy | translate }}\n
\n
\n
\n
\n }\n
\n
\n }\n }\n\n
\n
\n \n \n {{ 'PROJECT_TRACKER.APPROVE' | translate }}\n \n \n
\n
\n
\n \n \n
\n\n\n \n {{ 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate: { date: (dueDate | date: 'longDate') } }}\n \n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TaskIdentityInterface } from '@vendasta/task';\nimport { AskQuestionInfo, ProductInfo, Subtask } from '../shared/interfaces';\nimport { MILESTONE_COMPLETED } from '../shared/constants';\n\ninterface ProjectProgress {\n completed: number;\n total: number;\n progress: number;\n}\n\n@Component({\n selector: 'project-tracker-fulfillment-tracker',\n templateUrl: './fulfillment-tracker.component.html',\n styleUrls: ['./fulfillment-tracker.component.scss'],\n standalone: false,\n})\nexport class FulfillmentTrackerComponent implements OnInit {\n @Input() product: ProductInfo;\n @Input() projectTitle;\n @Input() projectIdentity: TaskIdentityInterface;\n @Input() subtasks: Subtask[] = [];\n @Input() hideAskQuestion = false;\n @Input() expanded = false;\n @Output() askQuestionClicked: EventEmitter = new EventEmitter();\n projectProgress: ProjectProgress;\n\n ngOnInit(): void {\n const completed: number = this.subtasks?.filter((subtask) => subtask.status === MILESTONE_COMPLETED)?.length || 0;\n const total: number = this.subtasks?.length || 0;\n const progress: number = total > 0 ? Math.round((completed / total) * 100) : 0;\n this.projectProgress = { completed, total, progress };\n }\n\n handleAskQuestionClicked(event?: MouseEvent): void {\n this.askQuestionClicked.emit({\n projectIdentity: this.projectIdentity,\n subtasks: this.subtasks,\n });\n event?.preventDefault();\n event?.stopPropagation();\n }\n}\n","\n \n \n
\n
\n
\n \n \n \n {{ projectTitle }}\n
\n
\n
\n
\n
\n {{\n 'FULFILLMENT_TRACKER.PROGRESS'\n | translate : { completed: projectProgress.completed, total: projectProgress.total }\n }}\n
\n
{{ projectProgress.progress }}%
\n
\n \n
\n
\n
\n comment\n {{ 'FULFILLMENT_TRACKER.ASK_A_QUESTION' | translate }}\n
\n
\n
\n
\n\n \n
\n
\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'project-comments-input, [project-comments-input], [projectCommentsInput]',\n standalone: false,\n})\nexport class ProjectCommentsInputDirective {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'nameInitials',\n standalone: false,\n})\nexport class NameInitialsPipe implements PipeTransform {\n constructor(private translateService: TranslateService) {}\n\n transform(userName: string): string {\n const name = userName?.trim() || '';\n const names = name.split(' ');\n if (names.length > 1) {\n // uses the full name to create initials\n return [names[0], names[names.length - 1]].join(' ');\n } else if (name.length > 1) {\n // uses the first and second letter of the name to create initials\n return name[0] + ' ' + name[1];\n } else if (name.length === 1) {\n // uses the given name to create initials\n return name;\n } else {\n // no name provided, uses `Fulfillment Agent`\n return this.translateService.instant('COMMENT.FULFILLMENT_AGENT');\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WidthPreset } from '@vendasta/galaxy/page';\nimport { CommentInterface, CommentType } from '@vendasta/task-manager';\nimport { BehaviorSubject } from 'rxjs';\nimport { MAX_COMMENT_LENGTH } from '../shared/constants';\nimport { AddCommentEvent, ExtendedCommentInterface, ProjectTrackerUserDetails } from '../shared/interfaces';\nimport { ProjectCommentsInputDirective } from './project-comments.directives';\n\nexport interface CommentViewConfig {\n showTitle?: boolean;\n showCloseButton?: boolean;\n /**\n * When true, the comment input box will be shown above the comment list, and they will be sorted in reverse\n * chronological order. When false, the comment input box will be shown below the comment list, and they will be\n * sorted in chronological order.\n */\n showCommentInputAtTop?: boolean;\n /**\n * Whether or not to show the avatar icon of the user next to the input box\n */\n showCommenterIcon?: boolean;\n}\n\n@Component({\n selector: 'project-tracker-project-comments',\n templateUrl: './project-comments.component.html',\n styleUrls: ['./project-comments.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectCommentsComponent {\n @Input() activeUser: ProjectTrackerUserDetails;\n @Input()\n set conversation(value: ExtendedCommentInterface[]) {\n if (this.viewConfig?.showCommentInputAtTop) {\n value.sort((a, b) => b.messageCreated.getTime() - a.messageCreated.getTime());\n } else {\n value.sort((a, b) => a.messageCreated.getTime() - b.messageCreated.getTime());\n }\n this.conversation$$.next(value || []);\n }\n @Input() isLoading = false;\n @Input() isSubmitting = false;\n @Input() disablePrivate = true;\n @Input() disableSubmit = false;\n @Input() accountName: string;\n\n @Input() viewConfig?: CommentViewConfig = {\n showTitle: true,\n showCloseButton: true,\n showCommentInputAtTop: true,\n showCommenterIcon: true,\n };\n\n @Output() closeClicked: EventEmitter = new EventEmitter();\n @Output() submitClicked: EventEmitter = new EventEmitter();\n\n @ContentChild(ProjectCommentsInputDirective) inputDirective: ProjectCommentsInputDirective;\n\n pageWidth = WidthPreset.Full;\n\n constructor(private translateService: TranslateService) {}\n\n get commentType(): typeof CommentType {\n return CommentType;\n }\n\n isPublic = false;\n conversation$$: BehaviorSubject = new BehaviorSubject([]);\n readonly newCommentInput = new UntypedFormControl(null, { updateOn: 'change' });\n\n get hasCustomInput(): boolean {\n return !!this.inputDirective;\n }\n\n get shouldDisableSubmit(): boolean {\n if (this.hasCustomInput) {\n return this.disableSubmit;\n }\n return !!this.disableSubmit || !this.isValidComment(this.newCommentInput?.value);\n }\n\n private isValidComment(text: string): boolean {\n return text?.trim()?.length > 0 && text?.trim()?.length <= MAX_COMMENT_LENGTH;\n }\n\n toggleIsPublic(): void {\n this.isPublic = !this.isPublic;\n }\n\n handleSubmitClick(): void {\n this.submitClicked.emit({\n message: this.newCommentInput?.value?.trim(),\n isPublic: this.disablePrivate ? true : this.isPublic,\n });\n }\n\n handleCloseClick(): void {\n this.closeClicked.emit();\n }\n\n clearCommentInput(): void {\n this.newCommentInput?.setValue('');\n }\n\n getConversationOrigin(conversation: CommentInterface): string {\n if (conversation?.senderName) {\n return conversation.senderName;\n } else if (this.isConversationHydrated(conversation)) {\n const fromText = this.translateService.instant('TASK_DETAILS.CONVERSATIONS_FROM');\n return conversation?.senderId.replace('|', fromText) || '';\n } else {\n return '';\n }\n }\n\n isConversationHydrated(conversation: CommentInterface): boolean {\n return !(conversation?.senderId?.startsWith('U-') || conversation?.senderId?.startsWith('UID-'));\n }\n}\n","\n \n {{ 'COMMENT.TITLE' | translate }}\n\n \n close\n \n \n\n \n
\n \n \n \n \n
\n {{ 'COMMENT.FROM_STEP' | translate }} {{ conversation?.taskTitle }}\n
\n
\n visibility\n {{ 'TASK_DETAILS.PRIVATE_CONVERSATION_SUBTEXT' | translate }}\n
\n \n \n \n \n
\n
\n
\n\n\n \n\n\n\n
\n \n
\n \n
\n
\n \n \n {{ 'COMMENT.NEW_COMMENT.LABEL' | translate }}\n \n \n \n \n
\n
\n \n {{ 'COMMENT.NEW_COMMENT.MAKE_PUBLIC' | translate }}\n \n \n {{ 'COMMENT.NEW_COMMENT.ACTION' | translate }}\n \n
\n \n
\n","import { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { MatDrawerToggleResult, MatSidenav } from '@angular/material/sidenav';\n\n/**\n * The `SidenavService` is used to create a embedded view inside a `ProjectTrackerSidenavContainerComponent` container.\n * @see ProjectTrackerSidenavContainerComponent\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SidenavService {\n private panel: MatSidenav;\n private vcf: ViewContainerRef;\n\n setPanel(sidenav: MatSidenav): void {\n this.panel = sidenav;\n }\n\n setContentVcf(viewContainerRef: ViewContainerRef): void {\n this.vcf = viewContainerRef;\n }\n\n private createView(template: TemplateRef): void {\n this.vcf.clear();\n this.vcf.createEmbeddedView(template);\n }\n\n open(template: TemplateRef): Promise {\n this.createView(template);\n return this.panel.open();\n }\n\n close(): Promise {\n return this.panel.close();\n }\n\n toggle(): Promise {\n return this.panel.toggle();\n }\n}\n","import { CommentType } from '@vendasta/task-manager';\nimport { ExtendedCommentInterface, ExtendedConversationInterface } from './interfaces';\nimport { SortDirection } from '@vendasta/task';\nimport { SortInterface } from '@vendasta/task-manager';\n\nexport class ProjectTrackerUtils {\n static mapInternalConversationToInbox(conversation: ExtendedConversationInterface): ExtendedCommentInterface {\n return {\n senderName: conversation.sendFrom,\n messageText: conversation.message,\n messageCreated: conversation.created,\n externalMessageId: conversation.source,\n commentType: conversation.isPublic ? CommentType.COMMENT_TYPE_PUBLIC : CommentType.COMMENT_TYPE_PRIVATE,\n taskTitle: conversation.taskTitle,\n senderImageUrl: conversation.senderImageUrl,\n } as ExtendedCommentInterface;\n }\n}\n\nexport function validateSorts(sorts: SortInterface[]): SortInterface[] {\n const final: SortInterface[] = [];\n sorts.forEach((sort) => {\n if (sort.direction in SortDirection && !!sort.field) {\n final.push(sort);\n }\n });\n return final;\n}\n","import { ChangeDetectionStrategy, Component, Inject, Input, ViewChild } from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ObservableWorkState } from '@vendasta/rx-utils/work-state';\nimport { BehaviorSubject, Observable, combineLatest, of } from 'rxjs';\nimport { finalize, take } from 'rxjs/operators';\nimport {\n AskQuestionServiceInterface,\n AskQuestionServiceInterfaceToken,\n} from '../ask-question-dialog/ask-question-dialog-interface';\nimport { ProjectCommentsComponent } from '../project-comments/project-comments.component';\nimport { ProjectTrackerServiceInterface, ProjectTrackerServiceInterfaceToken } from '../project-tracker-interface';\nimport {\n AddCommentEvent,\n ExtendedCommentInterface,\n ExtendedConversationInterface,\n ProjectTrackerInfo,\n ProjectTrackerUserDetails,\n} from '../shared/interfaces';\nimport { SidenavService } from '../shared/services/sidenav.service';\nimport { ProjectTrackerUtils } from '../shared/utils';\n\n@Component({\n selector: 'project-tracker-comments',\n templateUrl: './project-tracker-comments.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectTrackerCommentsComponent {\n @Input()\n set projectTrackerInfo(value: ProjectTrackerInfo) {\n this.project = value;\n this.refreshProjectTrackerInfo();\n }\n\n @ViewChild('projectComments') projectComments: ProjectCommentsComponent;\n\n private project: ProjectTrackerInfo;\n conversation$$: BehaviorSubject = new BehaviorSubject([]);\n isLoading$$: BehaviorSubject = new BehaviorSubject(false);\n private workableState: ObservableWorkState = new ObservableWorkState();\n createCommentLoading$: Observable = this.workableState.isLoading$;\n activeUser$: Observable = this.projectTrackerService.activeUser$;\n\n constructor(\n private sidenavService: SidenavService,\n @Inject(AskQuestionServiceInterfaceToken) private askQuestionService: AskQuestionServiceInterface,\n private readonly snackbarService: SnackbarService,\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n ) {}\n\n private static getConversationFromInbox(project: ProjectTrackerInfo): Observable {\n return of(\n project.projectConversations?.map((conversation) => {\n const result: ExtendedCommentInterface = ProjectTrackerUtils.mapInternalConversationToInbox(conversation);\n const subtaskId = conversation.source?.split('/')?.slice(-1)?.pop(); // source = externalMessageId\n const subtask = project.subtasks?.find(\n (task) =>\n task.subtaskId?.split('/')?.slice(-1)?.pop() === subtaskId || task?.['identity']?.['taskId'] === subtaskId,\n );\n result.taskTitle = subtask?.title;\n return result;\n }),\n );\n }\n\n private refreshProjectTrackerInfo(): void {\n this.isLoading$$.next(true);\n ProjectTrackerCommentsComponent.getConversationFromInbox(this.project)\n .pipe(\n take(1),\n finalize(() => this.isLoading$$.next(false)),\n )\n .subscribe((result) => this.conversation$$.next(result));\n }\n\n private appendComment(newComment: ExtendedConversationInterface): void {\n const conversation = this.conversation$$.getValue() || [];\n conversation.unshift(ProjectTrackerUtils.mapInternalConversationToInbox(newComment));\n this.conversation$$.next(conversation);\n\n if (this.project?.projectConversations) {\n this.project.projectConversations.unshift(newComment);\n }\n }\n\n handleSubmitClick(event: AddCommentEvent): void {\n if (this.project?.projectIdentity) {\n const work$ = this.askQuestionService.askQuestion(event?.message, this.project.projectIdentity).pipe(take(1));\n this.workableState.startWork(work$);\n combineLatest([this.workableState.isSuccess$, this.activeUser$])\n .pipe(take(1))\n .subscribe(([isSuccess, activeUser]) => {\n if (isSuccess) {\n this.snackbarService.openSuccessSnack('COMMENT.NEW_COMMENT.SUBMIT_SUCCESS');\n\n const newComment: ExtendedConversationInterface = {\n sendFrom: activeUser?.userInfo?.firstName,\n message: event?.message,\n created: new Date(),\n isPublic: event?.isPublic,\n senderImageUrl: activeUser.profilePictureUrl,\n };\n this.appendComment(newComment);\n this.projectComments.clearCommentInput();\n } else {\n this.snackbarService.openErrorSnack('COMMENT.NEW_COMMENT.SUBMIT_ERROR');\n }\n });\n }\n }\n\n handleCloseClick(): void {\n this.sidenavService.close();\n }\n}\n","\n","import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { SidenavService } from './shared/services/sidenav.service';\n\n/**\n * The `ProjectTrackerSidenavContainerComponent` is used to display the drawer container.\n * It should be used along with the `SidenavService` to create an embedded view inside the container.\n *\n * @example\n * ```html\n * \n * \n * \n *
This content will be embedded in the sidenav
\n *
\n * ```\n *\n * ```ts\n * @ViewChild('myTemplate') myTemplate: TemplateRef;\n * ...\n * // open the sidenav with the content from myTemplate\n * this.sidenavService.open(this.myTemplate);\n * ```\n */\n@Component({\n selector: 'project-tracker-sidenav-container',\n templateUrl: './project-tracker-sidenav-container.component.html',\n styleUrls: ['./project-tracker-sidenav-container.component.scss'],\n standalone: false,\n})\nexport class ProjectTrackerSidenavContainerComponent implements OnInit {\n @ViewChild('panel', { static: true }) private sidePanel: MatSidenav;\n @ViewChild('content', { static: true, read: ViewContainerRef }) private vcf: ViewContainerRef;\n\n constructor(private sidenavService: SidenavService) {}\n\n ngOnInit(): void {\n this.sidenavService.setPanel(this.sidePanel);\n this.sidenavService.setContentVcf(this.vcf);\n }\n}\n","\n \n \n \n \n \n \n \n\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FileUploaderInterface } from '@vendasta/forms';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { PersonaType } from '@vendasta/task-manager';\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap, take, tap } from 'rxjs/operators';\nimport {\n ProjectTrackerFileUploadServiceInterfaceToken,\n ProjectTrackerServiceInterface,\n ProjectTrackerServiceInterfaceToken,\n} from '../../project-tracker-interface';\nimport { AttachedFile, AttachmentInterface, NonClickableSection, Subtask } from '../interfaces';\n\n@Component({\n selector: 'project-tracker-subtasks',\n templateUrl: './tracker-subtasks.component.html',\n styleUrls: ['./tracker-subtasks.component.scss'],\n standalone: false,\n})\nexport class TrackerSubtasksComponent implements OnInit {\n @Input() subtasks: Subtask[] = [];\n @Output() approveClicked: EventEmitter = new EventEmitter();\n @Output() provideFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() sendFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() nonClickableClicked: EventEmitter = new EventEmitter();\n attachmentUploader: FileUploaderInterface;\n PersonaType = PersonaType;\n\n constructor(\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n @Inject(ProjectTrackerFileUploadServiceInterfaceToken)\n private projectTrackerAttachmentService: FileUploaderInterface,\n private alertService: SnackbarService,\n private fb: UntypedFormBuilder,\n private translateService: TranslateService,\n ) {}\n\n ngOnInit(): void {\n this.attachmentUploader = this.projectTrackerAttachmentService;\n this.subtasks\n ?.map((subtask: Subtask) => {\n if (subtask?.feedback && !subtask?.conversations) {\n return {\n ...subtask,\n conversations: subtask.feedback.map((message) => ({ message })),\n };\n }\n return subtask;\n })\n ?.forEach((subtask: Subtask, index: number) => {\n const filesControlName = this.getFilesControlName(index);\n const feedbackControlName = this.getFeedbackControlName(index);\n const controls = {};\n controls[filesControlName] = Object.assign([], subtask.files || Array());\n controls[feedbackControlName] = '';\n subtask.form = this.fb.group(controls);\n subtask.form.get(filesControlName).patchValue(Object.assign([], subtask.files || Array()));\n });\n }\n\n getFilesControlName(index: number): string {\n return 'files' + index;\n }\n getFeedbackControlName(index: number): string {\n return 'feedback' + index;\n }\n\n onFileUploaded(uploadInfo: AttachmentInterface, index: number): void {\n const subtask = this.subtasks[index];\n if (uploadInfo.name === '' || uploadInfo.url === '') {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.ATTACHMENT');\n const current = subtask.form.get(this.getFilesControlName(index)).value;\n current.pop();\n subtask.form.get(this.getFilesControlName(index)).patchValue(current);\n return;\n } else {\n if (!subtask.files) {\n subtask.files = [];\n }\n subtask.approved = false;\n subtask.files.push(uploadInfo);\n this.projectTrackerService\n .uploadFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, uploadInfo)\n .pipe(\n take(1),\n switchMap(() =>\n this.alertService\n .openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_UPLOAD', {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoFileUpload(uploadInfo, index)),\n catchError(() => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_UPLOAD');\n return EMPTY;\n }),\n )\n .subscribe();\n }\n }\n\n undoFileUpload(attachment: AttachmentInterface, index: number): void {\n const subtask = this.subtasks[index];\n this.projectTrackerService\n .removeFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachment)\n .pipe(take(1))\n .subscribe(\n () => {\n this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_UPLOAD_UNDO');\n subtask.files.pop();\n subtask.form.get(this.getFilesControlName(index)).patchValue(Object.assign([], subtask.files));\n },\n () => this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_UPLOAD_UNDO'),\n );\n }\n\n onFileError(): void {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FAIL_TO_ADD');\n }\n\n onFileRemoved(fileIndex: number, subtaskIndex: number): void {\n const subtask = this.subtasks[subtaskIndex];\n subtask.approved = false;\n const attachment = subtask.files.splice(fileIndex, 1)[0];\n this.projectTrackerService\n .removeFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachment)\n .pipe(\n take(1),\n switchMap(() =>\n this.alertService\n .openSuccessSnack(this.translateService.instant('PROJECT_TRACKER.SUCCESS.FILE_REMOVE'), {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoFileRemoved(attachment, subtaskIndex)),\n catchError(() => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_REMOVE');\n subtask.files.push(attachment);\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n undoFileRemoved(attachment: AttachmentInterface, index: number): void {\n const subtask = this.subtasks[index];\n this.projectTrackerService\n .uploadFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachment)\n .pipe(take(1))\n .subscribe(\n () => {\n this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_REMOVE_UNDO');\n subtask.files.push(attachment);\n subtask.form.get(this.getFilesControlName(index)).patchValue(Object.assign([], subtask.files));\n },\n () => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_REMOVE_UNDO');\n },\n );\n }\n\n approveTask(index: number): void {\n this.approveClicked.emit();\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = true;\n this.projectTrackerService\n .approveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(\n take(1),\n switchMap(() =>\n this.alertService\n .openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK', {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoApproveTask(subtask)),\n catchError(() => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK');\n subtask.approved = false;\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n undoApproveTask(subtask: Subtask): void {\n subtask.approved = false;\n this.projectTrackerService\n .undoApproveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(take(1))\n .subscribe({\n next: () => this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK_UNDO'),\n error: () => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK_UNDO');\n subtask.approved = true;\n },\n });\n }\n\n saveFeedback(index: number): void {\n this.sendFeedbackClicked.emit();\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = false;\n if (!subtask?.conversations?.length) {\n subtask.conversations = [];\n }\n const feedback = subtask.form.get(this.getFeedbackControlName(index)).value;\n subtask.conversations.push({\n message: feedback,\n sendTo: 'Digital Agent',\n source: 'smb',\n created: new Date(),\n });\n this.projectTrackerService\n .sendFeedback(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, feedback)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FEEDBACK_PROVIDED');\n subtask.form.get(this.getFeedbackControlName(index)).patchValue('');\n },\n error: () => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FEEDBACK_PROVIDED');\n subtask.conversations.pop();\n },\n });\n }\n\n toggleShowFeedback(index: number): void {\n this.subtasks[index].showFeedback = !this.subtasks[index].showFeedback;\n if (this.subtasks[index].showFeedback) {\n this.provideFeedbackClicked.emit();\n }\n }\n\n handleNonClickableClicked(event: NonClickableSection): void {\n this.nonClickableClicked.emit(event);\n }\n}\n","\n
\n
\n
\n \n check\n \n \n \n {{ (i + 1).toString() }}\n \n \n
\n
\n
\n {{ subtask.title }}\n
\n
\n
\n {{ 'PROJECT_TRACKER.COMPLETED_ON' | translate : { date: (subtask.completionDate | date : 'longDate') } }}\n
\n
\n \n {{ 'PROJECT_TRACKER.IN_PROGRESS' | translate }}\n \n \n \n -\n {{\n 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: (subtask.dueDate | date : 'longDate') }\n }}\n \n \n \n \n -\n {{ 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: 'TBD' } }}\n \n \n
\n
\n
\n {{ 'PROJECT_TRACKER.WAITING_ON_CUSTOMER' | translate }}\n
\n
\n
\n \n \n {{\n 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: (subtask.dueDate | date : 'longDate') }\n }}\n \n \n \n \n {{ 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: 'TBD' } }}\n \n \n
\n
\n \n {{ 'PROJECT_TRACKER.YOU_APPROVED' | translate : { title: subtask.title } }}\n \n
\n
\n 0 || subtask.files?.length > 0\"\n >\n
\n {{ subtask.notes }}\n
\n \n \n \n {{ 'PROJECT_TRACKER.YOU_REQUESTED_REVISIONS' | translate : { title: subtask.title } }}\n
\n
\n {{ 'PROJECT_TRACKER.FULFILLMENT_TEAM_MESSAGE' | translate }}\n
\n \n {{ 'PROJECT_TRACKER.GENERIC_MESSAGE' | translate }}\n
\n
\n {{ feedback?.message }}\n
\n \n
\n \n attachment\n {{ file.name }}\n \n \n \n
\n
\n \n \n {{ 'PROJECT_TRACKER.REVISIONS' | translate }}\n \n \n \n \n \n
\n
\n \n \n \n {{ 'PROJECT_TRACKER.APPROVE' | translate }}\n \n \n \n \n \n {{ 'PROJECT_TRACKER.SEND_FEEDBACK' | translate }}\n \n \n
\n
\n \n \n \n
\n","import { Inject, Injectable } from '@angular/core';\nimport { FeatureFlagService, FeatureFlagStatusInterface } from '@galaxy/partner';\nimport { PersonaType } from '@vendasta/iam';\nimport {\n ConversationInterface,\n DomainKeyValue,\n KeyValueTypes,\n SearchTaskRequest,\n SearchTaskRequestInterface,\n SearchTaskResponseInterface,\n TaskInterface,\n} from '@vendasta/task';\nimport {\n CommentInterface,\n CommentProjectionFilter,\n CommentType,\n LoadCommentsRequest,\n TaskManagerSdkService,\n} from '@vendasta/task-manager';\nimport { EMPTY, forkJoin, iif, Observable, of } from 'rxjs';\nimport { catchError, expand, map, retry, scan, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { ProjectTrackerServiceInterface, ProjectTrackerServiceInterfaceToken } from '../../project-tracker-interface';\nimport {\n DEPENDENT_TAG,\n FEATURE_FLAG_LIST,\n FULFILLMENT_ORDER_ID_METADATA_KEY,\n MILESTONE_APPROVED_TAG,\n ORDER_ID_METADATA_KEY,\n PROJECT_TYPE,\n TASK_DATA_FEEDBACK_KEY,\n VISIBLE_TAG,\n} from '../constants';\nimport { ProjectTrackerInfo, Subtask } from '../interfaces';\n\nconst PAGE_SIZE = 250;\n\n@Injectable()\nexport class ProjectsAndSubtasksByProductsService {\n constructor(\n private taskManagerSdkService: TaskManagerSdkService,\n private featureFlagService: FeatureFlagService,\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n ) {}\n\n static tasksToSubtasks(tasks: TaskInterface[], uploadingPersonaTypes: string[]): Subtask[] {\n return tasks.map((task) => {\n if (task.tags?.includes(DEPENDENT_TAG)) {\n task.dueDate = null;\n }\n const feedbackData = DomainKeyValue.fromKeyValue(task.data).get(TASK_DATA_FEEDBACK_KEY, KeyValueTypes.BOOL);\n const feedbackEnabled = feedbackData.length > 0 ? (feedbackData[0] as boolean) : false;\n const metadata = DomainKeyValue.fromKeyValue(task.metadata);\n const partnerId = metadata.get('partner', KeyValueTypes.STRING).toString();\n const accountGroupId = metadata.get('account-group', KeyValueTypes.STRING).toString();\n const id = task.identity.parentPath + task.identity.taskId;\n const subtask: Subtask = {\n title: task.title,\n dueDate: task.dueDate,\n completionDate: task.completionDate,\n status: task.status,\n notes: task.notes,\n feedbackEnabled: feedbackEnabled,\n partnerId: partnerId,\n accountGroupId: accountGroupId,\n subtaskId: id,\n files: task.attachment?.filter((a) => uploadingPersonaTypes.includes(a.uploadingPersonaType)),\n approved: task.tags?.includes(MILESTONE_APPROVED_TAG),\n showFeedback: false,\n conversations: task.conversations?.filter((c) => c?.isPublic && !this.isUserMentionConversation(c.message)),\n tags: task?.tags ?? [],\n };\n return subtask;\n });\n }\n\n private static isVisible(task: TaskInterface): boolean {\n return task?.tags?.includes(VISIBLE_TAG);\n }\n\n private static isUserMentionConversation(conversation: string): boolean {\n return conversation.includes('data-mention=');\n }\n\n private mapInboxConversation(conversation: CommentInterface): ConversationInterface {\n return {\n sendFrom: conversation.senderName,\n message: conversation.messageText,\n created: conversation.messageCreated,\n source: conversation.externalMessageId,\n isPublic: conversation.commentType === CommentType.COMMENT_TYPE_PUBLIC,\n } as ConversationInterface;\n }\n\n private searchTasks(searchRequest: SearchTaskRequestInterface): Observable {\n return this.taskManagerSdkService.search(new SearchTaskRequest(searchRequest)).pipe(\n expand((resp: SearchTaskResponseInterface) =>\n iif(\n () => resp.hasMore,\n this.taskManagerSdkService.search(new SearchTaskRequest({ ...searchRequest, cursor: resp.nextCursor })),\n EMPTY,\n ),\n ),\n scan((acc: TaskInterface[], curr: SearchTaskResponseInterface) => {\n if (curr?.tasks?.length > 0) {\n return acc.concat(curr.tasks);\n }\n return acc;\n }, []),\n );\n }\n\n private getProjectTrackerInfo(\n project: TaskInterface,\n conversations: ConversationInterface[],\n uploadingPersonaTypes: PersonaType[],\n smbVisibleOnly: boolean,\n excludeDeleted = true,\n ): Observable {\n return this.taskManagerSdkService\n .getTaskMulti({ identities: project.subtasks, excludeDeleted: excludeDeleted })\n .pipe(\n map((subtasks) => {\n const st = ProjectsAndSubtasksByProductsService.tasksToSubtasks(subtasks, uploadingPersonaTypes);\n if (smbVisibleOnly) {\n return st.filter((s) => ProjectsAndSubtasksByProductsService.isVisible(s));\n }\n return st;\n }),\n map((subtasks) => {\n return {\n projectTitle: project.title,\n projectIdentity: project.identity,\n projectConversations: conversations.sort((a, b) => b.created?.getTime() - a.created?.getTime()),\n projectStatus: project.status,\n subtasks: subtasks,\n } as ProjectTrackerInfo;\n }),\n );\n }\n\n private getProjectConversations(project: TaskInterface): Observable {\n return this.taskManagerSdkService\n .loadComments(\n new LoadCommentsRequest({\n identity: project.identity,\n projectionFilter: new CommentProjectionFilter({ retrievePrivate: false, retrieveSubtasks: true }),\n }),\n )\n .pipe(\n map((response) => response?.messages || []),\n map((conversations) => conversations?.map(this.mapInboxConversation)),\n );\n }\n\n private searchAllProjectsAndConvertToProjectTrackerInfo(\n searchRequest: SearchTaskRequestInterface,\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n const smbVisibleOnly = searchRequest.tags?.includes(VISIBLE_TAG);\n\n return this.searchTasks(searchRequest).pipe(\n map((projects) =>\n projects.map((p) =>\n this.getProjectConversations(p).pipe(\n take(1),\n switchMap((conversations) =>\n this.getProjectTrackerInfo(p, conversations, uploadingPersonaTypes, smbVisibleOnly),\n ),\n ),\n ),\n ),\n switchMap((projects) => forkJoin(projects)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n\n lookupVisibleProjectsForAccountByOrderIds(\n partnerId: string,\n accountGroupId: string,\n orderIds: string[],\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n const searchRequest: SearchTaskRequestInterface = {\n namespace: `partner/${partnerId}/account-group/${accountGroupId}`,\n types: [PROJECT_TYPE],\n tags: [VISIBLE_TAG],\n metadata: new DomainKeyValue().set(ORDER_ID_METADATA_KEY, orderIds, KeyValueTypes.STRING).toKeyValue(),\n pageSize: PAGE_SIZE,\n };\n return this.searchAllProjectsAndConvertToProjectTrackerInfo(searchRequest, uploadingPersonaTypes);\n }\n\n lookupVisibleProjectForAccountByWorkOrderIds(\n partnerId: string,\n accountGroupId: string,\n workOrderIds: string[],\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n return this.lookupProjectsForAccountByWorkOrderIds(\n partnerId,\n accountGroupId,\n workOrderIds,\n false,\n uploadingPersonaTypes,\n );\n }\n\n lookupProjectsForAccountByWorkOrderIds(\n partnerId: string,\n accountGroupId: string,\n workOrderIds: string[],\n smbVisibleOnly: boolean,\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n const searchRequest: SearchTaskRequestInterface = {\n namespace: `partner/${partnerId}/account-group/${accountGroupId}`,\n types: [PROJECT_TYPE],\n metadata: new DomainKeyValue()\n .set(FULFILLMENT_ORDER_ID_METADATA_KEY, workOrderIds, KeyValueTypes.STRING)\n .toKeyValue(),\n pageSize: PAGE_SIZE,\n };\n if (smbVisibleOnly) {\n searchRequest.tags = [VISIBLE_TAG];\n }\n return this.searchAllProjectsAndConvertToProjectTrackerInfo(searchRequest, uploadingPersonaTypes);\n }\n\n featureFlags(partnerId: string): Observable {\n return this.featureFlagService.batchGetStatus(partnerId, '', FEATURE_FLAG_LIST).pipe(\n retry(2),\n catchError(() => {\n const flags: FeatureFlagStatusInterface = {};\n FEATURE_FLAG_LIST.forEach((f) => (flags[f] = false));\n return of(flags);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TaskIdentityInterface } from '@vendasta/task';\nimport { Status } from '@vendasta/task-manager';\nimport { MILESTONE_COMPLETED } from '../shared/constants';\nimport { AskQuestionInfo, NonClickableSection, Subtask } from '../shared/interfaces';\n\n@Component({\n selector: 'project-tracker-simple',\n templateUrl: './simple-project-tracker.component.html',\n styleUrls: ['./simple-project-tracker.component.scss'],\n standalone: false,\n})\nexport class SimpleProjectTrackerComponent implements OnInit {\n @Input() projectTitle;\n @Input() projectIdentity: TaskIdentityInterface;\n @Input() projectUrl: string;\n\n #projectStatus: string;\n get projectStatus(): string {\n return this.#projectStatus;\n }\n\n @Input() set projectStatus(projectStatus: string | Status) {\n this.#projectStatus = projectStatus;\n this.badgeColor = this.badgeColorMap.get(projectStatus) || 'blue';\n }\n\n @Input() subtasks: Subtask[] = [];\n @Input() matElevationClass = 'mat-elevation-z0';\n @Input() hideAskQuestion = false;\n @Output() trackerOpened: EventEmitter = new EventEmitter();\n @Output() trackerClosed: EventEmitter = new EventEmitter();\n @Output() approveClicked: EventEmitter = new EventEmitter();\n @Output() provideFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() sendFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() nonClickableClicked: EventEmitter = new EventEmitter();\n @Output() askQuestionClicked: EventEmitter = new EventEmitter();\n projectProgress: string;\n badgeColor: string;\n badgeColorMap: Map = new Map([\n [Status.Open, 'blue'],\n [Status.InProgress, 'yellow'],\n [Status.WaitingOnCustomer, 'red'],\n [Status.Completed, 'green'],\n ]);\n\n ngOnInit(): void {\n const completed: number = this.subtasks?.filter((subtask) => subtask.status === MILESTONE_COMPLETED)?.length || 0;\n const total: number = this.subtasks?.length || 0;\n this.projectProgress = `${completed}/${total}`;\n }\n\n handleAskQuestionClicked(): void {\n this.askQuestionClicked.emit({\n projectIdentity: this.projectIdentity,\n subtasks: this.subtasks,\n });\n }\n\n handleOpened(): void {\n this.trackerOpened.emit();\n }\n\n handleClosed(): void {\n this.trackerClosed.emit();\n }\n\n handleApproveClicked(): void {\n this.approveClicked.emit();\n }\n\n handleProvideFeedbackClicked(): void {\n this.provideFeedbackClicked.emit();\n }\n\n handleSendFeedbackClicked(): void {\n this.sendFeedbackClicked.emit();\n }\n\n handleNonClickableClicked(event: NonClickableSection): void {\n this.nonClickableClicked.emit(event);\n }\n}\n","
\n \n \n
\n
\n @if (projectUrl) {\n \n {{ projectTitle }}\n open_in_new\n \n } @else {\n {{ projectTitle }}\n }\n
\n
\n \n {{ projectStatus }}\n \n
\n
\n {{ 'PROJECT_TRACKER.TASKS_COMPLETED' | translate: { numberTasks: projectProgress } }}\n
\n
\n
\n\n
\n
\n chat_bubble_outline\n {{ 'PROJECT_TRACKER.ASK_A_QUESTION' | translate }}\n
\n
\n\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyCommentModule } from '@vendasta/galaxy/comment';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { AskQuestionDialogComponent } from './ask-question-dialog/ask-question-dialog.component';\nimport { CharacterCountPipe } from './ask-question-dialog/character-count.pipe';\nimport baseTranslation from './assets/i18n/en_devel.json';\nimport { FulfillmentTrackerComponent } from './fulfillment-tracker/fulfillment-tracker.component';\nimport { FulfillmentSubtasksComponent } from './fulfillment-tracker/subtasks/fulfillment-subtasks.component';\nimport { ProjectCommentsComponent } from './project-comments/project-comments.component';\nimport { ProjectCommentsInputDirective } from './project-comments/project-comments.directives';\nimport { ProjectTrackerCommentsComponent } from './project-tracker-comments/project-tracker-comments.component';\nimport { ProjectTrackerSidenavContainerComponent } from './project-tracker-sidenav-container.component';\n\nimport { ProjectTrackerComponent } from './project-tracker.component';\nimport { CumulativeProgressBarComponent } from './shared/cumulative-progress-bar/cumulative-progress-bar.component';\nimport { HydrateNamePipe } from './shared/pipes/hydrate-name.pipe';\nimport { NameInitialsPipe } from './shared/pipes/name-initials.pipe';\nimport { ProjectsAndSubtasksByProductsService } from './shared/services/projects-and-subtasks-by-products.service';\nimport { TrackerSubtasksComponent } from './shared/tracker-subtasks/tracker-subtasks.component';\nimport { SimpleProjectTrackerComponent } from './simple-project-tracker/simple-project-tracker.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyUploaderModule } from '@vendasta/galaxy/uploader';\nimport { MatListModule } from '@angular/material/list';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SubtasksUploaderComponent } from './fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.component';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport {\n CanDeleteFilePipe,\n FilterAndSortFulfillmentFiles,\n UploadedByPipe,\n} from './fulfillment-tracker/subtasks/fulfillment-subtasks.pipes';\n\n@NgModule({\n declarations: [\n ProjectTrackerComponent,\n AskQuestionDialogComponent,\n CharacterCountPipe,\n TrackerSubtasksComponent,\n SimpleProjectTrackerComponent,\n CumulativeProgressBarComponent,\n ProjectTrackerSidenavContainerComponent,\n ProjectTrackerCommentsComponent,\n ProjectCommentsComponent,\n HydrateNamePipe,\n NameInitialsPipe,\n ProjectCommentsInputDirective,\n FulfillmentTrackerComponent,\n FulfillmentSubtasksComponent,\n ],\n exports: [\n ProjectTrackerComponent,\n AskQuestionDialogComponent,\n SimpleProjectTrackerComponent,\n CumulativeProgressBarComponent,\n ProjectTrackerSidenavContainerComponent,\n ProjectTrackerCommentsComponent,\n ProjectCommentsComponent,\n ProjectCommentsInputDirective,\n FulfillmentTrackerComponent,\n ],\n providers: [ProjectsAndSubtasksByProductsService],\n imports: [\n CommonModule,\n MatCardModule,\n MatExpansionModule,\n MatIconModule,\n MatProgressBarModule,\n MarkdownModule.forRoot(),\n MatButtonModule,\n MatInputModule,\n VaFormsModule,\n ReactiveFormsModule,\n MatDialogModule,\n MatDividerModule,\n MatProgressSpinnerModule,\n MatSidenavModule,\n MatSlideToggleModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/project-tracker',\n baseTranslation: baseTranslation,\n }),\n GalaxyPageModule,\n GalaxyTooltipModule,\n GalaxyCommentModule,\n GalaxyBadgeModule,\n MatCheckboxModule,\n GalaxyAvatarModule,\n GalaxyFormFieldModule,\n GalaxyUploaderModule,\n MatListModule,\n GalaxyLoadingSpinnerModule,\n SubtasksUploaderComponent,\n GalaxyButtonLoadingIndicatorModule,\n UploadedByPipe,\n CanDeleteFilePipe,\n FilterAndSortFulfillmentFiles,\n ],\n})\nexport class ProjectTrackerModule {}\n","export { ProjectTrackerComponent } from './project-tracker.component';\nexport { ProjectTrackerSidenavContainerComponent } from './project-tracker-sidenav-container.component';\nexport { SimpleProjectTrackerComponent } from './simple-project-tracker/simple-project-tracker.component';\nexport { ProjectCommentsComponent } from './project-comments/project-comments.component';\nexport { ProjectTrackerCommentsComponent } from './project-tracker-comments/project-tracker-comments.component';\nexport { AskQuestionDialogComponent, AskQuestionDialogData } from './ask-question-dialog/ask-question-dialog.component';\nexport { AttachmentInterface } from './shared/interfaces';\nexport {\n AskQuestionServiceInterface,\n AskQuestionServiceInterfaceToken,\n} from './ask-question-dialog/ask-question-dialog-interface';\nexport {\n ProjectTrackerServiceInterfaceToken,\n ProjectTrackerServiceInterface,\n ProjectTrackerFileUploadServiceInterfaceToken,\n} from './project-tracker-interface';\nexport { ProjectTrackerModule } from './project-tracker.module';\nexport { DEPENDENT_TAG } from './shared/constants';\nexport {\n AddCommentEvent,\n AskQuestionInfo,\n ExtendedCommentInterface,\n ExtendedConversationInterface,\n NonClickableSection,\n ProductInfo,\n ProjectTrackerInfo,\n ProjectTrackerUserDetails,\n Subtask,\n} from './shared/interfaces';\nexport {\n MAX_COMMENT_LENGTH,\n MILESTONE_FEEDBACK_TAG,\n MILESTONE_APPROVED_TAG,\n MILESTONE_WAITING_ON_CUSTOMER,\n MILESTONE_COMPLETED,\n MILESTONE_IN_PROGRESS,\n} from './shared/constants';\nexport { ProjectsAndSubtasksByProductsService } from './shared/services/projects-and-subtasks-by-products.service';\nexport { SidenavService } from './shared/services/sidenav.service';\nexport { CumulativeProgressBarComponent } from './shared/cumulative-progress-bar/cumulative-progress-bar.component';\nexport { ProjectTrackerUtils } from './shared/utils';\nexport { ProjectCommentsInputDirective } from './project-comments/project-comments.directives';\nexport { ProjectListCardModule } from './project-list-card/project-list-card.module';\nexport { ProjectListCardComponent } from './project-list-card/project-list-card.component';\nexport { SendMessageDialogComponent } from './send-message-dialog/send-message-dialog.component';\nexport { SendMessageDialogModule } from './send-message-dialog/send-message-dialog.module';\nexport { SendMessageDialogService } from './send-message-dialog/send-message-dialog.service';\nexport { CommentViewConfig } from './project-comments/project-comments.component';\n","/*\n * Public API Surface of project-tracker\n */\n\nexport * from './lib/index';\n"],"mappings":"y5FAAA,IAKaA,GAaAC,GAlBbC,GAAAC,EAAA,KAAAC,IAKaJ,GACX,IAAIK,GAA+C,gCAAgC,EAYxEJ,GACX,IAAII,GAAsC,0CAA0C,ICnBtF,IAIaC,GAJbC,GAAAC,EAAA,KAAAC,IAIaH,GACX,IAAII,GAA4C,6BAA6B,ICiE/E,SAASC,GAAoBC,EAASC,EAAO,CAC3C,OAAI,OAAOA,GAAU,SACZA,EAEFD,EAAQC,CAAK,CACtB,CAyeA,SAASC,GAAoBF,EAASC,EAAO,CAC3C,OAAI,OAAOA,GAAU,SACZA,EAEFD,EAAQC,CAAK,CACtB,CAq0EA,SAASE,GAAeC,EAAe,CACrC,IAAMC,EAAQ,IAAI,MAClB,cAAO,KAAKD,CAAa,EAAE,QAAQE,GAAO,CACxC,IAAML,EAAQG,EAAcE,CAAG,EAC/B,GAAIL,EAAM,SAASM,EAAU,GAAKD,EAAI,SAASC,EAAU,EACvD,MAAM,IAAI,MAAM,oCAAoC,EAEtD,GAAI,OAAON,GAAU,SACnB,MAAM,IAAI,UAAU,wBAAwB,EAE9CI,EAAM,KAAKC,EAAMC,GAAaN,CAAK,CACrC,CAAC,EACMI,EAAM,KAAKE,EAAU,CAC9B,CASA,SAASC,IAAU,CACjB,OAAYC,GAAG,EAAE,QAAQ,KAAM,EAAE,CACnC,CAt5FA,IAeIC,GAcAC,GAMAC,GAsBAC,GAMAC,GAaEC,GA0BAC,GAmCAC,GA4CAC,GA6BAC,GA0BAC,EAuBAC,GAuHAC,EA0BAC,GAuHAC,GA+CAC,GAmCAC,GAsCAC,GAqDAC,GAmCAC,GAmCAC,GAuBAC,GA6BAC,GAmFAC,GAmCAC,EAuBAC,GA0BAC,GAuBAC,GAgCAC,GAqJAC,GA0EAC,GA6EAC,GAuBAC,GAgCAC,GA0BAC,GAuBAC,GA6BAC,GAuBAC,GAuBAC,GAuBAC,GAuBAC,GAuBAC,GAgCAC,GAmCAC,GAuBAC,GA0BAC,GA6BAC,GAuBAC,GAuBAC,GAmCAC,GAsCAC,GAmCAC,GAuBAC,GAmCAC,GA4CAC,GAuBAC,GAgCAC,GAuHAC,GAmCAC,GAmCAC,GAsCAC,GAyCAC,GAsCAC,GAuBAC,GAuBAC,GAuBAC,GAmCAC,GAmCAC,GAmCAC,GAmCAC,GA0BAC,GAoBAC,GAuDAC,GACAC,GAOFC,GAwBAC,GAkKAC,GA6DAC,GAWAC,GAOAC,EAQElF,GA0BFmF,GAgZAC,EAkMEC,GACAC,GACAC,GACAC,GACFC,GA7+GJC,GAAAC,EAAA,KAAAC,IACAA,IACAC,KACAC,KACAC,KACAA,KAEAC,KAQI7F,GAA2B,SAAUA,EAAa,CACpD,OAAAA,EAAYA,EAAY,mBAAwB,CAAC,EAAI,qBACrDA,EAAYA,EAAY,qBAA0B,CAAC,EAAI,uBACvDA,EAAYA,EAAY,0BAA+B,CAAC,EAAI,4BAC5DA,EAAYA,EAAY,2BAAgC,CAAC,EAAI,6BAC7DA,EAAYA,EAAY,iBAAsB,CAAC,EAAI,mBAC5CA,CACT,EAAEA,IAAe,CAAC,CAAC,EAOfC,GAA6B,SAAUA,EAAe,CACxD,OAAAA,EAAcA,EAAc,sBAA2B,CAAC,EAAI,wBAC5DA,EAAcA,EAAc,qBAA0B,CAAC,EAAI,uBAC3DA,EAAcA,EAAc,yBAA8B,CAAC,EAAI,2BACxDA,CACT,EAAEA,IAAiB,CAAC,CAAC,EACjBC,GAAsB,SAAUA,EAAQ,CAC1C,OAAAA,EAAOA,EAAO,iBAAsB,CAAC,EAAI,mBACzCA,EAAOA,EAAO,YAAiB,CAAC,EAAI,cACpCA,EAAOA,EAAO,WAAgB,CAAC,EAAI,aACnCA,EAAOA,EAAO,cAAmB,CAAC,EAAI,gBACtCA,EAAOA,EAAO,gBAAqB,CAAC,EAAI,kBACxCA,EAAOA,EAAO,uBAA4B,CAAC,EAAI,yBAC/CA,EAAOA,EAAO,uBAA4B,CAAC,EAAI,yBAC/CA,EAAOA,EAAO,yBAA8B,CAAC,EAAI,2BACjDA,EAAOA,EAAO,oCAAyC,CAAC,EAAI,sCAC5DA,EAAOA,EAAO,cAAmB,CAAC,EAAI,gBACtCA,EAAOA,EAAO,2BAAgC,EAAE,EAAI,6BACpDA,EAAOA,EAAO,eAAoB,EAAE,EAAI,iBACxCA,EAAOA,EAAO,eAAoB,EAAE,EAAI,iBACxCA,EAAOA,EAAO,0BAA+B,EAAE,EAAI,4BACnDA,EAAOA,EAAO,oBAAyB,EAAE,EAAI,sBAC7CA,EAAOA,EAAO,mBAAwB,EAAE,EAAI,qBAC5CA,EAAOA,EAAO,2BAAgC,EAAE,EAAI,6BACpDA,EAAOA,EAAO,gCAAqC,EAAE,EAAI,kCACzDA,EAAOA,EAAO,8BAAmC,EAAE,EAAI,gCAChDA,CACT,EAAEA,IAAU,CAAC,CAAC,EACVC,GAA0B,SAAUA,EAAY,CAClD,OAAAA,EAAWA,EAAW,qBAA0B,CAAC,EAAI,uBACrDA,EAAWA,EAAW,4BAAiC,CAAC,EAAI,8BAC5DA,EAAWA,EAAW,yBAA8B,CAAC,EAAI,2BAClDA,CACT,EAAEA,IAAc,CAAC,CAAC,EACdC,GAA6B,SAAUA,EAAe,CACxD,OAAAA,EAAcA,EAAc,0BAA+B,CAAC,EAAI,4BAChEA,EAAcA,EAAc,yBAA8B,CAAC,EAAI,2BACxDA,CACT,EAAEA,IAAiB,CAAC,CAAC,EASfC,GAAN,MAAMyF,CAAkB,CACtB,OAAO,UAAUC,EAAO,CACtB,IAAIC,EAAI,IAAIF,EACZ,OAAAE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACnBC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EACM5F,GAAN,MAAM6F,CAAW,CACf,OAAO,UAAUJ,EAAO,CACtB,IAAIC,EAAI,IAAIG,EACZ,OAAAH,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,kBACRC,EAAE,gBAAkB3F,GAAkB,UAAU0F,EAAM,eAAe,GAEhEC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,IAAQ,MACtBA,EAAS,IAAS,KAAK,KAErB,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,qBAAyB,MACvCA,EAAS,qBAA0B,KAAK,sBAEtC,OAAO,KAAK,gBAAoB,KAAe,KAAK,kBAAoB,OAC1EA,EAAS,gBAAqB,cAAe,KAAK,gBAAkB,KAAK,gBAAgB,UAAU,EAAI,KAAK,iBAEvGA,CACT,CACF,EACM3F,GAAN,MAAM6F,CAAa,CACjB,OAAO,UAAUL,EAAO,CACtB,IAAIC,EAAI,IAAII,EACZ,OAAAJ,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,UACRC,EAAE,QAAU3G,GAAoBW,GAAa+F,EAAM,OAAO,GAErDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EACM1F,GAAN,MAAM6F,CAAQ,CACZ,OAAO,UAAUN,EAAO,CACtB,IAAIC,EAAI,IAAIK,EACZ,OAAAL,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAO,IAAI,KAAKD,EAAM,IAAI,GAEvBC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EACMzF,GAAN,MAAM6F,CAAkB,CACtB,OAAO,UAAUP,EAAO,CACtB,IAAIC,EAAI,IAAIM,EACZ,OAAAN,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASD,EAAM,OAAO,IAAIjF,GAAuB,SAAS,GAEvDkF,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,OAAW,KAAe,KAAK,SAAW,OACxDA,EAAS,OAAY,cAAe,KAAK,OAAS,KAAK,OAAO,UAAU,EAAI,KAAK,QAE/E,OAAO,KAAK,IAAQ,MACtBA,EAAS,IAAS,KAAK,KAElBA,CACT,CACF,EACMxF,EAAN,MAAM6F,CAAU,CACd,OAAO,UAAUR,EAAO,CACtB,IAAIC,EAAI,IAAIO,EACZ,OAAAP,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYD,EAAM,UAAU,IAAItF,GAAkB,SAAS,GAExDuF,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAErFA,CACT,CACF,EACMvF,GAAN,MAAM6F,CAAK,CACT,OAAO,UAAUT,EAAO,CACtB,IAAIC,EAAI,IAAIQ,EACZ,OAAAR,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAIvF,GAAQ,SAAS,GAE7CuF,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,WACRC,EAAE,SAAW,IAAI,KAAKD,EAAM,QAAQ,GAElCA,EAAM,iBACRC,EAAE,eAAiB,IAAI,KAAKD,EAAM,cAAc,GAE9CA,EAAM,WACRC,EAAE,SAAWD,EAAM,SAAS,IAAInF,EAAa,SAAS,GAEpDmF,EAAM,OACRC,EAAE,KAAOtF,EAAU,UAAUqF,EAAM,IAAI,GAErCA,EAAM,WACRC,EAAE,SAAWtF,EAAU,UAAUqF,EAAM,QAAQ,GAE7CA,EAAM,gBACRC,EAAE,cAAgBD,EAAM,cAAc,IAAIxF,GAAa,SAAS,GAE9DwF,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAIzF,GAAW,SAAS,GAEnD0F,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEvG,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,cAAkB,KAAe,KAAK,gBAAkB,OACtEA,EAAS,cAAmB,cAAe,KAAK,cAAgB,KAAK,cAAc,UAAU,EAAI,KAAK,eAEpG,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMtF,EAAN,MAAM6F,CAAa,CACjB,OAAO,UAAUV,EAAO,CACtB,IAAIC,EAAI,IAAIS,EACZ,OAAAT,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACnBC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EACMrF,GAAN,MAAM6F,CAAS,CACb,OAAO,UAAUX,EAAO,CACtB,IAAIC,EAAI,IAAIU,EACZ,OAAAV,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAIvF,GAAQ,SAAS,GAE7CuF,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,WACRC,EAAE,SAAW,IAAI,KAAKD,EAAM,QAAQ,GAElCA,EAAM,iBACRC,EAAE,eAAiB,IAAI,KAAKD,EAAM,cAAc,GAE9CA,EAAM,WACRC,EAAE,SAAWD,EAAM,SAAS,IAAIW,EAAS,SAAS,GAEhDX,EAAM,OACRC,EAAE,KAAOtF,EAAU,UAAUqF,EAAM,IAAI,GAErCA,EAAM,WACRC,EAAE,SAAWtF,EAAU,UAAUqF,EAAM,QAAQ,GAE7CA,EAAM,gBACRC,EAAE,cAAgBD,EAAM,cAAc,IAAIxF,GAAa,SAAS,GAE9DwF,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAIzF,GAAW,SAAS,GAEnD0F,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEvG,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,cAAkB,KAAe,KAAK,gBAAkB,OACtEA,EAAS,cAAmB,cAAe,KAAK,cAAgB,KAAK,cAAc,UAAU,EAAI,KAAK,eAEpG,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMpF,GAAN,MAAM6F,CAAuB,CAC3B,OAAO,UAAUZ,EAAO,CACtB,IAAIC,EAAI,IAAIW,EACZ,OAAAX,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAa,SAASD,EAAM,WAAY,EAAE,GAE1CA,EAAM,YACRC,EAAE,UAAY,IAAI,KAAKD,EAAM,SAAS,GAEjCC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEnBA,CACT,CACF,EAOMnF,GAAN,MAAM6F,CAAmB,CACvB,OAAO,UAAUb,EAAO,CACtB,IAAIC,EAAI,IAAIY,EACZ,OAAAZ,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMlF,GAAN,MAAM6F,CAAqB,CACzB,OAAO,UAAUd,EAAO,CACtB,IAAIC,EAAI,IAAIa,EACZ,OAAAb,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,aACRC,EAAE,WAAa1F,GAAW,UAAUyF,EAAM,UAAU,GAE/CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMjF,GAAN,MAAM6F,CAAuB,CAC3B,OAAO,UAAUf,EAAO,CACtB,IAAIC,EAAI,IAAIc,EACZ,OAAAd,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,UACRC,EAAE,QAAUxG,GAAoBQ,GAAa+F,EAAM,OAAO,GAErDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EACMhF,GAAN,MAAM6F,CAAqB,CACzB,OAAO,UAAUhB,EAAO,CACtB,IAAIC,EAAI,IAAIe,EACZ,OAAAf,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM/E,GAAN,MAAM6F,CAAkB,CACtB,OAAO,UAAUjB,EAAO,CACtB,IAAIC,EAAI,IAAIgB,EACZ,OAAAhB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM9E,GAAN,MAAM6F,CAAwB,CAC5B,OAAO,UAAUlB,EAAO,CACtB,IAAIC,EAAI,IAAIiB,EACZ,OAAAjB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,cACRC,EAAE,YAAcD,EAAM,YAAY,IAAIhF,GAAmB,SAAS,GAE7DiF,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,YAAgB,KAAe,KAAK,cAAgB,OAClEA,EAAS,YAAiB,cAAe,KAAK,YAAc,KAAK,YAAY,UAAU,EAAI,KAAK,aAE3FA,CACT,CACF,EACM7E,GAAN,MAAM6F,CAA2B,CAC/B,OAAO,UAAUnB,EAAO,CACtB,IAAIC,EAAI,IAAIkB,EACZ,OAAAlB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,kBACRC,EAAE,gBAAkBD,EAAM,gBAAgB,IAAIzE,GAAkB,SAAS,GAEpE0E,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,gBAAoB,KAAe,KAAK,kBAAoB,OAC1EA,EAAS,gBAAqB,cAAe,KAAK,gBAAkB,KAAK,gBAAgB,UAAU,EAAI,KAAK,iBAEvGA,CACT,CACF,EACM5E,GAAN,MAAM6F,CAAkB,CACtB,OAAO,UAAUpB,EAAO,CACtB,IAAIC,EAAI,IAAImB,EACZ,OAAAnB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,OACRC,EAAE,KAAOtF,EAAU,UAAUqF,EAAM,IAAI,GAErCA,EAAM,WACRC,EAAE,SAAWtF,EAAU,UAAUqF,EAAM,QAAQ,GAE7CA,EAAM,cACRC,EAAE,YAAcD,EAAM,YAAY,IAAIzF,GAAW,SAAS,GAErD0F,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,YAAgB,KAAe,KAAK,cAAgB,OAClEA,EAAS,YAAiB,cAAe,KAAK,YAAc,KAAK,YAAY,UAAU,EAAI,KAAK,aAE9F,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM3E,GAAN,MAAM6F,CAAe,CACnB,OAAO,UAAUrB,EAAO,CACtB,IAAIC,EAAI,IAAIoB,EACZ,OAAApB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM1E,EAAN,MAAM6F,CAAgB,CACpB,OAAO,UAAUtB,EAAO,CACtB,IAAIC,EAAI,IAAIqB,EACZ,OAAArB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEjCC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EACMzE,GAAN,MAAM6F,CAAoB,CACxB,OAAO,UAAUvB,EAAO,CACtB,IAAIC,EAAI,IAAIsB,EACZ,OAAAtB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQ,SAASD,EAAM,MAAO,EAAE,GAE7BC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,IAAQ,MACtBA,EAAS,IAAS,KAAK,KAErB,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEpBA,CACT,CACF,EACMxE,GAAN,MAAM6F,CAAuB,CAC3B,OAAO,UAAUxB,EAAO,CACtB,IAAIC,EAAI,IAAIuB,EACZ,OAAAvB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,iBACRC,EAAE,eAAiBD,EAAM,eAAe,IAAIpE,GAAkB,SAAS,GAElEqE,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEpGA,CACT,CACF,EACMvE,GAAN,MAAM6F,CAAkB,CACtB,OAAO,UAAUzB,EAAO,CACtB,IAAIC,EAAI,IAAIwB,EACZ,OAAAxB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMtE,GAAN,MAAM6F,CAAyB,CAC7B,OAAO,UAAU1B,EAAO,CACtB,IAAIC,EAAI,IAAIyB,EACZ,OAAAzB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAWnE,GAAoB,UAAUkE,EAAM,QAAQ,GAEvDA,EAAM,aACRC,EAAE,WAAa1E,GAAkB,UAAUyE,EAAM,UAAU,GAEzDA,EAAM,WACRC,EAAE,SAAW7B,GAAgB,UAAU4B,EAAM,QAAQ,GAEnDA,EAAM,UACRC,EAAE,QAAU5B,GAAe,UAAU2B,EAAM,OAAO,GAEhDA,EAAM,cACRC,EAAE,YAAcjF,GAAmB,UAAUgF,EAAM,WAAW,GAE5DA,EAAM,iBACRC,EAAE,eAAiBhD,GAAsB,UAAU+C,EAAM,cAAc,GAErEA,EAAM,aACRC,EAAE,WAAarC,GAAkB,UAAUoC,EAAM,UAAU,GAEzDA,EAAM,YACRC,EAAE,UAAY9B,GAAiB,UAAU6B,EAAM,SAAS,GAEtDA,EAAM,cACRC,EAAE,YAAcpC,GAAY,UAAUmC,EAAM,WAAW,GAErDA,EAAM,aACRC,EAAE,WAAa7E,GAAkB,UAAU4E,EAAM,UAAU,GAEzDA,EAAM,kBACRC,EAAE,gBAAkB/E,GAAuB,UAAU8E,EAAM,eAAe,GAExEA,EAAM,UACRC,EAAE,QAAUzE,GAAe,UAAUwE,EAAM,OAAO,GAEhDA,EAAM,aACRC,EAAE,WAAa5C,GAAkB,UAAU2C,EAAM,UAAU,GAEzDA,EAAM,WACRC,EAAE,SAAW/B,GAAgB,UAAU8B,EAAM,QAAQ,GAEnDA,EAAM,iBACRC,EAAE,eAAiBtC,GAAsB,UAAUqC,EAAM,cAAc,GAErEA,EAAM,SACRC,EAAE,OAASrE,GAAkB,UAAUoE,EAAM,MAAM,GAEjDA,EAAM,UACRC,EAAE,QAAUzC,GAAmB,UAAUwC,EAAM,OAAO,GAEpDA,EAAM,UACRC,EAAE,QAAU3C,GAAsB,UAAU0C,EAAM,OAAO,GAEvDA,EAAM,gBACRC,EAAE,cAAgBhF,GAAqB,UAAU+E,EAAM,aAAa,GAElEA,EAAM,mBACRC,EAAE,iBAAmB/C,GAAwB,UAAU8C,EAAM,gBAAgB,GAE3EA,EAAM,gBACRC,EAAE,cAAgB9E,GAAqB,UAAU6E,EAAM,aAAa,GAElEA,EAAM,mBACRC,EAAE,iBAAmB9C,GAAwB,UAAU6C,EAAM,gBAAgB,GAExEC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,YAAgB,KAAe,KAAK,cAAgB,OAClEA,EAAS,YAAiB,cAAe,KAAK,YAAc,KAAK,YAAY,UAAU,EAAI,KAAK,aAE9F,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEvG,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,YAAgB,KAAe,KAAK,cAAgB,OAClEA,EAAS,YAAiB,cAAe,KAAK,YAAc,KAAK,YAAY,UAAU,EAAI,KAAK,aAE9F,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,gBAAoB,KAAe,KAAK,kBAAoB,OAC1EA,EAAS,gBAAqB,cAAe,KAAK,gBAAkB,KAAK,gBAAgB,UAAU,EAAI,KAAK,iBAE1G,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEvG,OAAO,KAAK,OAAW,KAAe,KAAK,SAAW,OACxDA,EAAS,OAAY,cAAe,KAAK,OAAS,KAAK,OAAO,UAAU,EAAI,KAAK,QAE/E,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,cAAkB,KAAe,KAAK,gBAAkB,OACtEA,EAAS,cAAmB,cAAe,KAAK,cAAgB,KAAK,cAAc,UAAU,EAAI,KAAK,eAEpG,OAAO,KAAK,iBAAqB,KAAe,KAAK,mBAAqB,OAC5EA,EAAS,iBAAsB,cAAe,KAAK,iBAAmB,KAAK,iBAAiB,UAAU,EAAI,KAAK,kBAE7G,OAAO,KAAK,cAAkB,KAAe,KAAK,gBAAkB,OACtEA,EAAS,cAAmB,cAAe,KAAK,cAAgB,KAAK,cAAc,UAAU,EAAI,KAAK,eAEpG,OAAO,KAAK,iBAAqB,KAAe,KAAK,mBAAqB,OAC5EA,EAAS,iBAAsB,cAAe,KAAK,iBAAmB,KAAK,iBAAiB,UAAU,EAAI,KAAK,kBAE1GA,CACT,CACF,EACMrE,GAAN,MAAM6F,CAAoB,CACxB,OAAO,UAAU3B,EAAO,CACtB,IAAIC,EAAI,IAAI0B,EACZ,OAAA1B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAEhCA,EAAM,OACRC,EAAE,KAAOtF,EAAU,UAAUqF,EAAM,IAAI,GAErCA,EAAM,WACRC,EAAE,SAAWtF,EAAU,UAAUqF,EAAM,QAAQ,GAE7CA,EAAM,cACRC,EAAE,YAAcD,EAAM,YAAY,IAAIzF,GAAW,SAAS,GAErD0F,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,YAAgB,KAAe,KAAK,cAAgB,OAClEA,EAAS,YAAiB,cAAe,KAAK,YAAc,KAAK,YAAY,UAAU,EAAI,KAAK,aAE9F,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMpE,GAAN,MAAM6F,CAAkB,CACtB,OAAO,UAAU5B,EAAO,CACtB,IAAIC,EAAI,IAAI2B,EACZ,OAAA3B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAa,IAAI,KAAKD,EAAM,UAAU,GAEtCA,EAAM,WACRC,EAAE,SAAW,IAAI,KAAKD,EAAM,QAAQ,GAElCA,EAAM,WACRC,EAAE,SAAWtF,EAAU,UAAUqF,EAAM,QAAQ,GAE7CA,EAAM,iBACRC,EAAE,eAAiBxG,GAAoBW,GAAY4F,EAAM,cAAc,GAErEA,EAAM,iBACRC,EAAE,eAAiBzD,GAAgB,UAAUwD,EAAM,cAAc,GAE5DC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEpGA,CACT,CACF,EACMnE,GAAN,MAAM6F,CAAkB,CACtB,OAAO,UAAU7B,EAAO,CACtB,IAAIC,EAAI,IAAI4B,EACZ,OAAA5B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAWD,EAAM,SAAS,IAAItD,GAA+B,SAAS,GAEnEuD,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAElFA,CACT,CACF,EACMlE,GAAN,MAAM6F,CAAmB,CACvB,OAAO,UAAU9B,EAAO,CACtB,IAAIC,EAAI,IAAI6B,EACZ,OAAA7B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAI+B,GAAKtI,GAAoBU,GAAQ4H,CAAC,CAAC,GAE/D/B,EAAM,YACRC,EAAE,UAAYD,EAAM,UAAU,IAAIpD,GAAgB,SAAS,GAEtDqD,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEpBA,CACT,CACF,EACMjE,GAAN,MAAM8F,CAAe,CACnB,OAAO,UAAUhC,EAAO,CACtB,IAAIC,EAAI,IAAI+B,EACZ,OAAA/B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE5BA,CACT,CACF,EACMhE,GAAN,MAAM8F,CAAgB,CACpB,OAAO,UAAUjC,EAAO,CACtB,IAAIC,EAAI,IAAIgC,EACZ,OAAAhC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAOrF,GAAK,UAAUoF,EAAM,IAAI,GAE7BC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEtEA,CACT,CACF,EACM/D,GAAN,MAAM8F,CAAgB,CACpB,OAAO,UAAUlC,EAAO,CACtB,IAAIC,EAAI,IAAIiC,EACZ,OAAAjC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAInF,EAAa,SAAS,GAErDoF,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAE7BA,CACT,CACF,EACM9D,GAAN,MAAM8F,CAAiB,CACrB,OAAO,UAAUnC,EAAO,CACtB,IAAIC,EAAI,IAAIkC,EACZ,OAAAlC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQD,EAAM,MAAM,IAAIpF,GAAK,SAAS,GAEnCqF,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAEzEA,CACT,CACF,EACM7D,GAAN,MAAM8F,CAAe,CACnB,OAAO,UAAUpC,EAAO,CACtB,IAAIC,EAAI,IAAImC,EACZ,OAAAnC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAElFA,CACT,CACF,EACM5D,GAAN,MAAM8F,CAAgB,CACpB,OAAO,UAAUrC,EAAO,CACtB,IAAIC,EAAI,IAAIoC,EACZ,OAAApC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQnF,GAAS,UAAUkF,EAAM,KAAK,GAEnCC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAEzEA,CACT,CACF,EACM3D,GAAN,MAAM8F,CAAgB,CACpB,OAAO,UAAUtC,EAAO,CACtB,IAAIC,EAAI,IAAIqC,EACZ,OAAArC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,gBACRC,EAAE,cAAgBD,EAAM,cAAc,IAAIrF,EAAU,SAAS,GAExDsF,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,cAAkB,KAAe,KAAK,gBAAkB,OACtEA,EAAS,cAAmB,cAAe,KAAK,cAAgB,KAAK,cAAc,UAAU,EAAI,KAAK,eAEjGA,CACT,CACF,EACM1D,GAAN,MAAM8F,CAAY,CAChB,OAAO,UAAUvC,EAAO,CACtB,IAAIC,EAAI,IAAIsC,EACZ,OAAAtC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASD,EAAM,OAAO,IAAIzB,GAAS,SAAS,GAEzC0B,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,OAAW,KAAe,KAAK,SAAW,OACxDA,EAAS,OAAY,cAAe,KAAK,OAAS,KAAK,OAAO,UAAU,EAAI,KAAK,QAE5EA,CACT,CACF,EACMzD,GAAN,MAAM8F,CAA+B,CACnC,OAAO,UAAUxC,EAAO,CACtB,IAAIC,EAAI,IAAIuC,EACZ,OAAAvC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASxG,GAAoBU,GAAQ6F,EAAM,MAAM,GAEjDA,EAAM,UACRC,EAAE,QAAUlE,GAAkB,UAAUiE,EAAM,OAAO,GAEhDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEnBA,CACT,CACF,EACMxD,GAAN,MAAM8F,CAA8B,CAClC,OAAO,UAAUzC,EAAO,CACtB,IAAIC,EAAI,IAAIwC,EACZ,OAAAxC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQvE,GAAoB,UAAUsE,EAAM,KAAK,GAEjDA,EAAM,QACRC,EAAE,MAAQzB,GAAoB,UAAUwB,EAAM,KAAK,GAEjDA,EAAM,qBACRC,EAAE,mBAAqBD,EAAM,mBAAmB,IAAIpD,GAAgB,SAAS,GAExEqD,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAE5E,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAE5E,OAAO,KAAK,mBAAuB,KAAe,KAAK,qBAAuB,OAChFA,EAAS,mBAAwB,cAAe,KAAK,mBAAqB,KAAK,mBAAmB,UAAU,EAAI,KAAK,oBAEhHA,CACT,CACF,EACMvD,GAAN,MAAM8F,CAAgB,CACpB,OAAO,UAAU1C,EAAO,CACtB,IAAIC,EAAI,IAAIyC,EACZ,OAAAzC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,kBACRC,EAAE,gBAAkBD,EAAM,gBAAgB,IAAIrD,GAA8B,SAAS,GAEhFsD,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,gBAAoB,KAAe,KAAK,kBAAoB,OAC1EA,EAAS,gBAAqB,cAAe,KAAK,gBAAkB,KAAK,gBAAgB,UAAU,EAAI,KAAK,iBAEvGA,CACT,CACF,EACMtD,GAAN,MAAM8F,CAAoB,CACxB,OAAO,UAAU3C,EAAO,CACtB,IAAIC,EAAI,IAAI0C,EACZ,OAAA1C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASD,EAAM,OAAO,IAAInE,GAAyB,SAAS,GAEzDoE,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,OAAW,KAAe,KAAK,SAAW,OACxDA,EAAS,OAAY,cAAe,KAAK,OAAS,KAAK,OAAO,UAAU,EAAI,KAAK,QAE/E,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMrD,GAAN,MAAM8F,CAA0C,CAC9C,OAAO,UAAU5C,EAAO,CACtB,IAAIC,EAAI,IAAI2C,EACZ,OAAA3C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAElFA,CACT,CACF,EACMpD,GAAN,MAAM8F,CAAsB,CAC1B,OAAO,UAAU7C,EAAO,CACtB,IAAIC,EAAI,IAAI4C,EACZ,OAAA5C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYD,EAAM,UAAU,IAAIlD,GAA0C,SAAS,GAEhFmD,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAErFA,CACT,CACF,EACMnD,GAAN,MAAM8F,CAAuB,CAC3B,OAAO,UAAU9C,EAAO,CACtB,IAAIC,EAAI,IAAI6C,EACZ,OAAA7C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,iBACRC,EAAE,eAAiBD,EAAM,eAAe,IAAIvC,GAAkB,SAAS,GAElEwC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEpGA,CACT,CACF,EACMlD,GAAN,MAAM8F,CAAsB,CAC1B,OAAO,UAAU/C,EAAO,CACtB,IAAIC,EAAI,IAAI8C,EACZ,OAAA9C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMjD,GAAN,MAAM8F,CAAwB,CAC5B,OAAO,UAAUhD,EAAO,CACtB,IAAIC,EAAI,IAAI+C,EACZ,OAAA/C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,aACRC,EAAE,WAAa1F,GAAW,UAAUyF,EAAM,UAAU,GAE/CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMhD,GAAN,MAAM8F,CAAwB,CAC5B,OAAO,UAAUjD,EAAO,CACtB,IAAIC,EAAI,IAAIgD,EACZ,OAAAhD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM/C,GAAN,MAAM8F,CAA2B,CAC/B,OAAO,UAAUlD,EAAO,CACtB,IAAIC,EAAI,IAAIiD,EACZ,OAAAjD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,iBACRC,EAAE,eAAiBD,EAAM,eAAe,IAAI/C,GAAsB,SAAS,GAEtEgD,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEpGA,CACT,CACF,EACM9C,GAAN,MAAM8F,CAAkB,CACtB,OAAO,UAAUnD,EAAO,CACtB,IAAIC,EAAI,IAAIkD,EACZ,OAAAlD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM7C,GAAN,MAAM8F,CAAsB,CAC1B,OAAO,UAAUpD,EAAO,CACtB,IAAIC,EAAI,IAAImD,EACZ,OAAAnD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,kBACRC,EAAE,gBAAkB,SAASD,EAAM,gBAAiB,EAAE,GAEpDA,EAAM,cACRC,EAAE,YAAc,SAASD,EAAM,YAAa,EAAE,GAEzCC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM5C,GAAN,MAAM8F,CAAwB,CAC5B,OAAO,UAAUrD,EAAO,CACtB,IAAIC,EAAI,IAAIoD,EACZ,OAAApD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,kBACRC,EAAE,gBAAkBD,EAAM,gBAAgB,IAAIxC,GAAmB,SAAS,GAErEyC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,gBAAoB,KAAe,KAAK,kBAAoB,OAC1EA,EAAS,gBAAqB,cAAe,KAAK,gBAAkB,KAAK,gBAAgB,UAAU,EAAI,KAAK,iBAEvGA,CACT,CACF,EACM3C,GAAN,MAAM8F,CAAmB,CACvB,OAAO,UAAUtD,EAAO,CACtB,IAAIC,EAAI,IAAIqD,EACZ,OAAArD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM1C,GAAN,MAAM8F,CAAkB,CACtB,OAAO,UAAUvD,EAAO,CACtB,IAAIC,EAAI,IAAIsD,EACZ,OAAAtD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAa,IAAI,KAAKD,EAAM,UAAU,GAEtCA,EAAM,WACRC,EAAE,SAAW,IAAI,KAAKD,EAAM,QAAQ,GAElCA,EAAM,WACRC,EAAE,SAAWtF,EAAU,UAAUqF,EAAM,QAAQ,GAE7CA,EAAM,WACRC,EAAE,SAAW,SAASD,EAAM,SAAU,EAAE,GAEtCA,EAAM,gBACRC,EAAE,cAAgBxG,GAAoBY,GAAe2F,EAAM,aAAa,GAEtEA,EAAM,iBACRC,EAAE,eAAiBxG,GAAoBW,GAAY4F,EAAM,cAAc,GAErEA,EAAM,QACRC,EAAE,MAAQD,EAAM,MAAM,IAAI1B,GAAK,SAAS,GAEtC0B,EAAM,YACRC,EAAE,UAAYxD,GAAY,UAAUuD,EAAM,SAAS,GAEjDA,EAAM,iBACRC,EAAE,eAAiBzD,GAAgB,UAAUwD,EAAM,cAAc,GAE5DC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAE5E,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEvG,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMzC,GAAN,MAAM8F,CAAmB,CACvB,OAAO,UAAUxD,EAAO,CACtB,IAAIC,EAAI,IAAIuD,EACZ,OAAAvD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQD,EAAM,MAAM,IAAIpF,GAAK,SAAS,GAEtCoF,EAAM,OACRC,EAAE,KAAO,SAASD,EAAM,KAAM,EAAE,GAE3BC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAE5E,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEnBA,CACT,CACF,EACMxC,GAAN,MAAM8F,CAAsB,CAC1B,OAAO,UAAUzD,EAAO,CACtB,IAAIC,EAAI,IAAIwD,EACZ,OAAAxD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMvC,GAAN,MAAM8F,CAAkB,CACtB,OAAO,UAAU1D,EAAO,CACtB,IAAIC,EAAI,IAAIyD,EACZ,OAAAzD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,UACRC,EAAE,QAAU,IAAI,KAAKD,EAAM,OAAO,GAE7BC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMtC,GAAN,MAAM8F,CAAY,CAChB,OAAO,UAAU3D,EAAO,CACtB,IAAIC,EAAI,IAAI0D,EACZ,OAAA1D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,eACRC,EAAE,aAAetF,EAAU,UAAUqF,EAAM,YAAY,GAErDA,EAAM,QACRC,EAAE,MAAQxG,GAAoBS,GAAe8F,EAAM,KAAK,GAEnDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,aAAiB,KAAe,KAAK,eAAiB,OACpEA,EAAS,aAAkB,cAAe,KAAK,aAAe,KAAK,aAAa,UAAU,EAAI,KAAK,cAEjG,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEpBA,CACT,CACF,EACMrC,GAAN,MAAM8F,CAAoB,CACxB,OAAO,UAAU5D,EAAO,CACtB,IAAIC,EAAI,IAAI2D,EACZ,OAAA3D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAEhDA,EAAM,eACRC,EAAE,aAAetF,EAAU,UAAUqF,EAAM,YAAY,GAElDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,aAAiB,KAAe,KAAK,eAAiB,OACpEA,EAAS,aAAkB,cAAe,KAAK,aAAe,KAAK,aAAa,UAAU,EAAI,KAAK,cAEjG,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMpC,GAAN,MAAM8F,CAAuB,CAC3B,OAAO,UAAU7D,EAAO,CACtB,IAAIC,EAAI,IAAI4D,EACZ,OAAA5D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,kBACRC,EAAE,gBAAkBD,EAAM,gBAAgB,IAAIpC,GAAkB,SAAS,GAEpEqC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,gBAAoB,KAAe,KAAK,kBAAoB,OAC1EA,EAAS,gBAAqB,cAAe,KAAK,gBAAkB,KAAK,gBAAgB,UAAU,EAAI,KAAK,iBAEvGA,CACT,CACF,EACMnC,GAAN,MAAM8F,CAAqB,CACzB,OAAO,UAAU9D,EAAO,CACtB,IAAIC,EAAI,IAAI6D,EACZ,OAAA7D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,gBACRC,EAAE,cAAgBD,EAAM,cAAc,IAAI9B,GAAgB,SAAS,GAE9D+B,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,cAAkB,KAAe,KAAK,gBAAkB,OACtEA,EAAS,cAAmB,cAAe,KAAK,cAAgB,KAAK,cAAc,UAAU,EAAI,KAAK,eAEjGA,CACT,CACF,EACMlC,GAAN,MAAM8F,CAAsB,CAC1B,OAAO,UAAU/D,EAAO,CACtB,IAAIC,EAAI,IAAI8D,EACZ,OAAA9D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,iBACRC,EAAE,eAAiBD,EAAM,eAAe,IAAI7B,GAAiB,SAAS,GAEjE8B,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEpGA,CACT,CACF,EACMjC,GAAN,MAAM8F,CAAgB,CACpB,OAAO,UAAUhE,EAAO,CACtB,IAAIC,EAAI,IAAI+D,EACZ,OAAA/D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACMhC,GAAN,MAAM8F,CAAiB,CACrB,OAAO,UAAUjE,EAAO,CACtB,IAAIC,EAAI,IAAIgE,EACZ,OAAAhE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM/B,GAAN,MAAM8F,CAAgB,CACpB,OAAO,UAAUlE,EAAO,CACtB,IAAIC,EAAI,IAAIiE,EACZ,OAAAjE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM9B,GAAN,MAAM8F,CAAe,CACnB,OAAO,UAAUnE,EAAO,CACtB,IAAIC,EAAI,IAAIkE,EACZ,OAAAlE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU,SAASD,EAAM,QAAS,EAAE,GAEpCA,EAAM,WACRC,EAAE,SAAWpF,EAAa,UAAUmF,EAAM,QAAQ,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,SAAa,KAAe,KAAK,WAAa,OAC5DA,EAAS,SAAc,cAAe,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,KAAK,UAErF,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAE9BA,CACT,CACF,EACM7B,GAAN,MAAM8F,CAAK,CACT,OAAO,UAAUpE,EAAO,CACtB,IAAIC,EAAI,IAAImE,EACZ,OAAAnE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYxG,GAAoBY,GAAe2F,EAAM,SAAS,GAE3DC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAExBA,CACT,CACF,EACM5B,GAAN,MAAM8F,CAAS,CACb,OAAO,UAAUrE,EAAO,CACtB,IAAIC,EAAI,IAAIoE,EACZ,OAAApE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACnBC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEnBA,CACT,CACF,EACM3B,GAAN,MAAM8F,CAAoB,CACxB,OAAO,UAAUtE,EAAO,CACtB,IAAIC,EAAI,IAAIqE,EACZ,OAAArE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACnBC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,IAAQ,MACtBA,EAAS,IAAS,KAAK,KAErB,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEpBA,CACT,CACF,EAiCM1B,IAAiB,OAAS,OAAO,YAAiB,SAAW,OAC7DC,GAAU,CACd,MAAS,0BACT,KAAQ,GACR,KAAQ,8BACR,KAAQ,8BACR,WAAc,6BAChB,EACIC,IAA4B,IAAM,CACpC,MAAMA,CAAY,CAChB,IAAI,MAAO,CACT,OAAOD,GAAQD,GAAc,YAAY,CAAC,CAC5C,CACA,IAAI,gBAAiB,CACnB,MAAO,WAAa,KAAK,IAC3B,CACF,CACA,OAAAE,EAAY,UAAO,SAA6B4F,EAAmB,CACjE,OAAO,IAAKA,GAAqB5F,EACnC,EACAA,EAAY,WAA0B6F,EAAmB,CACvD,MAAO7F,EACP,QAASA,EAAY,UACrB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAMCC,IAAsC,IAAM,CAC9C,MAAMA,CAAsB,CAC1B,YAAY6F,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,GAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,SAASC,EAAG,CACV,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI9I,GAAoB8I,CAAC,EAC3D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gCAAiCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAC/J,CACA,WAAWH,EAAG,CACZ,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIrJ,GAAkBqJ,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kCAAmCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACjK,CACA,oBAAoBH,EAAG,CACrB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAItJ,GAA2BsJ,CAAC,EAClE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,2CAA4CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAC1K,CACA,SAASH,EAAG,CACV,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIxG,GAAgBwG,CAAC,EACvD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gCAAiCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAC/J,CACA,UAAUH,EAAG,CACX,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIzG,GAAiByG,CAAC,EACxD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,iCAAkCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAChK,CACA,eAAeH,EAAG,CAChB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI3G,GAAsB2G,CAAC,EAC7D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,sCAAuCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhI,GAAsB,UAAUgI,CAAI,CAAC,CAAC,CAC3K,CACA,WAAWH,EAAG,CACZ,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIhH,GAAkBgH,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kCAAmCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACjK,CACA,gBAAgBH,EAAG,CACjB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI7G,GAAuB6G,CAAC,EAC9D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,uCAAwCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhI,GAAsB,UAAUgI,CAAI,CAAC,CAAC,CAC5K,CACA,YAAYH,EAAG,CACb,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI5J,GAAmB4J,CAAC,EAC1D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,mCAAoCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAClK,CACA,iBAAiBH,EAAG,CAClB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIvJ,GAAwBuJ,CAAC,EAC/D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,wCAAyCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhI,GAAsB,UAAUgI,CAAI,CAAC,CAAC,CAC7K,CACA,eAAeH,EAAG,CAChB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI3H,GAAsB2H,CAAC,EAC7D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,sCAAuCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACrK,CACA,oBAAoBH,EAAG,CACrB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIxH,GAA2BwH,CAAC,EAClE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,2CAA4CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhI,GAAsB,UAAUgI,CAAI,CAAC,CAAC,CAChL,CACA,QAAQH,EAAG,CACT,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIpJ,GAAeoJ,CAAC,EACtD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,+BAAgCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAC9J,CACA,WAAWH,EAAG,CACZ,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIvH,GAAkBuH,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kCAAmCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACjK,CACA,cAAcH,EAAG,CACf,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIzJ,GAAqByJ,CAAC,EAC5D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,qCAAsCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACpK,CACA,iBAAiBH,EAAG,CAClB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIzH,GAAwByH,CAAC,EAC/D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,wCAAyCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACvK,CACA,SAASH,EAAG,CACV,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI1G,GAAgB0G,CAAC,EACvD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gCAAiCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAC/J,CACA,cAAcH,EAAG,CACf,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI5G,GAAqB4G,CAAC,EAC5D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,qCAAsCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhI,GAAsB,UAAUgI,CAAI,CAAC,CAAC,CAC1K,CACA,eAAeH,EAAG,CAChB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIjH,GAAsBiH,CAAC,EAC7D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,sCAAuCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACrK,CACA,WAAWH,EAAG,CACZ,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIxJ,GAAkBwJ,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kCAAmCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACjK,CACA,WAAWH,EAAG,CACZ,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIhJ,GAAkBgJ,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kCAAmCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACjK,CACA,gBAAgBH,EAAG,CACjB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIjJ,GAAuBiJ,CAAC,EAC9D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,uCAAwCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhI,GAAsB,UAAUgI,CAAI,CAAC,CAAC,CAC5K,CACA,YAAYH,EAAG,CACb,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIpH,GAAmBoH,CAAC,EAC1D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,mCAAoCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAClK,CACA,iBAAiBH,EAAG,CAClB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIrH,GAAwBqH,CAAC,EAC/D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,wCAAyCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhI,GAAsB,UAAUgI,CAAI,CAAC,CAAC,CAC7K,CACA,QAAQH,EAAG,CACT,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI9G,GAAoB8G,CAAC,EAC3D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,+BAAgCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAC9J,CACA,YAAYH,EAAG,CACb,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI9G,GAAoB8G,CAAC,EAC3D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,mCAAoCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAClK,CACA,gBAAgBH,EAAG,CACjB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI1J,GAAuB0J,CAAC,EAC9D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,uCAAwCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACtK,CACA,eAAeH,EAAG,CAChB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAItH,GAAsBsH,CAAC,EAC7D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,sCAAuCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACrK,CACA,cAAcH,EAAG,CACf,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI3J,GAAqB2J,CAAC,EAC5D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,qCAAsCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACpK,CACA,iBAAiBH,EAAG,CAClB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI1H,GAAwB0H,CAAC,EAC/D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,wCAAyCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CACvK,CACA,QAAQH,EAAG,CACT,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIvG,GAAeuG,CAAC,EACtD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,+BAAgCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,EAAgB,UAAUsJ,CAAI,CAAC,CAAC,CAC9J,CACA,aAAaH,EAAG,CACd,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI/H,GAAoB+H,CAAC,EAC3D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,oCAAqCC,EAAQ,UAAU,EAAGG,GAAAC,GAAA,GACxF,KAAK,WAAW,GADwE,CAE3F,QAAS,UACX,EAAC,CACH,CACF,CACA,OAAArG,EAAsB,UAAO,SAAuC2F,EAAmB,CACrF,OAAO,IAAKA,GAAqB3F,GAA0BsG,EAAYC,EAAU,EAAMD,EAASvG,EAAW,CAAC,CAC9G,EACAC,EAAsB,WAA0B4F,EAAmB,CACjE,MAAO5F,EACP,QAASA,EAAsB,UAC/B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAMCC,IAAoC,IAAM,CAC5C,MAAMA,CAAoB,CACxB,YAAY4F,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,GAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,IAAIC,EAAG,CACL,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI1I,GAAe0I,CAAC,EACtD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,yBAA0BC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ5I,GAAgB,UAAU4I,CAAI,CAAC,CAAC,CACxJ,CACA,SAASH,EAAG,CACV,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIxI,GAAgBwI,CAAC,EACvD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,8BAA+BC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ1I,GAAiB,UAAU0I,CAAI,CAAC,CAAC,CAC9J,CACA,QAAQH,EAAG,CACT,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAItI,GAAesI,CAAC,EACtD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,6BAA8BC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQxI,GAAgB,UAAUwI,CAAI,CAAC,CAAC,CAC5J,CACA,OAAOH,EAAG,CACR,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAInH,GAAkBmH,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,4BAA6BC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQrH,GAAmB,UAAUqH,CAAI,CAAC,CAAC,CAC9J,CACA,YAAYH,EAAG,CACb,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI5H,GAAuB4H,CAAC,EAC9D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,iCAAkCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQrH,GAAmB,UAAUqH,CAAI,CAAC,CAAC,CACnK,CACA,WAAWH,EAAG,CACZ,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI5I,GAAkB4I,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gCAAiCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ9I,GAAmB,UAAU8I,CAAI,CAAC,CAAC,CAClK,CACF,CACA,OAAAlG,EAAoB,UAAO,SAAqC0F,EAAmB,CACjF,OAAO,IAAKA,GAAqB1F,GAAwBqG,EAAYC,EAAU,EAAMD,EAASvG,EAAW,CAAC,CAC5G,EACAE,EAAoB,WAA0B2F,EAAmB,CAC/D,MAAO3F,EACP,QAASA,EAAoB,UAC7B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAYCC,GAAsB,SAAUA,EAAQ,CAC1C,OAAAA,EAAO,OAAY,SACnBA,EAAO,IAAS,QAChBA,EAAO,MAAW,UAClBA,EAAO,KAAU,OACjBA,EAAO,KAAU,OACVA,CACT,EAAEA,IAAU,CAAC,CAAC,EAIVC,GAAsB,SAAUA,EAAQ,CAC1C,OAAAA,EAAO,KAAU,OACjBA,EAAO,WAAgB,cACvBA,EAAO,kBAAuB,sBAC9BA,EAAO,UAAe,YACfA,CACT,EAAEA,IAAU,CAAC,CAAC,EACVC,EAA6B,SAAUA,EAAe,CACxD,OAAAA,EAAc,MAAW,QACzBA,EAAc,OAAY,SAC1BA,EAAc,KAAU,OACxBA,EAAc,OAAY,SAC1BA,EAAc,KAAU,OACjBA,CACT,EAAEA,GAAiB,CAAC,CAAC,EACflF,GAAa,IA0BfmF,IAA+B,IAAM,CACvC,MAAMA,CAAe,CACnB,OAAO,2BAA2BmG,EAAWC,EAAgB,CAC3D,OAAO3L,GAAe,CACpB,QAAS0L,EACT,gBAAiBC,CACnB,CAAC,CACH,CACA,OAAO,sBAAsBD,EAAW,CACtC,OAAO1L,GAAe,CACpB,QAAS0L,CACX,CAAC,CACH,CACA,OAAO,gBAAiB,CACtB,MAAO,MAAQrL,GAAQ,CACzB,CACA,YAAYuL,EAAYC,EAAU,CAChC,KAAK,WAAaD,EAClB,KAAK,SAAWC,CAClB,CACA,SAASC,EAAM,CACb,IAAMC,EAAS,IAAI/K,GAAkB,CACnC,IAAK,SACL,OAAQ,CAAC,CACP,YAAa8K,EAAK,OAClB,KAAM1G,GAAO,MACf,CAAC,CACH,CAAC,EACG4G,EAAW,CACb,UAAW,CAACD,CAAM,CACpB,EACA,OAAID,EAAK,UAAYA,EAAK,SAAS,YACjCA,EAAK,SAAS,UAAU,KAAKC,CAAM,EACnCC,EAAW,CACT,UAAWF,EAAK,SAAS,SAC3B,GAEFA,EAAK,SAAW,IAAI7K,EAAU+K,CAAQ,EAC/B,KAAK,WAAW,SAAS,IAAI5J,GAAoB0J,CAAI,CAAC,EAAE,KAAKV,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC7F,CACA,WAAWH,EAAM,CACf,IAAME,EAAWF,EAAK,SAAWtG,EAAe,aAAasG,EAAK,QAAQ,EAAI,IAAItG,EAClF,OAAAwG,EAAS,IAAI,SAAU,CAACF,EAAK,MAAM,EAAGxG,EAAc,MAAM,EAC1DwG,EAAK,SAAWE,EAAS,WAAW,EAC7B,KAAK,WAAW,WAAW,IAAInK,GAAkBiK,CAAI,CAAC,EAAE,KAAKV,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC7F,CACA,oBAAoBC,EAA4B,CAC9C,IAAMC,EAAWD,GAA4B,iBAAiB,IAAIpM,GAAS,CACzE,IAAMkM,EAAWlM,EAAM,SAAW0F,EAAe,aAAa1F,EAAM,QAAQ,EAAI,IAAI0F,EACpF,OAAAwG,EAAS,IAAI,SAAU,CAAClM,EAAM,MAAM,EAAGwF,EAAc,MAAM,EAC3DxF,EAAM,SAAWkM,EAAS,WAAW,EAC9B,IAAInK,GAAkB/B,CAAK,EAAE,UAAU,CAChD,CAAC,EACD,OAAO,KAAK,WAAW,oBAAoB,IAAI8B,GAA2B,CACxE,gBAAiBuK,CACnB,CAAC,CAAC,EAAE,KAAKf,EAAIa,GAAOA,EAAI,SAAW,CAAC,CAAC,CACvC,CAKA,QAAQG,EAAWC,EAAYC,EAAQC,EAAe,CACpD,IAAMC,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAI3I,GAAe,CACjC,SAAUgK,EACV,cAAeD,CACjB,CAAC,EACD,OAAO,KAAK,SAAS,IAAIpB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,IAAI,CAAC,CAC7D,CAKA,QAAQG,EAAWC,EAAYC,EAAQ,CACrC,IAAME,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIvI,GAAe,CACjC,SAAA4J,CACF,CAAC,EACD,OAAO,KAAK,SAAS,QAAQrB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,KAAK,CAAC,CAClE,CACA,SAASG,EAAWC,EAAYC,EAAQG,EAAUC,EAAY,CAC5D,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIzG,GAAgB,CAClC,SAAU8H,EACV,MAAOC,EACP,QAASC,CACX,CAAC,EACD,OAAO,KAAK,WAAW,SAASvB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACvE,CACA,UAAUG,EAAWC,EAAYC,EAAQK,EAAWD,EAAY,CAC9D,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAI1G,GAAiB,CACnC,OAAQkI,EACR,SAAUH,EACV,QAASE,CACX,CAAC,EACD,OAAO,KAAK,WAAW,UAAUvB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACxE,CACA,kBAAkBE,EAAU,CAC1B,IAAMS,EAAW,IAAIrI,GAAsB,CACzC,eAAgB4H,CAClB,CAAC,EACD,OAAO,KAAK,WAAW,eAAeS,CAAQ,CAChD,CACA,WAAWR,EAAWC,EAAYC,EAAQO,EAAYH,EAAY,CAChE,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIjH,GAAkB,CACpC,SAAUsI,EACV,QAASK,EACT,QAASH,CACX,CAAC,EACD,OAAO,KAAK,WAAW,WAAWvB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACzE,CACA,oBAAoBE,EAAU,CAC5B,IAAMS,EAAW,IAAIvI,GAAuB,CAC1C,gBAAiB8H,CACnB,CAAC,EACD,OAAO,KAAK,WAAW,gBAAgBS,CAAQ,CACjD,CACA,eAAeR,EAAWC,EAAYC,EAAQQ,EAAgBJ,EAAY,CACxE,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIlH,GAAsB,CACxC,SAAUuI,EACV,YAAaM,EACb,QAASJ,CACX,CAAC,EACD,OAAO,KAAK,WAAW,eAAevB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC7E,CACA,WAAWG,EAAWC,EAAYC,EAAQS,EAASL,EAAY,CAC7D,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIzJ,GAAkB,CACpC,SAAU8K,EACV,QAASO,EACT,QAASL,CACX,CAAC,EACD,OAAO,KAAK,WAAW,WAAWvB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACzE,CACA,YAAYG,EAAWC,EAAYC,EAAQU,EAAUN,EAAY,CAC/D,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAI7J,GAAmB,CACrC,SAAUkL,EACV,SAAUQ,EACV,QAASN,CACX,CAAC,EACD,OAAO,KAAK,WAAW,YAAYvB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC1E,CACA,qBAAqBE,EAAU,CAC7B,IAAMc,EAAM,IAAItL,GAAwB,CACtC,YAAawK,CACf,CAAC,EACD,OAAO,KAAK,WAAW,iBAAiBc,CAAG,CAC7C,CACA,eAAeb,EAAWC,EAAYC,EAAQU,EAAUN,EAAY,CAClE,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAI5H,GAAsB,CACxC,SAAUiJ,EACV,SAAUQ,EACV,QAASN,CACX,CAAC,EACD,OAAO,KAAK,WAAW,eAAevB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC7E,CACA,wBAAwBE,EAAU,CAChC,IAAMe,EAAM,IAAIxJ,GAA2B,CACzC,eAAgByI,CAClB,CAAC,EACD,OAAO,KAAK,WAAW,oBAAoBe,CAAG,CAChD,CACA,QAAQd,EAAWC,EAAYC,EAAQa,EAAST,EAAY,CAC1D,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIrJ,GAAe,CACjC,SAAU0K,EACV,KAAMW,EACN,QAAST,CACX,CAAC,EACD,OAAO,KAAK,WAAW,QAAQvB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACtE,CACA,WAAWG,EAAWC,EAAYC,EAAQc,EAAYV,EAAY,CAChE,IAAMF,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIxH,GAAkB,CACpC,SAAU6I,EACV,KAAMY,EACN,QAASV,CACX,CAAC,EACD,OAAO,KAAK,WAAW,WAAWvB,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACzE,CACA,YAAYG,EAAWC,EAAYC,EAAQe,EAAiBC,EAAaC,EAAS,CAChF,IAAMf,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIvH,GAAsB,CACxC,SAAU4I,EACV,gBAAiBa,EACjB,YAAaC,EACb,QAASC,CACX,CAAC,EACD,OAAO,KAAK,WAAW,eAAepC,CAAO,EAAE,KAAKC,EAAIa,IAAOA,GAAI,OAAO,CAAC,CAC7E,CACA,WAAWG,EAAWC,EAAYC,EAAQiB,EAAS,CACjD,IAAMf,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIjJ,GAAkB,CACpC,SAAAsK,EACA,QAAAe,CACF,CAAC,EACD,OAAO,KAAK,WAAW,WAAWpC,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACzE,CACA,oBAAoBE,EAAU,CAC5B,IAAMqB,EAAM,IAAIvL,GAAuB,CACrC,eAAgBkK,CAClB,CAAC,EACD,OAAO,KAAK,WAAW,gBAAgBqB,CAAG,CAC5C,CACA,YAAYpB,EAAWC,EAAYC,EAAQiB,EAAS,CAClD,IAAMf,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKnB,EAAU,IAAIrH,GAAmB,CACrC,SAAA0I,EACA,QAAAe,CACF,CAAC,EACD,OAAO,KAAK,WAAW,YAAYpC,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC1E,CACA,qBAAqBE,EAAU,CAC7B,IAAMsB,EAAM,IAAI5J,GAAwB,CACtC,gBAAiBsI,CACnB,CAAC,EACD,OAAO,KAAK,WAAW,iBAAiBsB,CAAG,CAC7C,CACA,cAAcrB,EAAWC,EAAYC,EAAQoB,EAAY,CACvD,IAAMlB,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKmB,EAAM,IAAIlM,GAAqB,CACnC,SAAAiL,EACA,WAAAkB,CACF,CAAC,EACD,OAAO,KAAK,WAAW,cAAcD,CAAG,EAAE,KAAKrC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACxE,CACA,iBAAiBG,EAAWC,EAAYC,EAAQoB,EAAY,CAC1D,IAAMlB,EAAW,IAAIrL,EAAa,CAChC,UAAAiL,EACA,WAAAC,EACA,OAAAC,CACF,CAAC,EACKmB,EAAM,IAAIjK,GAAwB,CACtC,SAAAgJ,EACA,WAAAkB,CACF,CAAC,EACD,OAAO,KAAK,WAAW,iBAAiBD,CAAG,EAAE,KAAKrC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC3E,CACA,aAAa0B,EAAQ,CACnB,IAAMF,EAAM,IAAItK,GAAoB,CAClC,OAAAwK,CACF,CAAC,EACD,OAAO,KAAK,WAAW,aAAaF,CAAG,EAAE,KAAKG,GAAM,IAAI,CAAC,CAC3D,CACA,OAAOzC,EAAS,CACd,OAAO,KAAK,SAAS,OAAOA,CAAO,CACrC,CACA,mBAAmBA,EAAS,CAC1B,IAAMyB,EAAW,IAAItJ,GACrBsJ,EAAS,eAAiB,CAAC,EAC3B,IAAMiB,EAAkBrI,EAAe,aAAa2F,EAAQ,QAAQ,EAEpE,OADmBA,EAAQ,WAChB,QAAQ2C,GAAa,CAC9B,IAAMC,EAAgB,IAAIhK,GAAkBoH,CAAO,EACnD4C,EAAc,SAAW,IAAI9M,EAAU4M,EAAgB,IAAI,YAAa,CAACC,CAAS,EAAGxI,EAAc,MAAM,EAAE,WAAW,CAAC,EACvHsH,EAAS,eAAe,KAAKmB,CAAa,CAC5C,CAAC,EACM,KAAK,SAAS,YAAYnB,CAAQ,CAC3C,CACA,mBAAmBzB,EAAS,CAC1B,IAAMyB,EAAW,IAAItJ,GACrBsJ,EAAS,eAAiB,CAAC,EAC3B,IAAMiB,EAAkBrI,EAAe,aAAa2F,EAAQ,QAAQ,EAEpE,OADmBA,EAAQ,WAChB,QAAQO,GAAa,CAC9B,IAAMqC,EAAgB,IAAIhK,GAAkBoH,CAAO,EACnD4C,EAAc,SAAW,IAAI9M,EAAU4M,EAAgB,IAAI,UAAW,CAACnC,CAAS,EAAGpG,EAAc,MAAM,EAAE,WAAW,CAAC,EACrHsH,EAAS,eAAe,KAAKmB,CAAa,CAC5C,CAAC,EACM,KAAK,SAAS,YAAYnB,CAAQ,CAC3C,CAKA,SAASzB,EAAS,CAChB,OAAO,KAAK,SAAS,SAASA,CAAO,CACvC,CAMA,UAAU6C,EAAQC,EAAS,CACzB,IAAM9C,EAAU,CACd,SAAU,CAAC,CACT,OAAA6C,EACA,QAAAC,EACA,KAAM,QACR,CAAC,CACH,EACA,OAAO,KAAK,SAAS,WAAW9C,CAAO,EAAE,KAAKC,EAAIF,GACzCA,EAAE,UAAU,CAAC,EAAE,eACvB,CAAC,CACJ,CAKA,QAAQC,EAAS,CACf,OAAO,KAAK,WAAW,QAAQA,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CACtE,CAKA,YAAYd,EAAS,CACnB,OAAO,KAAK,WAAW,YAAYA,CAAO,EAAE,KAAKC,EAAIa,GAAOA,EAAI,OAAO,CAAC,CAC1E,CACA,iBAAiBE,EAAU,CACzB,IAAMS,EAAW,IAAItI,GAAqB,CACxC,cAAe6H,CACjB,CAAC,EACD,OAAO,KAAK,WAAW,cAAcS,CAAQ,CAC/C,CACA,gBAAgBzB,EAAS,CACvB,OAAO,KAAK,WAAW,gBAAgBA,CAAO,CAChD,CACA,QAAQA,EAAS,CACf,OAAO,KAAK,WAAW,QAAQA,CAAO,CACxC,CACF,CACA,OAAA5F,EAAe,UAAO,SAAgCsF,EAAmB,CACvE,OAAO,IAAKA,GAAqBtF,GAAmBiG,EAAStG,EAAqB,EAAMsG,EAASrG,EAAmB,CAAC,CACvH,EACAI,EAAe,WAA0BuF,EAAmB,CAC1D,MAAOvF,EACP,QAASA,EAAe,UACxB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAICC,GAA+B,IAAM,CACvC,MAAMA,CAAe,CAInB,OAAO,aAAa0I,EAAW,CAC7B,IAAMC,EAAS,IAAI3I,EACb4I,EAAqB,CAAC,EAM5B,GALKF,IACHA,EAAY,CACV,UAAW,CAAC,CACd,GAEE,CAACA,EAAU,UACb,OAAOC,EAET,QAAWE,KAAYH,EAAU,UAAW,CAE1C,IAAMI,EAAoB,CACxB,IAFUD,EAAS,IAGnB,aAAc,CAAC,EACf,WAAY,CAAC,EACb,YAAa,CAAC,EACd,aAAc,CAAC,EACf,WAAY,CAAC,CACf,EACA,GAAIA,EAAS,OAAQ,CACnB,QAAWvO,KAASuO,EAAS,OACvBvO,EAAM,cAAgB,QAAaA,EAAM,cAAgB,KAC3DwO,EAAkB,aAAa,KAAKxO,EAAM,WAAW,EAC5CA,EAAM,YAAc,QAAaA,EAAM,YAAc,KAC9DwO,EAAkB,WAAW,KAAKxO,EAAM,SAAS,EACxCA,EAAM,aAAe,QAAaA,EAAM,aAAe,KAChEwO,EAAkB,YAAY,KAAKxO,EAAM,UAAU,EAC1CA,EAAM,cAAgB,QAAaA,EAAM,cAAgB,KAClEwO,EAAkB,aAAa,KAAKxO,EAAM,WAAW,EAC5CA,EAAM,YAAc,QAAaA,EAAM,YAAc,MAC9DwO,EAAkB,WAAW,KAAKxO,EAAM,SAAS,EAGrDsO,EAAmB,KAAKE,CAAiB,CAC3C,CACF,CACA,OAAAH,EAAO,UAAYC,EACZD,CACT,CACA,aAAc,CACZ,KAAK,UAAY,CAAC,CACpB,CACA,IAAIhO,EAAKoO,EAAQC,EAAM,CACrB,GAAID,IAAW,MAAQA,EAAO,OAAS,EAAG,CACxC,QAAWF,KAAY,KAAK,UAC1B,GAAIA,EAAS,MAAQlO,EAAK,CACxB,OAAQqO,EAAM,CACZ,KAAKlJ,EAAc,KACjB+I,EAAS,WAAaE,EACtB,MACF,KAAKjJ,EAAc,OACjB+I,EAAS,aAAeE,EACxB,MACF,KAAKjJ,EAAc,MACjB+I,EAAS,YAAcE,EACvB,MACF,KAAKjJ,EAAc,OACjB+I,EAAS,aAAeE,EACxB,MACF,KAAKjJ,EAAc,KACjB+I,EAAS,WAAaE,EACtB,KACJ,CACA,OAAO,IACT,CAEF,IAAME,EAAa,CACjB,IAAKtO,EACL,WAAY,CAAC,EACb,aAAc,CAAC,EACf,YAAa,CAAC,EACd,aAAc,CAAC,EACf,WAAY,CAAC,CACf,EACA,OAAQqO,EAAM,CACZ,KAAKlJ,EAAc,KACjBmJ,EAAW,WAAaF,EACxB,MACF,KAAKjJ,EAAc,OACjBmJ,EAAW,aAAeF,EAC1B,MACF,KAAKjJ,EAAc,MACjBmJ,EAAW,YAAcF,EACzB,MACF,KAAKjJ,EAAc,OACjBmJ,EAAW,aAAeF,EAC1B,MACF,KAAKjJ,EAAc,KACjBmJ,EAAW,WAAaF,EACxB,KACJ,CACA,KAAK,UAAU,KAAKE,CAAU,CAChC,CACA,OAAO,IACT,CACA,IAAItO,EAAKqO,EAAM,CACb,QAAWH,KAAY,KAAK,UAC1B,GAAIA,EAAS,MAAQlO,EACnB,OAAQqO,EAAM,CACZ,KAAKlJ,EAAc,KACjB,OAAO+I,EAAS,WAClB,KAAK/I,EAAc,OACjB,OAAO+I,EAAS,aAClB,KAAK/I,EAAc,MACjB,OAAO+I,EAAS,YAClB,KAAK/I,EAAc,OACjB,OAAO+I,EAAS,aAClB,KAAK/I,EAAc,KACjB,OAAO+I,EAAS,UACpB,CAGJ,MAAO,CAAC,CACV,CAKA,YAAa,CACX,IAAMH,EAAY,IAAIjN,EAAU,CAC9B,UAAW,CAAC,CACd,CAAC,EACD,QAAWqN,KAAqB,KAAK,UAAW,CAC9C,IAAMD,EAAW,IAAIrN,GAAkB,CACrC,IAAKsN,EAAkB,IACvB,OAAQ,CAAC,CACX,CAAC,EACD,GAAIA,EAAkB,aACpB,QAAWI,KAAOJ,EAAkB,aAClCD,EAAS,OAAO,KAAK,IAAIhN,GAAuB,CAC9C,YAAaqN,EACb,KAAMpJ,EAAc,MACtB,CAAC,CAAC,EAGN,GAAIgJ,EAAkB,WACpB,QAAWI,KAAOJ,EAAkB,WAClCD,EAAS,OAAO,KAAK,IAAIhN,GAAuB,CAC9C,UAAWqN,EACX,KAAMpJ,EAAc,IACtB,CAAC,CAAC,EAGN,GAAIgJ,EAAkB,YACpB,QAAWI,KAAOJ,EAAkB,YAClCD,EAAS,OAAO,KAAK,IAAIhN,GAAuB,CAC9C,WAAYqN,EACZ,KAAMpJ,EAAc,KACtB,CAAC,CAAC,EAGN,GAAIgJ,EAAkB,aACpB,QAAWI,KAAOJ,EAAkB,aAClCD,EAAS,OAAO,KAAK,IAAIhN,GAAuB,CAC9C,YAAaqN,EACb,KAAMpJ,EAAc,MACtB,CAAC,CAAC,EAGN,GAAIgJ,EAAkB,WACpB,QAAWI,KAAOJ,EAAkB,WAClCD,EAAS,OAAO,KAAK,IAAIhN,GAAuB,CAC9C,UAAWqN,EACX,KAAMpJ,EAAc,IACtB,CAAC,CAAC,EAGF+I,EAAS,OAAO,OAAS,GAC3BH,EAAU,UAAU,KAAKG,CAAQ,CAErC,CACA,OAAOH,CACT,CACF,CACA,OAAA1I,EAAe,UAAO,SAAgCqF,EAAmB,CACvE,OAAO,IAAKA,GAAqBrF,EACnC,EACAA,EAAe,WAA0BsF,EAAmB,CAC1D,MAAOtF,EACP,QAASA,EAAe,UACxB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAIGC,IAAe,OAAS,OAAO,YAAiB,SAAW,OAC3DC,GAAgB,GAAK,KAAO,KAC5BC,GAA2B,CAAC,kBAAmB,2BAA4B,iDAAkD,wDAAyD,iDAAkD,oDAAqD,gCAAiC,sDAAuD,6DAA8D,sDAAuD,0DAA2D,yDAA0D,qBAAsB,mDAAoD,mDAAoD,4EAA6E,qEAAsE,yEAA0E,yEAA0E,wEAAyE,oEAAqE,uEAAwE,0EAA2E,yEAAyE,EAC92CC,GAAsC,IAAI+I,GAAe,8CAA8C,EACzG9I,IAAsC,IAAM,CAC9C,MAAMA,CAAsB,CAC1B,YAAY+I,EAAa7D,EAAM8D,EAAa7D,EAAa,CACvD,KAAK,YAAc4D,EACnB,KAAK,KAAO7D,EACZ,KAAK,YAAc8D,EACnB,KAAK,YAAc7D,EACnB4D,EAAY,KAAKE,GAAOC,GAAQ,CAAC,CAACA,EAAK,SAAS,EAAGC,EAAK,CAAC,CAAC,EAAE,UAAUD,GAAQ,CAC5E,KAAK,UAAYA,EAAK,SACxB,CAAC,CACH,CACA,WAAWE,EAAM,CACf,OAAK,KAAK,YAAYA,CAAI,EAGnB,KAAK,eAAeA,EAAK,KAAMA,EAAK,IAAI,EAAE,KAAKC,EAAUC,GACvD,KAAK,KAAK,KAAK,KAAK,YAAY,eAAiB,0BAA2BF,EAAM,CACvF,QAAS,CACP,eAAgBA,EAAK,IACvB,EACA,QAAS,OACT,aAAc,OACd,gBAAiB,GACjB,OAAQ,CACN,OAAQE,EAAoB,aAC5B,UAAW,KAAK,SAClB,CACF,CAAC,EAAE,KAAK/D,EAAI,KACH,CACL,KAAM6D,EAAK,KACX,IAAKE,EAAoB,YAC3B,EACD,CAAC,CACH,CAAC,EApBOC,GAAW,2BAA2B,CAqBjD,CACA,YAAa,CACX,OAAQ3J,GAAa,CACnB,IAAK,OACH,MAAO,gCACT,IAAK,OACL,IAAK,aACH,MAAO,4BACT,QACE,MAAO,+BACX,CACF,CACA,YAAYwJ,EAAM,CAChB,GAAIA,EAAK,KAAOvJ,GACd,MAAO,GAET,IAAM2J,EAAQJ,EAAK,KAAK,MAAM,GAAG,EAAE,CAAC,EACpC,OAAOI,IAAU,SAAWA,IAAU,SAAW1J,GAAyB,SAASsJ,EAAK,IAAI,CAC9F,CACA,iBAAiBK,EAAK,CAEpB,OAAOA,EAAI,MAAM,GAAG,EAAE,CAAC,CACzB,CACA,mBAAmBA,EAAK,CAEtB,OAAOA,EAAI,MAAM,GAAG,EAAE,CAAC,CACzB,CACA,cAAc9C,EAAUkB,EAAY,CAClC,OAAO,KAAK,YAAY,cAAclB,EAAS,UAAWA,EAAS,WAAYA,EAAS,OAAQkB,CAAU,CAC5G,CACA,iBAAiBlB,EAAUkB,EAAY,CACrC,OAAO6B,GAAS,CAAC,KAAK,YAAY,iBAAiB/C,EAAS,UAAWA,EAAS,WAAYA,EAAS,OAAQkB,CAAU,EAAG,KAAK,kBAAkB,KAAK,iBAAiBA,EAAW,GAAG,CAAC,EAAE,KAAKwB,EAAUM,GAC9L,KAAK,KAAK,OAAOA,EAAyB,YAAY,CAC9D,CAAC,CAAC,CAAC,EAAE,KAAKC,GAAM,CAAC,EAAGrE,EAAI,CAAC,CAACmC,EAASmC,CAAC,IAC5BnC,CACR,CAAC,CACJ,CACA,eAAeiB,EAAMmB,EAAM,CACzB,IAAMC,EAAO,KAAK,WAAW,EAAI,2CAC3BC,EAAO,CACX,UAAW,KAAK,UAChB,YAAarB,EACb,SAAUmB,CACZ,EACA,OAAO,KAAK,KAAK,KAAKC,EAAMC,EAAM,CAChC,gBAAiB,EACnB,CAAC,EAAE,KAAKzE,EAAI0E,GAAYA,EAAS,IAAI,CAAC,CACxC,CACA,eAAeC,EAAQ,CACrB,OAAO,KAAK,kBAAkB,MAAOA,CAAM,CAC7C,CACA,kBAAkBA,EAAQ,CACxB,OAAO,KAAK,kBAAkB,SAAUA,CAAM,CAChD,CACA,kBAAkBC,EAAQD,EAAQ,CAChC,IAAMH,EAAO,KAAK,WAAW,EAAI,mCAAqCI,EAAS,QACzEH,EAAO,CACX,UAAW,KAAK,UAChB,aAAcE,CAChB,EACA,OAAO,KAAK,KAAK,KAAKH,EAAMC,EAAM,CAChC,gBAAiB,EACnB,CAAC,EAAE,KAAKzE,EAAI0E,GAAYA,EAAS,IAAI,CAAC,CACxC,CACF,CACA,OAAAjK,EAAsB,UAAO,SAAuCgF,EAAmB,CACrF,OAAO,IAAKA,GAAqBhF,GAA0B2F,EAAS5F,EAAmC,EAAM4F,EAAYC,EAAU,EAAMD,EAASjG,EAAc,EAAMiG,EAASvG,EAAW,CAAC,CAC7L,EACAY,EAAsB,WAA0BiF,EAAmB,CACjE,MAAOjF,EACP,QAASA,EAAsB,UAC/B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,ICzlHH,IAAAoK,GAAAC,GAAAC,EAAA,KAAAF,GAAA,CACE,gBAAmB,CACjB,eAAkB,iBAClB,aAAgB,wBAChB,YAAe,cACf,qBAAwB,gCACxB,oBAAuB,sBACvB,aAAgB,yBAChB,wBAA2B,0DAC3B,yBAA4B,wCAC5B,gBAAmB,sBACnB,UAAa,YACb,mBAAsB,mBACtB,iBAAoB,mBACpB,QAAW,eACX,OAAU,SACV,cAAiB,gBACjB,KAAQ,OACR,YAAe,eACf,MAAS,QACT,gBAAmB,kGACnB,QAAW,CACT,YAAe,6BACf,iBAAoB,kCACpB,YAAe,4BACf,iBAAoB,mCACpB,aAAgB,gBAChB,kBAAqB,oCACrB,kBAAqB,mBACvB,EACA,MAAS,CACP,WAAc,2HACd,YAAe,yCACf,iBAAoB,0CACpB,YAAe,2BACf,YAAe,wCACf,iBAAoB,2CACpB,aAAgB,wCAChB,kBAAqB,2CACrB,kBAAqB,6CACvB,EACA,gBAAmB,uBACnB,YAAe,cACf,gBAAmB,kCACnB,gBAAmB,kBACnB,6BAAgC,8BAClC,EACA,aAAgB,CACd,MAAS,+CACT,eAAkB,kBAClB,aAAgB,eAChB,qBAAwB,8BACxB,mBAAsB,yCACxB,EACA,QAAW,CACT,MAAS,WACT,YAAe,CACb,MAAS,iCACT,OAAU,SACV,eAAkB,kCAClB,aAAgB,8CAChB,YAAe,qBACjB,EACA,UAAa,YACb,kBAAqB,oBACrB,sBAAyB,wBACzB,KAAQ,OACR,OAAU,QACZ,EACA,oBAAuB,CACrB,SAAY,0CACZ,eAAkB,gBACpB,EACA,oBAAuB,CACrB,iBAAoB,mBACpB,QAAW,UACX,OAAU,CACR,OAAU,SACV,QAAW,UACX,QAAW,UACX,SAAY,WACZ,SAAY,WACZ,gBAAmB,iBACrB,CACF,EACA,OAAU,CACR,IAAO,CACL,QAAW,UACX,SAAY,UACd,EACA,OAAU,CACR,KAAQ,OACR,YAAe,cACf,oBAAuB,sBACvB,UAAa,WACf,CACF,EACA,kBAAqB,CACnB,MAAS,WACT,YAAe,yBACf,SAAY,WACZ,SAAY,kBACZ,eAAkB,8BAClB,wBAA2B,kFAC7B,CACF,ICzGA,IAGaG,GAEAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAGAC,GAIAC,GAuCDC,GA5DZC,GAAAC,EAAA,KAAAC,KAGaf,GAAsB,YAEtBC,GAAyB,WACzBC,GAAyB,sBAEzBC,GAAwB,UACxBC,GAAoC,uBACpCC,GAAe,UACfC,GAAc,YACdC,GAAgB,YAChBC,GAAyB,oBACzBC,GAAqB,IAGrBC,GAAoB,CAAA,EAIpBC,GAAS,CAACK,EAAYC,aAAa,EAuCpCL,GAAZ,SAAYA,EAAU,CACpBA,OAAAA,EAAA,KAAA,OACAA,EAAA,oBAAA,sBACAA,EAAA,YAAA,cACAA,EAAA,UAAA,YAJUA,CAKZ,EALYA,IAAU,CAAA,CAAA,IC5DtB,IAQaM,GARbC,GAAAC,EAAA,KACAC,IACAC,KAEAC,KACAC,mBAGaN,IAAwB,IAAA,CAA/B,MAAOA,UAAgCO,EAAqB,CAIhEC,YACUC,EACAC,EAA4C,CAEpD,MAAMD,CAAU,EAHR,KAAAA,WAAAA,EACA,KAAAC,sBAAAA,EALF,KAAAC,SAAoCC,EAAO,EAAK,EACxC,KAAAC,SAAWC,GAAa,KAAKH,QAAQ,CAOrD,CAEAI,aAAaC,EAAkB,CAC7B,OAAO,KAAKN,sBACTO,WAAWD,EAASE,IAAI,EACxBC,KAAKC,EAAKC,IAAU,CAAEC,KAAM,CAAEC,IAAKF,EAAKE,GAAG,CAAE,EAAqB,CAAC,CACxE,iDAfWvB,GAAuBwB,EAAAC,EAAA,EAAAD,EAAAE,EAAA,CAAA,CAAA,CAAA,iCAAvB1B,EAAuB2B,QAAvB3B,EAAuB4B,UAAAC,WADV,MAAM,CAAA,CAAA,SACnB7B,CAAwB,GAAA,uCEPnC8B,EAAA,EAAA,gBAAA,EAAA,CAAA,EAQEC,EAAA,oBAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,EAAA,OAAAC,EAAqBF,EAAAG,wBAAAN,CAAA,CAA+B,CAAA,CAAA,EAAC,eAAA,SAAAA,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,EAAA,OAAAC,EACrCF,EAAAI,mBAAAP,CAAA,CAA0B,CAAA,CAAA,EAC3CQ,EAAA,oBAPCC,EAAA,SAAA,YAAA,EAAuB,cAAAN,EAAAO,MAAA,EACD,WAAA,EAAA,EACP,cAAA,EAAA,EACG,aAAA,EAAA,yBAMpBC,EAAA,EAAA,uBAAA,CAAA,OAAsBF,EAAA,YAAA,EAAA,EAAkB,aAAA,EAAA,EDb1C,IAqBaG,GArBbC,GAAAC,EAAA,KAAAC,IAEAC,KAMAC,KACAC,KAEAC,KAEAC,6BAQaR,IAAyB,IAAA,CAAhC,MAAOA,CAAyB,CAQpCS,YACUC,EACAC,EAAgC,CADhC,KAAAD,kBAAAA,EACA,KAAAC,gBAAAA,EARA,KAAAC,aAAuC,IAAIC,EAC3C,KAAAC,gBAAiD,IAAID,EAE/D,KAAAf,OAAS,GAAK,KAAO,KACrB,KAAAiB,QAAmCC,EAAO,EAAK,CAK5C,CAEHrB,mBAAmBsB,EAAkB,CACnC,KAAKF,QAAQG,IAAI,EAAI,EACrB,IAAMC,EAAYC,GAAeC,2BAA2B,KAAKC,QAAQC,UAAW,KAAKD,QAAQE,cAAc,EAEzGC,EAA2B,KAAKH,QAAQI,UAAUC,MAAM,GAAG,EAC7DF,GAAgBG,SAAW,GAC7B,KAAKd,gBAAgBe,KAAK,CACxBZ,SAAAA,EACAa,MAAO,IAAIC,MAAM,mBAAmB,EACrC,EAEH,IAAMC,EAAa,IAAMP,EAAe,CAAC,EAAI,IACvCQ,EAASR,EAAe,CAAC,EACzBS,EAAkC,CACtCf,UAAAA,EACAa,WAAAA,EACAC,OAAAA,GAGF,KAAKvB,kBACFyB,cAAc,IAAIC,EAAaF,CAAQ,EAAG,CACzCG,KAAMpB,EAASoB,KACfC,IAAKrB,EAASqB,IACdC,qBAAsB,MACvB,EACAC,KAAKC,EAAK,CAAC,EAAGC,GAAM,CAAEC,MAAO,EAAGC,MAAO,GAAI,CAAE,CAAC,EAC9CC,UAAU,CACTC,KAAMA,IAAK,CACT,KAAKnC,gBAAgBoC,iBAAiB,yBAAyB,EAC/D,KAAKnC,aAAaiB,KAAKZ,CAAQ,EAC/B,KAAKF,QAAQG,IAAI,EAAK,CACxB,EACAY,MAAQA,GAAS,CACf,KAAKhB,gBAAgBe,KAAKC,CAAK,EAC/B,KAAKf,QAAQG,IAAI,EAAK,CACxB,EACD,CACL,CAEAxB,wBAAwBoC,EAAsB,CAC5C,KAAKhB,gBAAgBe,KAAKC,CAAK,CACjC,iDAtDW9B,GAAyBgD,EAAAC,EAAA,EAAAD,EAAAE,EAAA,CAAA,CAAA,CAAA,+BAAzBlD,EAAyBmD,UAAA,CAAA,CAAA,mCAAA,CAAA,EAAAC,OAAA,CAAA9B,QAAA,SAAA,EAAA+B,QAAA,CAAAzC,aAAA,eAAAE,gBAAA,iBAAA,EAAAwC,SAAA,CAAAC,GAFzB,CAAC,CAAEC,QAASC,GAA+BC,SAAUC,EAAuB,CAAE,CAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,SAAA,cAAA,WAAA,cAAA,YAAA,EAAA,CAAA,EAAA,YAAA,YAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,oBAAA,eAAA,SAAA,cAAA,WAAA,cAAA,YAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GCnB5FE,EAAA,EAAAC,GAAA,EAAA,EAAA,gBAAA,CAAA,EAA2B,EAAAC,GAAA,EAAA,EAAA,uBAAA,CAAA,OAA3BC,EAAAJ,EAAAlD,QAAA,IAAA,GAAA,EAAA,CAAA,iBDiBYuD,GAAoBC,GAAEC,GAA0BC,EAAA,EAAAC,cAAA,CAAA,CAAA,CAAA,SAI/C1E,CAAyB,GAAA,IEqBtC,SAAS2E,GAAkBC,EAAwBC,EAAsB,CACvE,OAAID,EAAEE,uBAAyB,OAASD,EAAEC,uBAAyB,MAC1D,EAELF,EAAEE,uBAAyB,OAASD,EAAEC,uBAAyB,MAC1D,GAEF,CACT,CAEM,SAAUC,GAAmBC,EAAiC,CAClE,GAAI,OAAOA,GAAgB,SACzB,MACE,CACEC,EAAeC,IACfD,EAAeE,cACfF,EAAeG,aACfH,EAAeI,QACfJ,EAAeK,QAAQ,EACvBC,KAAMC,GAAYA,EAAQC,SAAQ,IAAOT,CAAW,GAAKC,EAAeC,IAG9E,OAAQF,EAAW,CACjB,KAAKU,GAAYC,iBACf,OAAOV,EAAeC,IACxB,KAAKQ,GAAYE,2BACf,OAAOX,EAAeE,cACxB,KAAKO,GAAYG,0BACf,OAAOZ,EAAeG,aACxB,KAAKM,GAAYI,qBACf,OAAOb,EAAeI,QACxB,QACE,OAAOJ,EAAeC,GAC1B,CACF,CA5EA,IASaa,GAYAC,GAUAC,GA/BbC,GAAAC,EAAA,KAEAC,KACAC,SAMaN,IAAc,IAAA,CAArB,MAAOA,CAAc,CACzBO,UAAUC,EAA+B,CACvC,OAAOA,GAAYzB,uBAAyBG,EAAeC,IACvD,kCACA,8CACN,iDALWa,EAAc,CAAA,mDAAdA,EAAcS,KAAA,EAAA,CAAA,CAAA,SAAdT,CAAc,GAAA,EAYdC,IAAiB,IAAA,CAAxB,MAAOA,CAAiB,CAC5BM,UAAUC,EAAiCvB,EAAmB,CAC5D,OAAOuB,GAAYE,iBAAiBC,QAAQC,SAAS5B,GAAmBC,CAAW,CAAC,CACtF,iDAHWgB,EAAiB,CAAA,sDAAjBA,EAAiBQ,KAAA,EAAA,CAAA,CAAA,SAAjBR,CAAiB,GAAA,EAUjBC,IAA6B,IAAA,CAApC,MAAOA,CAA6B,CACxCK,UAAUM,EAAoC5B,EAAmB,CAC/DA,OAAAA,EAAcD,GAAmBC,CAAW,EAE1C4B,GACIC,OAAQN,GAAeA,GAAYE,iBAAiBK,MAAMH,SAAS3B,CAAW,CAAC,GAC/E+B,KAAKpC,EAAiB,GAAK,CAAA,CAEnC,iDARWsB,EAA6B,CAAA,sEAA7BA,EAA6BO,KAAA,EAAA,CAAA,CAAA,SAA7BP,CAA6B,GAAA,2BE1BhCe,EAAA,CAAA,EACEC,EAAA,EAAA,WAAA,EAAA,EAAoCC,EAAA,EAAA,OAAA,EAAKC,EAAA,iCAGzCF,EAAA,EAAA,OAAA,EAAA,EACEC,EAAA,CAAA,EACFC,EAAA,wBADEC,EAAA,EAAAC,EAAA,KAAAC,EAAA,GAAAC,SAAA,EAAA,GAAA,6BAWNN,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,+BACFC,EAAA,4BADEC,EAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,+BAAAC,EAAA,EAAAC,GAAAF,EAAA,EAAA,EAAAG,EAAAC,eAAA,UAAA,CAAA,CAAA,EAAA,GAAA,6BAEFX,EAAA,EAAA,MAAA,EAAA,EAAwD,EAAA,OAAA,EAAA,EAEpDC,EAAA,CAAA,mBACFC,EAAA,EACAF,EAAA,EAAA,MAAA,EAAMC,EAAA,EAAA,GAAA,EAACC,EAAA,EACPU,GAAA,EAAA,EAAA,EAIFV,EAAA,2CAPIC,EAAA,CAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,6BAAA,EAAA,GAAA,EAIAV,EAAA,CAAA,EAAAW,EAAA,mBAAAC,CAAA,EAAwC,0BAAAP,EAAA,EAAAQ,GAAAN,EAAAO,OAAA,CAAA,0BAI5CjB,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,mBACFC,EAAA,SADEC,EAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,qCAAA,EAAA,GAAA,6BAEFb,EAAA,EAAA,MAAA,EAAA,EACEY,GAAA,EAAA,EAAA,EAIFV,EAAA,2CAHIC,EAAA,EAAAW,EAAA,mBAAAC,CAAA,EAAwC,0BAAAP,EAAA,EAAAQ,GAAAN,EAAAO,OAAA,CAAA,6BAK1CjB,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,EAAAC,EAAA;cAAAM,EAAAQ,MAAA;WAAA,6BAIElB,EAAA,EAAA,MAAA,EAAA,EAIEC,EAAA,CAAA,mBACFC,EAAA,6BADEC,EAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,0CAAAC,EAAA,EAAAW,GAAAT,EAAAU,KAAA,CAAA,EAAA,GAAA,0BAEFpB,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,mBACFC,EAAA,SADEC,EAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,0CAAA,EAAA,GAAA,0BAEFb,EAAA,EAAA,MAAA,EAAA,EAOEC,EAAA,CAAA,mBACFC,EAAA,SADEC,EAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,iCAAA,EAAA,GAAA,6BAjBJd,EAAA,CAAA,EACEsB,EAAA,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGC,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGqG,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAYtGC,EAAA,EAAA,MAAA,EAAA,uCAjBGtB,EAAA,EAAAW,EAAA,OAAAY,EAAAC,SAAA,OAAAD,EAAAE,UAAAC,EAAAC,YAAAC,gBAAA,EAKG5B,EAAA,EAAAW,EAAA,OAAAY,EAAAE,UAAAC,EAAAC,YAAAE,0BAAA,EAIH7B,EAAA,EAAAW,EAAA,OAAAY,EAAAE,UAAAC,EAAAC,YAAAE,4BAAAN,EAAAE,UAAAC,EAAAC,YAAAC,gBAAA,EAQgC5B,EAAA,EAAAW,EAAA,YAAAY,GAAA,KAAA,KAAAA,EAAAO,QAAAC,EAAA,6BApBvClC,EAAA,EAAA,MAAA,EAAA,EACEqB,EAAA,EAAAc,GAAA,EAAA,EAAA,eAAA,EAAA,EAqBFjC,EAAA,0BArBiBC,EAAA,EAAAW,EAAA,QAAAY,GAAA,KAAA,KAAAA,EAAAU,YAAAV,GAAA,KAAA,KAAAA,EAAAO,QAAA,6BALnBjC,EAAA,EAAA,MAAA,EAAA,EACEqB,EAAA,EAAAgB,GAAA,EAAA,EAAA,MAAA,EAAA,EAA6E,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EA0B/EpC,EAAA,4BA1BQC,EAAA,EAAAW,EAAA,OAAAJ,EAAAQ,KAAA,EAG2Cf,EAAA,EAAAW,EAAA,UAAAJ,EAAA6B,aAAA,sCA6B3CvC,EAAA,EAAA,kBAAA,EAAA,EAAgE,EAAA,YAAA,EAE5DC,EAAA,CAAA,mBACFC,EAAA,EACAuB,EAAA,EAAA,WAAA,EAAA,EAQFvB,EAAA,EACAF,EAAA,EAAA,MAAA,EAAA,EAA4C,EAAA,SAAA,EAAA,EAIxCwC,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAArC,EAAAsC,EAAA,CAAA,EAAAC,MAAAf,EAAAc,EAAA,EAAA,OAAAE,EAAShB,EAAAiB,aAAAzC,CAAA,CAAe,CAAA,CAAA,EAGxBL,EAAA,EAAA,gCAAA,EAAA,EAGEC,EAAA,CAAA,mBACFC,EAAA,EAAgC,EACzB,qDAvBPC,EAAA,CAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,kCAAA,EAAA,GAAA,EAIAV,EAAA,CAAA,EAAAW,EAAA,YAAAJ,EAAAqC,IAAA,EAA0B,kBAAAlB,EAAAmB,uBAAA3C,CAAA,CAAA,EAY1BF,EAAA,CAAA,EAAAW,EAAA,WAAA,CAAAJ,EAAAqC,KAAAE,IAAApB,EAAAmB,uBAAA3C,CAAA,CAAA,EAAA6C,KAAA,EAGE/C,EAAA,EAAAW,EAAA,cAAAqC,EAAAtB,EAAAuB,eAAA,IAAA,KAAA,KAAAD,EAAAE,YAAAF,EAAAtB,EAAAuB,eAAA,IAAA,KAAA,KAAAD,EAAAP,SAAAvC,CAAA,EAEAF,EAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,+BAAA,EAAA,GAAA,yBAuBMY,EAAA,EAAA,uBAAA,EAAA,OAAsBX,EAAA,aAAA,EAAA,EAAmB,SAAA,EAAA,yBAEzCd,EAAA,EAAA,WAAA,EAAA,EAAkCC,EAAA,EAAA,YAAA,EAAUC,EAAA,yBAU1CuB,EAAA,EAAA,uBAAA,EAAA,OAAsBX,EAAA,SAAA,EAAA,qCAEtBd,EAAA,EAAA,SAAA,EAAA,EAAwBwC,EAAA,QAAA,UAAA,CAAAC,EAAAa,CAAA,EAAA,IAAAC,EAAAZ,EAAA,CAAA,EAAAa,EAAAD,EAAAE,UAAAC,EAAAH,EAAAI,OAAAjD,EAAAiC,EAAA,CAAA,EAAAc,UAAA5B,EAAAc,EAAA,EAAA,OAAAE,EAAShB,EAAA+B,kBAAAlD,EAAA8C,EAAAE,CAAA,CAAwC,CAAA,CAAA,EACvE1D,EAAA,EAAA,UAAA,EAAUC,EAAA,EAAA,OAAA,EAAKC,EAAA,EAAW,4BAJ9BmB,EAAA,EAAAwC,GAAA,EAAA,EAAA,uBAAA,EAAA,EAAyF,EAAAC,GAAA,EAAA,EAAA,SAAA,EAAA,iCAAzFC,GAAAC,EAAAnC,EAAAoC,wBAAA,IAAA,MAAAD,EAAAX,WAAAW,EAAAnC,EAAAoC,wBAAA,IAAA,KAAA,KAAAD,EAAApB,SAAAc,EAAA,EAAA,CAAA,yBAQAjC,EAAA,EAAA,MAAA,EAAA,qCA3BRzB,EAAA,EAAA,eAAA,EAAe,EAAA,MAAA,EAAA,EACiB,EAAA,KAAA,EAE1BqB,EAAA,EAAA6C,GAAA,EAAA,EAAA,uBAAA,EAAA,EAIG,EAAAC,GAAA,EAAA,EAAA,WAAA,EAAA,EAKHnE,EAAA,EAAA,IAAA,EAAA,EAAqBwC,EAAA,QAAA,UAAA,CAAA,IAAA4B,EAAA3B,EAAA4B,CAAA,EAAAb,EAAAY,EAAAX,UAAAC,EAAAU,EAAAT,OAAAjD,EAAAiC,EAAA,CAAA,EAAAc,UAAA5B,EAAAc,EAAA,EAAA,OAAAE,EAAShB,EAAAyC,sBAAAd,EAAA9C,EAAAgD,CAAA,CAA4C,CAAA,CAAA,EAAEzD,EAAA,CAAA,EAE1EC,EAAA,EAAI,EAERF,EAAA,EAAA,MAAA,EAAA,EAAuC,EAAA,OAAA,EAAA,EACXC,EAAA,CAAA,uCAAmCC,EAAA,EAC7DmB,EAAA,GAAAkD,GAAA,EAAA,CAAA,sCAQElD,EAAA,GAAAmD,GAAA,EAAA,EAAA,MAAA,EAAA,EAGJtE,EAAA,EAAM,EACF,gEA3BFC,EAAA,CAAA,EAAA4D,GAAAU,EAAA5C,EAAA6C,kBAAA,IAAA,MAAAD,EAAApB,WAAAoB,EAAA5C,EAAA6C,kBAAA,IAAA,KAAA,KAAAD,EAAA7B,SAAAc,KAAAe,EAAA5C,EAAA6C,kBAAA,IAAA,KAAA,KAAAD,EAAAE,aAAAjE,EAAAiE,UAAA,EAAA,CAAA,EAS4ExE,EAAA,CAAA,EAAAyE,EAAApB,EAAAqB,IAAA,EAKlD1E,EAAA,CAAA,EAAAyE,EAAA/D,EAAA,GAAA,EAAAA,EAAA,GAAA,EAAA2C,CAAA,CAAA,CAAA,EAC1BrD,EAAA,CAAA,EAAA4D,EAAAxD,EAAA,GAAA,GAAAiD,EAAA3C,EAAA,GAAA,EAAAgB,EAAAiD,oBAAA,CAAA,EAAA,GAAA,EAAA,6BAvBV9E,EAAA,EAAA,UAAA,EACE+E,GAAA,EAAAC,GAAA,GAAA,GAAA,gBAAA,KAAAC,EAAA,oDAqCF/E,EAAA,mCArCEC,EAAA,EAAA+E,GAAA3E,EAAA,EAAA,EAAAG,EAAAyE,MAAAtE,EAAA,EAAA,EAAAgB,EAAAiD,oBAAA,CAAA,CAAA,sCA2CF9E,EAAA,EAAA,oCAAA,EAAA,EAEEwC,EAAA,eAAA,SAAA4C,EAAA,CAAA3C,EAAA4C,CAAA,EAAA,IAAA3E,EAAAiC,EAAA,CAAA,EAAAc,UAAA5B,EAAAc,EAAA,EAAA,OAAAE,EAAgBhB,EAAAyD,mBAAAF,EAAA1E,CAAA,CAAmC,CAAA,CAAA,EAAC,kBAAA,SAAA0E,EAAA,CAAA3C,EAAA4C,CAAA,EAAA,IAAAxD,EAAAc,EAAA,CAAA,EAAA,OAAAE,EACjChB,EAAA0D,wBAAAH,CAAA,CAA+B,CAAA,CAAA,EACnDlF,EAAA,+BAHCY,EAAA,UAAAJ,CAAA,sCAaAV,EAAA,EAAA,SAAA,EAAA,EAA2BwC,EAAA,QAAA,UAAA,CAAAC,EAAA+C,CAAA,EAAA,IAAA9E,EAAAiC,EAAA,CAAA,EAAAc,UAAA5B,EAAAc,EAAA,EAAA,OAAAE,EAAShB,EAAA4D,gBAAA/E,CAAA,CAAwB,CAAA,CAAA,EAC1DV,EAAA,EAAA,gCAAA,EAAA,EAGEC,EAAA,CAAA,mBACFC,EAAA,EAAgC,mCAH9BC,EAAA,EAAAW,EAAA,cAAA4E,EAAA7D,EAAA8D,kBAAA,IAAA,KAAA,KAAAD,EAAArC,YAAAqC,EAAA7D,EAAA8D,kBAAA,IAAA,KAAA,KAAAD,EAAA9C,SAAAvC,CAAA,EAEAF,EAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,6BAAA,EAAA,GAAA,6BAVRb,EAAA,EAAA,MAAA,EAAA,EAAgC,EAAA,KAAA,EACzB,EAAA,WAAA,EAAA,EAC6BC,EAAA,EAAA,OAAA,EAAKC,EAAA,EACrCD,EAAA,CAAA,mBACFC,EAAA,EACAmB,EAAA,EAAAuE,GAAA,EAAA,EAAA,SAAA,EAAA,EASF1F,EAAA,mCAXIC,EAAA,CAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,+BAAAC,EAAA,EAAAW,GAAAT,EAAAU,KAAA,CAAA,EAAA,GAAA,EAEFjB,EAAA,CAAA,EAAA4D,EAAArD,EAAAmF,SAAAhE,EAAAiE,iBAAA,EAAA,EAAA,6BA7FN9F,EAAA,EAAA,MAAA,EAAA,EAAgC,EAAA,OAAA,EAAA,EAE5BqB,EAAA,EAAA0E,GAAA,GAAA,EAAA,EA8BA/F,EAAA,EAAA,MAAA,EAAA,EAAyBC,EAAA,CAAA,mBAAyCC,EAAA,EAClEF,EAAA,EAAA,KAAA,EAAKC,EAAA,CAAA,mBAAmDC,EAAA,EAExDmB,EAAA,EAAA2E,GAAA,EAAA,EAAA,UAAA,EAAiC,GAAAC,GAAA,EAAA,EAAA,oCAAA,EAAA,sDAmDnC/F,EAAA,EACAmB,EAAA,GAAA6E,GAAA,EAAA,EAAA,MAAA,EAAA,EAiBFhG,EAAA,oCAvGQC,EAAA,EAAAW,EAAA,YAAAJ,EAAAqC,IAAA,EACJ5C,EAAA,EAAA4D,EAAArD,EAAAmF,SAAAhE,EAAAiE,iBAAA,EAAA,EAAA,EA8ByB3F,EAAA,CAAA,EAAAyE,EAAA/D,EAAA,EAAA,EAAA,uBAAA,CAAA,EACpBV,EAAA,CAAA,EAAAyE,EAAA/D,EAAA,EAAA,EAAA,iCAAA,CAAA,EAELV,EAAA,CAAA,EAAA4D,GAAArD,EAAAyE,OAAA,KAAA,KAAAzE,EAAAyE,MAAAgB,QAAA,EAAA,EAAA,EAAA,EA0CAhG,EAAA,EAAA4D,KAAAZ,EAAA5C,EAAA,GAAA,GAAAG,EAAAyE,MAAAtE,EAAA,GAAA,GAAAgB,EAAAiD,oBAAA,CAAA,IAAA,KAAA,KAAA3B,EAAAgD,SAAA,GAAA,GAAA,GAAA,EAAA,EAUFhG,EAAA,CAAA,EAAA4D,EAAArD,EAAA0F,SAAA,GAAA,EAAA,yBAoCc3E,EAAA,EAAA,uBAAA,EAAA,OAAsBX,EAAA,aAAA,EAAA,EAAmB,SAAA,EAAA,yBAEzCd,EAAA,EAAA,WAAA,EAAA,EAAkCC,EAAA,EAAA,YAAA,EAAUC,EAAA,sCAVpDF,EAAA,EAAA,eAAA,EAAe,EAAA,MAAA,EAAA,EACiB,EAAA,KAAA,EAE1BqB,EAAA,EAAAgF,GAAA,EAAA,EAAA,uBAAA,EAAA,EAIG,EAAAC,GAAA,EAAA,EAAA,WAAA,EAAA,EAKHtG,EAAA,EAAA,IAAA,EAAA,EAAqBwC,EAAA,QAAA,UAAA,CAAA,IAAA+D,EAAA9D,EAAA+D,CAAA,EAAAC,EAAAF,EAAA9C,UAAAiD,EAAAH,EAAA5C,OAAAjD,EAAAiC,EAAA,CAAA,EAAAc,UAAA5B,EAAAc,EAAA,EAAA,OAAAE,EAAShB,EAAAyC,sBAAAmC,EAAA/F,EAAAgG,CAAA,CAA4C,CAAA,CAAA,EAAEzG,EAAA,CAAA,EAAeC,EAAA,EAAI,EAEjGF,EAAA,EAAA,MAAA,EAAA,EAAuC,EAAA,OAAA,EAAA,EACXC,EAAA,CAAA,uCAAmCC,EAAA,EAC7DuB,EAAA,GAAA,MAAA,EAAA,EACFvB,EAAA,EAAM,EACF,gEAfFC,EAAA,CAAA,EAAA4D,GAAAU,EAAA5C,EAAA6C,kBAAA,IAAA,MAAAD,EAAApB,WAAAoB,EAAA5C,EAAA6C,kBAAA,IAAA,KAAA,KAAAD,EAAA7B,SAAA8D,KAAAjC,EAAA5C,EAAA6C,kBAAA,IAAA,KAAA,KAAAD,EAAAE,aAAAjE,EAAAiE,UAAA,EAAA,CAAA,EAS4ExE,EAAA,CAAA,EAAAyE,EAAA6B,EAAA5B,IAAA,EAGlD1E,EAAA,CAAA,EAAAyE,EAAA/D,EAAA,GAAA,EAAAA,EAAA,GAAA,EAAA4F,CAAA,CAAA,CAAA,6BAtBtCzG,EAAA,EAAA,MAAA,EAAA,EAAgC,EAAA,MAAA,EAAA,EACLC,EAAA,CAAA,mBAAyCC,EAAA,EAClEF,EAAA,EAAA,UAAA,EACE+E,GAAA,EAAA4B,GAAA,GAAA,EAAA,gBAAA,KAAA1B,EAAA,oDAyBF/E,EAAA,EAAW,mCA3BcC,EAAA,CAAA,EAAAyE,EAAA/D,EAAA,EAAA,EAAA,uBAAA,CAAA,EAEvBV,EAAA,CAAA,EAAA+E,GAAA3E,EAAA,EAAA,EAAAG,EAAAyE,MAAAtE,EAAA,EAAA,EAAAgB,EAAAiD,oBAAA,CAAA,CAAA,4BAJNzD,EAAA,EAAAuF,GAAA,EAAA,EAAA,MAAA,EAAA,2BAAA7C,GAAArD,EAAAyE,OAAA,KAAA,KAAAzE,EAAAyE,MAAAgB,QAAA,EAAA,EAAA,EAAA,sCAoCEnG,EAAA,EAAA,SAAA,EAAA,EAKEwC,EAAA,QAAA,UAAA,CAAAC,EAAAoE,CAAA,EAAA,IAAAxG,EAAAsC,EAAA,CAAA,EAAAC,MAAAf,EAAAc,EAAA,EAAA,OAAAE,EAAShB,EAAAiF,YAAAzG,CAAA,CAAc,CAAA,CAAA,EAGvBL,EAAA,EAAA,gCAAA,EAAA,EACEC,EAAA,CAAA,mBACFC,EAAA,EAAgC,qDAJhCY,EAAA,WAAAJ,EAAA0F,QAAA,EAE+BjG,EAAA,EAAAW,EAAA,cAAA4E,EAAA7D,EAAAkF,cAAA,IAAA,KAAA,KAAArB,EAAArC,YAAAqC,EAAA7D,EAAAkF,cAAA,IAAA,KAAA,KAAArB,EAAA9C,SAAAvC,CAAA,EAC7BF,EAAA,EAAAC,EAAA,IAAAS,EAAA,EAAA,EAAA,yBAAA,EAAA,GAAA,6BAXRb,EAAA,EAAA,MAAA,EAAA,EAAuE,EAAA,MAAA,EAAA,EAEnEqB,EAAA,EAAA2F,GAAA,EAAA,EAAA,SAAA,EAAA,EAYF9G,EAAA,EAAM,4BAXDC,EAAA,CAAA,EAAAW,EAAA,OAAA,CAAAJ,EAAA0F,QAAA,6BAzNfrG,EAAA,CAAA,EACEC,EAAA,EAAA,MAAA,CAAA,EAAuD,EAAA,MAAA,CAAA,EACM,EAAA,MAAA,CAAA,EACtB,EAAA,MAAA,CAAA,EAE/BqB,EAAA,EAAA4F,GAAA,EAAA,EAAA,eAAA,CAAA,EAA6E,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAC,CAAA,EAQ/EjH,EAAA,EACAF,EAAA,EAAA,MAAA,CAAA,EACEC,EAAA,CAAA,EACFC,EAAA,EAAM,EACF,EAERF,EAAA,GAAA,MAAA,CAAA,EAA6D,GAAA,MAAA,EAAA,EAEzDqB,EAAA,GAAA+F,GAAA,EAAA,EAAA,MAAA,EAAA,EAAsD,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGE,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAUmC,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGhD,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAM6C,GAAAC,GAAA,GAAA,GAAA,MAAA,EAAA,EA6BzD,GAAAC,GAAA,EAAA,CAAA,EA0GtB,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAoDXzH,EAAA,EAAM,EACF,qCAlOeC,EAAA,CAAA,EAAAW,EAAA,OAAAJ,EAAAmF,SAAA,WAAA,EAAsC,WAAA+B,CAAA,EAUrDzH,EAAA,CAAA,EAAAC,EAAA,IAAAM,EAAAU,MAAA,GAAA,EAKiCjB,EAAA,CAAA,EAAAW,EAAA,WAAAJ,EAAAmF,MAAA,EAC7B1F,EAAA,EAAAW,EAAA,eAAA,WAAA,EAGAX,EAAA,EAAAW,EAAA,eAAA,aAAA,EAUAX,EAAA,EAAAW,EAAA,eAAA,qBAAA,EASwBX,EAAA,CAAA,EAAAW,EAAA,OAAAJ,EAAAQ,QAAAR,EAAA6B,eAAA,KAAA,KAAA7B,EAAA6B,cAAA4D,QAAA,CAAA,EA6B9BhG,EAAA,EAAA4D,EAAArD,EAAAmH,gBAAA,GAAA,EAAA,EA8IM1H,EAAA,CAAA,EAAAW,EAAA,OAAAJ,EAAAmH,eAAA,6BAsBZ7H,EAAA,EAAA,MAAA,EACEC,EAAA,CAAA,+BACFC,EAAA,0BADEC,EAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,uCAAAC,EAAA,EAAAC,GAAAF,EAAA,EAAA,EAAAuH,EAAA,UAAA,CAAA,CAAA,EAAA,GAAA,4BADFzG,EAAA,EAAA0G,GAAA,EAAA,EAAA,OAAA,EAAA,uBAAOjH,EAAA,OAAAgH,CAAA,GD5OT,aAqBaE,GArBbC,GAAAC,EAAA,KAAAC,IAIAC,KACAC,KACAC,KACAC,KAGAC,KACAC,0JAUaT,IAA4B,IAAA,CAAnC,MAAOA,CAA4B,CAYvCU,YACuDC,EAC7CC,EACAC,EACAC,EACAC,EACAC,EAA4C,CALC,KAAAL,sBAAAA,EAC7C,KAAAC,gBAAAA,EACA,KAAAC,GAAAA,EACA,KAAAC,iBAAAA,EACA,KAAAC,kBAAAA,EACA,KAAAC,sBAAAA,EAjBD,KAAAC,SAAsB,CAAA,EAC/B,KAAAnD,iBAAmBoD,GAAWC,UAC9B,KAAArH,YAAcA,GACd,KAAAsH,OAAS,GAAK,KAAO,KACrB,KAAA1E,kBAAkD2E,EAAOC,MAAS,EAClE,KAAArF,wBAAwDoF,EAAOC,MAAS,EACxE,KAAAlG,eAA+CiG,EAAOC,MAAS,EAC/D,KAAAvC,cAA8CsC,EAAOC,MAAS,EAC9D,KAAA3D,kBAAkD0D,EAAOC,MAAS,CAU/D,CAEHC,UAAQ,CACN,KAAKN,UACDO,IAAKC,GACDA,GAASC,UAAY,CAACD,GAASlH,cAC1BoH,GAAAC,GAAA,GACFH,GADE,CAELlH,cAAekH,EAAQC,SAASF,IAAKvH,IAAa,CAAEA,QAAAA,CAAO,EAAG,IAG3DwH,CACR,GACCI,QAAQ,CAACJ,EAAkB7G,IAAiB,CAC5C,IAAMkH,EAAsB,KAAK9G,uBAAuBJ,CAAK,EACvDmH,EAAW,CAAA,EACjBA,EAASD,CAAmB,EAAI,GAChCL,EAAQ1G,KAAO,KAAK8F,GAAGmB,MAAMD,CAAQ,CACvC,CAAC,EACH,KAAKjF,qBAAuB,KAAK6D,sBAAsBsB,YAAYC,KACjEV,EAAKW,GAASA,GAAMC,aAAa9J,SAAQ,CAAE,EAC3C+J,GAAY,CAAEC,WAAY,EAAGC,SAAU,EAAI,CAAE,CAAC,CAElD,CAEAvH,uBAAuBJ,EAAa,CAClC,MAAO,WAAaA,CACtB,CAEA4H,aAAW,CACT,KAAK5B,gBAAgB6B,eAAe,mCAAmC,CACzE,CAEA3D,YAAYlE,EAAa,CACvB,KAAKmE,cAAc2D,IAAI,CAAE9H,MAAAA,EAAOS,QAAS,EAAI,CAAE,EAC/C,IAAMoG,EAAU,KAAKR,SAASrG,CAAK,EACnC6G,EAAQkB,aAAe,GACvBlB,EAAQrD,SAAW,GACnB,KAAKuC,sBACF7B,YAAY2C,EAAQmB,UAAWnB,EAAQoB,eAAgBpB,EAAQ9E,SAAS,EACxEuF,KACCY,EAAK,CAAC,EACNC,GAAI,IAAM,KAAKhE,cAAc2D,IAAIpB,MAAS,CAAC,EAC3C0B,EAAU,IACR,KAAKpC,gBACFqC,iBAAiB,uCAAwC,CACxDC,OAAQ,KAAKpC,iBAAiBqC,QAAQ,sBAAsB,EAC7D,EACAC,SAAQ,CAAE,EAEfL,GAAI,IAAM,KAAKtF,gBAAgBgE,CAAO,CAAC,EACvC4B,GAAW,KACT,KAAKzC,gBAAgB6B,eAAe,oCAAoC,EACxEhB,EAAQrD,SAAW,GACnB,KAAKW,cAAc2D,IAAIpB,MAAS,EACzBgC,GACR,CAAC,EAEHC,UAAS,CACd,CAEA9F,gBAAgBgE,EAAgB,CAC9B,KAAK9D,kBAAkB+E,IAAI,CAAE9H,MAAO,KAAKqG,SAASuC,QAAQ/B,CAAO,EAAGpG,QAAS,EAAI,CAAE,EACnFoG,EAAQrD,SAAW,GACnB,KAAKuC,sBACFlD,gBAAgBgE,EAAQmB,UAAWnB,EAAQoB,eAAgBpB,EAAQ9E,SAAS,EAC5EuF,KAAKY,EAAK,CAAC,CAAC,EACZS,UAAU,CACTE,KAAMA,IAAK,CACT,KAAK7C,gBAAgBqC,iBAAiB,2CAA2C,EACjF,KAAKtF,kBAAkB+E,IAAIpB,MAAS,CACtC,EACAoC,MAAOA,IAAK,CACV,KAAK9C,gBAAgB6B,eAAe,yCAAyC,EAC7EhB,EAAQrD,SAAW,GACnB,KAAKT,kBAAkB+E,IAAIpB,MAAS,CACtC,EACD,CACL,CAEAxG,aAAaF,EAAa,CACxB,KAAKQ,eAAesH,IAAI,CAAE9H,MAAAA,EAAOS,QAAS,EAAI,CAAE,EAChD,IAAMoG,EAAU,KAAKR,SAASrG,CAAK,EACnC6G,EAAQkB,aAAe,GACvBlB,EAAQrD,SAAW,GACdqD,GAASlH,eAAe4D,SAC3BsD,EAAQlH,cAAgB,CAAA,GAE1B,IAAMmH,EAAWD,EAAQ1G,KAAKE,IAAI,KAAKD,uBAAuBJ,CAAK,CAAC,EAAEM,MAEtE,KAAKyF,sBACFgD,aAAalC,EAAQmB,UAAWnB,EAAQoB,eAAgBpB,EAAQ9E,UAAW+E,CAAQ,EACnFQ,KAAKY,EAAK,CAAC,CAAC,EACZS,UAAU,CACTE,KAAMA,IAAK,CACT,KAAK7C,gBAAgBqC,iBAAiB,2CAA2C,EACjFxB,EAAQ1G,KAAKE,IAAI,KAAKD,uBAAuBJ,CAAK,CAAC,EAAEgJ,WAAW,EAAE,EAClE,KAAKxI,eAAesH,IAAIpB,MAAS,EACjCG,EAAQlH,cAAcsJ,KAAK,CACzB5J,QAASyH,EACToC,OAAQ,gBACRnK,OAAQ,MACRoK,QAAS,IAAIC,KACb5J,SAAU,GACX,CACH,EACAsJ,MAAOA,IAAK,CACV,KAAK9C,gBAAgB6B,eAAe,yCAAyC,EAC7EhB,EAAQlH,cAAc0J,IAAG,EACzB,KAAK7I,eAAesH,IAAIpB,MAAS,CACnC,EACD,CACL,CAEA1F,kBAAkB6F,EAAkByC,EAAyCC,EAAuB,CAClG,KAAKlI,wBAAwByG,IAAI,CAAE9H,MAAOuJ,EAAiB9I,QAAS,EAAI,CAAE,EAC1E,KAAKsF,sBACFyD,WAAW3C,EAAQmB,UAAWnB,EAAQoB,eAAgBpB,EAAQ9E,UAAWuH,CAAkB,EAC3FhC,KAAKY,EAAK,CAAC,CAAC,EACZS,UAAU,CACTE,KAAMA,IAAK,CACT,IAAM7I,EAAQ6G,EAAQtE,MAAMkH,UAAWC,GAASA,IAASJ,CAAkB,EACvEtJ,IAAU,KACZ6G,EAAQtE,MAAMoH,OAAO3J,EAAO,CAAC,EAC7B6G,EAAQtE,MAAQ,CAAC,GAAGsE,EAAQtE,KAAK,GAEnC,KAAKyD,gBAAgBqC,iBAAiB,qCAAqC,EAC3E,KAAKhH,wBAAwByG,IAAIpB,MAAS,CAC5C,EACAoC,MAAOA,IAAK,CACV,KAAK9C,gBAAgB6B,eAAe,mCAAmC,EACvE,KAAKxG,wBAAwByG,IAAIpB,MAAS,CAC5C,EACD,CACL,CAEAhE,mBAAmBkH,EAAoB/C,EAAgB,CACrD,KAAKb,gBAAgBqC,iBAAiB,qCAAqC,EAC3E,KAAKnG,qBAAqBoF,KAAKY,EAAK,CAAC,CAAC,EAAES,UAAWkB,GAAe,CAC3DhD,EAAQtE,QAAOsE,EAAQtE,MAAQ,CAAA,GACpCsE,EAAQtE,MAAQ,CACd,GAAGsE,EAAQtE,MACX,CACEN,KAAM2H,GAAU3H,KAChB6H,IAAKF,GAAUE,IACfC,YAAaH,GAAUF,MAAMM,KAC7BC,gBAAiB,CACfC,KAAM,CAACL,CAAW,EAClBM,OAAQ,CAACN,CAAW,EACpBO,MAAO,CAACP,CAAW,GAErBQ,qBAAsBR,EACvB,CAEL,CAAC,CACH,CAGAlH,wBAAwBmG,EAAsB,CAC5C,KAAK9C,gBAAgB6B,eAAe,mCAAmC,CACzE,CAEAnG,sBAAsBgI,EAA2B7C,EAAkB7G,EAAa,CAC9E,KAAK8B,kBAAkBgG,IAAI,CAAE9H,MAAOA,EAAO+B,UAAW8E,EAAQ9E,UAAWtB,QAAS,EAAI,CAAE,EACxF,IAAM6J,EAAS,KAAKnE,kBAAkBoE,iBAAiBb,EAAKI,GAAG,EAEzDU,EAAYC,GAAeC,2BAA2B7D,EAAQmB,UAAWnB,EAAQoB,cAAc,EAE/F0C,EAA2B9D,EAAQ9E,UAAU6I,MAAM,GAAG,EAC5D,GAAID,GAAgBpH,SAAW,EAAG,CAChC,KAAKyC,gBAAgB6B,eAAe,0CAA0C,EAC9E,MACF,CACA,IAAMgD,EAAa,IAAMF,EAAe,CAAC,EAAI,IACvCG,EAASH,EAAe,CAAC,EAE/B,KAAKvE,sBACF2E,iBAAiB,IAAIC,EAAa,CAAER,UAAAA,EAAWK,WAAAA,EAAYC,OAAAA,CAAM,CAAE,EAAGR,CAAM,EAC5EhD,KACCV,EAAKqE,IAASA,IAAMnB,GAAG,EACvB5B,EAAK,CAAC,EACNgD,GAAS,IAAM,KAAKpJ,kBAAkBgG,IAAI,CAAE9H,MAAOA,EAAO+B,UAAW,GAAItB,QAAS,EAAK,CAAE,CAAC,CAAC,EAE5FkI,UAAWwC,IAAgB,CAC1B,GAAI,CACF,IAAMC,GAASC,SAASC,cAAc,GAAG,EACzCF,GAAOG,KAAOJ,GACdC,GAAOI,SAAW9B,EAAKzH,KACvBmJ,GAAOK,OAAS,SAChBL,GAAOM,MAAK,EACZC,OAAOC,IAAIC,gBAAgBV,EAAY,CACzC,MAAY,CACV,KAAKnF,gBAAgB6B,eAAe,0CAA0C,CAChF,CACF,CAAC,CACL,iDAtNWzC,GAA4B0G,EAa7BC,EAAmC,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,EAAAH,EAAAI,EAAA,EAAAJ,EAAAK,EAAA,EAAAL,EAAAM,EAAA,CAAA,CAAA,CAAA,+BAblChH,EAA4BiH,UAAA,CAAA,CAAA,sCAAA,CAAA,EAAAC,OAAA,CAAAjG,SAAA,UAAA,EAAAkG,WAAA,GAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,sBAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,MAAA,YAAA,YAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,YAAA,YAAA,WAAA,cAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,UAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,MAAA,YAAA,YAAA,WAAA,gBAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,CAAA,QAAA,eAAA,EAAA,cAAA,EAAA,CAAA,QAAA,0CAAA,EAAA,cAAA,EAAA,CAAA,QAAA,eAAA,EAAA,iBAAA,EAAA,CAAA,QAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,QAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,mBAAA,yBAAA,EAAA,CAAA,EAAA,eAAA,4BAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,WAAA,GAAA,QAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,iBAAA,EAAA,QAAA,SAAA,EAAA,CAAA,WAAA,GAAA,EAAA,YAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,aAAA,UAAA,EAAA,mBAAA,EAAA,CAAA,WAAA,GAAA,sBAAA,GAAA,qBAAA,IAAA,qBAAA,IAAA,EAAA,YAAA,iBAAA,EAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,qBAAA,GAAA,EAAA,mBAAA,EAAA,QAAA,UAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,aAAA,QAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,kBAAA,GAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,kBAAA,SAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,qBAAA,GAAA,EAAA,OAAA,EAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,kBAAA,GAAA,QAAA,SAAA,QAAA,mBAAA,EAAA,WAAA,QAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,GAAA,QAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,UAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GCrBzCnO,EAAA,EAAAqO,GAAA,GAAA,GAAA,eAAA,CAAA,EAA8D,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAxI,CAAA,OAA5BrG,EAAA,UAAA2O,EAAAxG,QAAA;qIDqBrBjB,CAA4B,GAAA,8BGf7B4H,EAAA,CAAA,EACEC,EAAA,EAAA,cAAA,EAAA,sBAAaC,EAAA,EAAAC,EAAA,QAAA,EAAA,EAAY,OAAAC,EAAAC,QAAAC,IAAA,EAAsB,OAAAF,EAAAC,QAAAE,IAAA,sCAiBrDC,EAAA,EAAA,MAAA,EAAA,EAA2F,EAAA,MAAA,EAAA,EAC1DC,EAAA,QAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAR,EAAAS,EAAA,EAAA,OAAAC,EAASV,EAAAW,yBAAAL,CAAA,CAAgC,CAAA,CAAA,EACtEF,EAAA,EAAA,UAAA,EAAUQ,EAAA,EAAA,SAAA,EAAOC,EAAA,EACjBT,EAAA,EAAA,MAAA,EAAMQ,EAAA,CAAA,mBAAsDC,EAAA,EAAO,EAC/D,QADEf,EAAA,CAAA,EAAAgB,EAAAC,EAAA,EAAA,EAAA,oCAAA,CAAA,GD3BlB,OAiBaC,GAjBbC,GAAAC,EAAA,KAAAC,IAGAC,8EAcaJ,IAA2B,IAAA,CAAlC,MAAOA,CAA2B,CANxCK,aAAA,CAUW,KAAAC,SAAsB,CAAA,EACtB,KAAAC,gBAAkB,GAClB,KAAAC,SAAW,GACV,KAAAC,mBAAoD,IAAIC,EAGlEC,UAAQ,CACN,IAAMC,EAAoB,KAAKN,UAAUO,OAAQC,GAAYA,EAAQC,SAAWC,EAAmB,GAAGC,QAAU,EAC1GC,EAAgB,KAAKZ,UAAUW,QAAU,EACzCE,EAAmBD,EAAQ,EAAIE,KAAKC,MAAOT,EAAYM,EAAS,GAAG,EAAI,EAC7E,KAAKI,gBAAkB,CAAEV,UAAAA,EAAWM,MAAAA,EAAOC,SAAAA,CAAQ,CACrD,CAEAxB,yBAAyB4B,EAAkB,CACzC,KAAKd,mBAAmBe,KAAK,CAC3BC,gBAAiB,KAAKA,gBACtBnB,SAAU,KAAKA,SAChB,EACDiB,GAAOG,eAAc,EACrBH,GAAOI,gBAAe,CACxB,iDAxBW3B,EAA2B,CAAA,+BAA3BA,EAA2B4B,UAAA,CAAA,CAAA,qCAAA,CAAA,EAAAC,OAAA,CAAA5C,QAAA,UAAA6C,aAAA,eAAAL,gBAAA,kBAAAnB,SAAA,WAAAC,gBAAA,kBAAAC,SAAA,UAAA,EAAAuB,QAAA,CAAAtB,mBAAA,oBAAA,EAAAuB,WAAA,GAAAC,MAAA,GAAAC,KAAA,GAAAC,OAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,CAAA,kBAAA,OAAA,iBAAA,MAAA,EAAA,CAAA,EAAA,MAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,YAAA,YAAA,WAAA,cAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,YAAA,YAAA,kBAAA,EAAA,SAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,OAAA,cAAA,EAAA,OAAA,EAAA,CAAA,QAAA,uDAAA,EAAA,MAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,QAAA,OAAA,MAAA,EAAA,CAAA,EAAA,MAAA,YAAA,YAAA,WAAA,qBAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,OAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,ICjBxCzD,EAAA,EAAA,CAAA,EACEQ,EAAA,EAAA,sBAAA,CAAA,EAAiE,EAAA,6BAAA,CAAA,EACU,EAAA,MAAA,CAAA,EAC7B,EAAA,MAAA,CAAA,EACmB,EAAA,MAAA,CAAA,EAEvDmD,EAAA,EAAAC,GAAA,EAAA,EAAA,eAAA,CAAA,EAGApD,EAAA,EAAA,MAAA,EAAMQ,EAAA,CAAA,EAAkBC,EAAA,EAAO,EAC3B,EAERT,EAAA,EAAA,MAAA,CAAA,EAA2G,GAAA,MAAA,CAAA,EACzE,GAAA,MAAA,CAAA,EAE5BQ,EAAA,EAAA,oBAIFC,EAAA,EACAT,EAAA,GAAA,MAAA,EAAA,EAAiCQ,EAAA,EAAA,EAA+BC,EAAA,EAAM,EAExEhB,EAAA,GAAA,mBAAA,EAAA,EACFgB,EAAA,EACA0C,EAAA,GAAAE,GAAA,EAAA,EAAA,MAAA,EAAA,EAMF5C,EAAA,EAAM,EAGRhB,EAAA,GAAA,uCAAA,EAAA,EACFgB,EAAA,aAjC2Cf,EAAA,EAAAC,EAAA,WAAAuD,EAAA9B,QAAA,EAKlB1B,EAAA,CAAA,EAAAC,EAAA,OAAAuD,EAAArD,OAAA,EAGTH,EAAA,CAAA,EAAAgB,EAAAwC,EAAAR,YAAA,EAG2ChD,EAAA,EAAAC,EAAA,UAAAuD,EAAA/B,gBAAA,WAAA,UAAA,EAG/CzB,EAAA,CAAA,EAAA4D,EAAA,IAAAC,EAAA,GAAA,EAAA,+BAAAC,GAAA,GAAAC,GAAAP,EAAAhB,gBAAAV,UAAA0B,EAAAhB,gBAAAJ,KAAA,CAAA,EAAA,GAAA,EAK+BpC,EAAA,CAAA,EAAA4D,EAAA,GAAAJ,EAAAhB,gBAAAH,SAAA,GAAA,EAEErC,EAAA,EAAAC,EAAA,QAAAuD,EAAAhB,gBAAAH,QAAA,EAE4BrC,EAAA,EAAAC,EAAA,OAAA,CAAAuD,EAAA/B,eAAA,EASjCzB,EAAA,EAAAC,EAAA,WAAAuD,EAAAhC,QAAA;oIDhB7BN,CAA2B,GAAA,IEjBxC,IAOa8C,GAPbC,GAAAC,EAAA,SAOaF,IAA6B,IAAA,CAApC,MAAOA,CAA6B,iDAA7BA,EAA6B,CAAA,gCAA7BA,EAA6BG,UAAA,CAAA,CAAA,wBAAA,EAAA,CAAA,GAAA,yBAAA,EAAA,EAAA,CAAA,GAAA,uBAAA,EAAA,CAAA,EAAAC,WAAA,EAAA,CAAA,CAAA,SAA7BJ,CAA6B,GAAA,ICP1C,IAOaK,GAPbC,GAAAC,EAAA,cAOaF,IAAgB,IAAA,CAAvB,MAAOA,CAAgB,CAC3BG,YAAoBC,EAAkC,CAAlC,KAAAA,iBAAAA,CAAqC,CAEzDC,UAAUC,EAAgB,CACxB,IAAMC,EAAOD,GAAUE,KAAI,GAAM,GAC3BC,EAAQF,EAAKG,MAAM,GAAG,EAC5B,OAAID,EAAME,OAAS,EAEV,CAACF,EAAM,CAAC,EAAGA,EAAMA,EAAME,OAAS,CAAC,CAAC,EAAEC,KAAK,GAAG,EAC1CL,EAAKI,OAAS,EAEhBJ,EAAK,CAAC,EAAI,IAAMA,EAAK,CAAC,EACpBA,EAAKI,SAAW,EAElBJ,EAGA,KAAKH,iBAAiBS,QAAQ,2BAA2B,CAEpE,iDAnBWb,GAAgBc,EAAAC,GAAA,EAAA,CAAA,CAAA,CAAA,qDAAhBf,EAAgBgB,KAAA,GAAAC,WAAA,EAAA,CAAA,CAAA,SAAhBjB,CAAgB,GAAA,2BELzBkB,EAAA,EAAA,iBAAA,EAA+CC,EAAA,CAAA,mBAAiCC,EAAA,SAAjCC,EAAA,EAAAC,EAAAC,EAAA,EAAA,EAAA,eAAA,CAAA,sCAE/CL,EAAA,EAAA,mBAAA,EAAuD,EAAA,WAAA,CAAA,EACtBM,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAG,iBAAA,CAAkB,CAAA,CAAA,EAAEX,EAAA,EAAA,OAAA,EAAKC,EAAA,EAAW,6BAJhFF,EAAA,EAAA,oBAAA,CAAA,EACEa,EAAA,EAAAC,GAAA,EAAA,EAAA,kBAAA,CAAA,EAA+C,EAAAC,GAAA,EAAA,EAAA,oBAAA,CAAA,EAKjDb,EAAA,kBANgFc,EAAA,yBAAA,EAAA,EAC5Db,EAAA,EAAAa,EAAA,OAAAP,EAAAQ,YAAA,KAAA,KAAAR,EAAAQ,WAAAC,SAAA,EAEEf,EAAA,EAAAa,EAAA,OAAAP,EAAAQ,YAAA,KAAA,KAAAR,EAAAQ,WAAAE,eAAA,yBAQhBC,GAAA,CAAA,4BADFC,EAAA,CAAA,EACER,EAAA,EAAAS,GAAA,EAAA,EAAA,eAAA,EAAA,4BAAenB,EAAA,EAAAa,EAAA,mBAAAO,CAAA,6BAUfvB,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,mBACFC,EAAA,4BADEC,EAAA,EAAAqB,GAAA,IAAAnB,EAAA,EAAA,EAAA,mBAAA,EAAA,IAAAoB,GAAA,KAAA,KAAAA,EAAAC,UAAA,GAAA,0BAEF1B,EAAA,EAAA,MAAA,EAAA,EAAsG,EAAA,UAAA,EAC1FC,EAAA,EAAA,YAAA,EAAUC,EAAA,EACpBF,EAAA,EAAA,MAAA,EAAMC,EAAA,CAAA,mBAA6DC,EAAA,EAAO,SAApEC,EAAA,CAAA,EAAAC,EAAAC,EAAA,EAAA,EAAA,2CAAA,CAAA,6BAbVL,EAAA,EAAA,eAAA,EAAA,cAQEa,EAAA,EAAAc,GAAA,EAAA,EAAA,MAAA,EAAA,EAA+D,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAOjE1B,EAAA,gCATE2B,GAAA,WAAAJ,GAAA,KAAA,KAAAA,EAAAK,eAAArB,EAAAqB,YAAAC,oBAAA,EAJAf,EAAA,cAAAP,EAAAuB,sBAAAP,CAAA,CAAA,EAAwD,cAAAA,GAAA,MAAAA,EAAAQ,aAAA,KAAA,KAAAR,EAAAQ,YAAAC,KAAA,CAAA,EACP,kBAAAC,EAAA,EAAA,EAAAV,EAAAW,eAAA,iBAAA,CAAA,EACyB,gBAAAX,GAAA,KAAA,KAAAA,EAAAY,cAAA,EAIpElC,EAAA,CAAA,EAAAa,EAAA,OAAAS,GAAA,KAAA,KAAAA,EAAAC,SAAA,EAGAvB,EAAA,EAAAa,EAAA,QAAAS,GAAA,KAAA,KAAAA,EAAAK,eAAArB,EAAAqB,YAAAC,oBAAA,yBAMNX,GAAA,CAAA,4BADFC,EAAA,CAAA,EACER,EAAA,EAAAyB,GAAA,EAAA,EAAA,eAAA,EAAA,4BAAenC,EAAA,EAAAa,EAAA,mBAAAO,CAAA,yBAOrBgB,EAAA,EAAA,cAAA,EAAA,OAAavB,EAAA,WAAA,EAAA,4BAMThB,EAAA,EAAA,MAAA,EAAA,EACEuC,EAAA,EAAA,cAAA,EAAA,sBAMFrC,EAAA,mBAJIC,EAAA,EAAAa,EAAA,OAAAP,EAAA+B,WAAAC,iBAAA,EAAqC,OAAApC,EAAA,EAAA,EAAAI,EAAA+B,WAAAE,UAAA,KAAA,KAAAjC,EAAA+B,WAAAE,SAAAC,SAAA,CAAA,EACiB,QAAA,EAAA,6BAL5DtB,EAAA,EAAA,EAAA,EACER,EAAA,EAAA+B,GAAA,EAAA,EAAA,MAAA,EAAA,uBAAMzC,EAAA,EAAAa,EAAA,OAAAP,EAAA+B,WAAAC,mBAAAhC,EAAA+B,WAAAE,QAAA,6BASRrB,EAAA,CAAA,EACErB,EAAA,EAAA,iBAAA,EAAA,EAA+D,EAAA,WAAA,EAClDC,EAAA,CAAA,mBAA6CC,EAAA,EACxDqC,EAAA,EAAA,QAAA,EAAA,EACFrC,EAAA,uBAFaC,EAAA,CAAA,EAAAC,EAAAC,EAAA,EAAA,EAAA,2BAAA,CAAA,EACKF,EAAA,CAAA,EAAAa,EAAA,cAAAP,EAAAoC,eAAA,sCAMpB7C,EAAA,EAAA,eAAA,EAAA,EAIEM,EAAA,SAAA,UAAA,CAAAC,EAAAuC,CAAA,EAAA,IAAArC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAAUF,EAAAsC,eAAA,CAAgB,CAAA,CAAA,EAG1B9C,EAAA,CAAA,mBACFC,EAAA,qBALEc,EAAA,UAAAP,EAAAuC,QAAA,EAIA7C,EAAA,EAAA8C,EAAA,IAAA5C,EAAA,EAAA,EAAA,iCAAA,EAAA,GAAA,sCAEFL,EAAA,EAAA,SAAA,EAAA,EAKEM,EAAA,QAAA,UAAA,CAAAC,EAAA2C,CAAA,EAAA,IAAAzC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAA0C,kBAAA,CAAmB,CAAA,CAAA,EAE5BlD,EAAA,CAAA,mBACFC,EAAA,qBAJEc,EAAA,WAAAP,EAAA2C,mBAAA,EAGAjD,EAAA,EAAA8C,EAAA,IAAA5C,EAAA,EAAA,EAAA,4BAAA,EAAA,GAAA,yBAGJkC,EAAA,EAAA,aAAA,4BAvCAvC,EAAA,EAAA,MAAA,EAAA,EACEa,EAAA,EAAAwC,GAAA,EAAA,EAAA,eAAA,EAAA,EAA2F,EAAAC,GAAA,EAAA,EAAA,eAAA,CAAA,EAgB3FC,GAAA,CAAA,EACFrD,EAAA,EACAF,EAAA,EAAA,MAAA,EAAA,EACEa,EAAA,EAAA2C,GAAA,EAAA,EAAA,eAAA,EAAA,EAMC,EAAAC,GAAA,EAAA,EAAA,SAAA,EAAA,EAYHvD,EAAA,EACAW,EAAA,EAAA6C,GAAA,EAAA,EAAA,cAAA,CAAA,yBAtCiBvD,EAAA,EAAAa,EAAA,OAAAP,EAAA+B,aAAA/B,EAAAQ,YAAA,KAAA,KAAAR,EAAAQ,WAAA0C,kBAAA,EAUAxD,EAAA,EAAAa,EAAA,OAAA,CAAAP,EAAAmD,cAAA,EAWZzD,EAAA,CAAA,EAAAa,EAAA,OAAA,CAAAP,EAAAoD,cAAA,EAQA1D,EAAA,EAAAa,EAAA,OAAA,CAAAP,EAAAqD,YAAA,EAAqB,WAAAC,CAAA,EASZ5D,EAAA,EAAAa,EAAA,OAAAP,EAAAQ,WAAA+C,qBAAA,GDjFhB,UAgCaC,GAhCbC,GAAAC,EAAA,KAAAC,IACAC,KAEAC,KACAC,KACAC,KACAC,KAEAC,mKAwBaT,IAAwB,IAAA,CAA/B,MAAOA,CAAwB,CAEnC,IACIU,aAAaC,EAAiC,CAC5C,KAAK3D,YAAY+C,sBACnBY,EAAMC,KAAK,CAACC,EAAGC,IAAMA,EAAE3C,eAAe4C,QAAO,EAAKF,EAAE1C,eAAe4C,QAAO,CAAE,EAE5EJ,EAAMC,KAAK,CAACC,EAAGC,IAAMD,EAAE1C,eAAe4C,QAAO,EAAKD,EAAE3C,eAAe4C,QAAO,CAAE,EAE9E,KAAKC,eAAeC,KAAKN,GAAS,CAAA,CAAE,CACtC,CAqBAO,YAAoBC,EAAkC,CAAlC,KAAAA,iBAAAA,EApBX,KAAAC,UAAY,GACZ,KAAAvB,aAAe,GACf,KAAAD,eAAiB,GACjB,KAAAyB,cAAgB,GAGhB,KAAArE,WAAiC,CACxCC,UAAW,GACXC,gBAAiB,GACjB6C,sBAAuB,GACvBL,kBAAmB,IAGX,KAAA4B,aAAkC,IAAIC,EACtC,KAAAC,cAA+C,IAAID,EAI7D,KAAAE,UAAYC,GAAYC,KAQxB,KAAA5C,SAAW,GACX,KAAAiC,eAA8D,IAAIY,GAA4C,CAAA,CAAE,EACvG,KAAAhD,gBAAkB,IAAIiD,GAAmB,KAAM,CAAEC,SAAU,QAAQ,CAAE,CARrB,CAEzD,IAAIjE,aAAW,CACb,OAAOkE,EACT,CAMA,IAAIpC,gBAAc,CAChB,MAAO,CAAC,CAAC,KAAKqC,cAChB,CAEA,IAAI7C,qBAAmB,CACrB,OAAI,KAAKQ,eACA,KAAK0B,cAEP,CAAC,CAAC,KAAKA,eAAiB,CAAC,KAAKY,eAAe,KAAKrD,iBAAiB+B,KAAK,CACjF,CAEQsB,eAAeC,EAAY,CACjC,OAAOA,GAAMjE,KAAI,GAAIkE,OAAS,GAAKD,GAAMjE,KAAI,GAAIkE,QAAUC,EAC7D,CAEAtD,gBAAc,CACZ,KAAKC,SAAW,CAAC,KAAKA,QACxB,CAEAG,mBAAiB,CACf,KAAKsC,cAAca,KAAK,CACtBC,QAAS,KAAK1D,iBAAiB+B,OAAO1C,KAAI,EAC1Cc,SAAU,KAAKa,eAAiB,GAAO,KAAKb,SAC7C,CACH,CAEApC,kBAAgB,CACd,KAAK2E,aAAae,KAAI,CACxB,CAEAE,mBAAiB,CACf,KAAK3D,iBAAiB4D,SAAS,EAAE,CACnC,CAEAzE,sBAAsB2C,EAA8B,CAClD,GAAIA,GAAc+B,WAChB,OAAO/B,EAAa+B,WACf,GAAI,KAAKC,uBAAuBhC,CAAY,EAAG,CACpD,IAAMiC,EAAW,KAAKxB,iBAAiByB,QAAQ,iCAAiC,EAChF,OAAOlC,GAAcmC,SAASC,QAAQ,IAAKH,CAAQ,GAAK,EAC1D,KACE,OAAO,EAEX,CAEAD,uBAAuBhC,EAA8B,CACnD,MAAO,EAAEA,GAAcmC,UAAUE,WAAW,IAAI,GAAKrC,GAAcmC,UAAUE,WAAW,MAAM,EAChG,iDAxFW/C,GAAwBgD,EAAAC,EAAA,CAAA,CAAA,CAAA,+BAAxBjD,EAAwBkD,UAAA,CAAA,CAAA,kCAAA,CAAA,EAAAC,eAAA,SAAAC,EAAAC,EAAAC,EAAA,IAAAF,EAAA,QA2BrBG,GAA6B,CAAA,m7CC3D7CxH,EAAA,EAAA,YAAA,CAAA,EACEa,EAAA,EAAA4G,GAAA,EAAA,EAAA,oBAAA,CAAA,EAQAzH,EAAA,EAAA,oBAAA,CAAA,EAA6C,EAAA,MAAA,CAAA,EAEzCa,EAAA,EAAA6G,GAAA,EAAA,EAAA,eAAA,CAAA,EAAwD,EAAAC,GAAA,EAAA,GAAA,eAAA,CAAA,eAmBxD9G,EAAA,EAAA+G,GAAA,EAAA,EAAA,eAAA,CAAA,EAGF1H,EAAA,EAAM,EACY,EAGtBW,EAAA,EAAAgH,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAC,CAAA,EAA6B,GAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAD,CAAA,SArClB9G,EAAA,YAAAsG,EAAAjC,SAAA,EAAuB,cAAA,EAAA,EACZlF,EAAA,EAAAa,EAAA,QAAAsG,EAAArG,YAAA,KAAA,KAAAqG,EAAArG,WAAAC,aAAAoG,EAAArG,YAAA,KAAA,KAAAqG,EAAArG,WAAAE,gBAAA,EAQDhB,EAAA,EAAAa,EAAA,cAAAsG,EAAA5B,SAAA,EAEAvF,EAAA,CAAA,EAAAa,EAAA,OAAAsG,EAAArG,YAAA,KAAA,KAAAqG,EAAArG,WAAA+C,qBAAA,EAIY7D,EAAA,EAAAa,EAAA,UAAAX,EAAA,EAAA,EAAAiH,EAAArC,cAAA,CAAA,EAeZ9E,EAAA,CAAA,EAAAa,EAAA,OAAA,EAAAsG,EAAArG,YAAA,MAAAqG,EAAArG,WAAA+C,sBAAA;mJDERC,CAAwB,GAAA,IEhCrC,IAUa+D,GAVbC,GAAAC,EAAA,SAUaF,IAAc,IAAA,CAArB,MAAOA,CAAc,CAIzBG,SAASC,EAAmB,CAC1B,KAAKC,MAAQD,CACf,CAEAE,cAAcC,EAAkC,CAC9C,KAAKC,IAAMD,CACb,CAEQE,WAAWC,EAA0B,CAC3C,KAAKF,IAAIG,MAAK,EACd,KAAKH,IAAII,mBAAmBF,CAAQ,CACtC,CAEAG,KAAKH,EAA0B,CAC7B,YAAKD,WAAWC,CAAQ,EACjB,KAAKL,MAAMQ,KAAI,CACxB,CAEAC,OAAK,CACH,OAAO,KAAKT,MAAMS,MAAK,CACzB,CAEAC,QAAM,CACJ,OAAO,KAAKV,MAAMU,OAAM,CAC1B,iDA5BWf,EAAc,CAAA,iCAAdA,EAAcgB,QAAdhB,EAAciB,UAAAC,WAFb,MAAM,CAAA,CAAA,SAEPlB,CAAc,GAAA,ICV3B,IAKamB,GALbC,GAAAC,EAAA,KAAAC,KAKaH,GAAP,KAA0B,CAC9B,OAAOI,+BAA+BC,EAA2C,CAC/E,MAAO,CACLC,WAAYD,EAAaE,SACzBC,YAAaH,EAAaI,QAC1BC,eAAgBL,EAAaM,QAC7BC,kBAAmBP,EAAaQ,OAChCC,YAAaT,EAAaU,SAAWC,GAAYC,oBAAsBD,GAAYE,qBACnFC,UAAWd,EAAac,UACxBC,eAAgBf,EAAae,eAEjC,KChBF,OA2BaC,GA3BbC,GAAAC,EAAA,KAEAC,KACAC,KACAC,KACAC,KAKAC,KASAC,oDAQaR,IAA+B,IAAA,CAAtC,MAAOA,CAA+B,CAC1C,IACIS,mBAAmBC,EAAyB,CAC9C,KAAKC,QAAUD,EACf,KAAKE,0BAAyB,CAChC,CAWAC,YACUC,EAC0CC,EACjCC,EACoCC,EAAqD,CAHlG,KAAAH,eAAAA,EAC0C,KAAAC,mBAAAA,EACjC,KAAAC,gBAAAA,EACoC,KAAAC,sBAAAA,EAVvD,KAAAC,eAA8D,IAAIC,GAA4C,CAAA,CAAE,EAChH,KAAAC,YAAwC,IAAID,GAAyB,EAAK,EAClE,KAAAE,cAA0C,IAAIC,GACtD,KAAAC,sBAA6C,KAAKF,cAAcG,WAChE,KAAAC,YAAqD,KAAKR,sBAAsBQ,WAO7E,CAEK,OAAOC,yBAAyBf,EAA2B,CACjE,OAAOgB,GACLhB,EAAQiB,sBAAsBC,IAAKC,GAAgB,CACjD,IAAMC,EAAmCC,GAAoBC,+BAA+BH,CAAY,EAClGI,EAAYJ,EAAaK,QAAQC,MAAM,GAAG,GAAGC,MAAM,EAAE,GAAGC,IAAG,EAC3DC,EAAU5B,EAAQ6B,UAAUC,KAC/BC,GACCA,EAAKR,WAAWE,MAAM,GAAG,GAAGC,MAAM,EAAE,GAAGC,IAAG,IAAOJ,GAAaQ,GAAO,UAAc,SAAcR,CAAS,EAE9GH,OAAAA,EAAOY,UAAYJ,GAASK,MACrBb,CACT,CAAC,CAAC,CAEN,CAEQnB,2BAAyB,CAC/B,KAAKQ,YAAYyB,KAAK,EAAI,EAC1B7C,EAAgC0B,yBAAyB,KAAKf,OAAO,EAClEmC,KACCC,EAAK,CAAC,EACNC,GAAS,IAAM,KAAK5B,YAAYyB,KAAK,EAAK,CAAC,CAAC,EAE7CI,UAAWlB,GAAW,KAAKb,eAAe2B,KAAKd,CAAM,CAAC,CAC3D,CAEQmB,cAAcC,EAAyC,CAC7D,IAAMrB,EAAe,KAAKZ,eAAekC,SAAQ,GAAM,CAAA,EACvDtB,EAAauB,QAAQrB,GAAoBC,+BAA+BkB,CAAU,CAAC,EACnF,KAAKjC,eAAe2B,KAAKf,CAAY,EAEjC,KAAKnB,SAASiB,sBAChB,KAAKjB,QAAQiB,qBAAqByB,QAAQF,CAAU,CAExD,CAEAG,kBAAkBC,EAAsB,CACtC,GAAI,KAAK5C,SAAS6C,gBAAiB,CACjC,IAAMC,EAAQ,KAAK1C,mBAAmB2C,YAAYH,GAAOI,QAAS,KAAKhD,QAAQ6C,eAAe,EAAEV,KAAKC,EAAK,CAAC,CAAC,EAC5G,KAAK1B,cAAcuC,UAAUH,CAAK,EAClCI,GAAc,CAAC,KAAKxC,cAAcyC,WAAY,KAAKrC,WAAW,CAAC,EAC5DqB,KAAKC,EAAK,CAAC,CAAC,EACZE,UAAU,CAAC,CAACc,EAAWC,CAAU,IAAK,CACrC,GAAID,EAAW,CACb,KAAK/C,gBAAgBiD,iBAAiB,oCAAoC,EAE1E,IAAMd,EAA4C,CAChDe,SAAUF,GAAYG,UAAUC,UAChCT,QAASJ,GAAOI,QAChBU,QAAS,IAAIC,KACbC,SAAUhB,GAAOgB,SACjBC,eAAgBR,EAAWS,mBAE7B,KAAKvB,cAAcC,CAAU,EAC7B,KAAKuB,gBAAgBC,kBAAiB,CACxC,MACE,KAAK3D,gBAAgB4D,eAAe,kCAAkC,CAE1E,CAAC,CACL,CACF,CAEAC,kBAAgB,CACd,KAAK/D,eAAegE,MAAK,CAC3B,iDAtFW9E,GAA+B+E,EAAAC,EAAA,EAAAD,EAkBhCE,EAAgC,EAAAF,EAAAG,EAAA,EAAAH,EAEhCI,EAAmC,CAAA,CAAA,CAAA,+BApBlCnF,EAA+BoF,UAAA,CAAA,CAAA,0BAAA,CAAA,EAAAC,UAAA,SAAAC,EAAAC,EAAA,IAAAD,EAAA,oUC3B5CE,EAAA,EAAA,mCAAA,EAAA,CAAA,sDAOEC,EAAA,eAAA,UAAA,CAAAC,OAAAC,EAAAC,CAAA,EAAAC,EAAgBN,EAAAV,iBAAA,CAAkB,CAAA,CAAA,EAAC,gBAAA,SAAAiB,EAAA,CAAAJ,OAAAC,EAAAC,CAAA,EAAAC,EAClBN,EAAAjC,kBAAAwC,CAAA,CAAyB,CAAA,CAAA,EAC3CC,EAAA,OAPCC,EAAA,aAAAC,EAAA,EAAA,EAAAV,EAAA9D,WAAA,CAAA,EAAkC,eAAAwE,EAAA,EAAA,EAAAV,EAAArE,cAAA,CAAA,EACK,YAAA+E,EAAA,EAAA,EAAAV,EAAAnE,WAAA,CAAA,EACN,iBAAA,EAAA,EACV,eAAA6E,EAAA,EAAA,GAAAV,EAAAhE,qBAAA,CAAA,oEDsBZvB,CAA+B,GAAA,IE3B5C,aA8BakG,GA9BbC,GAAAC,EAAA,KAAAC,uDA8BaH,IAAuC,IAAA,CAA9C,MAAOA,CAAuC,CAIlDI,YAAoBC,EAA8B,CAA9B,KAAAA,eAAAA,CAAiC,CAErDC,UAAQ,CACN,KAAKD,eAAeE,SAAS,KAAKC,SAAS,EAC3C,KAAKH,eAAeI,cAAc,KAAKC,GAAG,CAC5C,iDATWV,GAAuCW,EAAAC,EAAA,CAAA,CAAA,CAAA,+BAAvCZ,EAAuCa,UAAA,CAAA,CAAA,mCAAA,CAAA,EAAAC,UAAA,SAAAC,EAAAC,EAAA,IAAAD,EAAA,qBAENE,EAAgB,2SChC9DC,EAAA,EAAA,wBAAA,CAAA,EAA2C,EAAA,qBAAA,EAEvCC,GAAA,CAAA,EACFC,EAAA,EACAF,EAAA,EAAA,cAAA,EAAA,CAAA,EASEG,GAAA,EAAA,KAAA,CAAA,EACFD,EAAA,EAAc,SATZE,EAAA,CAAA,EAAAC,EAAA,kBAAA,EAAA,EAAwB,OAAA,MAAA;kJDyBfvB,CAAuC,GAAA,2BG1B5CwB,EAAA,CAAA,EACEC,EAAA,EAAA,WAAA,EAAA,EAAoCC,EAAA,EAAA,OAAA,EAAKC,EAAA,0CAGzCF,EAAA,EAAA,OAAA,EAAA,EAAiCG,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAG,0BAA0B,YAAY,CAAC,CAAA,CAAA,EAC/ER,EAAA,CAAA,EACFC,EAAA,0BADEQ,EAAA,EAAAC,EAAA,KAAAC,EAAA,GAAAC,SAAA,EAAA,GAAA,6BASFb,EAAA,EAAA,KAAA,EACEC,EAAA,CAAA,+BACFC,EAAA,4BADEQ,EAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,+BAAAC,EAAA,EAAAC,GAAAF,EAAA,EAAA,EAAAG,EAAAC,eAAA,UAAA,CAAA,CAAA,EAAA,GAAA,6BAMAnB,EAAA,CAAA,EACEC,EAAA,EAAA,MAAA,EACEC,EAAA,CAAA,+BAIFC,EAAA,iCAJEQ,EAAA,CAAA,EAAAC,EAAA,MAAAG,EAAA,EAAA,EAAA,uCAAAC,EAAA,EAAAC,GAAAF,EAAA,EAAA,EAAAG,EAAAE,QAAA,UAAA,CAAA,CAAA,EAAA,GAAA,0BAOFnB,EAAA,EAAA,MAAA,EACEC,EAAA,CAAA,mBAEFC,EAAA,SAFEQ,EAAA,EAAAC,EAAA,MAAAG,EAAA,EAAA,EAAA,uCAAAM,GAAA,EAAAC,EAAA,CAAA,EAAA,GAAA,6BAdNrB,EAAA,EAAA,KAAA,EAAmC,EAAA,OAAA,EAAA,EAE/BC,EAAA,CAAA,mBACFC,EAAA,EACAoB,EAAA,EAAAC,GAAA,EAAA,EAAA,eAAA,CAAA,EAAgE,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAC,CAAA,EAclEvB,EAAA,mCAhBIQ,EAAA,CAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,6BAAA,EAAA,GAAA,EAEahB,EAAA,CAAA,EAAAiB,EAAA,OAAAV,EAAAE,OAAA,EAAuB,WAAAS,CAAA,0BAexC5B,EAAA,EAAA,KAAA,EAA2C,EAAA,MAAA,EAAA,EAEvCC,EAAA,CAAA,mBACFC,EAAA,EAAM,SADJQ,EAAA,CAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,qCAAA,EAAA,GAAA,6BAIF3B,EAAA,CAAA,EACEC,EAAA,EAAA,MAAA,EACEC,EAAA,CAAA,+BAGFC,EAAA,iCAHEQ,EAAA,CAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,uCAAAC,EAAA,EAAAC,GAAAF,EAAA,EAAA,EAAAG,EAAAE,QAAA,UAAA,CAAA,CAAA,EAAA,GAAA,0BAMFnB,EAAA,EAAA,MAAA,EACEC,EAAA,CAAA,mBACFC,EAAA,SADEQ,EAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,uCAAAM,GAAA,EAAAC,EAAA,CAAA,EAAA,GAAA,6BAVNrB,EAAA,EAAA,KAAA,EACEsB,EAAA,EAAAO,GAAA,EAAA,EAAA,eAAA,CAAA,EAAgE,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAL,CAAA,EAYlEvB,EAAA,mCAZiBQ,EAAA,EAAAiB,EAAA,OAAAV,EAAAE,OAAA,EAAuB,WAAAY,CAAA,6BAaxC/B,EAAA,EAAA,KAAA,EAA8B,EAAA,MAAA,EAE1BC,EAAA,CAAA,mBACFC,EAAA,EAAO,4BADLQ,EAAA,CAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,+BAAAC,EAAA,EAAAiB,GAAAf,EAAAgB,KAAA,CAAA,EAAA,GAAA,sCAQJjC,EAAA,EAAA,MAAA,EAAA,EAA0DG,EAAA,QAAA,UAAA,CAAAC,EAAA8B,CAAA,EAAA,IAAA5B,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAG,0BAA0B,WAAW,CAAC,CAAA,CAAA,EACvGR,EAAA,CAAA,EACFC,EAAA,+BADEQ,EAAA,EAAAC,EAAA;cAAAM,EAAAkB,MAAA;WAAA,6BAQEnC,EAAA,EAAA,MAAA,EAAA,EAIEC,EAAA,CAAA,mBACFC,EAAA,6BADEQ,EAAA,EAAAC,EAAA,IAAAG,EAAA,EAAA,EAAA,0CAAAC,EAAA,EAAAiB,GAAAf,EAAAgB,KAAA,CAAA,EAAA,GAAA,0BAEFjC,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,mBACFC,EAAA,SADEQ,EAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,0CAAA,EAAA,GAAA,0BAEF1B,EAAA,EAAA,MAAA,EAAA,EAOEC,EAAA,CAAA,mBACFC,EAAA,SADEQ,EAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,iCAAA,EAAA,GAAA,6BAjBJ3B,EAAA,CAAA,EACEuB,EAAA,EAAAc,GAAA,EAAA,EAAA,MAAA,EAAA,EAGC,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGmG,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAYpGtC,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,EACFC,EAAA,uCAnBGQ,EAAA,EAAAiB,EAAA,OAAAY,EAAAC,SAAA,OAAAD,EAAAE,UAAAnC,EAAAoC,YAAAC,gBAAA,EAKGjC,EAAA,EAAAiB,EAAA,OAAAY,EAAAE,UAAAnC,EAAAoC,YAAAE,0BAAA,EAIHlC,EAAA,EAAAiB,EAAA,OAAAY,EAAAE,UAAAnC,EAAAoC,YAAAE,4BAAAL,EAAAE,UAAAnC,EAAAoC,YAAAC,gBAAA,EASDjC,EAAA,CAAA,EAAAC,EAAA,IAAA4B,GAAA,KAAA,KAAAA,EAAAM,QAAA,GAAA,sCAzBN7C,EAAA,EAAA,MAAA,EAAA,EAGEG,EAAA,QAAA,UAAA,CAAAC,EAAA0C,CAAA,EAAA,IAAAxC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAG,0BAA0B,cAAc,CAAC,CAAA,CAAA,EAElDa,EAAA,EAAAyB,GAAA,EAAA,EAAA,eAAA,EAAA,EAuBF7C,EAAA,4BAvBiBQ,EAAA,EAAAiB,EAAA,QAAAY,GAAA,KAAA,KAAAA,EAAAS,YAAAT,GAAA,KAAA,KAAAA,EAAAM,QAAA,sCAwBjB7C,EAAA,EAAA,MAAA,EAAA,EAGEG,EAAA,QAAA,UAAA,CAAAC,EAAA6C,CAAA,EAAA,IAAA3C,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAG,0BAA0B,iBAAiB,CAAC,CAAA,CAAA,EAErDT,EAAA,EAAA,WAAA,EAAA,EAAkCC,EAAA,EAAA,YAAA,EAAUC,EAAA,EAC5CD,EAAA,CAAA,EACFC,EAAA,4BADEQ,EAAA,CAAA,EAAAC,EAAA,IAAAuC,EAAAC,KAAA,GAAA,6BA1CJnD,EAAA,EAAA,MAAA,EAAA,EAIEsB,EAAA,EAAA8B,GAAA,EAAA,EAAA,MAAA,EAAA,EAA2G,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAO1G,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAiCHpD,EAAA,4BAxCQQ,EAAA,EAAAiB,EAAA,OAAAV,EAAAkB,KAAA,EAKiBzB,EAAA,EAAAiB,EAAA,UAAAV,EAAAsC,aAAA,EA6BJ7C,EAAA,EAAAiB,EAAA,UAAAV,EAAAuC,KAAA,sCAQnBxD,EAAA,EAAA,MAAA,EAAA,EAAyD,EAAA,OAAA,EAAA,EACtB,EAAA,iBAAA,EAAA,EACgC,EAAA,WAAA,EAE3DC,EAAA,CAAA,mBACFC,EAAA,EACAuD,EAAA,EAAA,WAAA,EAAA,EAQFvD,EAAA,EACAF,EAAA,EAAA,4BAAA,EAAA,mBAQEG,EAAA,eAAA,SAAAuD,EAAA,CAAAtD,EAAAuD,CAAA,EAAA,IAAA/C,EAAAL,EAAA,CAAA,EAAAqD,MAAAtD,EAAAC,EAAA,EAAA,OAAAC,EAAgBF,EAAAuD,eAAAH,EAAA9C,CAAA,CAAyB,CAAA,CAAA,EAAC,kBAAA,UAAA,CAAAR,EAAAuD,CAAA,EAAA,IAAArD,EAAAC,EAAA,CAAA,EAAA,OAAAC,EACvBF,EAAAwD,YAAA,CAAa,CAAA,CAAA,EAAC,cAAA,SAAAJ,EAAA,CAAAtD,EAAAuD,CAAA,EAAA,IAAA/C,EAAAL,EAAA,CAAA,EAAAqD,MAAAtD,EAAAC,EAAA,EAAA,OAAAC,EAClBF,EAAAyD,cAAAL,EAAA9C,CAAA,CAAwB,CAAA,CAAA,EACxCV,EAAA,EAA4B,EACxB,mDA1BDQ,EAAA,EAAAiB,EAAA,YAAAV,EAAA+C,IAAA,EAGAtD,EAAA,CAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,GAAA,2BAAA,EAAA,GAAA,EAIAhB,EAAA,CAAA,EAAAiB,EAAA,YAAAV,EAAA+C,IAAA,EAA0B,kBAAA1D,EAAA2D,uBAAArD,CAAA,CAAA,EAS5BF,EAAA,EAAAiB,EAAA,iBAAArB,EAAA4D,kBAAA,EAAqC,QAAAxC,EAAA,EAAA,GAAA,oCAAA,CAAA,EACqB,iBAAA,EAAA,EAClC,WAAA,EAAA,EACT,YAAAT,EAAA+C,IAAA,EACW,kBAAA1D,EAAA6D,oBAAAvD,CAAA,CAAA,sCAS9Bb,EAAA,CAAA,EACEC,EAAA,EAAA,SAAA,EAAA,EAA2DG,EAAA,QAAA,UAAA,CAAAC,EAAAgE,CAAA,EAAA,IAAAxD,EAAAL,EAAA,CAAA,EAAAqD,MAAAtD,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAA+D,mBAAAzD,CAAA,CAAqB,CAAA,CAAA,EACvFX,EAAA,CAAA,mBACFC,EAAA,EACAF,EAAA,EAAA,SAAA,EAAA,EAIEG,EAAA,QAAA,UAAA,CAAAC,EAAAgE,CAAA,EAAA,IAAAxD,EAAAL,EAAA,CAAA,EAAAqD,MAAAtD,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAAgE,YAAA1D,CAAA,CAAc,CAAA,CAAA,EAGvBX,EAAA,CAAA,mBACFC,EAAA,mCAVEQ,EAAA,CAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,kCAAA,EAAA,GAAA,EAOAhB,EAAA,CAAA,EAAAiB,EAAA,WAAAV,EAAAsD,QAAA,EAEA7D,EAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,yBAAA,EAAA,GAAA,sCAGJ3B,EAAA,CAAA,EACEC,EAAA,EAAA,SAAA,EAAA,EAA2DG,EAAA,QAAA,UAAA,CAAAC,EAAAoE,CAAA,EAAA,IAAA5D,EAAAL,EAAA,CAAA,EAAAqD,MAAAtD,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAA+D,mBAAAzD,CAAA,CAAqB,CAAA,CAAA,EACvFX,EAAA,CAAA,mBACFC,EAAA,EACAF,EAAA,EAAA,SAAA,EAAA,EAIEG,EAAA,QAAA,UAAA,CAAAC,EAAAoE,CAAA,EAAA,IAAA5D,EAAAL,EAAA,CAAA,EAAAqD,MAAAtD,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAAmE,aAAA7D,CAAA,CAAe,CAAA,CAAA,EAGxBX,EAAA,CAAA,mBACFC,EAAA,uDAVEQ,EAAA,CAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,wBAAA,EAAA,GAAA,EAOAhB,EAAA,CAAA,EAAAiB,EAAA,WAAA,CAAAV,EAAA+C,KAAAU,IAAApE,EAAA2D,uBAAArD,CAAA,CAAA,EAAA+D,KAAA,EAEAjE,EAAA,EAAAC,EAAA,IAAAe,EAAA,EAAA,EAAA,+BAAA,EAAA,GAAA,6BAxDR3B,EAAA,CAAA,EACEuB,EAAA,EAAAsD,GAAA,EAAA,GAAA,MAAA,EAAA,EA6BA5E,EAAA,EAAA,MAAA,EAAA,EACEsB,EAAA,EAAAuD,GAAA,EAAA,EAAA,eAAA,EAAA,EAA4C,EAAAC,GAAA,EAAA,EAAA,eAAA,EAAA,EA4B9C5E,EAAA,gCA1DMQ,EAAA,EAAAiB,EAAA,OAAAV,EAAA8D,YAAA,EA8BWrE,EAAA,CAAA,EAAAiB,EAAA,OAAA,CAAAV,EAAA8D,YAAA,EAcArE,EAAA,EAAAiB,EAAA,OAAAV,EAAA8D,YAAA,sCA3J3BhF,EAAA,CAAA,EACEC,EAAA,EAAA,MAAA,CAAA,EAAgE,EAAA,MAAA,CAAA,EACjB,EAAA,MAAA,CAAA,EAEzCsB,EAAA,EAAA0D,GAAA,EAAA,EAAA,eAAA,CAAA,EAA6E,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAAxD,CAAA,EAQ/EvB,EAAA,EACAF,EAAA,EAAA,MAAA,CAAA,EAA6B,EAAA,MAAA,CAAA,EACAG,EAAA,QAAA,UAAA,CAAAC,EAAA8E,CAAA,EAAA,IAAA5E,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAAG,0BAA0B,WAAW,CAAC,CAAA,CAAA,EACxER,EAAA,CAAA,EACFC,EAAA,EACAF,EAAA,GAAA,MAAA,EAAA,EAAiCG,EAAA,QAAA,UAAA,CAAAC,EAAA8E,CAAA,EAAA,IAAA5E,EAAAC,EAAA,EAAA,OAAAC,EAASF,EAAAG,0BAA0B,aAAa,CAAC,CAAA,CAAA,EAChFa,EAAA,GAAA6D,GAAA,EAAA,EAAA,MAAA,EAAA,EAAiC,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGE,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAmBQ,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAKrB,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAmBxBrF,EAAA,EACAoB,EAAA,GAAAkE,GAAA,EAAA,EAAA,MAAA,EAAA,EAGC,GAAAC,GAAA,EAAA,EAAA,eAAA,EAAA,EAuGHvF,EAAA,EAAM,EACF,uCA3KkBQ,EAAA,EAAAiB,EAAA,UAAAP,GAAA,GAAAsE,EAAA,CAAA,EAGLhF,EAAA,CAAA,EAAAiB,EAAA,OAAAV,EAAA0E,SAAA,WAAA,EAAsC,WAAAC,CAAA,EAWnDlF,EAAA,CAAA,EAAAC,EAAA,IAAAM,EAAAgB,MAAA,GAAA,EAEGvB,EAAA,EAAAiB,EAAA,WAAAV,EAAA0E,MAAA,EACGjF,EAAA,EAAAiB,EAAA,eAAA,WAAA,EAGAjB,EAAA,EAAAiB,EAAA,eAAA,aAAA,EAmBAjB,EAAA,EAAAiB,EAAA,eAAA,qBAAA,EAmBAjB,EAAA,CAAA,EAAAiB,EAAA,OAAAV,EAAAsD,QAAA,EAQL7D,EAAA,EAAAiB,EAAA,OAAAV,EAAAkB,QAAAlB,EAAAsC,eAAA,KAAA,KAAAtC,EAAAsC,cAAAsC,QAAA,IAAA5E,EAAAuC,OAAA,KAAA,KAAAvC,EAAAuC,MAAAqC,QAAA,CAAA,EA2CYnF,EAAA,EAAAiB,EAAA,OAAAV,EAAA6E,eAAA,GD9GvB,gBAqBaC,GArBbC,GAAAC,EAAA,KAAAC,IAKAC,KACAC,KACAC,KACAC,yJAaaP,IAAwB,IAAA,CAA/B,MAAOA,CAAwB,CASnCQ,YACuDC,EAE7CC,EACAC,EACAC,EACAC,EAAkC,CALW,KAAAJ,sBAAAA,EAE7C,KAAAC,gCAAAA,EACA,KAAAC,aAAAA,EACA,KAAAC,GAAAA,EACA,KAAAC,iBAAAA,EAdD,KAAAC,SAAsB,CAAA,EACrB,KAAAC,eAAqC,IAAIC,EACzC,KAAAC,uBAA6C,IAAID,EACjD,KAAAE,oBAA0C,IAAIF,EAC9C,KAAAG,oBAAyD,IAAIH,EAEvE,KAAArE,YAAcA,EASX,CAEHyE,UAAQ,CACN,KAAKjD,mBAAqB,KAAKuC,gCAC/B,KAAKI,UACDO,IAAKC,GACDA,GAASC,UAAY,CAACD,GAAS9D,cAC1BgE,GAAAC,GAAA,GACFH,GADE,CAEL9D,cAAe8D,EAAQC,SAASF,IAAKvE,IAAa,CAAEA,QAAAA,CAAO,EAAG,IAG3DwE,CACR,GACCI,QAAQ,CAACJ,EAAkBzD,IAAiB,CAC5C,IAAM8D,EAAmB,KAAKvD,oBAAoBP,CAAK,EACjD+D,EAAsB,KAAK1D,uBAAuBL,CAAK,EACvDgE,EAAW,CAAA,EACjBA,EAASF,CAAgB,EAAIG,OAAOC,OAAO,CAAA,EAAIT,EAAQ7D,OAASuE,MAAK,CAAgB,EACrFH,EAASD,CAAmB,EAAI,GAChCN,EAAQrD,KAAO,KAAK2C,GAAGqB,MAAMJ,CAAQ,EACrCP,EAAQrD,KAAKU,IAAIgD,CAAgB,EAAEO,WAAWJ,OAAOC,OAAO,CAAA,EAAIT,EAAQ7D,OAASuE,MAAK,CAAgB,CAAC,CACzG,CAAC,CACL,CAEA5D,oBAAoBP,EAAa,CAC/B,MAAO,QAAUA,CACnB,CACAK,uBAAuBL,EAAa,CAClC,MAAO,WAAaA,CACtB,CAEAC,eAAeqE,EAAiCtE,EAAa,CAC3D,IAAMyD,EAAU,KAAKR,SAASjD,CAAK,EACnC,GAAIsE,EAAW/E,OAAS,IAAM+E,EAAWC,MAAQ,GAAI,CACnD,KAAKzB,aAAa0B,eAAe,kCAAkC,EACnE,IAAMC,EAAUhB,EAAQrD,KAAKU,IAAI,KAAKP,oBAAoBP,CAAK,CAAC,EAAEe,MAClE0D,EAAQC,IAAG,EACXjB,EAAQrD,KAAKU,IAAI,KAAKP,oBAAoBP,CAAK,CAAC,EAAEqE,WAAWI,CAAO,EACpE,MACF,MACOhB,EAAQ7D,QACX6D,EAAQ7D,MAAQ,CAAA,GAElB6D,EAAQ9C,SAAW,GACnB8C,EAAQ7D,MAAM+E,KAAKL,CAAU,EAC7B,KAAK1B,sBACFgC,WAAWnB,EAAQoB,UAAWpB,EAAQqB,eAAgBrB,EAAQsB,UAAWT,CAAU,EACnFU,KACCC,EAAK,CAAC,EACNC,EAAU,IACR,KAAKpC,aACFqC,iBAAiB,sCAAuC,CACvDC,OAAQ,KAAKpC,iBAAiBqC,QAAQ,sBAAsB,EAC7D,EACAC,SAAQ,CAAE,EAEfC,GAAI,IAAM,KAAKC,eAAelB,EAAYtE,CAAK,CAAC,EAChDyF,GAAW,KACT,KAAK3C,aAAa0B,eAAe,mCAAmC,EAC7DkB,GACR,CAAC,EAEHC,UAAS,CAEhB,CAEAH,eAAeI,EAAiC5F,EAAa,CAC3D,IAAMyD,EAAU,KAAKR,SAASjD,CAAK,EACnC,KAAK4C,sBACFiD,WAAWpC,EAAQoB,UAAWpB,EAAQqB,eAAgBrB,EAAQsB,UAAWa,CAAU,EACnFZ,KAAKC,EAAK,CAAC,CAAC,EACZU,UACC,IAAK,CACH,KAAK7C,aAAaqC,iBAAiB,0CAA0C,EAC7E1B,EAAQ7D,MAAM8E,IAAG,EACjBjB,EAAQrD,KAAKU,IAAI,KAAKP,oBAAoBP,CAAK,CAAC,EAAEqE,WAAWJ,OAAOC,OAAO,CAAA,EAAIT,EAAQ7D,KAAK,CAAC,CAC/F,EACA,IAAM,KAAKkD,aAAa0B,eAAe,wCAAwC,CAAC,CAEtF,CAEAtE,aAAW,CACT,KAAK4C,aAAa0B,eAAe,mCAAmC,CACtE,CAEArE,cAAc2F,EAAmBC,EAAoB,CACnD,IAAMtC,EAAU,KAAKR,SAAS8C,CAAY,EAC1CtC,EAAQ9C,SAAW,GACnB,IAAMiF,EAAanC,EAAQ7D,MAAMoG,OAAOF,EAAW,CAAC,EAAE,CAAC,EACvD,KAAKlD,sBACFiD,WAAWpC,EAAQoB,UAAWpB,EAAQqB,eAAgBrB,EAAQsB,UAAWa,CAAU,EACnFZ,KACCC,EAAK,CAAC,EACNC,EAAU,IACR,KAAKpC,aACFqC,iBAAiB,KAAKnC,iBAAiBqC,QAAQ,qCAAqC,EAAG,CACtFD,OAAQ,KAAKpC,iBAAiBqC,QAAQ,sBAAsB,EAC7D,EACAC,SAAQ,CAAE,EAEfC,GAAI,IAAM,KAAKU,gBAAgBL,EAAYG,CAAY,CAAC,EACxDN,GAAW,KACT,KAAK3C,aAAa0B,eAAe,mCAAmC,EACpEf,EAAQ7D,MAAM+E,KAAKiB,CAAU,EACtBF,GACR,CAAC,EAEHC,UAAS,CACd,CAEAM,gBAAgBL,EAAiC5F,EAAa,CAC5D,IAAMyD,EAAU,KAAKR,SAASjD,CAAK,EACnC,KAAK4C,sBACFgC,WAAWnB,EAAQoB,UAAWpB,EAAQqB,eAAgBrB,EAAQsB,UAAWa,CAAU,EACnFZ,KAAKC,EAAK,CAAC,CAAC,EACZU,UACC,IAAK,CACH,KAAK7C,aAAaqC,iBAAiB,0CAA0C,EAC7E1B,EAAQ7D,MAAM+E,KAAKiB,CAAU,EAC7BnC,EAAQrD,KAAKU,IAAI,KAAKP,oBAAoBP,CAAK,CAAC,EAAEqE,WAAWJ,OAAOC,OAAO,CAAA,EAAIT,EAAQ7D,KAAK,CAAC,CAC/F,EACA,IAAK,CACH,KAAKkD,aAAa0B,eAAe,wCAAwC,CAC3E,CAAC,CAEP,CAEA9D,YAAYV,EAAa,CACvB,KAAKkD,eAAegD,KAAI,EACxB,IAAMzC,EAAU,KAAKR,SAASjD,CAAK,EACnCyD,EAAQtC,aAAe,GACvBsC,EAAQ9C,SAAW,GACnB,KAAKiC,sBACFlC,YAAY+C,EAAQoB,UAAWpB,EAAQqB,eAAgBrB,EAAQsB,SAAS,EACxEC,KACCC,EAAK,CAAC,EACNC,EAAU,IACR,KAAKpC,aACFqC,iBAAiB,uCAAwC,CACxDC,OAAQ,KAAKpC,iBAAiBqC,QAAQ,sBAAsB,EAC7D,EACAC,SAAQ,CAAE,EAEfC,GAAI,IAAM,KAAKY,gBAAgB1C,CAAO,CAAC,EACvCgC,GAAW,KACT,KAAK3C,aAAa0B,eAAe,oCAAoC,EACrEf,EAAQ9C,SAAW,GACZ+E,GACR,CAAC,EAEHC,UAAS,CACd,CAEAQ,gBAAgB1C,EAAgB,CAC9BA,EAAQ9C,SAAW,GACnB,KAAKiC,sBACFuD,gBAAgB1C,EAAQoB,UAAWpB,EAAQqB,eAAgBrB,EAAQsB,SAAS,EAC5EC,KAAKC,EAAK,CAAC,CAAC,EACZU,UAAU,CACTS,KAAMA,IAAM,KAAKtD,aAAaqC,iBAAiB,2CAA2C,EAC1FkB,MAAOA,IAAK,CACV,KAAKvD,aAAa0B,eAAe,yCAAyC,EAC1Ef,EAAQ9C,SAAW,EACrB,EACD,CACL,CAEAE,aAAab,EAAa,CACxB,KAAKqD,oBAAoB6C,KAAI,EAC7B,IAAMzC,EAAU,KAAKR,SAASjD,CAAK,EACnCyD,EAAQtC,aAAe,GACvBsC,EAAQ9C,SAAW,GACd8C,GAAS9D,eAAesC,SAC3BwB,EAAQ9D,cAAgB,CAAA,GAE1B,IAAM+D,EAAWD,EAAQrD,KAAKU,IAAI,KAAKT,uBAAuBL,CAAK,CAAC,EAAEe,MACtE0C,EAAQ9D,cAAcgF,KAAK,CACzB1F,QAASyE,EACT4C,OAAQ,gBACR1H,OAAQ,MACR2H,QAAS,IAAIC,KACd,EACD,KAAK5D,sBACF6D,aAAahD,EAAQoB,UAAWpB,EAAQqB,eAAgBrB,EAAQsB,UAAWrB,CAAQ,EACnFsB,KAAKC,EAAK,CAAC,CAAC,EACZU,UAAU,CACTS,KAAMA,IAAK,CACT,KAAKtD,aAAaqC,iBAAiB,2CAA2C,EAC9E1B,EAAQrD,KAAKU,IAAI,KAAKT,uBAAuBL,CAAK,CAAC,EAAEqE,WAAW,EAAE,CACpE,EACAgC,MAAOA,IAAK,CACV,KAAKvD,aAAa0B,eAAe,yCAAyC,EAC1Ef,EAAQ9D,cAAc+E,IAAG,CAC3B,EACD,CACL,CAEAjE,mBAAmBT,EAAa,CAC9B,KAAKiD,SAASjD,CAAK,EAAEmB,aAAe,CAAC,KAAK8B,SAASjD,CAAK,EAAEmB,aACtD,KAAK8B,SAASjD,CAAK,EAAEmB,cACvB,KAAKiC,uBAAuB8C,KAAI,CAEpC,CAEArJ,0BAA0B6J,EAA0B,CAClD,KAAKpD,oBAAoB4C,KAAKQ,CAAK,CACrC,iDA/NWvE,GAAwBwE,EAUzBC,EAAmC,EAAAD,EACnCE,EAA6C,EAAAF,EAAAG,EAAA,EAAAH,EAAAI,EAAA,EAAAJ,EAAAK,EAAA,CAAA,CAAA,CAAA,+BAX5C7E,EAAwB8E,UAAA,CAAA,CAAA,0BAAA,CAAA,EAAAC,OAAA,CAAAjE,SAAA,UAAA,EAAAkE,QAAA,CAAAjE,eAAA,iBAAAE,uBAAA,yBAAAC,oBAAA,sBAAAC,oBAAA,qBAAA,EAAA8D,WAAA,GAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,CAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,MAAA,WAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,YAAA,mBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,UAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,QAAA,UAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,WAAA,GAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,QAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,SAAA,EAAA,CAAA,QAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,SAAA,EAAA,CAAA,WAAA,GAAA,EAAA,OAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,QAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,QAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,aAAA,UAAA,EAAA,mBAAA,EAAA,CAAA,WAAA,GAAA,sBAAA,GAAA,qBAAA,IAAA,qBAAA,IAAA,EAAA,YAAA,iBAAA,EAAA,CAAA,EAAA,2BAAA,EAAA,eAAA,kBAAA,cAAA,iBAAA,QAAA,iBAAA,WAAA,YAAA,iBAAA,EAAA,CAAA,aAAA,GAAA,QAAA,UAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,GAAA,QAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,UAAA,EAAA,CAAA,oBAAA,GAAA,QAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,UAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GCrBrC/J,EAAA,EAAAiK,GAAA,GAAA,GAAA,eAAA,CAAA,OAAkC5J,EAAA,UAAA2J,EAAAzE,QAAA;iIDqBrBd,CAAwB,GAAA,IErBrC,IAkCMyF,GAGOC,GArCbC,GAAAC,EAAA,KAGAC,KASAC,KAOAC,KACAC,KACAC,KACAC,mBAYMT,GAAY,IAGLC,IAAoC,IAAA,CAA3C,MAAOA,CAAoC,CAC/CS,YACUC,EACAC,EAC6CC,EAAqD,CAFlG,KAAAF,sBAAAA,EACA,KAAAC,mBAAAA,EAC6C,KAAAC,sBAAAA,CACpD,CAEH,OAAOC,gBAAgBC,EAAwBC,EAA+B,CAC5E,OAAOD,EAAME,IAAKC,GAAQ,CACpBA,EAAKC,MAAMC,SAASC,EAAa,IACnCH,EAAKI,QAAU,MAEjB,IAAMC,EAAeC,EAAeC,aAAaP,EAAKQ,IAAI,EAAEC,IAAIC,GAAwBC,EAAcC,IAAI,EACpGC,EAAkBR,EAAaS,OAAS,EAAKT,EAAa,CAAC,EAAgB,GAC3EU,EAAWT,EAAeC,aAAaP,EAAKe,QAAQ,EACpDC,EAAYD,EAASN,IAAI,UAAWE,EAAcM,MAAM,EAAEC,SAAQ,EAClEC,EAAiBJ,EAASN,IAAI,gBAAiBE,EAAcM,MAAM,EAAEC,SAAQ,EAC7EE,GAAKpB,EAAKqB,SAASC,WAAatB,EAAKqB,SAASE,OAiBpD,MAhByB,CACvBC,MAAOxB,EAAKwB,MACZpB,QAASJ,EAAKI,QACdqB,eAAgBzB,EAAKyB,eACrBC,OAAQ1B,EAAK0B,OACbC,MAAO3B,EAAK2B,MACZd,gBAAiBA,EACjBG,UAAWA,EACXG,eAAgBA,EAChBS,UAAWR,GACXS,MAAO7B,EAAK8B,YAAYC,OAAQC,IAAMlC,EAAsBI,SAAS8B,GAAEC,oBAAoB,CAAC,EAC5FC,SAAUlC,EAAKC,MAAMC,SAASiC,EAAsB,EACpDC,aAAc,GACdC,cAAerC,EAAKqC,eAAeN,OAAQO,IAAMA,IAAGC,UAAY,CAAC,KAAKC,0BAA0BF,GAAEG,OAAO,CAAC,EAC1GxC,KAAMD,GAAMC,MAAQ,CAAA,EAGxB,CAAC,CACH,CAEQ,OAAOyC,UAAU1C,EAAmB,CAC1C,OAAOA,GAAMC,MAAMC,SAASyC,EAAW,CACzC,CAEQ,OAAOH,0BAA0BI,EAAoB,CAC3D,OAAOA,EAAa1C,SAAS,eAAe,CAC9C,CAEQ2C,qBAAqBD,EAA8B,CACzD,MAAO,CACLE,SAAUF,EAAaG,WACvBN,QAASG,EAAaI,YACtBC,QAASL,EAAaM,eACtBC,OAAQP,EAAaQ,kBACrBb,SAAUK,EAAaS,cAAgBC,GAAYC,oBAEvD,CAEQC,YAAYC,EAAyC,CAC3D,OAAO,KAAKhE,sBAAsBiE,OAAO,IAAIC,GAAkBF,CAAa,CAAC,EAAEG,KAC7EC,GAAQC,GACNC,GACE,IAAMD,EAAKE,QACX,KAAKvE,sBAAsBiE,OAAO,IAAIC,GAAkBM,GAAAC,GAAA,GAAKT,GAAL,CAAoBU,OAAQL,EAAKM,UAAU,EAAE,CAAC,EACtGC,EAAK,CACN,EAEHC,GAAK,CAACC,EAAsBC,IACtBA,GAAM3E,OAAOiB,OAAS,EACjByD,EAAIE,OAAOD,EAAK3E,KAAK,EAEvB0E,EACN,CAAA,CAAE,CAAC,CAEV,CAEQG,sBACNC,EACAtC,EACAvC,EACA8E,EACAC,EAAiB,GAAI,CAErB,OAAO,KAAKpF,sBACTqF,aAAa,CAAEC,WAAYJ,EAAQK,SAAUH,eAAgBA,CAAc,CAAE,EAC7EjB,KACC7D,EAAKiF,GAAY,CACf,IAAMC,EAAKlG,EAAqCa,gBAAgBoF,EAAUlF,CAAqB,EAC/F,OAAI8E,EACKK,EAAGlD,OAAQmD,GAAMnG,EAAqC2D,UAAUwC,CAAC,CAAC,EAEpED,CACT,CAAC,EACDlF,EAAKiF,IACI,CACLG,aAAcR,EAAQnD,MACtB4D,gBAAiBT,EAAQtD,SACzBgE,qBAAsBhD,EAAciD,KAAK,CAACtD,EAAGuD,IAAMA,EAAEtC,SAASuC,QAAO,EAAKxD,EAAEiB,SAASuC,QAAO,CAAE,EAC9FC,cAAed,EAAQjD,OACvBsD,SAAUA,GAEb,CAAC,CAER,CAEQU,wBAAwBf,EAAsB,CACpD,OAAO,KAAKlF,sBACTkG,aACC,IAAIC,GAAoB,CACtBvE,SAAUsD,EAAQtD,SAClBwE,iBAAkB,IAAIC,GAAwB,CAAEC,gBAAiB,GAAOC,iBAAkB,EAAI,CAAE,EACjG,CAAC,EAEHpC,KACC7D,EAAKkG,GAAaA,GAAUC,UAAY,CAAA,CAAE,EAC1CnG,EAAKsC,GAAkBA,GAAetC,IAAI,KAAK8C,oBAAoB,CAAC,CAAC,CAE3E,CAEQsD,gDACN1C,EACA3D,EAAoC,CAEpC,IAAM8E,EAAiBnB,EAAcxD,MAAMC,SAASyC,EAAW,EAE/D,OAAO,KAAKa,YAAYC,CAAa,EAAEG,KACrC7D,EAAKqG,GACHA,EAASrG,IAAKsG,GACZ,KAAKX,wBAAwBW,CAAC,EAAEzC,KAC9B0C,EAAK,CAAC,EACNC,EAAWlE,GACT,KAAKqC,sBAAsB2B,EAAGhE,EAAevC,EAAuB8E,CAAc,CAAC,CACpF,CACF,CACF,EAEH2B,EAAWH,GAAaI,GAASJ,CAAQ,CAAC,EAC1CK,GAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,CAElD,CAEAC,0CACE5F,EACAG,EACA0F,EACA/G,EAAoC,CAEpC,IAAM2D,EAA4C,CAChDqD,UAAW,WAAW9F,CAAS,kBAAkBG,CAAc,GAC/D4F,MAAO,CAACC,EAAY,EACpB/G,KAAM,CAAC0C,EAAW,EAClB5B,SAAU,IAAIT,EAAc,EAAG2G,IAAIC,GAAuBL,EAAUlG,EAAcM,MAAM,EAAEkG,WAAU,EACpGC,SAAUtI,IAEZ,OAAO,KAAKqH,gDAAgD1C,EAAe3D,CAAqB,CAClG,CAEAuH,6CACErG,EACAG,EACAmG,EACAxH,EAAoC,CAEpC,OAAO,KAAKyH,uCACVvG,EACAG,EACAmG,EACA,GACAxH,CAAqB,CAEzB,CAEAyH,uCACEvG,EACAG,EACAmG,EACA1C,EACA9E,EAAoC,CAEpC,IAAM2D,EAA4C,CAChDqD,UAAW,WAAW9F,CAAS,kBAAkBG,CAAc,GAC/D4F,MAAO,CAACC,EAAY,EACpBjG,SAAU,IAAIT,EAAc,EACzB2G,IAAIO,GAAmCF,EAAc3G,EAAcM,MAAM,EACzEkG,WAAU,EACbC,SAAUtI,IAEZ,OAAI8F,IACFnB,EAAcxD,KAAO,CAAC0C,EAAW,GAE5B,KAAKwD,gDAAgD1C,EAAe3D,CAAqB,CAClG,CAEA2H,aAAazG,EAAiB,CAC5B,OAAO,KAAKtB,mBAAmBgI,eAAe1G,EAAW,GAAI2G,EAAiB,EAAE/D,KAC9EgE,GAAM,CAAC,EACPC,GAAW,IAAK,CACd,IAAMC,EAAoC,CAAA,EAC1CH,OAAAA,GAAkBI,QAASC,GAAOF,EAAME,CAAC,EAAI,EAAM,EAC5CC,GAAGH,CAAK,CACjB,CAAC,EACDrB,GAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,CAElD,iDAzMW5H,GAAoCmJ,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAAAF,EAIrCG,EAAmC,CAAA,CAAA,CAAA,iCAJlCtJ,EAAoCuJ,QAApCvJ,EAAoCwJ,SAAA,CAAA,CAAA,SAApCxJ,CAAoC,GAAA,uCE/BrCyJ,EAAA,EAAA,IAAA,CAAA,EAKEC,EAAA,QAAA,SAAAC,EAAA,CAAAC,OAAAC,EAAAC,CAAA,EAAAC,EAASJ,EAAAK,gBAAA,CAAwB,CAAA,CAAA,EAEjCP,EAAA,EAAA,MAAA,EAAMQ,EAAA,CAAA,EAAkBC,EAAA,EACxBT,EAAA,EAAA,UAAA,EAAUQ,EAAA,EAAA,aAAA,EAAWC,EAAA,EAAW,oBANhCC,EAAA,OAAAC,EAAAC,WAAAC,EAAA,EAKMC,EAAA,CAAA,EAAAC,EAAAJ,EAAAK,YAAA,4BAIRR,EAAA,CAAA,iBAAAS,EAAA,IAAAN,EAAAK,aAAA,GAAA,6BAGJhB,EAAA,EAAA,MAAA,EAAA,EAAyC,EAAA,aAAA,EAAA,EAErCQ,EAAA,CAAA,EACFC,EAAA,EAAa,kBAFDK,EAAA,EAAAJ,EAAA,QAAAC,EAAAO,UAAA,EACVJ,EAAA,EAAAG,EAAA,IAAAN,EAAAQ,cAAA,GAAA,sCASRnB,EAAA,EAAA,MAAA,EAAA,EAA6DC,EAAA,QAAA,UAAA,CAAAG,EAAAgB,CAAA,EAAA,IAAAT,EAAAU,EAAA,EAAA,OAAAf,EAASK,EAAAW,yBAAA,CAA0B,CAAA,CAAA,EAC9FtB,EAAA,EAAA,MAAA,EAAA,EAA+B,EAAA,UAAA,EACnBQ,EAAA,EAAA,qBAAA,EAAmBC,EAAA,EAC7BT,EAAA,EAAA,MAAA,EAAMQ,EAAA,CAAA,mBAAkDC,EAAA,EAAO,EAC3D,QADEK,EAAA,CAAA,EAAAC,EAAAQ,EAAA,EAAA,EAAA,gCAAA,CAAA,GDlCd,UAYaC,GAZbC,GAAAC,EAAA,KAAAC,IAEAC,KACAC,sFASaL,IAA6B,IAAA,CAApC,MAAOA,CAA6B,CAN1CM,aAAA,CAqBW,KAAAC,SAAsB,CAAA,EACtB,KAAAC,kBAAoB,mBACpB,KAAAC,gBAAkB,GACjB,KAAAC,cAAoC,IAAIC,EACxC,KAAAC,cAAoC,IAAID,EACxC,KAAAE,eAAqC,IAAIF,EACzC,KAAAG,uBAA6C,IAAIH,EACjD,KAAAI,oBAA0C,IAAIJ,EAC9C,KAAAK,oBAAyD,IAAIL,EAC7D,KAAAM,mBAAoD,IAAIN,EAGlE,KAAAO,cAA8C,IAAIC,IAAI,CACpD,CAACC,GAAOC,KAAM,MAAM,EACpB,CAACD,GAAOE,WAAY,QAAQ,EAC5B,CAACF,GAAOG,kBAAmB,KAAK,EAChC,CAACH,GAAOI,UAAW,OAAO,CAAC,CAC5B,EA3BDC,GACA,IAAI9B,eAAa,CACf,OAAO,KAAK8B,EACd,CAEA,IAAa9B,cAAcA,EAA8B,CACvD,KAAK8B,GAAiB9B,EACtB,KAAKD,WAAa,KAAKwB,cAAcQ,IAAI/B,CAAa,GAAK,MAC7D,CAqBAgC,UAAQ,CACN,IAAMC,EAAoB,KAAKrB,UAAUsB,OAAQC,GAAYA,EAAQC,SAAWC,EAAmB,GAAGC,QAAU,EAC1GC,EAAgB,KAAK3B,UAAU0B,QAAU,EAC/C,KAAKE,gBAAkB,GAAGP,CAAS,IAAIM,CAAK,EAC9C,CAEApC,0BAAwB,CACtB,KAAKmB,mBAAmBmB,KAAK,CAC3BC,gBAAiB,KAAKA,gBACtB9B,SAAU,KAAKA,SAChB,CACH,CAEA+B,cAAY,CACV,KAAK5B,cAAc0B,KAAI,CACzB,CAEAG,cAAY,CACV,KAAK3B,cAAcwB,KAAI,CACzB,CAEAI,sBAAoB,CAClB,KAAK3B,eAAeuB,KAAI,CAC1B,CAEAK,8BAA4B,CAC1B,KAAK3B,uBAAuBsB,KAAI,CAClC,CAEAM,2BAAyB,CACvB,KAAK3B,oBAAoBqB,KAAI,CAC/B,CAEAO,0BAA0BC,EAA0B,CAClD,KAAK5B,oBAAoBoB,KAAKQ,CAAK,CACrC,iDArEW5C,EAA6B,CAAA,+BAA7BA,EAA6B6C,UAAA,CAAA,CAAA,wBAAA,CAAA,EAAAC,OAAA,CAAAtD,aAAA,eAAA6C,gBAAA,kBAAAjD,WAAA,aAAAO,cAAA,gBAAAY,SAAA,WAAAC,kBAAA,oBAAAC,gBAAA,iBAAA,EAAAsC,QAAA,CAAArC,cAAA,gBAAAE,cAAA,gBAAAC,eAAA,iBAAAC,uBAAA,yBAAAC,oBAAA,sBAAAC,oBAAA,sBAAAC,mBAAA,oBAAA,EAAA+B,WAAA,GAAAC,MAAA,GAAAC,KAAA,GAAAC,OAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,SAAA,QAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,SAAA,SAAA,MAAA,sBAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,QAAA,yBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,iBAAA,yBAAA,sBAAA,sBAAA,UAAA,EAAA,CAAA,SAAA,SAAA,MAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,MAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,ICZ1C7E,EAAA,EAAA,MAAA,CAAA,EAAsC,EAAA,sBAAA,CAAA,EACiBC,EAAA,SAAA,UAAA,CAAA,OAAU6E,EAAAhB,aAAA,CAAc,CAAA,EAAC,SAAA,UAAA,CAAA,OAAWgB,EAAAf,aAAA,CAAc,CAAA,EACrG/D,EAAA,EAAA,4BAAA,EAA4B,EAAA,MAAA,CAAA,EAC+C,EAAA,MAAA,CAAA,EAErE+E,EAAA,EAAAC,GAAA,EAAA,EAAA,IAAA,CAAA,EAAkB,EAAAC,GAAA,EAAA,CAAA,EAcpBxE,EAAA,EACAsE,EAAA,EAAAG,GAAA,EAAA,EAAA,MAAA,CAAA,EAKAlF,EAAA,EAAA,MAAA,CAAA,EACEQ,EAAA,CAAA,oBACFC,EAAA,EAAM,EACF,EAGRsE,EAAA,GAAAI,GAAA,EAAA,EAAA,MAAA,CAAA,EAOAnF,EAAA,GAAA,2BAAA,CAAA,EAEEC,EAAA,iBAAA,UAAA,CAAA,OAAkB6E,EAAAd,qBAAA,CAAsB,CAAA,EAAC,yBAAA,UAAA,CAAA,OACfc,EAAAb,6BAAA,CAA8B,CAAA,EAAC,sBAAA,UAAA,CAAA,OAClCa,EAAAZ,0BAAA,CAA2B,CAAA,EAAC,sBAAA,SAAAhE,EAAA,CAAA,OAC5B4E,EAAAX,0BAAAjE,CAAA,CAAiC,CAAA,EACzDO,EAAA,EAA2B,EACR,SA5CDK,EAAA,EAAAsE,GAAAN,EAAA9C,iBAAA,EAEalB,EAAA,CAAA,EAAAJ,EAAA,UAAA2E,EAAA,GAAAC,GAAA,CAAAR,EAAA3D,aAAA,CAAA,EAE1BL,EAAA,CAAA,EAAAyE,EAAAT,EAAAlE,WAAA,EAAA,CAAA,EAeIE,EAAA,CAAA,EAAAJ,EAAA,OAAAoE,EAAA3D,aAAA,EAMJL,EAAA,CAAA,EAAAG,EAAA,IAAAuE,EAAA,GAAA,EAAA,kCAAAH,EAAA,GAAAI,GAAAX,EAAAnB,eAAA,CAAA,EAAA,GAAA,EAKA7C,EAAA,CAAA,EAAAJ,EAAA,OAAA,CAAAoE,EAAA7C,eAAA,EAQJnB,EAAA,EAAAJ,EAAA,WAAAoE,EAAA/C,QAAA;uID3BOP,CAA6B,GAAA,IEZ1C,IAwHakE,GAxHbC,GAAAC,EAAA,KAAAC,KAEAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAD,KACAE,KACAC,KACAC,KACAC,KACAC,KACAC,KAGAC,KAYAC,KAGAC,KACAC,KACAC,KACAC,KACAC,KACAC,SA0EahC,IAAoB,IAAA,CAA3B,MAAOA,CAAoB,iDAApBA,EAAoB,CAAA,gCAApBA,CAAoB,CAAA,CAAA,qCAvCpB,CAACiC,EAAoC,EAACC,QAAA,CAE/CC,GACAC,GACAC,GACAC,GACAC,GACAC,GAAeC,QAAO,EACtBC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAAcC,SAAS,CACrBC,cAAe,yBACfC,gBAAiBA,GAClB,EACDC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EAAkC,CAAA,CAAA,CAAA,SAMzBnE,CAAoB,GAAA,ICxHjC,IAAAoE,GAAAC,EAAA,KAOAC,KAIAC,KAKAC,KAaAC,KAQAC,KACAC,OCtCA,IAAAC,GAAAC,EAAA,KAIAC","names":["ProjectTrackerServiceInterfaceToken","ProjectTrackerFileUploadServiceInterfaceToken","init_project_tracker_interface","__esmMin","init_core","InjectionToken","AskQuestionServiceInterfaceToken","init_ask_question_dialog_interface","__esmMin","init_core","InjectionToken","enumStringToValue$2","enumRef","value","enumStringToValue$1","buildNamespace","keyValuePairs","pairs","key","TASK_DELIM","newGuid","v4_default","PersonaType","KeyValueField","Metric","RangeField","SortDirection","AccessPermissions","Attachment","Conversation","History","KeyValuesKeyValue","KeyValues","Task","TaskIdentity","TaskTree","KeyValuesKeyValueValue","AddAssigneeRequest","AddAttachmentRequest","AddConversationRequest","AddCustomTagsRequest","AddHistoryRequest","AddMultiAssigneeRequest","AddMultipleSubtasksRequest","AddSubtaskRequest","AddTagsRequest","CommandResponse","CountMetricResponse","DeleteMultiTaskRequest","DeleteTaskRequest","MultiCommandRequestEvent","GenerateTaskRequest","GetMetricsFilters","GetMetricsRequest","GetMetricsResponse","GetTaskRequest","GetTaskResponse","GetTasksRequest","GetTasksResponse","GetTreeRequest","GetTreeResponse","GroupedMetadata","GroupedTags","GetMetricsRequestMetricRequest","MetricResponsesMetricResponse","MetricResponses","MultiCommandRequest","MultiCommandResponsesMultiCommandResponse","MultiCommandResponses","MultiSearchTaskRequest","RemoveAssigneeRequest","RemoveAttachmentRequest","RemoveCustomTagsRequest","RemoveMultiAssigneeRequest","RemoveTagsRequest","ReorderSubtaskRequest","RestoreMultiTaskRequest","RestoreTaskRequest","SearchTaskRequest","SearchTaskResponse","SetDescriptionRequest","SetDueDateRequest","SetKeyValue","SetKeyValuesRequest","SetMultiDueDateRequest","SetMultiNotesRequest","SetMultiStatusRequest","SetNotesRequest","SetStatusRequest","SetTitleRequest","SetTypeRequest","Sort","TagGroup","ValueMetricResponse","environment$1","hostMap","HostService","TaskCommandApiService","TaskQueryApiService","GoType","Status","KeyValueTypes","TaskSdkService","DomainKeyValue","environment","MAX_FILE_SIZE","SUPPORTED_DOC_FILE_TYPES","AttachmentServiceDataInterfaceToken","TaskAttachmentService","init_vendasta_task","__esmMin","init_core","init_operators","init_esm_browser","init_http","init_esm","_AccessPermissions","proto","m","kwargs","toReturn","_Attachment","_Conversation","_History","_KeyValuesKeyValue","_KeyValues","_Task","_TaskIdentity","_TaskTree","_KeyValuesKeyValueValue","_AddAssigneeRequest","_AddAttachmentRequest","_AddConversationRequest","_AddCustomTagsRequest","_AddHistoryRequest","_AddMultiAssigneeRequest","_AddMultipleSubtasksRequest","_AddSubtaskRequest","_AddTagsRequest","_CommandResponse","_CountMetricResponse","_DeleteMultiTaskRequest","_DeleteTaskRequest","_MultiCommandRequestEvent","_GenerateTaskRequest","_GetMetricsFilters","_GetMetricsRequest","_GetMetricsResponse","v","_GetTaskRequest","_GetTaskResponse","_GetTasksRequest","_GetTasksResponse","_GetTreeRequest","_GetTreeResponse","_GroupedMetadata","_GroupedTags","_GetMetricsRequestMetricRequest","_MetricResponsesMetricResponse","_MetricResponses","_MultiCommandRequest","_MultiCommandResponsesMultiCommandResponse","_MultiCommandResponses","_MultiSearchTaskRequest","_RemoveAssigneeRequest","_RemoveAttachmentRequest","_RemoveCustomTagsRequest","_RemoveMultiAssigneeRequest","_RemoveTagsRequest","_ReorderSubtaskRequest","_RestoreMultiTaskRequest","_RestoreTaskRequest","_SearchTaskRequest","_SearchTaskResponse","_SetDescriptionRequest","_SetDueDateRequest","_SetKeyValue","_SetKeyValuesRequest","_SetMultiDueDateRequest","_SetMultiNotesRequest","_SetMultiStatusRequest","_SetNotesRequest","_SetStatusRequest","_SetTitleRequest","_SetTypeRequest","_Sort","_TagGroup","_ValueMetricResponse","__ngFactoryType__","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","partnerId","accountGroupId","commandApi","queryApi","args","access","metadata","res","addMultipleSubtaskRequests","requests","namespace","parentPath","taskId","returnDeleted","identity","newTitle","newVersion","newStatus","multiReq","newDueDate","newDescription","message","assignee","add","rem","newTags","removeTags","currentPosition","newPosition","version","del","req","attachment","events","mapTo","requestMetadata","productId","searchRequest","metric","filters","keyValues","result","flattenedKeyValues","keyValue","flattenedKeyValue","values","type","typeValues","val","InjectionToken","serviceData","taskService","filter","data","take","file","switchMap","generatePutResponse","throwError","group","url","forkJoin","attachmentAccessResponse","retry","_","name","host","body","response","secret","method","en_devel_default","init_en_devel","__esmMin","MILESTONE_COMPLETED","MILESTONE_APPROVED_TAG","MILESTONE_FEEDBACK_TAG","ORDER_ID_METADATA_KEY","FULFILLMENT_ORDER_ID_METADATA_KEY","PROJECT_TYPE","VISIBLE_TAG","DEPENDENT_TAG","TASK_DATA_FEEDBACK_KEY","MAX_COMMENT_LENGTH","FEATURE_FLAG_LIST","ACCESS","TaskStatus","init_constants","__esmMin","init_vendasta_iam","PersonaType","digital_agent","SubtasksUploaderService","init_subtasks_uploader_service","__esmMin","init_core","init_uploader","init_esm","init_rxjs_interop","GalaxyUploaderService","constructor","httpClient","taskAttachmentService","_loading","signal","loading$","toObservable","buildRequest","fileInfo","uploadFile","file","pipe","map","resp","data","url","ɵɵinject","HttpClient","TaskAttachmentService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","handleFileUploadErrored","handleFileUploaded","ɵɵelementEnd","ɵɵproperty","TEN_MB","ɵɵelement","SubtasksUploaderComponent","init_subtasks_uploader_component","__esmMin","init_core","init_uploader","init_subtasks_uploader_service","init_vendasta_task","init_esm","init_loading_spinner","constructor","attachmentService","snackbarService","fileUploaded","EventEmitter","fileUploadError","loading","signal","fileInfo","set","namespace","TaskSdkService","buildAccountGroupNamespace","subtask","partnerId","accountGroupId","subtaskIdParts","subtaskId","split","length","emit","error","Error","parentPath","taskId","identity","addAttachment","TaskIdentity","name","url","uploadingPersonaType","pipe","take","retry","count","delay","subscribe","next","openSuccessSnack","ɵɵdirectiveInject","TaskAttachmentService","SnackbarService","selectors","inputs","outputs","features","ɵɵProvidersFeature","provide","GALAXY_UPLOADER_SERVICE_TOKEN","useClass","SubtasksUploaderService","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SubtasksUploaderComponent_Conditional_0_Template","SubtasksUploaderComponent_Conditional_1_Template","ɵɵconditional","GalaxyUploaderModule","GalaxyUploaderComponent","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","encapsulation","sortSmbFilesToEnd","a","b","uploadingPersonaType","convertUserPersona","userPersona","IAMPersonaType","smb","digital_agent","sales_person","partner","crm_role","find","persona","toString","PersonaType","PERSONA_TYPE_SMB","PERSONA_TYPE_DIGITAL_AGENT","PERSONA_TYPE_SALES_PERSON","PERSONA_TYPE_PARTNER","UploadedByPipe","CanDeleteFilePipe","FilterAndSortFulfillmentFiles","init_fulfillment_subtasks_pipes","__esmMin","init_vendasta_iam","init_vendasta_task_manager","transform","attachment","pure","filePermissions","delete","includes","attachments","filter","read","sort","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","i_r1","toString","ɵɵpipeBind2","ɵɵpureFunction1","_c0","subtask_r2","completionDate","ɵɵelementContainer","ɵɵpipeBind1","ɵɵproperty","estimatedCompletion_r3","_c1","dueDate","notes","_c2","title","ɵɵtemplate","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_1_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_2_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_3_Template","ɵɵelement","feedback_r4","source","persona","ctx_r4","PersonaType","PERSONA_TYPE_SMB","PERSONA_TYPE_DIGITAL_AGENT","message","ɵɵsanitizeHtml","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_Template","isPublic","FulfillmentSubtasksComponent_ng_container_0_div_16_div_1_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_Template","conversations","ɵɵlistener","ɵɵrestoreView","_r6","ɵɵnextContext","index","ɵɵresetView","saveFeedback","form","getFeedbackControlName","get","value","tmp_11_0","feedbackSaving","loading","_r12","ctx_r12","file_r10","$implicit","$index_r11","$index","handleFileDeleted","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_12_Conditional_0_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_12_Conditional_1_Template","ɵɵconditional","tmp_18_0","deleteAttachmentLoading","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_3_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_4_Template","ctx_r8","_r8","handleFileNameClicked","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_12_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_15_Template","tmp_17_0","attachmentLoading","subtaskId","ɵɵtextInterpolate","name","userPersonaAsString$","ɵɵrepeaterCreate","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","files","$event","_r14","handleFileUploaded","handleFileUploadErrored","_r15","undoApproveTask","tmp_8_0","undoApproveSaving","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_13_Conditional_6_Template","status","COMPLETED_STATUS","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_2_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_10_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_13_Template","length","approved","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_For_6_Conditional_3_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_For_6_Conditional_4_Template","ctx_r16","_r16","file_r18","$index_r19","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_For_6_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_Template","_r20","approveTask","approveSaving","FulfillmentSubtasksComponent_ng_container_0_div_19_button_2_Template","FulfillmentSubtasksComponent_ng_container_0_ng_container_5_Template","FulfillmentSubtasksComponent_ng_container_0_ng_template_6_Template","ɵɵtemplateRefExtractor","FulfillmentSubtasksComponent_ng_container_0_div_12_Template","FulfillmentSubtasksComponent_ng_container_0_div_13_Template","FulfillmentSubtasksComponent_ng_container_0_div_14_Template","FulfillmentSubtasksComponent_ng_container_0_div_15_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Template","FulfillmentSubtasksComponent_ng_container_0_div_19_Template","SubtaskIncomplete_r21","feedbackEnabled","dueDate_r22","FulfillmentSubtasksComponent_ng_template_1_span_0_Template","FulfillmentSubtasksComponent","init_fulfillment_subtasks_component","__esmMin","init_core","init_vendasta_task_manager","init_esm","init_operators","init_project_tracker_interface","init_constants","init_vendasta_task","constructor","projectTrackerService","snackbarService","fb","translateService","attachmentService","taskManagerSdkService","subtasks","TaskStatus","COMPLETED","TEN_MB","signal","undefined","ngOnInit","map","subtask","feedback","__spreadProps","__spreadValues","forEach","feedbackControlName","controls","group","activeUser$","pipe","user","personaType","shareReplay","bufferSize","refCount","onFileError","openErrorSnack","set","showFeedback","partnerId","accountGroupId","take","tap","switchMap","openSuccessSnack","action","instant","onAction","catchError","EMPTY","subscribe","indexOf","next","error","sendFeedback","patchValue","push","sendTo","created","Date","pop","attachmentToRemove","indexSetLoading","removeFile","findIndex","file","splice","fileInfo","userPersona","url","contentType","type","filePermissions","read","delete","write","uploadingPersonaType","secret","getSecretFromURL","namespace","TaskSdkService","buildAccountGroupNamespace","subtaskIdParts","split","parentPath","taskId","getAttachmentUrl","TaskIdentity","resp","finalize","generatedUrl","anchor","document","createElement","href","download","target","click","window","URL","revokeObjectURL","ɵɵdirectiveInject","ProjectTrackerServiceInterfaceToken","SnackbarService","UntypedFormBuilder","TranslateService","TaskAttachmentService","TaskManagerSdkService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","FulfillmentSubtasksComponent_ng_container_0_Template","FulfillmentSubtasksComponent_ng_template_1_Template","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ctx_r0","product","icon","name","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","handleAskQuestionClicked","ɵɵtext","ɵɵelementEnd","ɵɵtextInterpolate","ɵɵpipeBind1","FulfillmentTrackerComponent","init_fulfillment_tracker_component","__esmMin","init_core","init_constants","constructor","subtasks","hideAskQuestion","expanded","askQuestionClicked","EventEmitter","ngOnInit","completed","filter","subtask","status","MILESTONE_COMPLETED","length","total","progress","Math","round","projectProgress","event","emit","projectIdentity","preventDefault","stopPropagation","selectors","inputs","projectTitle","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","FulfillmentTrackerComponent_ng_container_6_Template","FulfillmentTrackerComponent_div_17_Template","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpureFunction2","_c0","ProjectCommentsInputDirective","init_project_comments_directives","__esmMin","selectors","standalone","NameInitialsPipe","init_name_initials_pipe","__esmMin","constructor","translateService","transform","userName","name","trim","names","split","length","join","instant","ɵɵdirectiveInject","TranslateService","pure","standalone","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","handleCloseClick","ɵɵtemplate","ProjectCommentsComponent_glxy_page_toolbar_1_glxy_page_title_1_Template","ProjectCommentsComponent_glxy_page_toolbar_1_glxy_page_actions_2_Template","ɵɵproperty","viewConfig","showTitle","showCloseButton","ɵɵelementContainer","ɵɵelementContainerStart","ProjectCommentsComponent_ng_container_4_ng_container_1_Template","commentInput_r3","ɵɵtextInterpolate2","conversation_r4","taskTitle","ProjectCommentsComponent_glxy_comment_5_div_2_Template","ProjectCommentsComponent_glxy_comment_5_div_3_Template","ɵɵclassProp","commentType","COMMENT_TYPE_PRIVATE","getConversationOrigin","messageText","trim","ɵɵpipeBind2","messageCreated","senderImageUrl","ProjectCommentsComponent_ng_container_7_ng_container_1_Template","ɵɵelement","activeUser","profilePictureUrl","userInfo","firstName","ProjectCommentsComponent_ng_template_10_ng_container_1_div_1_Template","newCommentInput","_r5","toggleIsPublic","isPublic","ɵɵtextInterpolate1","_r6","handleSubmitClick","shouldDisableSubmit","ProjectCommentsComponent_ng_template_10_ng_container_1_Template","ProjectCommentsComponent_ng_template_10_ng_container_2_Template","ɵɵprojection","ProjectCommentsComponent_ng_template_10_mat_checkbox_5_Template","ProjectCommentsComponent_ng_template_10_button_6_Template","ProjectCommentsComponent_ng_template_10_mat_divider_7_Template","showCommenterIcon","hasCustomInput","disablePrivate","isSubmitting","loadingSpinner_r7","showCommentInputAtTop","ProjectCommentsComponent","init_project_comments_component","__esmMin","init_core","init_forms","init_page","init_vendasta_task_manager","init_esm","init_constants","init_project_comments_directives","conversation","value","sort","a","b","getTime","conversation$$","next","constructor","translateService","isLoading","disableSubmit","closeClicked","EventEmitter","submitClicked","pageWidth","WidthPreset","Full","BehaviorSubject","UntypedFormControl","updateOn","CommentType","inputDirective","isValidComment","text","length","MAX_COMMENT_LENGTH","emit","message","clearCommentInput","setValue","senderName","isConversationHydrated","fromText","instant","senderId","replace","startsWith","ɵɵdirectiveInject","TranslateService","selectors","contentQueries","rf","ctx","dirIndex","ProjectCommentsInputDirective","ProjectCommentsComponent_glxy_page_toolbar_1_Template","ProjectCommentsComponent_ng_container_4_Template","ProjectCommentsComponent_glxy_comment_5_Template","ProjectCommentsComponent_ng_container_7_Template","ProjectCommentsComponent_ng_template_8_Template","ɵɵtemplateRefExtractor","ProjectCommentsComponent_ng_template_10_Template","SidenavService","init_sidenav_service","__esmMin","setPanel","sidenav","panel","setContentVcf","viewContainerRef","vcf","createView","template","clear","createEmbeddedView","open","close","toggle","factory","ɵfac","providedIn","ProjectTrackerUtils","init_utils","__esmMin","init_vendasta_task_manager","mapInternalConversationToInbox","conversation","senderName","sendFrom","messageText","message","messageCreated","created","externalMessageId","source","commentType","isPublic","CommentType","COMMENT_TYPE_PUBLIC","COMMENT_TYPE_PRIVATE","taskTitle","senderImageUrl","ProjectTrackerCommentsComponent","init_project_tracker_comments_component","__esmMin","init_src","init_esm","init_operators","init_ask_question_dialog_interface","init_project_tracker_interface","init_utils","projectTrackerInfo","value","project","refreshProjectTrackerInfo","constructor","sidenavService","askQuestionService","snackbarService","projectTrackerService","conversation$$","BehaviorSubject","isLoading$$","workableState","ObservableWorkState","createCommentLoading$","isLoading$","activeUser$","getConversationFromInbox","of","projectConversations","map","conversation","result","ProjectTrackerUtils","mapInternalConversationToInbox","subtaskId","source","split","slice","pop","subtask","subtasks","find","task","taskTitle","title","next","pipe","take","finalize","subscribe","appendComment","newComment","getValue","unshift","handleSubmitClick","event","projectIdentity","work$","askQuestion","message","startWork","combineLatest","isSuccess$","isSuccess","activeUser","openSuccessSnack","sendFrom","userInfo","firstName","created","Date","isPublic","senderImageUrl","profilePictureUrl","projectComments","clearCommentInput","openErrorSnack","handleCloseClick","close","ɵɵdirectiveInject","SidenavService","AskQuestionServiceInterfaceToken","SnackbarService","ProjectTrackerServiceInterfaceToken","selectors","viewQuery","rf","ctx","ɵɵelementStart","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","$event","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","ProjectTrackerSidenavContainerComponent","init_project_tracker_sidenav_container_component","__esmMin","init_core","constructor","sidenavService","ngOnInit","setPanel","sidePanel","setContentVcf","vcf","ɵɵdirectiveInject","SidenavService","selectors","viewQuery","rf","ctx","ViewContainerRef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵelementContainer","ɵɵadvance","ɵɵproperty","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","handleNonClickableClicked","ɵɵadvance","ɵɵtextInterpolate1","i_r4","toString","ɵɵpipeBind2","ɵɵpureFunction1","_c1","subtask_r5","completionDate","dueDate","ɵɵpureFunction0","_c2","ɵɵtemplate","TrackerSubtasksComponent_ng_container_0_div_12_ng_container_4_Template","TrackerSubtasksComponent_ng_container_0_div_12_ng_template_5_Template","ɵɵtemplateRefExtractor","ɵɵpipeBind1","ɵɵproperty","noInProgressDueDate_r6","TrackerSubtasksComponent_ng_container_0_div_14_ng_container_1_Template","TrackerSubtasksComponent_ng_container_0_div_14_ng_template_2_Template","noIncompleteDueDate_r7","_c3","title","_r8","notes","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_1_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_2_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_3_Template","feedback_r10","source","persona","PersonaType","PERSONA_TYPE_SMB","PERSONA_TYPE_DIGITAL_AGENT","message","_r9","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_Template","isPublic","_r11","file_r12","name","TrackerSubtasksComponent_ng_container_0_div_16_div_1_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_2_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_3_Template","conversations","files","ɵɵelement","$event","_r13","index","onFileUploaded","onFileError","onFileRemoved","form","getFeedbackControlName","attachmentUploader","getFilesControlName","_r15","toggleShowFeedback","approveTask","approved","_r16","saveFeedback","get","value","TrackerSubtasksComponent_ng_container_0_ng_container_17_div_1_Template","TrackerSubtasksComponent_ng_container_0_ng_container_17_ng_container_3_Template","TrackerSubtasksComponent_ng_container_0_ng_container_17_ng_container_4_Template","showFeedback","TrackerSubtasksComponent_ng_container_0_ng_container_4_Template","TrackerSubtasksComponent_ng_container_0_ng_template_5_Template","_r1","TrackerSubtasksComponent_ng_container_0_div_11_Template","TrackerSubtasksComponent_ng_container_0_div_12_Template","TrackerSubtasksComponent_ng_container_0_div_13_Template","TrackerSubtasksComponent_ng_container_0_div_14_Template","TrackerSubtasksComponent_ng_container_0_div_15_Template","TrackerSubtasksComponent_ng_container_0_div_16_Template","TrackerSubtasksComponent_ng_container_0_ng_container_17_Template","_c0","status","SubtaskIncomplete_r17","length","feedbackEnabled","TrackerSubtasksComponent","init_tracker_subtasks_component","__esmMin","init_core","init_vendasta_task_manager","init_esm","init_operators","init_project_tracker_interface","constructor","projectTrackerService","projectTrackerAttachmentService","alertService","fb","translateService","subtasks","approveClicked","EventEmitter","provideFeedbackClicked","sendFeedbackClicked","nonClickableClicked","ngOnInit","map","subtask","feedback","__spreadProps","__spreadValues","forEach","filesControlName","feedbackControlName","controls","Object","assign","Array","group","patchValue","uploadInfo","url","openErrorSnack","current","pop","push","uploadFile","partnerId","accountGroupId","subtaskId","pipe","take","switchMap","openSuccessSnack","action","instant","onAction","tap","undoFileUpload","catchError","EMPTY","subscribe","attachment","removeFile","fileIndex","subtaskIndex","splice","undoFileRemoved","emit","undoApproveTask","next","error","sendTo","created","Date","sendFeedback","event","ɵɵdirectiveInject","ProjectTrackerServiceInterfaceToken","ProjectTrackerFileUploadServiceInterfaceToken","SnackbarService","UntypedFormBuilder","TranslateService","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","TrackerSubtasksComponent_ng_container_0_Template","PAGE_SIZE","ProjectsAndSubtasksByProductsService","init_projects_and_subtasks_by_products_service","__esmMin","init_vendasta_task","init_vendasta_task_manager","init_esm","init_operators","init_project_tracker_interface","init_constants","constructor","taskManagerSdkService","featureFlagService","projectTrackerService","tasksToSubtasks","tasks","uploadingPersonaTypes","map","task","tags","includes","DEPENDENT_TAG","dueDate","feedbackData","DomainKeyValue","fromKeyValue","data","get","TASK_DATA_FEEDBACK_KEY","KeyValueTypes","BOOL","feedbackEnabled","length","metadata","partnerId","STRING","toString","accountGroupId","id","identity","parentPath","taskId","title","completionDate","status","notes","subtaskId","files","attachment","filter","a","uploadingPersonaType","approved","MILESTONE_APPROVED_TAG","showFeedback","conversations","c","isPublic","isUserMentionConversation","message","isVisible","VISIBLE_TAG","conversation","mapInboxConversation","sendFrom","senderName","messageText","created","messageCreated","source","externalMessageId","commentType","CommentType","COMMENT_TYPE_PUBLIC","searchTasks","searchRequest","search","SearchTaskRequest","pipe","expand","resp","iif","hasMore","__spreadProps","__spreadValues","cursor","nextCursor","EMPTY","scan","acc","curr","concat","getProjectTrackerInfo","project","smbVisibleOnly","excludeDeleted","getTaskMulti","identities","subtasks","st","s","projectTitle","projectIdentity","projectConversations","sort","b","getTime","projectStatus","getProjectConversations","loadComments","LoadCommentsRequest","projectionFilter","CommentProjectionFilter","retrievePrivate","retrieveSubtasks","response","messages","searchAllProjectsAndConvertToProjectTrackerInfo","projects","p","take","switchMap","forkJoin","shareReplay","refCount","bufferSize","lookupVisibleProjectsForAccountByOrderIds","orderIds","namespace","types","PROJECT_TYPE","set","ORDER_ID_METADATA_KEY","toKeyValue","pageSize","lookupVisibleProjectForAccountByWorkOrderIds","workOrderIds","lookupProjectsForAccountByWorkOrderIds","FULFILLMENT_ORDER_ID_METADATA_KEY","featureFlags","batchGetStatus","FEATURE_FLAG_LIST","retry","catchError","flags","forEach","f","of","ɵɵinject","TaskManagerSdkService","FeatureFlagService","ProjectTrackerServiceInterfaceToken","factory","ɵfac","ɵɵelementStart","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","stopPropagation","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r1","projectUrl","ɵɵsanitizeUrl","ɵɵadvance","ɵɵtextInterpolate","projectTitle","ɵɵtextInterpolate1","badgeColor","projectStatus","_r3","ɵɵnextContext","handleAskQuestionClicked","ɵɵpipeBind1","SimpleProjectTrackerComponent","init_simple_project_tracker_component","__esmMin","init_core","init_vendasta_task_manager","init_constants","constructor","subtasks","matElevationClass","hideAskQuestion","trackerOpened","EventEmitter","trackerClosed","approveClicked","provideFeedbackClicked","sendFeedbackClicked","nonClickableClicked","askQuestionClicked","badgeColorMap","Map","Status","Open","InProgress","WaitingOnCustomer","Completed","#projectStatus","get","ngOnInit","completed","filter","subtask","status","MILESTONE_COMPLETED","length","total","projectProgress","emit","projectIdentity","handleOpened","handleClosed","handleApproveClicked","handleProvideFeedbackClicked","handleSendFeedbackClicked","handleNonClickableClicked","event","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SimpleProjectTrackerComponent_Conditional_5_Template","SimpleProjectTrackerComponent_Conditional_6_Template","SimpleProjectTrackerComponent_div_7_Template","SimpleProjectTrackerComponent_div_11_Template","ɵɵclassMap","ɵɵpureFunction1","_c0","ɵɵconditional","ɵɵpipeBind2","_c1","ProjectTrackerModule","init_project_tracker_module","__esmMin","init_common","init_forms","init_button","init_card","init_checkbox","init_dialog","init_divider","init_expansion","init_icon","init_input","init_progress_bar","init_progress_spinner","init_sidenav","init_slide_toggle","init_src","init_ngx_translate_core","init_avatar","init_badge","init_comment","init_page","init_tooltip","init_ngx_markdown","init_en_devel","init_projects_and_subtasks_by_products_service","init_form_field","init_uploader","init_list","init_loading_spinner","init_subtasks_uploader_component","init_button_loading_indicator","ProjectsAndSubtasksByProductsService","imports","CommonModule","MatCardModule","MatExpansionModule","MatIconModule","MatProgressBarModule","MarkdownModule","forRoot","MatButtonModule","MatInputModule","VaFormsModule","ReactiveFormsModule","MatDialogModule","MatDividerModule","MatProgressSpinnerModule","MatSidenavModule","MatSlideToggleModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","GalaxyPageModule","GalaxyTooltipModule","GalaxyCommentModule","GalaxyBadgeModule","MatCheckboxModule","GalaxyAvatarModule","GalaxyFormFieldModule","GalaxyUploaderModule","MatListModule","GalaxyLoadingSpinnerModule","SubtasksUploaderComponent","GalaxyButtonLoadingIndicatorModule","init_lib","__esmMin","init_ask_question_dialog_interface","init_project_tracker_interface","init_project_tracker_module","init_constants","init_projects_and_subtasks_by_products_service","init_sidenav_service","init_src","__esmMin","init_lib"],"x_google_ignoreList":[2]}