{"version":3,"sources":["node_modules/@vendasta/email/fesm2020/vendasta-email.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, NgModule } from '@angular/core';\nimport { map, mapTo, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nfunction enumStringToValue$7(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}\nfunction enumStringToValue$6(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass DateRange {\n static fromProto(proto) {\n let m = new DateRange();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\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.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass EmailDomain {\n static fromProto(proto) {\n let m = new EmailDomain();\n m = Object.assign(m, proto);\n if (proto.mail) {\n m.mail = Record.fromProto(proto.mail);\n }\n if (proto.dkim1) {\n m.dkim1 = Record.fromProto(proto.dkim1);\n }\n if (proto.dkim2) {\n m.dkim2 = Record.fromProto(proto.dkim2);\n }\n if (proto.dmarc) {\n m.dmarc = Record.fromProto(proto.dmarc);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.mail !== 'undefined' && this.mail !== null) {\n toReturn['mail'] = 'toApiJson' in this.mail ? this.mail.toApiJson() : this.mail;\n }\n if (typeof this.dkim1 !== 'undefined' && this.dkim1 !== null) {\n toReturn['dkim1'] = 'toApiJson' in this.dkim1 ? this.dkim1.toApiJson() : this.dkim1;\n }\n if (typeof this.dkim2 !== 'undefined' && this.dkim2 !== null) {\n toReturn['dkim2'] = 'toApiJson' in this.dkim2 ? this.dkim2.toApiJson() : this.dkim2;\n }\n if (typeof this.apiKey !== 'undefined') {\n toReturn['apiKey'] = this.apiKey;\n }\n if (typeof this.subUserId !== 'undefined') {\n toReturn['subUserId'] = this.subUserId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.domainId !== 'undefined') {\n toReturn['domainId'] = this.domainId;\n }\n if (typeof this.sendAsEmail !== 'undefined') {\n toReturn['sendAsEmail'] = this.sendAsEmail;\n }\n if (typeof this.sendAsName !== 'undefined') {\n toReturn['sendAsName'] = this.sendAsName;\n }\n if (typeof this.dmarc !== 'undefined' && this.dmarc !== null) {\n toReturn['dmarc'] = 'toApiJson' in this.dmarc ? this.dmarc.toApiJson() : this.dmarc;\n }\n return toReturn;\n }\n}\nclass Record {\n static fromProto(proto) {\n let m = new Record();\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.subdomain !== 'undefined') {\n toReturn['subdomain'] = this.subdomain;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.currentValue !== 'undefined') {\n toReturn['currentValue'] = this.currentValue;\n }\n if (typeof this.verified !== 'undefined') {\n toReturn['verified'] = this.verified;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EventType = /*#__PURE__*/function (EventType) {\n EventType[EventType[\"EMPTY\"] = 0] = \"EMPTY\";\n EventType[EventType[\"PROCESSED\"] = 1] = \"PROCESSED\";\n EventType[EventType[\"DELIVERED\"] = 2] = \"DELIVERED\";\n EventType[EventType[\"OPENED\"] = 3] = \"OPENED\";\n EventType[EventType[\"CLICKED\"] = 4] = \"CLICKED\";\n EventType[EventType[\"BOUNCED\"] = 5] = \"BOUNCED\";\n EventType[EventType[\"DEFERRED\"] = 6] = \"DEFERRED\";\n EventType[EventType[\"DROPPED\"] = 7] = \"DROPPED\";\n EventType[EventType[\"SPAMREPORT\"] = 8] = \"SPAMREPORT\";\n EventType[EventType[\"UNSUBSCRIBED\"] = 9] = \"UNSUBSCRIBED\";\n EventType[EventType[\"RESUBSCRIBED\"] = 10] = \"RESUBSCRIBED\";\n return EventType;\n}(EventType || {});\nvar NotificationType = /*#__PURE__*/function (NotificationType) {\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_PRODUCT_UPSELL\"] = 0] = \"NOTIFICATION_TYPE_PRODUCT_UPSELL\";\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_PRODUCT_ADOPTION\"] = 1] = \"NOTIFICATION_TYPE_PRODUCT_ADOPTION\";\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_CUSTOMER_ACQUISITION\"] = 2] = \"NOTIFICATION_TYPE_CUSTOMER_ACQUISITION\";\n return NotificationType;\n}(NotificationType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ContentContentType = /*#__PURE__*/function (ContentContentType) {\n ContentContentType[ContentContentType[\"TEXT_PLAIN\"] = 0] = \"TEXT_PLAIN\";\n ContentContentType[ContentContentType[\"TEXT_HTML\"] = 1] = \"TEXT_HTML\";\n return ContentContentType;\n}(ContentContentType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar BounceSenderType = /*#__PURE__*/function (BounceSenderType) {\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_INVALID\"] = 0] = \"UNBOUNCE_SENDER_TYPE_INVALID\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_PARTNER\"] = 1] = \"UNBOUNCE_SENDER_TYPE_PARTNER\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_BUSINESS\"] = 2] = \"UNBOUNCE_SENDER_TYPE_BUSINESS\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_YESWARE\"] = 3] = \"UNBOUNCE_SENDER_TYPE_YESWARE\";\n return BounceSenderType;\n}(BounceSenderType || {});\nvar ChangeEmailDomainStatus = /*#__PURE__*/function (ChangeEmailDomainStatus) {\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_INVALID\"] = 0] = \"CHANGE_EMAIL_DOMAIN_STATUS_INVALID\";\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_ACCEPTED\"] = 1] = \"CHANGE_EMAIL_DOMAIN_STATUS_ACCEPTED\";\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_PENDING\"] = 2] = \"CHANGE_EMAIL_DOMAIN_STATUS_PENDING\";\n return ChangeEmailDomainStatus;\n}(ChangeEmailDomainStatus || {});\nvar EmailQueueStatus = /*#__PURE__*/function (EmailQueueStatus) {\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_UNSPECIFIED\"] = 0] = \"EMAIL_QUEUE_STATUS_UNSPECIFIED\";\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_RUNNING\"] = 1] = \"EMAIL_QUEUE_STATUS_RUNNING\";\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_DISABLED\"] = 2] = \"EMAIL_QUEUE_STATUS_DISABLED\";\n return EmailQueueStatus;\n}(EmailQueueStatus || {});\nvar Namespace = /*#__PURE__*/function (Namespace) {\n Namespace[Namespace[\"NAMESPACE_INVALID\"] = 0] = \"NAMESPACE_INVALID\";\n Namespace[Namespace[\"NAMESPACE_EMAIL\"] = 1] = \"NAMESPACE_EMAIL\";\n return Namespace;\n}(Namespace || {});\nvar RecipientStatusEnum = /*#__PURE__*/function (RecipientStatusEnum) {\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_INVALID\"] = 0] = \"RECIPIENT_STATUS_INVALID\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_HARD\"] = 1] = \"RECIPIENT_STATUS_HARD\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_SOFT\"] = 2] = \"RECIPIENT_STATUS_SOFT\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_UNKNOWN\"] = 3] = \"RECIPIENT_STATUS_UNKNOWN\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_RESET\"] = 4] = \"RECIPIENT_STATUS_RESET\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_NOT_BLOCKED\"] = 5] = \"RECIPIENT_STATUS_NOT_BLOCKED\";\n return RecipientStatusEnum;\n}(RecipientStatusEnum || {});\nvar SenderType = /*#__PURE__*/function (SenderType) {\n SenderType[SenderType[\"SENDER_TYPE_INVALID\"] = 0] = \"SENDER_TYPE_INVALID\";\n SenderType[SenderType[\"SENDER_TYPE_PARTNER\"] = 1] = \"SENDER_TYPE_PARTNER\";\n SenderType[SenderType[\"SENDER_TYPE_BUSINESS\"] = 2] = \"SENDER_TYPE_BUSINESS\";\n return SenderType;\n}(SenderType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass EmailEvent {\n static fromProto(proto) {\n let m = new EmailEvent();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue$4(EventType, proto.eventType);\n }\n if (proto.eventTime) {\n m.eventTime = new Date(proto.eventTime);\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventTime !== 'undefined' && this.eventTime !== null) {\n toReturn['eventTime'] = 'toApiJson' in this.eventTime ? this.eventTime.toApiJson() : this.eventTime;\n }\n if (typeof this.ipAddress !== 'undefined') {\n toReturn['ipAddress'] = this.ipAddress;\n }\n if (typeof this.userAgent !== 'undefined') {\n toReturn['userAgent'] = this.userAgent;\n }\n if (typeof this.urlClicked !== 'undefined') {\n toReturn['urlClicked'] = this.urlClicked;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.urlClickedNormalized !== 'undefined') {\n toReturn['urlClickedNormalized'] = this.urlClickedNormalized;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Attribute {\n static fromProto(proto) {\n let m = new Attribute();\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}\nclass Bucket {\n static fromProto(proto) {\n let m = new Bucket();\n m = Object.assign(m, proto);\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\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.bucketName !== 'undefined') {\n toReturn['bucketName'] = this.bucketName;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass Content {\n static fromProto(proto) {\n let m = new Content();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$3(ContentContentType, proto.type);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.sensitive !== 'undefined') {\n toReturn['sensitive'] = this.sensitive;\n }\n return toReturn;\n }\n}\nclass EmailMessage {\n static fromProto(proto) {\n let m = new EmailMessage();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = proto.to.map(Participant.fromProto);\n }\n if (proto.cc) {\n m.cc = proto.cc.map(Participant.fromProto);\n }\n if (proto.bcc) {\n m.bcc = proto.bcc.map(Participant.fromProto);\n }\n if (proto.from) {\n m.from = Participant.fromProto(proto.from);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n if (proto.serviceProviderInfo) {\n m.serviceProviderInfo = ServiceProviderInfo.fromProto(proto.serviceProviderInfo);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.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.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.cc !== 'undefined' && this.cc !== null) {\n toReturn['cc'] = 'toApiJson' in this.cc ? this.cc.toApiJson() : this.cc;\n }\n if (typeof this.bcc !== 'undefined' && this.bcc !== null) {\n toReturn['bcc'] = 'toApiJson' in this.bcc ? this.bcc.toApiJson() : this.bcc;\n }\n if (typeof this.from !== 'undefined' && this.from !== null) {\n toReturn['from'] = 'toApiJson' in this.from ? this.from.toApiJson() : this.from;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\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.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n if (typeof this.serviceProviderInfo !== 'undefined' && this.serviceProviderInfo !== null) {\n toReturn['serviceProviderInfo'] = 'toApiJson' in this.serviceProviderInfo ? this.serviceProviderInfo.toApiJson() : this.serviceProviderInfo;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n if (typeof this.originUserId !== 'undefined') {\n toReturn['originUserId'] = this.originUserId;\n }\n return toReturn;\n }\n}\nclass EmailMessageV2 {\n static fromProto(proto) {\n let m = new EmailMessageV2();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = UserParticipant.fromProto(proto.to);\n }\n if (proto.from) {\n m.from = Participant.fromProto(proto.from);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n if (proto.serviceProviderInfo) {\n m.serviceProviderInfo = ServiceProviderInfo.fromProto(proto.serviceProviderInfo);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.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.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.from !== 'undefined' && this.from !== null) {\n toReturn['from'] = 'toApiJson' in this.from ? this.from.toApiJson() : this.from;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\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.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n if (typeof this.serviceProviderInfo !== 'undefined' && this.serviceProviderInfo !== null) {\n toReturn['serviceProviderInfo'] = 'toApiJson' in this.serviceProviderInfo ? this.serviceProviderInfo.toApiJson() : this.serviceProviderInfo;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n return toReturn;\n }\n}\nclass EmailWithCustomDomainMessage {\n static fromProto(proto) {\n let m = new EmailWithCustomDomainMessage();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = proto.to.map(Participant.fromProto);\n }\n if (proto.cc) {\n m.cc = proto.cc.map(Participant.fromProto);\n }\n if (proto.bcc) {\n m.bcc = proto.bcc.map(Participant.fromProto);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.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.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.cc !== 'undefined' && this.cc !== null) {\n toReturn['cc'] = 'toApiJson' in this.cc ? this.cc.toApiJson() : this.cc;\n }\n if (typeof this.bcc !== 'undefined' && this.bcc !== null) {\n toReturn['bcc'] = 'toApiJson' in this.bcc ? this.bcc.toApiJson() : this.bcc;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\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.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n return toReturn;\n }\n}\nclass GCSAttachment {\n static fromProto(proto) {\n let m = new GCSAttachment();\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.bucket !== 'undefined') {\n toReturn['bucket'] = this.bucket;\n }\n if (typeof this.filename !== 'undefined') {\n toReturn['filename'] = this.filename;\n }\n if (typeof this.attachedFilename !== 'undefined') {\n toReturn['attachedFilename'] = this.attachedFilename;\n }\n return toReturn;\n }\n}\nclass Header {\n static fromProto(proto) {\n let m = new Header();\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}\nclass Links {\n static fromProto(proto) {\n let m = new Links();\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.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass Participant {\n static fromProto(proto) {\n let m = new Participant();\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass ServiceProviderInfo {\n static fromProto(proto) {\n let m = new ServiceProviderInfo();\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.subUserId !== 'undefined') {\n toReturn['subUserId'] = this.subUserId;\n }\n return toReturn;\n }\n}\nclass URLAttachment {\n static fromProto(proto) {\n let m = new URLAttachment();\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.fileUrl !== 'undefined') {\n toReturn['fileUrl'] = this.fileUrl;\n }\n if (typeof this.attachedFilename !== 'undefined') {\n toReturn['attachedFilename'] = this.attachedFilename;\n }\n return toReturn;\n }\n}\nclass UserParticipant {\n static fromProto(proto) {\n let m = new UserParticipant();\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.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass WhiteLabelEmailMessage {\n static fromProto(proto) {\n let m = new WhiteLabelEmailMessage();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.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.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.htmlContent !== 'undefined') {\n toReturn['htmlContent'] = this.htmlContent;\n }\n if (typeof this.plainTextContent !== 'undefined') {\n toReturn['plainTextContent'] = this.plainTextContent;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\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.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass PartnerEmailQuota {\n static fromProto(proto) {\n let m = new PartnerEmailQuota();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 10);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\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.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\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 AttachmentInfo {\n static fromProto(proto) {\n let m = new AttachmentInfo();\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.filename !== 'undefined') {\n toReturn['filename'] = this.filename;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.contentType !== 'undefined') {\n toReturn['contentType'] = this.contentType;\n }\n if (typeof this.contentId !== 'undefined') {\n toReturn['contentId'] = this.contentId;\n }\n if (typeof this.charset !== 'undefined') {\n toReturn['charset'] = this.charset;\n }\n return toReturn;\n }\n}\nclass Envelope {\n static fromProto(proto) {\n let m = new Envelope();\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.toField !== 'undefined') {\n toReturn['toField'] = this.toField;\n }\n if (typeof this.fromField !== 'undefined') {\n toReturn['fromField'] = this.fromField;\n }\n return toReturn;\n }\n}\nclass InboundMessage {\n static fromProto(proto) {\n let m = new InboundMessage();\n m = Object.assign(m, proto);\n if (proto.contentIds) {\n m.contentIds = proto.contentIds.map(Attribute.fromProto);\n }\n if (proto.toField) {\n m.toField = proto.toField.map(Participant.fromProto);\n }\n if (proto.fromField) {\n m.fromField = Participant.fromProto(proto.fromField);\n }\n if (proto.envelope) {\n m.envelope = Envelope.fromProto(proto.envelope);\n }\n if (proto.attachmentInfo) {\n m.attachmentInfo = proto.attachmentInfo.map(AttachmentInfo.fromProto);\n }\n if (proto.charsets) {\n m.charsets = proto.charsets.map(Attribute.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.headers !== 'undefined') {\n toReturn['headers'] = this.headers;\n }\n if (typeof this.dkim !== 'undefined') {\n toReturn['dkim'] = this.dkim;\n }\n if (typeof this.contentIds !== 'undefined' && this.contentIds !== null) {\n toReturn['contentIds'] = 'toApiJson' in this.contentIds ? this.contentIds.toApiJson() : this.contentIds;\n }\n if (typeof this.toField !== 'undefined' && this.toField !== null) {\n toReturn['toField'] = 'toApiJson' in this.toField ? this.toField.toApiJson() : this.toField;\n }\n if (typeof this.fromField !== 'undefined' && this.fromField !== null) {\n toReturn['fromField'] = 'toApiJson' in this.fromField ? this.fromField.toApiJson() : this.fromField;\n }\n if (typeof this.contentText !== 'undefined') {\n toReturn['contentText'] = this.contentText;\n }\n if (typeof this.contentHtml !== 'undefined') {\n toReturn['contentHtml'] = this.contentHtml;\n }\n if (typeof this.senderIp !== 'undefined') {\n toReturn['senderIp'] = this.senderIp;\n }\n if (typeof this.spamReport !== 'undefined') {\n toReturn['spamReport'] = this.spamReport;\n }\n if (typeof this.envelope !== 'undefined' && this.envelope !== null) {\n toReturn['envelope'] = 'toApiJson' in this.envelope ? this.envelope.toApiJson() : this.envelope;\n }\n if (typeof this.attachments !== 'undefined') {\n toReturn['attachments'] = this.attachments;\n }\n if (typeof this.attachmentInfo !== 'undefined' && this.attachmentInfo !== null) {\n toReturn['attachmentInfo'] = 'toApiJson' in this.attachmentInfo ? this.attachmentInfo.toApiJson() : this.attachmentInfo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.spamScore !== 'undefined') {\n toReturn['spamScore'] = this.spamScore;\n }\n if (typeof this.charsets !== 'undefined' && this.charsets !== null) {\n toReturn['charsets'] = 'toApiJson' in this.charsets ? this.charsets.toApiJson() : this.charsets;\n }\n if (typeof this.spf !== 'undefined') {\n toReturn['spf'] = this.spf;\n }\n if (typeof this.rawMessage !== 'undefined') {\n toReturn['rawMessage'] = this.rawMessage;\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.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\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 AdminSetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new AdminSetEmailQueuesStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(EmailQueueStatus, proto.status);\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.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass BatchSearchRecipientStatusRequest {\n static fromProto(proto) {\n let m = new BatchSearchRecipientStatusRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmails !== 'undefined') {\n toReturn['recipientEmails'] = this.recipientEmails;\n }\n return toReturn;\n }\n}\nclass BatchSearchRecipientStatusResponse {\n static fromProto(proto) {\n let m = new BatchSearchRecipientStatusResponse();\n m = Object.assign(m, proto);\n if (proto.recipientStatuses) {\n m.recipientStatuses = proto.recipientStatuses.map(Status.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.recipientStatuses !== 'undefined' && this.recipientStatuses !== null) {\n toReturn['recipientStatuses'] = 'toApiJson' in this.recipientStatuses ? this.recipientStatuses.toApiJson() : this.recipientStatuses;\n }\n return toReturn;\n }\n}\nclass BounceSender {\n static fromProto(proto) {\n let m = new BounceSender();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(BounceSenderType, proto.type);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass BulkUpsertPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new BulkUpsertPartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.partnerEmailQuota) {\n m.partnerEmailQuota = proto.partnerEmailQuota.map(PartnerEmailQuotaMutation.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.partnerEmailQuota !== 'undefined' && this.partnerEmailQuota !== null) {\n toReturn['partnerEmailQuota'] = 'toApiJson' in this.partnerEmailQuota ? this.partnerEmailQuota.toApiJson() : this.partnerEmailQuota;\n }\n return toReturn;\n }\n}\nclass Category {\n static fromProto(proto) {\n let m = new Category();\n m = Object.assign(m, proto);\n if (proto.namespace) {\n m.namespace = enumStringToValue(Namespace, proto.namespace);\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass ChangeEmailDomainRequest {\n static fromProto(proto) {\n let m = new ChangeEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.sendFromUsername !== 'undefined') {\n toReturn['sendFromUsername'] = this.sendFromUsername;\n }\n if (typeof this.replyToEmail !== 'undefined') {\n toReturn['replyToEmail'] = this.replyToEmail;\n }\n if (typeof this.sendFromName !== 'undefined') {\n toReturn['sendFromName'] = this.sendFromName;\n }\n return toReturn;\n }\n}\nclass ChangeEmailDomainResponse {\n static fromProto(proto) {\n let m = new ChangeEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(ChangeEmailDomainStatus, proto.status);\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.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass CreateBlockRequest {\n static fromProto(proto) {\n let m = new CreateBlockRequest();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.conditions !== 'undefined') {\n toReturn['conditions'] = this.conditions;\n }\n return toReturn;\n }\n}\nclass CreateBlockResponse {\n static fromProto(proto) {\n let m = new CreateBlockResponse();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CreateEmailDomainRequest {\n static fromProto(proto) {\n let m = new CreateEmailDomainRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass CreateEmailDomainWithSendAsRequest {\n static fromProto(proto) {\n let m = new CreateEmailDomainWithSendAsRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.sendAsEmail !== 'undefined') {\n toReturn['sendAsEmail'] = this.sendAsEmail;\n }\n if (typeof this.sendAsName !== 'undefined') {\n toReturn['sendAsName'] = this.sendAsName;\n }\n return toReturn;\n }\n}\nclass CreateInboundMessageMappingRequest {\n static fromProto(proto) {\n let m = new CreateInboundMessageMappingRequest();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.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.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n return toReturn;\n }\n}\nclass CreateInboundMessageMappingResponse {\n static fromProto(proto) {\n let m = new CreateInboundMessageMappingResponse();\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.mappingId !== 'undefined') {\n toReturn['mappingId'] = this.mappingId;\n }\n return toReturn;\n }\n}\nclass CreatePendingDomainRequest {\n static fromProto(proto) {\n let m = new CreatePendingDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass CustomSender {\n static fromProto(proto) {\n let m = new CustomSender();\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.customEmailUsername !== 'undefined') {\n toReturn['customEmailUsername'] = this.customEmailUsername;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass DeleteBlockRequest {\n static fromProto(proto) {\n let m = new DeleteBlockRequest();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DeleteEmailDomainRequest {\n static fromProto(proto) {\n let m = new DeleteEmailDomainRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass DeletePartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new DeletePartnerEmailQuotaRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass DeletePendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new DeletePendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass DeleteSubUserRequest {\n static fromProto(proto) {\n let m = new DeleteSubUserRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass EmailEventBucket {\n static fromProto(proto) {\n let m = new EmailEventBucket();\n m = Object.assign(m, proto);\n if (proto.eventRollup) {\n m.eventRollup = proto.eventRollup.map(EmailEventBucketEventRollup.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.bucketName !== 'undefined') {\n toReturn['bucketName'] = this.bucketName;\n }\n if (typeof this.eventRollup !== 'undefined' && this.eventRollup !== null) {\n toReturn['eventRollup'] = 'toApiJson' in this.eventRollup ? this.eventRollup.toApiJson() : this.eventRollup;\n }\n return toReturn;\n }\n}\nclass EmailEventFilter {\n static fromProto(proto) {\n let m = new EmailEventFilter();\n m = Object.assign(m, proto);\n if (proto.notificationTypes) {\n m.notificationTypes = proto.notificationTypes.map(v => enumStringToValue(NotificationType, v));\n }\n if (proto.eventTypes) {\n m.eventTypes = proto.eventTypes.map(v => enumStringToValue(EventType, v));\n }\n if (proto.dateRange) {\n m.dateRange = DateRange.fromProto(proto.dateRange);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.notificationTypes !== 'undefined') {\n toReturn['notificationTypes'] = this.notificationTypes;\n }\n if (typeof this.eventTypes !== 'undefined') {\n toReturn['eventTypes'] = this.eventTypes;\n }\n if (typeof this.dateRange !== 'undefined' && this.dateRange !== null) {\n toReturn['dateRange'] = 'toApiJson' in this.dateRange ? this.dateRange.toApiJson() : this.dateRange;\n }\n return toReturn;\n }\n}\nclass EmailEventBucketEventRollup {\n static fromProto(proto) {\n let m = new EmailEventBucketEventRollup();\n m = Object.assign(m, proto);\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 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.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsResponseEventStats {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsResponseEventStats();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue(EventType, proto.eventType);\n }\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n if (proto.uniqueCount) {\n m.uniqueCount = parseInt(proto.uniqueCount, 10);\n }\n if (proto.uniqueRecipients) {\n m.uniqueRecipients = parseInt(proto.uniqueRecipients, 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.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n if (typeof this.uniqueCount !== 'undefined') {\n toReturn['uniqueCount'] = this.uniqueCount;\n }\n if (typeof this.uniqueRecipients !== 'undefined') {\n toReturn['uniqueRecipients'] = this.uniqueRecipients;\n }\n return toReturn;\n }\n}\nclass ExportAttributeEventClickStatsRequest {\n static fromProto(proto) {\n let m = new ExportAttributeEventClickStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventLinkStatsRequest {\n static fromProto(proto) {\n let m = new GetAttributeEventLinkStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventLinkStatsResponse {\n static fromProto(proto) {\n let m = new GetAttributeEventLinkStatsResponse();\n m = Object.assign(m, proto);\n if (proto.data) {\n m.data = proto.data.map(LinkStats.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.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsRequest {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsResponse {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsResponse();\n m = Object.assign(m, proto);\n if (proto.data) {\n m.data = proto.data.map(GetAttributeEventStatsResponseEventStats.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.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass GetBlockRequest {\n static fromProto(proto) {\n let m = new GetBlockRequest();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetBlockResponse {\n static fromProto(proto) {\n let m = new GetBlockResponse();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.conditions !== 'undefined') {\n toReturn['conditions'] = this.conditions;\n }\n return toReturn;\n }\n}\nclass GetBouncedRecipientRequest {\n static fromProto(proto) {\n let m = new GetBouncedRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = BounceSender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetBouncedRecipientResponse {\n static fromProto(proto) {\n let m = new GetBouncedRecipientResponse();\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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetCategoriesRequest {\n static fromProto(proto) {\n let m = new GetCategoriesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass GetCategoriesResponse {\n static fromProto(proto) {\n let m = new GetCategoriesResponse();\n m = Object.assign(m, proto);\n if (proto.categories) {\n m.categories = proto.categories.map(Category.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.categories !== 'undefined' && this.categories !== null) {\n toReturn['categories'] = 'toApiJson' in this.categories ? this.categories.toApiJson() : this.categories;\n }\n return toReturn;\n }\n}\nclass GetCategoryPreferencesRequest {\n static fromProto(proto) {\n let m = new GetCategoryPreferencesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n return toReturn;\n }\n}\nclass GetCategoryPreferencesResponse {\n static fromProto(proto) {\n let m = new GetCategoryPreferencesResponse();\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.optedInEmailCategoryIds !== 'undefined') {\n toReturn['optedInEmailCategoryIds'] = this.optedInEmailCategoryIds;\n }\n if (typeof this.emailPreferenceInitialized !== 'undefined') {\n toReturn['emailPreferenceInitialized'] = this.emailPreferenceInitialized;\n }\n return toReturn;\n }\n}\nclass GetDefaultDomainRequest {\n static fromProto(proto) {\n let m = new GetDefaultDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n return toReturn;\n }\n}\nclass GetDefaultDomainResponse {\n static fromProto(proto) {\n let m = new GetDefaultDomainResponse();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass GetEmailDomainRequest {\n static fromProto(proto) {\n let m = new GetEmailDomainRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass GetEmailDomainResponse {\n static fromProto(proto) {\n let m = new GetEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.domain) {\n m.domain = EmailDomain.fromProto(proto.domain);\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.domain !== 'undefined' && this.domain !== null) {\n toReturn['domain'] = 'toApiJson' in this.domain ? this.domain.toApiJson() : this.domain;\n }\n return toReturn;\n }\n}\nclass GetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new GetEmailQueuesStatusRequest();\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 return toReturn;\n }\n}\nclass GetEmailQueuesStatusResponse {\n static fromProto(proto) {\n let m = new GetEmailQueuesStatusResponse();\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.running !== 'undefined') {\n toReturn['running'] = this.running;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageRequest {\n static fromProto(proto) {\n let m = new GetInboundMessageRequest();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageResponse {\n static fromProto(proto) {\n let m = new GetInboundMessageResponse();\n m = Object.assign(m, proto);\n if (proto.inboundMessage) {\n m.inboundMessage = InboundMessage.fromProto(proto.inboundMessage);\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.inboundMessage !== 'undefined' && this.inboundMessage !== null) {\n toReturn['inboundMessage'] = 'toApiJson' in this.inboundMessage ? this.inboundMessage.toApiJson() : this.inboundMessage;\n }\n return toReturn;\n }\n}\nclass GetMessageRequest {\n static fromProto(proto) {\n let m = new GetMessageRequest();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass GetMessageResponse {\n static fromProto(proto) {\n let m = new GetMessageResponse();\n m = Object.assign(m, proto);\n if (proto.message) {\n m.message = EmailMessage.fromProto(proto.message);\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.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n return toReturn;\n }\n}\nclass GetMultiEmailRollupsRequest {\n static fromProto(proto) {\n let m = new GetMultiEmailRollupsRequest();\n m = Object.assign(m, proto);\n if (proto.buckets) {\n m.buckets = proto.buckets.map(Bucket.fromProto);\n }\n if (proto.filter) {\n m.filter = EmailEventFilter.fromProto(proto.filter);\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.buckets !== 'undefined' && this.buckets !== null) {\n toReturn['buckets'] = 'toApiJson' in this.buckets ? this.buckets.toApiJson() : this.buckets;\n }\n if (typeof this.filter !== 'undefined' && this.filter !== null) {\n toReturn['filter'] = 'toApiJson' in this.filter ? this.filter.toApiJson() : this.filter;\n }\n return toReturn;\n }\n}\nclass GetMultiEmailRollupsResponse {\n static fromProto(proto) {\n let m = new GetMultiEmailRollupsResponse();\n m = Object.assign(m, proto);\n if (proto.emailRollups) {\n m.emailRollups = proto.emailRollups.map(EmailEventBucket.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.emailRollups !== 'undefined' && this.emailRollups !== null) {\n toReturn['emailRollups'] = 'toApiJson' in this.emailRollups ? this.emailRollups.toApiJson() : this.emailRollups;\n }\n return toReturn;\n }\n}\nclass GetMultiMessageRequest {\n static fromProto(proto) {\n let m = new GetMultiMessageRequest();\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.emailIds !== 'undefined') {\n toReturn['emailIds'] = this.emailIds;\n }\n return toReturn;\n }\n}\nclass GetMultiMessageResponse {\n static fromProto(proto) {\n let m = new GetMultiMessageResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {\n m.messages = proto.messages.map(EmailMessage.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.messages !== 'undefined' && this.messages !== null) {\n toReturn['messages'] = 'toApiJson' in this.messages ? this.messages.toApiJson() : this.messages;\n }\n return toReturn;\n }\n}\nclass GetMultiPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new GetMultiPartnerEmailQuotaRequest();\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.partnerIds !== 'undefined') {\n toReturn['partnerIds'] = this.partnerIds;\n }\n return toReturn;\n }\n}\nclass GetMultiPartnerEmailQuotaResponse {\n static fromProto(proto) {\n let m = new GetMultiPartnerEmailQuotaResponse();\n m = Object.assign(m, proto);\n if (proto.partnerEmailQuotas) {\n m.partnerEmailQuotas = proto.partnerEmailQuotas.map(PartnerEmailQuota.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.partnerEmailQuotas !== 'undefined' && this.partnerEmailQuotas !== null) {\n toReturn['partnerEmailQuotas'] = 'toApiJson' in this.partnerEmailQuotas ? this.partnerEmailQuotas.toApiJson() : this.partnerEmailQuotas;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainResponse {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n if (proto.targets) {\n m.targets = GetPendingEmailDomainTargetCNameRecords.fromProto(proto.targets);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.targetSpf !== 'undefined') {\n toReturn['targetSpf'] = this.targetSpf;\n }\n if (typeof this.currentSpf !== 'undefined') {\n toReturn['currentSpf'] = this.currentSpf;\n }\n if (typeof this.sendFromUsername !== 'undefined') {\n toReturn['sendFromUsername'] = this.sendFromUsername;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainTargetCNameRecords {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainTargetCNameRecords();\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.mailSubdomain !== 'undefined') {\n toReturn['mailSubdomain'] = this.mailSubdomain;\n }\n if (typeof this.mailValue !== 'undefined') {\n toReturn['mailValue'] = this.mailValue;\n }\n if (typeof this.dkim1Subdomain !== 'undefined') {\n toReturn['dkim1Subdomain'] = this.dkim1Subdomain;\n }\n if (typeof this.dkim1Value !== 'undefined') {\n toReturn['dkim1Value'] = this.dkim1Value;\n }\n if (typeof this.dkim2Subdomain !== 'undefined') {\n toReturn['dkim2Subdomain'] = this.dkim2Subdomain;\n }\n if (typeof this.dkim2Value !== 'undefined') {\n toReturn['dkim2Value'] = this.dkim2Value;\n }\n if (typeof this.dmarcSubdomain !== 'undefined') {\n toReturn['dmarcSubdomain'] = this.dmarcSubdomain;\n }\n if (typeof this.dmarcValue !== 'undefined') {\n toReturn['dmarcValue'] = this.dmarcValue;\n }\n return toReturn;\n }\n}\nclass GetSenderInfoRequest {\n static fromProto(proto) {\n let m = new GetSenderInfoRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass GetSenderInfoResponse {\n static fromProto(proto) {\n let m = new GetSenderInfoResponse();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.isPlatformAuthorized !== 'undefined') {\n toReturn['isPlatformAuthorized'] = this.isPlatformAuthorized;\n }\n if (typeof this.isDefaultForSenderType !== 'undefined') {\n toReturn['isDefaultForSenderType'] = this.isDefaultForSenderType;\n }\n if (typeof this.preferredEmailUsername !== 'undefined') {\n toReturn['preferredEmailUsername'] = this.preferredEmailUsername;\n }\n if (typeof this.preferredEmailDisplayName !== 'undefined') {\n toReturn['preferredEmailDisplayName'] = this.preferredEmailDisplayName;\n }\n if (typeof this.preferredReplyToEmailAddress !== 'undefined') {\n toReturn['preferredReplyToEmailAddress'] = this.preferredReplyToEmailAddress;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribeLinkRequest {\n static fromProto(proto) {\n let m = new GetUnsubscribeLinkRequest();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribeLinkResponse {\n static fromProto(proto) {\n let m = new GetUnsubscribeLinkResponse();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientIds !== 'undefined') {\n toReturn['recipientIds'] = this.recipientIds;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribedRecipientRequest {\n static fromProto(proto) {\n let m = new GetUnsubscribedRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribedRecipientResponse {\n static fromProto(proto) {\n let m = new GetUnsubscribedRecipientResponse();\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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass InboundMessageMappingOptions {\n static fromProto(proto) {\n let m = new InboundMessageMappingOptions();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.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.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n return toReturn;\n }\n}\nclass InitializeSubUserRequest {\n static fromProto(proto) {\n let m = new InitializeSubUserRequest();\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass InitiateEmailDomainRectifyRequest {\n static fromProto(proto) {\n let m = new InitiateEmailDomainRectifyRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.bypassFrequencyLimit !== 'undefined') {\n toReturn['bypassFrequencyLimit'] = this.bypassFrequencyLimit;\n }\n return toReturn;\n }\n}\nclass InitiateEmailDomainRollbackRequest {\n static fromProto(proto) {\n let m = new InitiateEmailDomainRollbackRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass LinkClickStats {\n static fromProto(proto) {\n let m = new LinkClickStats();\n m = Object.assign(m, proto);\n if (proto.recipient) {\n m.recipient = LinkClickStatsRecipient.fromProto(proto.recipient);\n }\n if (proto.recentDate) {\n m.recentDate = new Date(proto.recentDate);\n }\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.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.recentDate !== 'undefined' && this.recentDate !== null) {\n toReturn['recentDate'] = 'toApiJson' in this.recentDate ? this.recentDate.toApiJson() : this.recentDate;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass LinkStats {\n static fromProto(proto) {\n let m = new LinkStats();\n m = Object.assign(m, proto);\n if (proto.totalClicks) {\n m.totalClicks = parseInt(proto.totalClicks, 10);\n }\n if (proto.uniqueClicks) {\n m.uniqueClicks = parseInt(proto.uniqueClicks, 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.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.totalClicks !== 'undefined') {\n toReturn['totalClicks'] = this.totalClicks;\n }\n if (typeof this.uniqueClicks !== 'undefined') {\n toReturn['uniqueClicks'] = this.uniqueClicks;\n }\n if (typeof this.clickRate !== 'undefined') {\n toReturn['clickRate'] = this.clickRate;\n }\n return toReturn;\n }\n}\nclass ListAllDomainsRequest {\n static fromProto(proto) {\n let m = new ListAllDomainsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass ListAllDomainsResponse {\n static fromProto(proto) {\n let m = new ListAllDomainsResponse();\n m = Object.assign(m, proto);\n if (proto.domains) {\n m.domains = proto.domains.map(SenderDomain.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.domains !== 'undefined' && this.domains !== null) {\n toReturn['domains'] = 'toApiJson' in this.domains ? this.domains.toApiJson() : this.domains;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsRequestListEmailEventsFilters {\n static fromProto(proto) {\n let m = new ListEmailEventsRequestListEmailEventsFilters();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsRequest {\n static fromProto(proto) {\n let m = new ListEmailEventsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListEmailEventsRequestListEmailEventsFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\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.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsResponse {\n static fromProto(proto) {\n let m = new ListEmailEventsResponse();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(EmailEvent.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n return toReturn;\n }\n}\nclass ListEmailsRequestListEmailsFilters {\n static fromProto(proto) {\n let m = new ListEmailsRequestListEmailsFilters();\n m = Object.assign(m, proto);\n if (proto.dateRange) {\n m.dateRange = DateRange.fromProto(proto.dateRange);\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.to !== 'undefined') {\n toReturn['to'] = this.to;\n }\n if (typeof this.from !== 'undefined') {\n toReturn['from'] = this.from;\n }\n if (typeof this.dateRange !== 'undefined' && this.dateRange !== null) {\n toReturn['dateRange'] = 'toApiJson' in this.dateRange ? this.dateRange.toApiJson() : this.dateRange;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.espIds !== 'undefined') {\n toReturn['espIds'] = this.espIds;\n }\n return toReturn;\n }\n}\nclass ListEmailsRequest {\n static fromProto(proto) {\n let m = new ListEmailsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListEmailsRequestListEmailsFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\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.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\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.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListEmailsResponse {\n static fromProto(proto) {\n let m = new ListEmailsResponse();\n m = Object.assign(m, proto);\n if (proto.emails) {\n m.emails = proto.emails.map(EmailMessage.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.emails !== 'undefined' && this.emails !== null) {\n toReturn['emails'] = 'toApiJson' in this.emails ? this.emails.toApiJson() : this.emails;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListEventsForAttributesRequest {\n static fromProto(proto) {\n let m = new ListEventsForAttributesRequest();\n m = Object.assign(m, proto);\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.eventTypes) {\n m.eventTypes = proto.eventTypes.map(v => enumStringToValue(EventType, v));\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.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\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.eventTypes !== 'undefined') {\n toReturn['eventTypes'] = this.eventTypes;\n }\n return toReturn;\n }\n}\nclass ListEventsForAttributesResponse {\n static fromProto(proto) {\n let m = new ListEventsForAttributesResponse();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(EmailEvent.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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass ListLinkClickActivityForAttributeRequest {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = ListLinkClickActivityForAttributeRequestPagedRequestOptions.fromProto(proto.pagingOptions);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass ListLinkClickActivityForAttributeResponse {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeResponse();\n m = Object.assign(m, proto);\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n if (proto.data) {\n m.data = proto.data.map(LinkClickStats.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.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass ListSendGridSubUserReputationsRequest {\n static fromProto(proto) {\n let m = new ListSendGridSubUserReputationsRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.cursor) {\n m.cursor = parseInt(proto.cursor, 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.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n return toReturn;\n }\n}\nclass ListSendGridSubUserReputationsResponse {\n static fromProto(proto) {\n let m = new ListSendGridSubUserReputationsResponse();\n m = Object.assign(m, proto);\n if (proto.reputations) {\n m.reputations = proto.reputations.map(SendGridSubUserReputation.fromProto);\n }\n if (proto.nextCursor) {\n m.nextCursor = parseInt(proto.nextCursor, 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.reputations !== 'undefined' && this.reputations !== null) {\n toReturn['reputations'] = 'toApiJson' in this.reputations ? this.reputations.toApiJson() : this.reputations;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n return toReturn;\n }\n}\nclass ListSendGridTeammatesRequest {\n static fromProto(proto) {\n let m = new ListSendGridTeammatesRequest();\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 return toReturn;\n }\n}\nclass ListSendGridTeammatesResponse {\n static fromProto(proto) {\n let m = new ListSendGridTeammatesResponse();\n m = Object.assign(m, proto);\n if (proto.teammates) {\n m.teammates = proto.teammates.map(SendGridTeammate.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.teammates !== 'undefined' && this.teammates !== null) {\n toReturn['teammates'] = 'toApiJson' in this.teammates ? this.teammates.toApiJson() : this.teammates;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass ListLinkClickActivityForAttributeRequestPagedRequestOptions {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeRequestPagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 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.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass PartnerEmailQuotaMutation {\n static fromProto(proto) {\n let m = new PartnerEmailQuotaMutation();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\n }\n return toReturn;\n }\n}\nclass QuarantineSenderRequest {\n static fromProto(proto) {\n let m = new QuarantineSenderRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass LinkClickStatsRecipient {\n static fromProto(proto) {\n let m = new LinkClickStatsRecipient();\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.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass RedirectEmailRequest {\n static fromProto(proto) {\n let m = new RedirectEmailRequest();\n m = Object.assign(m, proto);\n if (proto.override) {\n m.override = EmailMessage.fromProto(proto.override);\n }\n if (proto.overrideSender) {\n m.overrideSender = Sender.fromProto(proto.overrideSender);\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.authCheckOnly !== 'undefined') {\n toReturn['authCheckOnly'] = this.authCheckOnly;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.newRecipientEmailAddress !== 'undefined') {\n toReturn['newRecipientEmailAddress'] = this.newRecipientEmailAddress;\n }\n if (typeof this.includeContent !== 'undefined') {\n toReturn['includeContent'] = this.includeContent;\n }\n if (typeof this.includeAttributes !== 'undefined') {\n toReturn['includeAttributes'] = this.includeAttributes;\n }\n if (typeof this.override !== 'undefined' && this.override !== null) {\n toReturn['override'] = 'toApiJson' in this.override ? this.override.toApiJson() : this.override;\n }\n if (typeof this.overrideSender !== 'undefined' && this.overrideSender !== null) {\n toReturn['overrideSender'] = 'toApiJson' in this.overrideSender ? this.overrideSender.toApiJson() : this.overrideSender;\n }\n return toReturn;\n }\n}\nclass RedirectEmailResponse {\n static fromProto(proto) {\n let m = new RedirectEmailResponse();\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.newEmailId !== 'undefined') {\n toReturn['newEmailId'] = this.newEmailId;\n }\n return toReturn;\n }\n}\nclass ResetRecipientStatusRequest {\n static fromProto(proto) {\n let m = new ResetRecipientStatusRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass ResubscribeRecipientFromUnsubscribeLinkRequest {\n static fromProto(proto) {\n let m = new ResubscribeRecipientFromUnsubscribeLinkRequest();\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.unsubscribeLinkUrl !== 'undefined') {\n toReturn['unsubscribeLinkUrl'] = this.unsubscribeLinkUrl;\n }\n if (typeof this.unsubscribeLinkId !== 'undefined') {\n toReturn['unsubscribeLinkId'] = this.unsubscribeLinkId;\n }\n return toReturn;\n }\n}\nclass ResubscribeRecipientRequest {\n static fromProto(proto) {\n let m = new ResubscribeRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass SaveCategoryPreferencesRequest {\n static fromProto(proto) {\n let m = new SaveCategoryPreferencesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.unverifiedEmailAddress !== 'undefined') {\n toReturn['unverifiedEmailAddress'] = this.unverifiedEmailAddress;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.optedInEmailCategoryIds !== 'undefined') {\n toReturn['optedInEmailCategoryIds'] = this.optedInEmailCategoryIds;\n }\n return toReturn;\n }\n}\nclass SendFromAuthorizedDomainRequest {\n static fromProto(proto) {\n let m = new SendFromAuthorizedDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = Participant.fromProto(proto.recipient);\n }\n if (proto.message) {\n m.message = WhiteLabelEmailMessage.fromProto(proto.message);\n }\n if (proto.customSender) {\n m.customSender = CustomSender.fromProto(proto.customSender);\n }\n if (proto.inboundMessageMappingOptions) {\n m.inboundMessageMappingOptions = InboundMessageMappingOptions.fromProto(proto.inboundMessageMappingOptions);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.transactional !== 'undefined') {\n toReturn['transactional'] = this.transactional;\n }\n if (typeof this.encryptContentAtRest !== 'undefined') {\n toReturn['encryptContentAtRest'] = this.encryptContentAtRest;\n }\n if (typeof this.customSender !== 'undefined' && this.customSender !== null) {\n toReturn['customSender'] = 'toApiJson' in this.customSender ? this.customSender.toApiJson() : this.customSender;\n }\n if (typeof this.inboundMessageMappingOptions !== 'undefined' && this.inboundMessageMappingOptions !== null) {\n toReturn['inboundMessageMappingOptions'] = 'toApiJson' in this.inboundMessageMappingOptions ? this.inboundMessageMappingOptions.toApiJson() : this.inboundMessageMappingOptions;\n }\n return toReturn;\n }\n}\nclass SendFromAuthorizedDomainResponse {\n static fromProto(proto) {\n let m = new SendFromAuthorizedDomainResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendGridSubUserReputation {\n static fromProto(proto) {\n let m = new SendGridSubUserReputation();\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.username !== 'undefined') {\n toReturn['username'] = this.username;\n }\n if (typeof this.reputationPercent !== 'undefined') {\n toReturn['reputationPercent'] = this.reputationPercent;\n }\n return toReturn;\n }\n}\nclass SendGridTeammate {\n static fromProto(proto) {\n let m = new SendGridTeammate();\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.fullName !== 'undefined') {\n toReturn['fullName'] = this.fullName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.role !== 'undefined') {\n toReturn['role'] = this.role;\n }\n if (typeof this.slackUserName !== 'undefined') {\n toReturn['slackUserName'] = this.slackUserName;\n }\n if (typeof this.slackUrl !== 'undefined') {\n toReturn['slackUrl'] = this.slackUrl;\n }\n return toReturn;\n }\n}\nclass SendRequest {\n static fromProto(proto) {\n let m = new SendRequest();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailMessage.fromProto(proto.email);\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.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass SendResponse {\n static fromProto(proto) {\n let m = new SendResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendV2Request {\n static fromProto(proto) {\n let m = new SendV2Request();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailMessageV2.fromProto(proto.email);\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.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass SendV2Response {\n static fromProto(proto) {\n let m = new SendV2Response();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendWhitelabelEmailToUserRequest {\n static fromProto(proto) {\n let m = new SendWhitelabelEmailToUserRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipientUser) {\n m.recipientUser = UserParticipant.fromProto(proto.recipientUser);\n }\n if (proto.message) {\n m.message = WhiteLabelEmailMessage.fromProto(proto.message);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientUser !== 'undefined' && this.recipientUser !== null) {\n toReturn['recipientUser'] = 'toApiJson' in this.recipientUser ? this.recipientUser.toApiJson() : this.recipientUser;\n }\n if (typeof this.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.transactional !== 'undefined') {\n toReturn['transactional'] = this.transactional;\n }\n return toReturn;\n }\n}\nclass SendWhitelabelEmailToUserResponse {\n static fromProto(proto) {\n let m = new SendWhitelabelEmailToUserResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendWithCustomDomainRequest {\n static fromProto(proto) {\n let m = new SendWithCustomDomainRequest();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailWithCustomDomainMessage.fromProto(proto.email);\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.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.fallbackEmail !== 'undefined') {\n toReturn['fallbackEmail'] = this.fallbackEmail;\n }\n if (typeof this.fallbackName !== 'undefined') {\n toReturn['fallbackName'] = this.fallbackName;\n }\n if (typeof this.fallbackEspId !== 'undefined') {\n toReturn['fallbackEspId'] = this.fallbackEspId;\n }\n return toReturn;\n }\n}\nclass SendWithCustomDomainResponse {\n static fromProto(proto) {\n let m = new SendWithCustomDomainResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.customDomainUsed !== 'undefined') {\n toReturn['customDomainUsed'] = this.customDomainUsed;\n }\n return toReturn;\n }\n}\nclass Sender {\n static fromProto(proto) {\n let m = new Sender();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(SenderType, proto.type);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass SenderDomain {\n static fromProto(proto) {\n let m = new SenderDomain();\n m = Object.assign(m, proto);\n if (proto.targets) {\n m.targets = GetPendingEmailDomainTargetCNameRecords.fromProto(proto.targets);\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.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.targetSpf !== 'undefined') {\n toReturn['targetSpf'] = this.targetSpf;\n }\n if (typeof this.currentSpf !== 'undefined') {\n toReturn['currentSpf'] = this.currentSpf;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n if (typeof this.isPrimary !== 'undefined') {\n toReturn['isPrimary'] = this.isPrimary;\n }\n return toReturn;\n }\n}\nclass SetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new SetEmailQueuesStatusRequest();\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.running !== 'undefined') {\n toReturn['running'] = this.running;\n }\n return toReturn;\n }\n}\nclass Status {\n static fromProto(proto) {\n let m = new Status();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.status) {\n m.status = enumStringToValue(RecipientStatusEnum, proto.status);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass UnbounceRecipientRequest {\n static fromProto(proto) {\n let m = new UnbounceRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = BounceSender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass UpsertPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new UpsertPartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainMismatch {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainMismatch();\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.dnsRecordType !== 'undefined') {\n toReturn['dnsRecordType'] = this.dnsRecordType;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.expectedValue !== 'undefined') {\n toReturn['expectedValue'] = this.expectedValue;\n }\n if (typeof this.actualValue !== 'undefined') {\n toReturn['actualValue'] = this.actualValue;\n }\n if (typeof this.matchedPrefix !== 'undefined') {\n toReturn['matchedPrefix'] = this.matchedPrefix;\n }\n if (typeof this.matchedSuffix !== 'undefined') {\n toReturn['matchedSuffix'] = this.matchedSuffix;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainRequest {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainResponse {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainResponse();\n m = Object.assign(m, proto);\n if (proto.mismatches) {\n m.mismatches = proto.mismatches.map(VerifyDefaultDomainMismatch.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.allRecordsMatch !== 'undefined') {\n toReturn['allRecordsMatch'] = this.allRecordsMatch;\n }\n if (typeof this.mismatches !== 'undefined' && this.mismatches !== null) {\n toReturn['mismatches'] = 'toApiJson' in this.mismatches ? this.mismatches.toApiJson() : this.mismatches;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainDMARCRequest {\n static fromProto(proto) {\n let m = new VerifyEmailDomainDMARCRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainDMARCResponse {\n static fromProto(proto) {\n let m = new VerifyEmailDomainDMARCResponse();\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.dmarcPass !== 'undefined') {\n toReturn['dmarcPass'] = this.dmarcPass;\n }\n if (typeof this.dmarcRecord !== 'undefined') {\n toReturn['dmarcRecord'] = this.dmarcRecord;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainRequest {\n static fromProto(proto) {\n let m = new VerifyEmailDomainRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainMismatch {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainMismatch();\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.dnsRecordType !== 'undefined') {\n toReturn['dnsRecordType'] = this.dnsRecordType;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.expectedValue !== 'undefined') {\n toReturn['expectedValue'] = this.expectedValue;\n }\n if (typeof this.actualValue !== 'undefined') {\n toReturn['actualValue'] = this.actualValue;\n }\n if (typeof this.matchedPrefix !== 'undefined') {\n toReturn['matchedPrefix'] = this.matchedPrefix;\n }\n if (typeof this.matchedSuffix !== 'undefined') {\n toReturn['matchedSuffix'] = this.matchedSuffix;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainResponse {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.mismatches) {\n m.mismatches = proto.mismatches.map(VerifyPendingEmailDomainMismatch.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.allRecordsMatch !== 'undefined') {\n toReturn['allRecordsMatch'] = this.allRecordsMatch;\n }\n if (typeof this.mismatches !== 'undefined' && this.mismatches !== null) {\n toReturn['mismatches'] = 'toApiJson' in this.mismatches ? this.mismatches.toApiJson() : this.mismatches;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'email-api.vendasta-local.com',\n 'test': '',\n 'demo': 'email-api-demo.apigateway.co',\n 'prod': 'email-api-prod.apigateway.co',\n 'production': 'email-api-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(t) {\n return new (t || 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// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailApiService = /*#__PURE__*/(() => {\n class EmailApiService {\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 send(r) {\n const request = r.toApiJson ? r : new SendRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/Send\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendResponse.fromProto(resp)));\n }\n sendWithCustomDomain(r) {\n const request = r.toApiJson ? r : new SendWithCustomDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SendWithCustomDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendWithCustomDomainResponse.fromProto(resp)));\n }\n sendV2(r) {\n const request = r.toApiJson ? r : new SendV2Request(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SendV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendV2Response.fromProto(resp)));\n }\n list(r) {\n const request = r.toApiJson ? r : new ListEmailsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEmailsResponse.fromProto(resp)));\n }\n getEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new GetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetEmailQueuesStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailQueuesStatusResponse.fromProto(resp)));\n }\n setEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new SetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SetEmailQueuesStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getEmailDomain(r) {\n const request = r.toApiJson ? r : new GetEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailDomainResponse.fromProto(resp)));\n }\n createEmailDomain(r) {\n const request = r.toApiJson ? r : new CreateEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/CreateEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createEmailDomainWithSendAs(r) {\n const request = r.toApiJson ? r : new CreateEmailDomainWithSendAsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/CreateEmailDomainWithSendAs\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n verifyEmailDomain(r) {\n const request = r.toApiJson ? r : new VerifyEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/VerifyEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailDomainResponse.fromProto(resp)));\n }\n deleteEmailDomain(r) {\n const request = r.toApiJson ? r : new DeleteEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/DeleteEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n changeEmailDomain(r) {\n const request = r.toApiJson ? r : new ChangeEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/ChangeEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ChangeEmailDomainResponse.fromProto(resp)));\n }\n getPendingEmailDomain(r) {\n const request = r.toApiJson ? r : new GetPendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetPendingEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPendingEmailDomainResponse.fromProto(resp)));\n }\n verifyPendingEmailDomain(r) {\n const request = r.toApiJson ? r : new VerifyPendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/VerifyPendingEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyPendingEmailDomainResponse.fromProto(resp)));\n }\n deletePendingEmailDomain(r) {\n const request = r.toApiJson ? r : new DeletePendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/DeletePendingEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailApiService.ɵfac = function EmailApiService_Factory(t) {\n return new (t || EmailApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailApiService,\n factory: EmailApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet AdminApiService = /*#__PURE__*/(() => {\n class AdminApiService {\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 setEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new AdminSetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/SetEmailQueuesStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n redirectEmail(r) {\n const request = r.toApiJson ? r : new RedirectEmailRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/RedirectEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RedirectEmailResponse.fromProto(resp)));\n }\n resubscribeRecipient(r) {\n const request = r.toApiJson ? r : new ResubscribeRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/ResubscribeRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getUnsubscribedRecipient(r) {\n const request = r.toApiJson ? r : new GetUnsubscribedRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/GetUnsubscribedRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetUnsubscribedRecipientResponse.fromProto(resp)));\n }\n initiateEmailDomainRollback(r) {\n const request = r.toApiJson ? r : new InitiateEmailDomainRollbackRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/InitiateEmailDomainRollback\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n initiateEmailDomainRectify(r) {\n const request = r.toApiJson ? r : new InitiateEmailDomainRectifyRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/InitiateEmailDomainRectify\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getBouncedRecipient(r) {\n const request = r.toApiJson ? r : new GetBouncedRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/GetBouncedRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBouncedRecipientResponse.fromProto(resp)));\n }\n unbounceRecipient(r) {\n const request = r.toApiJson ? r : new UnbounceRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/UnbounceRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n AdminApiService.ɵfac = function AdminApiService_Factory(t) {\n return new (t || AdminApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n AdminApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AdminApiService,\n factory: AdminApiService.ɵfac,\n providedIn: 'root'\n });\n return AdminApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AdminService = /*#__PURE__*/(() => {\n class AdminService {\n constructor(api) {\n this.api = api;\n }\n setEmailQueuesStatus(running) {\n let statusEnum = EmailQueueStatus.EMAIL_QUEUE_STATUS_RUNNING;\n if (!running) {\n statusEnum = EmailQueueStatus.EMAIL_QUEUE_STATUS_DISABLED;\n }\n const req = new AdminSetEmailQueuesStatusRequest({\n status: statusEnum\n });\n return this.api.setEmailQueuesStatus(req);\n }\n getUnsubscribedRecipientForPartner(partnerID, recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderId: partnerID,\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getUnsubscribedRecipientForBusiness(recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderType: SenderType.SENDER_TYPE_BUSINESS,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getUnsubscribedRecipientForProduct(recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getBouncedRecipient(sender, recipientEmail) {\n const req = new GetBouncedRecipientRequest({\n sender: sender,\n recipientEmail: recipientEmail\n });\n return this.api.getBouncedRecipient(req);\n }\n unbounceRecipient(sender, recipientEmail) {\n const req = new UnbounceRecipientRequest({\n sender: sender,\n recipientEmail: recipientEmail\n });\n return this.api.unbounceRecipient(req);\n }\n resubscribeRecipientForPartner(partnerID, recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderId: partnerID,\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n resubscribeRecipientForBusiness(recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderType: SenderType.SENDER_TYPE_BUSINESS,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n resubscribeRecipientForProduct(recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n }\n AdminService.ɵfac = function AdminService_Factory(t) {\n return new (t || AdminService)(i0.ɵɵinject(AdminApiService));\n };\n AdminService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AdminService,\n factory: AdminService.ɵfac,\n providedIn: 'root'\n });\n return AdminService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailService = /*#__PURE__*/(() => {\n class EmailService {\n constructor(api, admin) {\n this.api = api;\n this.admin = admin;\n }\n createEmailDomain(partnerId, applicationId, businessId, domain, userId = '') {\n const req = CreateEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId,\n domain: domain,\n userId: userId\n });\n return this.api.createEmailDomain(req);\n }\n createEmailDomainWithSendAs(partnerId, applicationId, businessId, domain, sendAsEmail, sendAsName) {\n const req = CreateEmailDomainWithSendAsRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId,\n domain: domain,\n sendAsEmail: sendAsEmail,\n sendAsName: sendAsName\n });\n return this.api.createEmailDomainWithSendAs(req);\n }\n getEmailDomain(partnerId, applicationId, businessId) {\n const req = GetEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId\n });\n return this.api.getEmailDomain(req).pipe(map(r => r.domain));\n }\n verifyEmailDomain(partnerId, applicationId, businessId) {\n const req = VerifyEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId\n });\n return this.api.verifyEmailDomain(req).pipe(map(r => r.domain));\n }\n listEmails(searchTerm, filters, pagingOptions) {\n return this.api.list({\n searchTerm: searchTerm,\n pagingOptions: pagingOptions,\n filters: filters\n });\n }\n getEmailQueuesStatus() {\n const req = GetEmailQueuesStatusRequest.fromProto({});\n return this.api.getEmailQueuesStatus(req).pipe(map(r => r.running));\n }\n /**\n * @deprecated Use AdminService.setEmailQueuesStatus\n */\n setEmailQueuesStatus(running) {\n return this.admin.setEmailQueuesStatus(running);\n }\n }\n EmailService.ɵfac = function EmailService_Factory(t) {\n return new (t || EmailService)(i0.ɵɵinject(EmailApiService), i0.ɵɵinject(AdminService));\n };\n EmailService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailService,\n factory: EmailService.ɵfac,\n providedIn: 'root'\n });\n return EmailService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailEventApiService = /*#__PURE__*/(() => {\n class EmailEventApiService {\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 list(r) {\n const request = r.toApiJson ? r : new ListEmailEventsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEmailEventsResponse.fromProto(resp)));\n }\n getMultiEmailRollups(r) {\n const request = r.toApiJson ? r : new GetMultiEmailRollupsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetMultiEmailRollups\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiEmailRollupsResponse.fromProto(resp)));\n }\n listForAttributes(r) {\n const request = r.toApiJson ? r : new ListEventsForAttributesRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ListForAttributes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEventsForAttributesResponse.fromProto(resp)));\n }\n getAttributeEventStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetAttributeEventStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventStatsResponse.fromProto(resp)));\n }\n getAttributeEventLinkStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventLinkStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetAttributeEventLinkStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventLinkStatsResponse.fromProto(resp)));\n }\n listLinkClickActivityForAttribute(r) {\n const request = r.toApiJson ? r : new ListLinkClickActivityForAttributeRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ListLinkClickActivityForAttribute\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListLinkClickActivityForAttributeResponse.fromProto(resp)));\n }\n exportAttributeEventClickStats(r) {\n const request = r.toApiJson ? r : new ExportAttributeEventClickStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ExportAttributeEventClickStats\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailEventApiService.ɵfac = function EmailEventApiService_Factory(t) {\n return new (t || EmailEventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailEventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailEventApiService,\n factory: EmailEventApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailEventApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet BlocksApiService = /*#__PURE__*/(() => {\n class BlocksApiService {\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 createBlock(r) {\n const request = r.toApiJson ? r : new CreateBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/CreateBlock\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateBlockResponse.fromProto(resp)));\n }\n getBlock(r) {\n const request = r.toApiJson ? r : new GetBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/GetBlock\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBlockResponse.fromProto(resp)));\n }\n deleteBlock(r) {\n const request = r.toApiJson ? r : new DeleteBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/DeleteBlock\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n BlocksApiService.ɵfac = function BlocksApiService_Factory(t) {\n return new (t || BlocksApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n BlocksApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BlocksApiService,\n factory: BlocksApiService.ɵfac,\n providedIn: 'root'\n });\n return BlocksApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet DomainApiService = /*#__PURE__*/(() => {\n class DomainApiService {\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 createPendingDomain(r) {\n const request = r.toApiJson ? r : new CreatePendingDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/CreatePendingDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPendingEmailDomainResponse.fromProto(resp)));\n }\n listAllDomains(r) {\n const request = r.toApiJson ? r : new ListAllDomainsRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/ListAllDomains\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAllDomainsResponse.fromProto(resp)));\n }\n getDefaultDomain(r) {\n const request = r.toApiJson ? r : new GetDefaultDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/GetDefaultDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetDefaultDomainResponse.fromProto(resp)));\n }\n verifyDefaultDomain(r) {\n const request = r.toApiJson ? r : new VerifyDefaultDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/VerifyDefaultDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyDefaultDomainResponse.fromProto(resp)));\n }\n verifyEmailDomainDmarc(r) {\n const request = r.toApiJson ? r : new VerifyEmailDomainDMARCRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/VerifyEmailDomainDMARC\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyEmailDomainDMARCResponse.fromProto(resp)));\n }\n }\n DomainApiService.ɵfac = function DomainApiService_Factory(t) {\n return new (t || DomainApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n DomainApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainApiService,\n factory: DomainApiService.ɵfac,\n providedIn: 'root'\n });\n return DomainApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailClientApiService = /*#__PURE__*/(() => {\n class EmailClientApiService {\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 resubscribeRecipientFromUnsubscribeLink(r) {\n const request = r.toApiJson ? r : new ResubscribeRecipientFromUnsubscribeLinkRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailClient/ResubscribeRecipientFromUnsubscribeLink\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailClientApiService.ɵfac = function EmailClientApiService_Factory(t) {\n return new (t || EmailClientApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailClientApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailClientApiService,\n factory: EmailClientApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailClientApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet InboundMessageMappingApiService = /*#__PURE__*/(() => {\n class InboundMessageMappingApiService {\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 createInboundMessageMapping(r) {\n const request = r.toApiJson ? r : new CreateInboundMessageMappingRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageMappingService/CreateInboundMessageMapping\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateInboundMessageMappingResponse.fromProto(resp)));\n }\n }\n InboundMessageMappingApiService.ɵfac = function InboundMessageMappingApiService_Factory(t) {\n return new (t || InboundMessageMappingApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n InboundMessageMappingApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboundMessageMappingApiService,\n factory: InboundMessageMappingApiService.ɵfac,\n providedIn: 'root'\n });\n return InboundMessageMappingApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet InboundMessageApiService = /*#__PURE__*/(() => {\n class InboundMessageApiService {\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 getInboundMessage(r) {\n const request = r.toApiJson ? r : new GetInboundMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageService/GetInboundMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetInboundMessageResponse.fromProto(resp)));\n }\n }\n InboundMessageApiService.ɵfac = function InboundMessageApiService_Factory(t) {\n return new (t || InboundMessageApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n InboundMessageApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboundMessageApiService,\n factory: InboundMessageApiService.ɵfac,\n providedIn: 'root'\n });\n return InboundMessageApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet MessageApiService = /*#__PURE__*/(() => {\n class MessageApiService {\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 getMessage(r) {\n const request = r.toApiJson ? r : new GetMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.Message/GetMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMessageResponse.fromProto(resp)));\n }\n getMultiMessage(r) {\n const request = r.toApiJson ? r : new GetMultiMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.Message/GetMultiMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiMessageResponse.fromProto(resp)));\n }\n }\n MessageApiService.ɵfac = function MessageApiService_Factory(t) {\n return new (t || MessageApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n MessageApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageApiService,\n factory: MessageApiService.ɵfac,\n providedIn: 'root'\n });\n return MessageApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet PartnerEmailQuotaApiService = /*#__PURE__*/(() => {\n class PartnerEmailQuotaApiService {\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 upsert(r) {\n const request = r.toApiJson ? r : new UpsertPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/Upsert\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n bulkUpsert(r) {\n const request = r.toApiJson ? r : new BulkUpsertPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/BulkUpsert\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeletePartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMulti(r) {\n const request = r.toApiJson ? r : new GetMultiPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiPartnerEmailQuotaResponse.fromProto(resp)));\n }\n }\n PartnerEmailQuotaApiService.ɵfac = function PartnerEmailQuotaApiService_Factory(t) {\n return new (t || PartnerEmailQuotaApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n PartnerEmailQuotaApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PartnerEmailQuotaApiService,\n factory: PartnerEmailQuotaApiService.ɵfac,\n providedIn: 'root'\n });\n return PartnerEmailQuotaApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet PreferencesApiService = /*#__PURE__*/(() => {\n class PreferencesApiService {\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 getCategories(r) {\n const request = r.toApiJson ? r : new GetCategoriesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetCategories\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCategoriesResponse.fromProto(resp)));\n }\n getCategoryPreferences(r) {\n const request = r.toApiJson ? r : new GetCategoryPreferencesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetCategoryPreferences\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCategoryPreferencesResponse.fromProto(resp)));\n }\n saveCategoryPreferences(r) {\n const request = r.toApiJson ? r : new SaveCategoryPreferencesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/SaveCategoryPreferences\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getUnsubscribeLink(r) {\n const request = r.toApiJson ? r : new GetUnsubscribeLinkRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetUnsubscribeLink\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetUnsubscribeLinkResponse.fromProto(resp)));\n }\n }\n PreferencesApiService.ɵfac = function PreferencesApiService_Factory(t) {\n return new (t || PreferencesApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n PreferencesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreferencesApiService,\n factory: PreferencesApiService.ɵfac,\n providedIn: 'root'\n });\n return PreferencesApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet RecipientStatusApiService = /*#__PURE__*/(() => {\n class RecipientStatusApiService {\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 resetRecipientStatus(r) {\n const request = r.toApiJson ? r : new ResetRecipientStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.RecipientStatus/ResetRecipientStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n batchSearchRecipientStatus(r) {\n const request = r.toApiJson ? r : new BatchSearchRecipientStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.RecipientStatus/BatchSearchRecipientStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BatchSearchRecipientStatusResponse.fromProto(resp)));\n }\n }\n RecipientStatusApiService.ɵfac = function RecipientStatusApiService_Factory(t) {\n return new (t || RecipientStatusApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientStatusApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientStatusApiService,\n factory: RecipientStatusApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientStatusApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SendApiService = /*#__PURE__*/(() => {\n class SendApiService {\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 sendWhitelabelEmailToUser(r) {\n const request = r.toApiJson ? r : new SendWhitelabelEmailToUserRequest(r);\n return this.http.post(this._host + \"/email.v1.Send/SendWhitelabelEmailToUser\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendWhitelabelEmailToUserResponse.fromProto(resp)));\n }\n sendFromAuthorizedDomain(r) {\n const request = r.toApiJson ? r : new SendFromAuthorizedDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Send/SendFromAuthorizedDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendFromAuthorizedDomainResponse.fromProto(resp)));\n }\n }\n SendApiService.ɵfac = function SendApiService_Factory(t) {\n return new (t || SendApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SendApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendApiService,\n factory: SendApiService.ɵfac,\n providedIn: 'root'\n });\n return SendApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SendGridApiService = /*#__PURE__*/(() => {\n class SendGridApiService {\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 listSendGridTeammates(r) {\n const request = r.toApiJson ? r : new ListSendGridTeammatesRequest(r);\n return this.http.post(this._host + \"/email.v1.SendGridService/ListSendGridTeammates\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSendGridTeammatesResponse.fromProto(resp)));\n }\n listSendGridSubUserReputations(r) {\n const request = r.toApiJson ? r : new ListSendGridSubUserReputationsRequest(r);\n return this.http.post(this._host + \"/email.v1.SendGridService/ListSendGridSubUserReputations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSendGridSubUserReputationsResponse.fromProto(resp)));\n }\n }\n SendGridApiService.ɵfac = function SendGridApiService_Factory(t) {\n return new (t || SendGridApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SendGridApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendGridApiService,\n factory: SendGridApiService.ɵfac,\n providedIn: 'root'\n });\n return SendGridApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SendersApiService = /*#__PURE__*/(() => {\n class SendersApiService {\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 getSenderInfo(r) {\n const request = r.toApiJson ? r : new GetSenderInfoRequest(r);\n return this.http.post(this._host + \"/email.v1.Senders/GetSenderInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSenderInfoResponse.fromProto(resp)));\n }\n quarantineSender(r) {\n const request = r.toApiJson ? r : new QuarantineSenderRequest(r);\n return this.http.post(this._host + \"/email.v1.Senders/QuarantineSender\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SendersApiService.ɵfac = function SendersApiService_Factory(t) {\n return new (t || SendersApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SendersApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendersApiService,\n factory: SendersApiService.ɵfac,\n providedIn: 'root'\n });\n return SendersApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SubUserApiService = /*#__PURE__*/(() => {\n class SubUserApiService {\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 initializeSubUser(r) {\n const request = r.toApiJson ? r : new InitializeSubUserRequest(r);\n return this.http.post(this._host + \"/email.v1.SubUser/InitializeSubUser\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteSubUser(r) {\n const request = r.toApiJson ? r : new DeleteSubUserRequest(r);\n return this.http.post(this._host + \"/email.v1.SubUser/DeleteSubUser\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SubUserApiService.ɵfac = function SubUserApiService_Factory(t) {\n return new (t || SubUserApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SubUserApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SubUserApiService,\n factory: SubUserApiService.ɵfac,\n providedIn: 'root'\n });\n return SubUserApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\nlet EmailEventService = /*#__PURE__*/(() => {\n class EmailEventService {\n constructor(api) {\n this.api = api;\n }\n /*\n @params:\n - buckets: a list or names with an key-value pair to build aggregations on. The length of the response\n will be the same length as buckets. The key-value is for an additional filter term to use only for a specific\n aggregation.\n - dateRange: the range of dates to collect aggregations for.\n - partnerId: the partner to filter all aggregations by\n - marketId: the market to filter the aggregations by.\n - notificationTypes: the notification types to filter the aggregations by.\n - eventTypes: the event types to filter the aggregations by\n @returns: an observable containing a list of buckets that correspond have a name, corresponding to the name passed in to\n each bucket object in the request\n @throws: an observable of a HttpErrorResponse if the client is unable to fetch the data\n */\n getEventRollups(buckets, dateRange, partnerId, marketId, notificationTypes, eventTypes) {\n if (!buckets || !buckets.length) {\n throw new HttpErrorResponse({\n status: 409,\n statusText: '1 or more buckets must be passed in'\n });\n }\n const req = new GetMultiEmailRollupsRequest({\n buckets: buckets,\n filter: new EmailEventFilter({\n dateRange: dateRange,\n partnerId: partnerId,\n marketId: marketId,\n notificationTypes: notificationTypes,\n eventTypes: eventTypes\n })\n });\n return this.api.getMultiEmailRollups(req).pipe(map(resp => (resp || {\n emailRollups: null\n }).emailRollups));\n }\n listEvents(emailId, pagingOptions, partnerId, businessId) {\n const filters = new ListEmailEventsRequestListEmailEventsFilters({\n emailId: emailId,\n partnerId: partnerId,\n businessId: businessId\n });\n return this.api.list({\n filters,\n pagingOptions\n });\n }\n getAttributeEventStats(sender, attribute) {\n return this.api.getAttributeEventStats({\n sender: sender,\n attribute: attribute\n });\n }\n getAttributeEventLinkStats(sender, attribute) {\n return this.api.getAttributeEventLinkStats({\n sender: sender,\n attribute: attribute\n });\n }\n listEventsForAttribute(sender, attribute, eventTypes, cursor, pageSize) {\n return this.api.listForAttributes({\n sender: sender,\n attribute: attribute,\n eventTypes: eventTypes,\n cursor: cursor,\n pageSize: pageSize\n });\n }\n listLinkClickActivityForAttribute(sender, attribute, normalizedURL, cursor, pageSize) {\n return this.api.listLinkClickActivityForAttribute({\n sender: sender,\n attribute: attribute,\n normalizedUrl: normalizedURL,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n }\n exportAttributeEventClickStats(sender, attribute, normalizedUrl, userId) {\n return this.api.exportAttributeEventClickStats({\n sender: sender,\n attribute: attribute,\n normalizedUrl: normalizedUrl,\n userId: userId\n });\n }\n }\n EmailEventService.ɵfac = function EmailEventService_Factory(t) {\n return new (t || EmailEventService)(i0.ɵɵinject(EmailEventApiService));\n };\n EmailEventService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailEventService,\n factory: EmailEventService.ɵfac,\n providedIn: 'root'\n });\n return EmailEventService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendgridSubUsersService = /*#__PURE__*/(() => {\n class SendgridSubUsersService {\n constructor(api) {\n this.api = api;\n }\n listSubUserReputations(pageSize = 10, cursor) {\n const req = {\n pageSize: pageSize,\n cursor: cursor\n };\n return this.api.listSendGridSubUserReputations(req);\n }\n }\n SendgridSubUsersService.ɵfac = function SendgridSubUsersService_Factory(t) {\n return new (t || SendgridSubUsersService)(i0.ɵɵinject(SendGridApiService));\n };\n SendgridSubUsersService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendgridSubUsersService,\n factory: SendgridSubUsersService.ɵfac,\n providedIn: 'root'\n });\n return SendgridSubUsersService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendgridTeammatesService = /*#__PURE__*/(() => {\n class SendgridTeammatesService {\n constructor(api) {\n this.api = api;\n }\n list() {\n const req = {};\n return this.api.listSendGridTeammates(req);\n }\n }\n SendgridTeammatesService.ɵfac = function SendgridTeammatesService_Factory(t) {\n return new (t || SendgridTeammatesService)(i0.ɵɵinject(SendGridApiService));\n };\n SendgridTeammatesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendgridTeammatesService,\n factory: SendgridTeammatesService.ɵfac,\n providedIn: 'root'\n });\n return SendgridTeammatesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DomainService = /*#__PURE__*/(() => {\n class DomainService {\n constructor(api, domain) {\n this.api = api;\n this.domain = domain;\n }\n delete(partnerId, appId, businessId) {\n const req = {\n partnerId: partnerId,\n applicationId: appId,\n businessId: businessId\n };\n const observable = this.api.deleteEmailDomain(req).pipe(mapTo(null), shareReplay(1));\n observable.subscribe();\n return observable;\n }\n /**\n * Requests the partner's domain and send-from address to be changed to the\n * provided values.\n * @param partnerID The Partner ID\n * @param newDomain The domain for sending emails (e.g. The \"example.com\" in mail@example.com)\n * @param newEmailUsername The username for sending emails (e.g. The \"mail\" in mail@example.com)\n * @param appId [optional/soon-to-be-deprecated] The application ID to change\n * @param replyTo [optional] A reply-to email that can be included on emails\n * the domain for. Generally leave blank unless you know what you're doing.\n */\n changeForPartner(partnerID, newDomain, newEmailUsername, appId, replyTo, newSendFromName) {\n return this.changeForSender(SenderType.SENDER_TYPE_PARTNER, partnerID, newDomain, newEmailUsername, replyTo, newSendFromName);\n }\n /**\n * Requests the sender's domain and send-from address to be changed to the\n * provided values.\n * @param senderType The Sender type (e.g. partner or business)\n * @param senderID The Sender ID (e.g. partner ID or account group ID)\n * @param newDomain The domain for sending emails (e.g. The \"example.com\" in mail@example.com)\n * @param newEmailUsername The username for sending emails (e.g. The \"mail\" in mail@example.com)\n * @param replyTo [optional] A reply-to email that can be included on emails\n * the domain for. Generally leave blank unless you know what you're doing.\n */\n changeForSender(senderType, senderID, newDomain, newEmailUsername, replyTo, newSendFromName) {\n const req = new ChangeEmailDomainRequest({\n senderType: senderType,\n senderId: senderID,\n sendFromDomain: newDomain,\n sendFromUsername: newEmailUsername,\n replyToEmail: replyTo,\n sendFromName: newSendFromName\n });\n return this.api.changeEmailDomain(req).pipe(map(v => v.status));\n }\n createPendingDomain(senderType, senderId, domain) {\n return this.domain.createPendingDomain({\n sender: new Sender({\n type: senderType,\n id: senderId\n }),\n domain: domain\n });\n }\n deletePendingDomain(senderType, senderId, domain) {\n return this.api.deletePendingEmailDomain({\n senderType: senderType,\n senderId: senderId,\n domain: domain\n }).pipe(map(() => null));\n }\n /**\n * Requests the pending domain for an email sender\n * @param senderType The sender type, (ex. partner, business)\n * @param senderID the sender ID, (ex. partnerID, businessID)\n */\n getPendingEmailDomain(senderType, senderID) {\n const req = new GetPendingEmailDomainRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.api.getPendingEmailDomain(req);\n }\n verifyPendingDomain(senderType, senderID) {\n const req = new VerifyPendingEmailDomainRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.api.verifyPendingEmailDomain(req).pipe(map(v => {\n v.allRecordsMatch = Boolean(v.allRecordsMatch);\n v.mismatches = v.mismatches || [];\n return v;\n }));\n }\n verifyDefaultDomain(senderType, senderId) {\n const req = new VerifyDefaultDomainRequest({\n sender: {\n type: senderType,\n id: senderId\n }\n });\n return this.domain.verifyDefaultDomain(req).pipe(map(v => ({\n allRecordsMatch: Boolean(v.allRecordsMatch),\n mismatches: v.mismatches || []\n })));\n }\n listAllDomains(senderType, senderID) {\n const req = new ListAllDomainsRequest({\n sender: {\n type: senderType,\n id: senderID\n }\n });\n return this.domain.listAllDomains(req).pipe(map(v => {\n v.domains = v.domains || [];\n return v;\n }));\n }\n getDefaultDomain(senderType) {\n const req = new GetDefaultDomainRequest({\n senderType: senderType\n });\n return this.domain.getDefaultDomain(req);\n }\n verifyDMARC(sender) {\n const req = new VerifyEmailDomainDMARCRequest({\n sender: sender\n });\n return this.domain.verifyEmailDomainDmarc(req);\n }\n }\n DomainService.ɵfac = function DomainService_Factory(t) {\n return new (t || DomainService)(i0.ɵɵinject(EmailApiService), i0.ɵɵinject(DomainApiService));\n };\n DomainService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainService,\n factory: DomainService.ɵfac,\n providedIn: 'root'\n });\n return DomainService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MessageService = /*#__PURE__*/(() => {\n class MessageService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getMessage(emailID) {\n const req = {\n emailId: emailID\n };\n return this.delegate.getMessage(req).pipe(map(v => v.message));\n }\n }\n MessageService.ɵfac = function MessageService_Factory(t) {\n return new (t || MessageService)(i0.ɵɵinject(MessageApiService));\n };\n MessageService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageService,\n factory: MessageService.ɵfac,\n providedIn: 'root'\n });\n return MessageService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PreferencesService = /*#__PURE__*/(() => {\n class PreferencesService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getCategories(senderType, senderID) {\n const req = new GetCategoriesRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.delegate.getCategories(req);\n }\n saveCategoryPreferencesForUser(senderType, senderID, recipientUserID, optedInEmailCategoryIDs) {\n const req = new SaveCategoryPreferencesRequest({\n senderType: senderType,\n senderId: senderID,\n userId: recipientUserID,\n optedInEmailCategoryIds: optedInEmailCategoryIDs\n });\n return this.delegate.saveCategoryPreferences(req);\n }\n getCategoryPreferences(senderType, senderID, recipientID) {\n const req = new GetCategoryPreferencesRequest({\n senderType: senderType,\n senderId: senderID,\n recipientId: recipientID\n });\n return this.delegate.getCategoryPreferences(req);\n }\n getUnsubscribeLink(linkID) {\n return this.delegate.getUnsubscribeLink({\n id: linkID\n });\n }\n }\n PreferencesService.ɵfac = function PreferencesService_Factory(t) {\n return new (t || PreferencesService)(i0.ɵɵinject(PreferencesApiService));\n };\n PreferencesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreferencesService,\n factory: PreferencesService.ɵfac,\n providedIn: 'root'\n });\n return PreferencesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailClientService = /*#__PURE__*/(() => {\n class EmailClientService {\n constructor(api) {\n this.api = api;\n }\n resubscribeRecipientFromUnsubscribeLink(unsubscribeLinkId) {\n const req = new ResubscribeRecipientFromUnsubscribeLinkRequest({\n unsubscribeLinkId: unsubscribeLinkId\n });\n return this.api.resubscribeRecipientFromUnsubscribeLink(req);\n }\n }\n EmailClientService.ɵfac = function EmailClientService_Factory(t) {\n return new (t || EmailClientService)(i0.ɵɵinject(EmailClientApiService));\n };\n EmailClientService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailClientService,\n factory: EmailClientService.ɵfac,\n providedIn: 'root'\n });\n return EmailClientService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RecipientStatusService = /*#__PURE__*/(() => {\n class RecipientStatusService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n // MAX email list size is 500\n searchRecipientStatus(senderType, senderID, recipientEmails) {\n return this.delegate.batchSearchRecipientStatus({\n sender: {\n type: senderType,\n id: senderID\n },\n recipientEmails: recipientEmails\n });\n }\n }\n RecipientStatusService.ɵfac = function RecipientStatusService_Factory(t) {\n return new (t || RecipientStatusService)(i0.ɵɵinject(RecipientStatusApiService));\n };\n RecipientStatusService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientStatusService,\n factory: RecipientStatusService.ɵfac,\n providedIn: 'root'\n });\n return RecipientStatusService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailModule = /*#__PURE__*/(() => {\n class EmailModule {}\n EmailModule.ɵfac = function EmailModule_Factory(t) {\n return new (t || EmailModule)();\n };\n EmailModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EmailModule\n });\n EmailModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [EmailService, EmailEventService, SendgridSubUsersService, SendgridTeammatesService, DomainService, AdminService, MessageService, PreferencesService, RecipientStatusService, EmailClientService]\n });\n return EmailModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendersService = /*#__PURE__*/(() => {\n class SendersService {\n constructor(senders) {\n this.senders = senders;\n }\n getEmailSendingInfo(senderType, senderId) {\n const req = {\n sender: {\n type: senderType,\n id: senderId\n }\n };\n return this.senders.getSenderInfo(req);\n }\n }\n SendersService.ɵfac = function SendersService_Factory(t) {\n return new (t || SendersService)(i0.ɵɵinject(SendersApiService));\n };\n SendersService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendersService,\n factory: SendersService.ɵfac,\n providedIn: 'root'\n });\n return SendersService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst MARKETING_SERVICE_PROVIDER_ID = 'ESP_MARKETING';\nlet MessageSendingService = /*#__PURE__*/(() => {\n class MessageSendingService {\n constructor(emailClientApi) {\n this.emailClientApi = emailClientApi;\n }\n sendMarketingEmailFromPartner(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, partnerID, replyToName, replyToEmailAddress, options) {\n const req = this.buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, MARKETING_SERVICE_PROVIDER_ID, partnerID, replyToName, replyToEmailAddress, \"\", \"\", options);\n return this.emailClientApi.sendV2(req);\n }\n sendMarketingEmailFromBusiness(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, partnerID, businessID, replyToName, replyToEmailAddress, options) {\n const req = this.buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, MARKETING_SERVICE_PROVIDER_ID, partnerID, replyToName, replyToEmailAddress, \"\", businessID, options);\n return this.emailClientApi.sendV2(req);\n }\n buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, espID, partnerID, replyToName, replyToEmailAddress, applicationID, businessID, options) {\n const message = new EmailMessageV2({\n to: {\n userId: recipientUserID\n },\n from: {\n name: fromName,\n emailAddress: fromEmailAddress\n },\n subject: subjectLine,\n content: [{\n type: ContentContentType.TEXT_HTML,\n value: emailContentHtml\n }]\n });\n if (!!replyToName && !!replyToEmailAddress) {\n message.replyTo = {\n name: replyToName,\n emailAddress: replyToEmailAddress\n };\n }\n if (!!options) {\n if (!!options.attributes) {\n message.attributes = options.attributes;\n }\n if (!!options.headers) {\n message.headers = options.headers;\n }\n if (!!options.attachments) {\n message.attachments = options.attachments;\n }\n if (!!options.urlAttachments) {\n message.urlAttachments = options.urlAttachments;\n }\n }\n const req = new SendV2Request({\n email: message,\n partnerId: partnerID,\n espId: espID,\n applicationId: applicationID ? applicationID : '',\n businessId: businessID ? businessID : ''\n });\n if (!!applicationID) {\n req.applicationId = applicationID;\n }\n if (!!businessID) {\n req.businessId = businessID;\n }\n if (!!options?.idempotencyKey) {\n req.idempotencyKey = options.idempotencyKey;\n }\n return req;\n }\n }\n MessageSendingService.ɵfac = function MessageSendingService_Factory(t) {\n return new (t || MessageSendingService)(i0.ɵɵinject(EmailApiService));\n };\n MessageSendingService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageSendingService,\n factory: MessageSendingService.ɵfac,\n providedIn: 'root'\n });\n return MessageSendingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, AdminService, AdminSetEmailQueuesStatusRequest, AttachmentInfo, Attribute, BatchSearchRecipientStatusRequest, BatchSearchRecipientStatusResponse, BounceSender, BounceSenderType, Bucket, BulkUpsertPartnerEmailQuotaRequest, Category, ChangeEmailDomainRequest, ChangeEmailDomainResponse, ChangeEmailDomainStatus, Content, ContentContentType, CreateBlockRequest, CreateBlockResponse, CreateEmailDomainRequest, CreateEmailDomainWithSendAsRequest, CreateInboundMessageMappingRequest, CreateInboundMessageMappingResponse, CreatePendingDomainRequest, CustomSender, DateRange, DeleteBlockRequest, DeleteEmailDomainRequest, DeletePartnerEmailQuotaRequest, DeletePendingEmailDomainRequest, DeleteSubUserRequest, DomainService, EmailClientService, EmailDomain, EmailEvent, EmailEventBucket, EmailEventBucketEventRollup, EmailEventFilter, EmailEventService, EmailMessage, EmailMessageV2, EmailModule, EmailQueueStatus, EmailService, EmailWithCustomDomainMessage, Envelope, EventType, ExportAttributeEventClickStatsRequest, GCSAttachment, GetAttributeEventLinkStatsRequest, GetAttributeEventLinkStatsResponse, GetAttributeEventStatsRequest, GetAttributeEventStatsResponse, GetAttributeEventStatsResponseEventStats, GetBlockRequest, GetBlockResponse, GetBouncedRecipientRequest, GetBouncedRecipientResponse, GetCategoriesRequest, GetCategoriesResponse, GetCategoryPreferencesRequest, GetCategoryPreferencesResponse, GetDefaultDomainRequest, GetDefaultDomainResponse, GetEmailDomainRequest, GetEmailDomainResponse, GetEmailQueuesStatusRequest, GetEmailQueuesStatusResponse, GetInboundMessageRequest, GetInboundMessageResponse, GetMessageRequest, GetMessageResponse, GetMultiEmailRollupsRequest, GetMultiEmailRollupsResponse, GetMultiMessageRequest, GetMultiMessageResponse, GetMultiPartnerEmailQuotaRequest, GetMultiPartnerEmailQuotaResponse, GetPendingEmailDomainRequest, GetPendingEmailDomainResponse, GetPendingEmailDomainTargetCNameRecords, GetSenderInfoRequest, GetSenderInfoResponse, GetUnsubscribeLinkRequest, GetUnsubscribeLinkResponse, GetUnsubscribedRecipientRequest, GetUnsubscribedRecipientResponse, Header, InboundMessage, InboundMessageMappingOptions, InitializeSubUserRequest, InitiateEmailDomainRectifyRequest, InitiateEmailDomainRollbackRequest, LinkClickStats, LinkClickStatsRecipient, LinkStats, Links, ListAllDomainsRequest, ListAllDomainsResponse, ListEmailEventsRequest, ListEmailEventsRequestListEmailEventsFilters, ListEmailEventsResponse, ListEmailsRequest, ListEmailsRequestListEmailsFilters, ListEmailsResponse, ListEventsForAttributesRequest, ListEventsForAttributesResponse, ListLinkClickActivityForAttributeRequest, ListLinkClickActivityForAttributeRequestPagedRequestOptions, ListLinkClickActivityForAttributeResponse, ListSendGridSubUserReputationsRequest, ListSendGridSubUserReputationsResponse, ListSendGridTeammatesRequest, ListSendGridTeammatesResponse, MessageSendingService, MessageService, Namespace, NotificationType, PagedRequestOptions, PagedResponseMetadata, Participant, PartnerEmailQuota, PartnerEmailQuotaMutation, PreferencesService, QuarantineSenderRequest, RecipientStatusEnum, RecipientStatusService, Record, RedirectEmailRequest, RedirectEmailResponse, ResetRecipientStatusRequest, ResubscribeRecipientFromUnsubscribeLinkRequest, ResubscribeRecipientRequest, SaveCategoryPreferencesRequest, SendFromAuthorizedDomainRequest, SendFromAuthorizedDomainResponse, SendGridSubUserReputation, SendGridTeammate, SendRequest, SendResponse, SendV2Request, SendV2Response, SendWhitelabelEmailToUserRequest, SendWhitelabelEmailToUserResponse, SendWithCustomDomainRequest, SendWithCustomDomainResponse, Sender, SenderDomain, SenderType, SendersService, SendgridSubUsersService, SendgridTeammatesService, ServiceProviderInfo, SetEmailQueuesStatusRequest, Status, URLAttachment, UnbounceRecipientRequest, UpsertPartnerEmailQuotaRequest, UserParticipant, VerifyDefaultDomainMismatch, VerifyDefaultDomainRequest, VerifyDefaultDomainResponse, VerifyEmailDomainDMARCRequest, VerifyEmailDomainDMARCResponse, VerifyEmailDomainRequest, VerifyPendingEmailDomainMismatch, VerifyPendingEmailDomainRequest, VerifyPendingEmailDomainResponse, WhiteLabelEmailMessage };\n"],"mappings":"iNAyQA,SAASA,GAAoBC,EAASC,EAAO,CAC3C,OAAI,OAAOA,GAAU,SACZA,EAEFD,EAAQC,CAAK,CACtB,CAsDA,SAASC,GAAoBF,EAASC,EAAO,CAC3C,OAAI,OAAOA,GAAU,SACZA,EAEFD,EAAQC,CAAK,CACtB,CAiwBA,SAASE,EAAkBH,EAASC,EAAO,CACzC,OAAI,OAAOA,GAAU,SACZA,EAEFD,EAAQC,CAAK,CACtB,CA/kCA,IAwCMG,EAmCAC,GAoEAC,EAuCFC,EAcAC,GAYAC,GAWAC,GAOAC,GAMAC,EAoBAC,EAmBEC,EA2DAC,EAuBAC,GA0BAC,EA6BAC,EAwGAC,GAyFAC,GAmFAC,EA0BAC,EAuBAC,EAuBAC,EAuBAC,EAoBAC,EAuBAC,GA0RAC,EAwEAC,EA8EAC,EAsCAC,GAwEAC,EAgCAC,EAuFAC,GAwEAC,GA8CAC,GAuDAC,GA0BAC,EAyCAC,GA6BAC,GAyCAC,GAmCAC,GA6BAC,GAuBAC,GA6BAC,GA2EAC,EA0BAC,GAyHAC,EAuBAC,GAoBAC,EA0BAC,EAuBAC,EAiBAC,GA+DAC,GAoBAC,GAuBAC,EA6BAC,GAuBAC,GAoBAC,GAkEAC,EA0BAC,EA4CAC,EAyCAC,GAuBAC,GAuFAC,EA6BAC,GAwEAC,GA6BAC,GA0BAC,GAmCAC,GAmCAC,EAuBAC,GAuBAC,EA0BAC,GA6BAC,GAgCAC,GA4CAC,GAgCAC,GA6BAC,GA4CAC,GA6BAC,GAsCAC,GA+HAC,GA0BAC,GA0BAC,EAuDAC,GA0BAC,GAoBAC,GA4CAC,GAqEAC,EAmMAC,GAsCAC,GAoBAC,GAsCAC,GAiFAC,GA4CAC,GAuBAC,EA0BAC,GAmCAC,GAoDAC,GAoDAC,GAmCAC,GAuBAC,GA0BAC,GAuBAC,GA0BAC,GA0BAC,GAmCAC,GA0BAC,GAkCAC,GACAC,GAOFC,EA6BAC,GA+GAC,GA4EAC,GAuFAC,GAiFAC,GAsHAC,GAmLAC,GAuSAC,GAiGAC,GA0JAC,GA2IAC,GA+IAC,GAh6LJC,GAAAC,GAAA,KAAAC,KAEAC,KACAC,KACAA,KAoCM7H,EAAN,MAAM8H,CAAU,CACd,OAAO,UAAUC,EAAO,CACtB,IAAIC,EAAI,IAAIF,EACZ,OAAAE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQ,IAAI,KAAKD,EAAM,KAAK,GAE5BA,EAAM,MACRC,EAAE,IAAM,IAAI,KAAKD,EAAM,GAAG,GAErBC,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,IAAQ,KAAe,KAAK,MAAQ,OAClDA,EAAS,IAAS,cAAe,KAAK,IAAM,KAAK,IAAI,UAAU,EAAI,KAAK,KAEnEA,CACT,CACF,EAOMjI,GAAN,MAAMkI,CAAY,CAChB,OAAO,UAAUJ,EAAO,CACtB,IAAIC,EAAI,IAAIG,EACZ,OAAAH,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAO9H,EAAO,UAAU6H,EAAM,IAAI,GAElCA,EAAM,QACRC,EAAE,MAAQ9H,EAAO,UAAU6H,EAAM,KAAK,GAEpCA,EAAM,QACRC,EAAE,MAAQ9H,EAAO,UAAU6H,EAAM,KAAK,GAEpCA,EAAM,QACRC,EAAE,MAAQ9H,EAAO,UAAU6H,EAAM,KAAK,GAEjCC,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,QAExB,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,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,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAEzEA,CACT,CACF,EACMhI,EAAN,MAAMkI,CAAO,CACX,OAAO,UAAUL,EAAO,CACtB,IAAIC,EAAI,IAAII,EACZ,OAAAJ,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,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE9B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EAQI/H,EAAyB,SAAUA,EAAW,CAChD,OAAAA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,UAAe,CAAC,EAAI,YACxCA,EAAUA,EAAU,UAAe,CAAC,EAAI,YACxCA,EAAUA,EAAU,OAAY,CAAC,EAAI,SACrCA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,SAAc,CAAC,EAAI,WACvCA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,WAAgB,CAAC,EAAI,aACzCA,EAAUA,EAAU,aAAkB,CAAC,EAAI,eAC3CA,EAAUA,EAAU,aAAkB,EAAE,EAAI,eACrCA,CACT,EAAEA,GAAa,CAAC,CAAC,EACbC,GAAgC,SAAUA,EAAkB,CAC9D,OAAAA,EAAiBA,EAAiB,iCAAsC,CAAC,EAAI,mCAC7EA,EAAiBA,EAAiB,mCAAwC,CAAC,EAAI,qCAC/EA,EAAiBA,EAAiB,uCAA4C,CAAC,EAAI,yCAC5EA,CACT,EAAEA,IAAoB,CAAC,CAAC,EAOpBC,GAAkC,SAAUA,EAAoB,CAClE,OAAAA,EAAmBA,EAAmB,WAAgB,CAAC,EAAI,aAC3DA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YACnDA,CACT,EAAEA,IAAsB,CAAC,CAAC,EAOtBC,GAAgC,SAAUA,EAAkB,CAC9D,OAAAA,EAAiBA,EAAiB,6BAAkC,CAAC,EAAI,+BACzEA,EAAiBA,EAAiB,6BAAkC,CAAC,EAAI,+BACzEA,EAAiBA,EAAiB,8BAAmC,CAAC,EAAI,gCAC1EA,EAAiBA,EAAiB,6BAAkC,CAAC,EAAI,+BAClEA,CACT,EAAEA,IAAoB,CAAC,CAAC,EACpBC,GAAuC,SAAUA,EAAyB,CAC5E,OAAAA,EAAwBA,EAAwB,mCAAwC,CAAC,EAAI,qCAC7FA,EAAwBA,EAAwB,oCAAyC,CAAC,EAAI,sCAC9FA,EAAwBA,EAAwB,mCAAwC,CAAC,EAAI,qCACtFA,CACT,EAAEA,IAA2B,CAAC,CAAC,EAC3BC,EAAgC,SAAUA,EAAkB,CAC9D,OAAAA,EAAiBA,EAAiB,+BAAoC,CAAC,EAAI,iCAC3EA,EAAiBA,EAAiB,2BAAgC,CAAC,EAAI,6BACvEA,EAAiBA,EAAiB,4BAAiC,CAAC,EAAI,8BACjEA,CACT,EAAEA,GAAoB,CAAC,CAAC,EAepBC,EAA0B,SAAUA,EAAY,CAClD,OAAAA,EAAWA,EAAW,oBAAyB,CAAC,EAAI,sBACpDA,EAAWA,EAAW,oBAAyB,CAAC,EAAI,sBACpDA,EAAWA,EAAW,qBAA0B,CAAC,EAAI,uBAC9CA,CACT,EAAEA,GAAc,CAAC,CAAC,EAcZC,EAAN,MAAM2H,CAAW,CACf,OAAO,UAAUN,EAAO,CACtB,IAAIC,EAAI,IAAIK,EACZ,OAAAL,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYrI,GAAoBQ,EAAW4H,EAAM,SAAS,GAE1DA,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,qBAAyB,MACvCA,EAAS,qBAA0B,KAAK,sBAEtC,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE3BA,CACT,CACF,EAOMvH,EAAN,MAAM2H,CAAU,CACd,OAAO,UAAUP,EAAO,CACtB,IAAIC,EAAI,IAAIM,EACZ,OAAAN,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,EACMtH,GAAN,MAAM2H,CAAO,CACX,OAAO,UAAUR,EAAO,CACtB,IAAIC,EAAI,IAAIO,EACZ,OAAAP,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYrH,EAAU,UAAUoH,EAAM,SAAS,GAE5CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAErFA,CACT,CACF,EACMrH,EAAN,MAAM2H,CAAQ,CACZ,OAAO,UAAUT,EAAO,CACtB,IAAIC,EAAI,IAAIQ,EACZ,OAAAR,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAOlI,GAAoBO,GAAoB0H,EAAM,IAAI,GAEtDC,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,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAExBA,CACT,CACF,EACMpH,EAAN,MAAM2H,CAAa,CACjB,OAAO,UAAUV,EAAO,CACtB,IAAIC,EAAI,IAAIS,EACZ,OAAAT,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,KACRC,EAAE,GAAKD,EAAM,GAAG,IAAI3G,EAAY,SAAS,GAEvC2G,EAAM,KACRC,EAAE,GAAKD,EAAM,GAAG,IAAI3G,EAAY,SAAS,GAEvC2G,EAAM,MACRC,EAAE,IAAMD,EAAM,IAAI,IAAI3G,EAAY,SAAS,GAEzC2G,EAAM,OACRC,EAAE,KAAO5G,EAAY,UAAU2G,EAAM,IAAI,GAEvCA,EAAM,UACRC,EAAE,QAAU5G,EAAY,UAAU2G,EAAM,OAAO,GAE7CA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAIlH,EAAQ,SAAS,GAE7CkH,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAIpH,EAAU,SAAS,GAErDoH,EAAM,YACRC,EAAE,UAAY,IAAI,KAAKD,EAAM,SAAS,GAEpCA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAI7G,EAAO,SAAS,GAE5C6G,EAAM,cACRC,EAAE,YAAcD,EAAM,YAAY,IAAI9G,EAAc,SAAS,GAE3D8G,EAAM,iBACRC,EAAE,eAAiBD,EAAM,eAAe,IAAIzG,EAAc,SAAS,GAEjEyG,EAAM,sBACRC,EAAE,oBAAsB3G,EAAoB,UAAU0G,EAAM,mBAAmB,GAE7EA,EAAM,QACRC,EAAE,MAAQD,EAAM,MAAM,IAAI5G,EAAM,SAAS,GAEpC6G,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,GAAO,KAAe,KAAK,KAAO,OAChDA,EAAS,GAAQ,cAAe,KAAK,GAAK,KAAK,GAAG,UAAU,EAAI,KAAK,IAEnE,OAAO,KAAK,GAAO,KAAe,KAAK,KAAO,OAChDA,EAAS,GAAQ,cAAe,KAAK,GAAK,KAAK,GAAG,UAAU,EAAI,KAAK,IAEnE,OAAO,KAAK,IAAQ,KAAe,KAAK,MAAQ,OAClDA,EAAS,IAAS,cAAe,KAAK,IAAM,KAAK,IAAI,UAAU,EAAI,KAAK,KAEtE,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,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,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,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,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,oBAAwB,KAAe,KAAK,sBAAwB,OAClFA,EAAS,oBAAyB,cAAe,KAAK,oBAAsB,KAAK,oBAAoB,UAAU,EAAI,KAAK,qBAEtH,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAE5E,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE3BA,CACT,CACF,EACMnH,GAAN,MAAM2H,CAAe,CACnB,OAAO,UAAUX,EAAO,CACtB,IAAIC,EAAI,IAAIU,EACZ,OAAAV,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,KACRC,EAAE,GAAKzG,GAAgB,UAAUwG,EAAM,EAAE,GAEvCA,EAAM,OACRC,EAAE,KAAO5G,EAAY,UAAU2G,EAAM,IAAI,GAEvCA,EAAM,UACRC,EAAE,QAAU5G,EAAY,UAAU2G,EAAM,OAAO,GAE7CA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAIlH,EAAQ,SAAS,GAE7CkH,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAIpH,EAAU,SAAS,GAErDoH,EAAM,YACRC,EAAE,UAAY,IAAI,KAAKD,EAAM,SAAS,GAEpCA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAI7G,EAAO,SAAS,GAE5C6G,EAAM,cACRC,EAAE,YAAcD,EAAM,YAAY,IAAI9G,EAAc,SAAS,GAE3D8G,EAAM,iBACRC,EAAE,eAAiBD,EAAM,eAAe,IAAIzG,EAAc,SAAS,GAEjEyG,EAAM,sBACRC,EAAE,oBAAsB3G,EAAoB,UAAU0G,EAAM,mBAAmB,GAE7EA,EAAM,QACRC,EAAE,MAAQD,EAAM,MAAM,IAAI5G,EAAM,SAAS,GAEpC6G,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,GAAO,KAAe,KAAK,KAAO,OAChDA,EAAS,GAAQ,cAAe,KAAK,GAAK,KAAK,GAAG,UAAU,EAAI,KAAK,IAEnE,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEzE,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,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,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,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,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,oBAAwB,KAAe,KAAK,sBAAwB,OAClFA,EAAS,oBAAyB,cAAe,KAAK,oBAAsB,KAAK,oBAAoB,UAAU,EAAI,KAAK,qBAEtH,OAAO,KAAK,MAAU,KAAe,KAAK,QAAU,OACtDA,EAAS,MAAW,cAAe,KAAK,MAAQ,KAAK,MAAM,UAAU,EAAI,KAAK,OAEzEA,CACT,CACF,EACMlH,GAAN,MAAM2H,CAA6B,CACjC,OAAO,UAAUZ,EAAO,CACtB,IAAIC,EAAI,IAAIW,EACZ,OAAAX,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,KACRC,EAAE,GAAKD,EAAM,GAAG,IAAI3G,EAAY,SAAS,GAEvC2G,EAAM,KACRC,EAAE,GAAKD,EAAM,GAAG,IAAI3G,EAAY,SAAS,GAEvC2G,EAAM,MACRC,EAAE,IAAMD,EAAM,IAAI,IAAI3G,EAAY,SAAS,GAEzC2G,EAAM,UACRC,EAAE,QAAU5G,EAAY,UAAU2G,EAAM,OAAO,GAE7CA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAIlH,EAAQ,SAAS,GAE7CkH,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAIpH,EAAU,SAAS,GAErDoH,EAAM,YACRC,EAAE,UAAY,IAAI,KAAKD,EAAM,SAAS,GAEpCA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAI7G,EAAO,SAAS,GAE5C6G,EAAM,cACRC,EAAE,YAAcD,EAAM,YAAY,IAAI9G,EAAc,SAAS,GAE3D8G,EAAM,iBACRC,EAAE,eAAiBD,EAAM,eAAe,IAAIzG,EAAc,SAAS,GAE9D0G,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,GAAO,KAAe,KAAK,KAAO,OAChDA,EAAS,GAAQ,cAAe,KAAK,GAAK,KAAK,GAAG,UAAU,EAAI,KAAK,IAEnE,OAAO,KAAK,GAAO,KAAe,KAAK,KAAO,OAChDA,EAAS,GAAQ,cAAe,KAAK,GAAK,KAAK,GAAG,UAAU,EAAI,KAAK,IAEnE,OAAO,KAAK,IAAQ,KAAe,KAAK,MAAQ,OAClDA,EAAS,IAAS,cAAe,KAAK,IAAM,KAAK,IAAI,UAAU,EAAI,KAAK,KAEtE,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,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,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,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,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,gBAEpGA,CACT,CACF,EACMjH,EAAN,MAAM2H,CAAc,CAClB,OAAO,UAAUb,EAAO,CACtB,IAAIC,EAAI,IAAIY,EACZ,OAAAZ,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,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,iBAAqB,MACnCA,EAAS,iBAAsB,KAAK,kBAE/BA,CACT,CACF,EACMhH,EAAN,MAAM2H,CAAO,CACX,OAAO,UAAUd,EAAO,CACtB,IAAIC,EAAI,IAAIa,EACZ,OAAAb,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,EACM/G,EAAN,MAAM2H,CAAM,CACV,OAAO,UAAUf,EAAO,CACtB,IAAIC,EAAI,IAAIc,EACZ,OAAAd,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE5BA,CACT,CACF,EACM9G,EAAN,MAAM2H,CAAY,CAChB,OAAO,UAAUhB,EAAO,CACtB,IAAIC,EAAI,IAAIe,EACZ,OAAAf,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,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE3BA,CACT,CACF,EACM7G,EAAN,MAAM2H,CAAoB,CACxB,OAAO,UAAUjB,EAAO,CACtB,IAAIC,EAAI,IAAIgB,EACZ,OAAAhB,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,WAExBA,CACT,CACF,EACM5G,EAAN,MAAM2H,CAAc,CAClB,OAAO,UAAUlB,EAAO,CACtB,IAAIC,EAAI,IAAIiB,EACZ,OAAAjB,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,iBAAqB,MACnCA,EAAS,iBAAsB,KAAK,kBAE/BA,CACT,CACF,EACM3G,GAAN,MAAM2H,CAAgB,CACpB,OAAO,UAAUnB,EAAO,CACtB,IAAIC,EAAI,IAAIkB,EACZ,OAAAlB,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,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EAuQM1G,EAAN,MAAM2H,CAAiC,CACrC,OAAO,UAAUpB,EAAO,CACtB,IAAIC,EAAI,IAAImB,EACZ,OAAAnB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASjI,EAAkBS,EAAkBuH,EAAM,MAAM,GAEtDC,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,QAErBA,CACT,CACF,EAkDMzG,EAAN,MAAM2H,CAAa,CACjB,OAAO,UAAUrB,EAAO,CACtB,IAAIC,EAAI,IAAIoB,EACZ,OAAApB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAOjI,EAAkBO,GAAkByH,EAAM,IAAI,GAElDC,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,GAAO,MACrBA,EAAS,GAAQ,KAAK,IAEjBA,CACT,CACF,EAqDMxG,EAAN,MAAM2H,CAAyB,CAC7B,OAAO,UAAUtB,EAAO,CACtB,IAAIC,EAAI,IAAIqB,EACZ,OAAArB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,iBAAqB,MACnCA,EAAS,iBAAsB,KAAK,kBAElC,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE9B,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE3BA,CACT,CACF,EACMvG,GAAN,MAAM2H,CAA0B,CAC9B,OAAO,UAAUvB,EAAO,CACtB,IAAIC,EAAI,IAAIsB,EACZ,OAAAtB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASjI,EAAkBQ,GAAyBwH,EAAM,MAAM,GAE7DC,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,QAErBA,CACT,CACF,EAkDMtG,EAAN,MAAM2H,CAAyB,CAC7B,OAAO,UAAUxB,EAAO,CACtB,IAAIC,EAAI,IAAIuB,EACZ,OAAAvB,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EACMrG,EAAN,MAAM2H,CAAmC,CACvC,OAAO,UAAUzB,EAAO,CACtB,IAAIC,EAAI,IAAIwB,EACZ,OAAAxB,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EAkDMpG,GAAN,MAAM2H,CAA2B,CAC/B,OAAO,UAAU1B,EAAO,CACtB,IAAIC,EAAI,IAAIyB,EACZ,OAAAzB,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEnCC,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,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EA+CMnG,GAAN,MAAM2H,CAAyB,CAC7B,OAAO,UAAU3B,EAAO,CACtB,IAAIC,EAAI,IAAI0B,EACZ,OAAA1B,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EAqBMlG,GAAN,MAAM2H,CAAgC,CACpC,OAAO,UAAU5B,EAAO,CACtB,IAAIC,EAAI,IAAI2B,EACZ,OAAA3B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EA2BMjG,GAAN,MAAM2H,CAAiB,CACrB,OAAO,UAAU7B,EAAO,CACtB,IAAIC,EAAI,IAAI4B,EACZ,OAAA5B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,cACRC,EAAE,YAAcD,EAAM,YAAY,IAAI5F,GAA4B,SAAS,GAEtE6F,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,YAAgB,KAAe,KAAK,cAAgB,OAClEA,EAAS,YAAiB,cAAe,KAAK,YAAc,KAAK,YAAY,UAAU,EAAI,KAAK,aAE3FA,CACT,CACF,EACMhG,EAAN,MAAM2H,CAAiB,CACrB,OAAO,UAAU9B,EAAO,CACtB,IAAIC,EAAI,IAAI6B,EACZ,OAAA7B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,oBACRC,EAAE,kBAAoBD,EAAM,kBAAkB,IAAI+B,GAAK/J,EAAkBK,GAAkB0J,CAAC,CAAC,GAE3F/B,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAI+B,GAAK/J,EAAkBI,EAAW2J,CAAC,CAAC,GAEtE/B,EAAM,YACRC,EAAE,UAAYhI,EAAU,UAAU+H,EAAM,SAAS,GAE5CC,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,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,kBAAsB,MACpCA,EAAS,kBAAuB,KAAK,mBAEnC,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAErFA,CACT,CACF,EACM/F,GAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAUhC,EAAO,CACtB,IAAIC,EAAI,IAAI+B,EACZ,OAAA/B,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAO,IAAI,KAAKD,EAAM,IAAI,GAE1BA,EAAM,WACRC,EAAE,SAAW,SAASD,EAAM,SAAU,EAAE,GAEnCC,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,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACM9F,GAAN,MAAM4H,CAAyC,CAC7C,OAAO,UAAUjC,EAAO,CACtB,IAAIC,EAAI,IAAIgC,EACZ,OAAAhC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYjI,EAAkBI,EAAW4H,EAAM,SAAS,GAExDA,EAAM,QACRC,EAAE,MAAQ,SAASD,EAAM,MAAO,EAAE,GAEhCA,EAAM,cACRC,EAAE,YAAc,SAASD,EAAM,YAAa,EAAE,GAE5CA,EAAM,mBACRC,EAAE,iBAAmB,SAASD,EAAM,iBAAkB,EAAE,GAEnDC,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,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,iBAAqB,MACnCA,EAAS,iBAAsB,KAAK,kBAE/BA,CACT,CACF,EACM7F,GAAN,MAAM4H,CAAsC,CAC1C,OAAO,UAAUlC,EAAO,CACtB,IAAIC,EAAI,IAAIiC,EACZ,OAAAjC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEtCA,EAAM,YACRC,EAAE,UAAYrH,EAAU,UAAUoH,EAAM,SAAS,GAE5CC,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EACM5F,GAAN,MAAM4H,CAAkC,CACtC,OAAO,UAAUnC,EAAO,CACtB,IAAIC,EAAI,IAAIkC,EACZ,OAAAlC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEtCA,EAAM,YACRC,EAAE,UAAYrH,EAAU,UAAUoH,EAAM,SAAS,GAE5CC,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,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAErFA,CACT,CACF,EACM3F,GAAN,MAAM4H,CAAmC,CACvC,OAAO,UAAUpC,EAAO,CACtB,IAAIC,EAAI,IAAImC,EACZ,OAAAnC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAOD,EAAM,KAAK,IAAI7D,GAAU,SAAS,GAEtC8D,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,EACM1F,GAAN,MAAM4H,CAA8B,CAClC,OAAO,UAAUrC,EAAO,CACtB,IAAIC,EAAI,IAAIoC,EACZ,OAAApC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEtCA,EAAM,YACRC,EAAE,UAAYrH,EAAU,UAAUoH,EAAM,SAAS,GAE5CC,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,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAErFA,CACT,CACF,EACMzF,GAAN,MAAM4H,CAA+B,CACnC,OAAO,UAAUtC,EAAO,CACtB,IAAIC,EAAI,IAAIqC,EACZ,OAAArC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAOD,EAAM,KAAK,IAAI3F,GAAyC,SAAS,GAErE4F,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,EAqDMxF,EAAN,MAAM4H,CAA2B,CAC/B,OAAO,UAAUvC,EAAO,CACtB,IAAIC,EAAI,IAAIsC,EACZ,OAAAtC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASvG,EAAa,UAAUsG,EAAM,MAAM,GAEzCC,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,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAE7BA,CACT,CACF,EACMvF,GAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAUxC,EAAO,CACtB,IAAIC,EAAI,IAAIuC,EACZ,OAAAvC,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,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAE7BA,CACT,CACF,EAsGMtF,EAAN,MAAM4H,CAAwB,CAC5B,OAAO,UAAUzC,EAAO,CACtB,IAAIC,EAAI,IAAIwC,EACZ,OAAAxC,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMrF,GAAN,MAAM4H,CAAyB,CAC7B,OAAO,UAAU1C,EAAO,CACtB,IAAIC,EAAI,IAAIyC,EACZ,OAAAzC,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,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EACMpF,EAAN,MAAM4H,CAAsB,CAC1B,OAAO,UAAU3C,EAAO,CACtB,IAAIC,EAAI,IAAI0C,EACZ,OAAA1C,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMnF,EAAN,MAAM4H,CAAuB,CAC3B,OAAO,UAAU5C,EAAO,CACtB,IAAIC,EAAI,IAAI2C,EACZ,OAAA3C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAAS/H,GAAY,UAAU8H,EAAM,MAAM,GAExCC,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,EACMlF,EAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAU7C,EAAO,CACtB,IAAIC,EAAI,IAAI4C,EACZ,OAAA5C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACnBC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CAEV,MADiB,CAAC,CAEpB,CACF,EACMhF,GAAN,MAAM4H,CAA6B,CACjC,OAAO,UAAU9C,EAAO,CACtB,IAAIC,EAAI,IAAI6C,EACZ,OAAA7C,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EA4CMhF,GAAN,MAAM4H,CAAkB,CACtB,OAAO,UAAU/C,EAAO,CACtB,IAAIC,EAAI,IAAI8C,EACZ,OAAA9C,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EACM/E,GAAN,MAAM4H,CAAmB,CACvB,OAAO,UAAUhD,EAAO,CACtB,IAAIC,EAAI,IAAI+C,EACZ,OAAA/C,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAUlH,EAAa,UAAUiH,EAAM,OAAO,GAE3CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAE/EA,CACT,CACF,EACM9E,EAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAUjD,EAAO,CACtB,IAAIC,EAAI,IAAIgD,EACZ,OAAAhD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAInH,GAAO,SAAS,GAE5CmH,EAAM,SACRC,EAAE,OAAS9F,EAAiB,UAAU6F,EAAM,MAAM,GAE7CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAElF,OAAO,KAAK,OAAW,KAAe,KAAK,SAAW,OACxDA,EAAS,OAAY,cAAe,KAAK,OAAS,KAAK,OAAO,UAAU,EAAI,KAAK,QAE5EA,CACT,CACF,EACM7E,GAAN,MAAM4H,CAA6B,CACjC,OAAO,UAAUlD,EAAO,CACtB,IAAIC,EAAI,IAAIiD,EACZ,OAAAjD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,eACRC,EAAE,aAAeD,EAAM,aAAa,IAAI9F,GAAiB,SAAS,GAE7D+F,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,aAAiB,KAAe,KAAK,eAAiB,OACpEA,EAAS,aAAkB,cAAe,KAAK,aAAe,KAAK,aAAa,UAAU,EAAI,KAAK,cAE9FA,CACT,CACF,EACM5E,GAAN,MAAM4H,CAAuB,CAC3B,OAAO,UAAUnD,EAAO,CACtB,IAAIC,EAAI,IAAIkD,EACZ,OAAAlD,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,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACM3E,GAAN,MAAM4H,CAAwB,CAC5B,OAAO,UAAUpD,EAAO,CACtB,IAAIC,EAAI,IAAImD,EACZ,OAAAnD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAWD,EAAM,SAAS,IAAIjH,EAAa,SAAS,GAEjDkH,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,EA4CM1E,EAAN,MAAM4H,CAA6B,CACjC,OAAO,UAAUrD,EAAO,CACtB,IAAIC,EAAI,IAAIoD,EACZ,OAAApD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACMzE,EAAN,MAAM4H,CAA8B,CAClC,OAAO,UAAUtD,EAAO,CACtB,IAAIC,EAAI,IAAIqD,EACZ,OAAArD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAE3DA,EAAM,UACRC,EAAE,QAAUtE,EAAwC,UAAUqE,EAAM,OAAO,GAEtEC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,iBAAqB,MACnCA,EAAS,iBAAsB,KAAK,kBAElC,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAE/EA,CACT,CACF,EACMxE,EAAN,MAAM4H,CAAwC,CAC5C,OAAO,UAAUvD,EAAO,CACtB,IAAIC,EAAI,IAAIsD,EACZ,OAAAtD,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMvE,GAAN,MAAM4H,CAAqB,CACzB,OAAO,UAAUxD,EAAO,CACtB,IAAIC,EAAI,IAAIuD,EACZ,OAAAvD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEnCC,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,EACMtE,GAAN,MAAM4H,CAAsB,CAC1B,OAAO,UAAUzD,EAAO,CACtB,IAAIC,EAAI,IAAIwD,EACZ,OAAAxD,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,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,qBAAyB,MACvCA,EAAS,qBAA0B,KAAK,sBAEtC,OAAO,KAAK,uBAA2B,MACzCA,EAAS,uBAA4B,KAAK,wBAExC,OAAO,KAAK,uBAA2B,MACzCA,EAAS,uBAA4B,KAAK,wBAExC,OAAO,KAAK,0BAA8B,MAC5CA,EAAS,0BAA+B,KAAK,2BAE3C,OAAO,KAAK,6BAAiC,MAC/CA,EAAS,6BAAkC,KAAK,8BAE3CA,CACT,CACF,EAqDMrE,EAAN,MAAM4H,CAAgC,CACpC,OAAO,UAAU1D,EAAO,CACtB,IAAIC,EAAI,IAAIyD,EACZ,OAAAzD,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAE7BA,CACT,CACF,EACMpE,GAAN,MAAM4H,CAAiC,CACrC,OAAO,UAAU3D,EAAO,CACtB,IAAIC,EAAI,IAAI0D,EACZ,OAAA1D,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,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAE7BA,CACT,CACF,EAqDMnE,GAAN,MAAM4H,CAAkC,CACtC,OAAO,UAAU5D,EAAO,CACtB,IAAIC,EAAI,IAAI2D,EACZ,OAAA3D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,qBAAyB,MACvCA,EAAS,qBAA0B,KAAK,sBAEnCA,CACT,CACF,EACMlE,GAAN,MAAM4H,CAAmC,CACvC,OAAO,UAAU7D,EAAO,CACtB,IAAIC,EAAI,IAAI4D,EACZ,OAAA5D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACMjE,GAAN,MAAM4H,CAAe,CACnB,OAAO,UAAU9D,EAAO,CACtB,IAAIC,EAAI,IAAI6D,EACZ,OAAA7D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAY7C,GAAwB,UAAU4C,EAAM,SAAS,GAE7DA,EAAM,aACRC,EAAE,WAAa,IAAI,KAAKD,EAAM,UAAU,GAEtCA,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,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAE3F,OAAO,KAAK,MAAU,MACxBA,EAAS,MAAW,KAAK,OAEpBA,CACT,CACF,EACMhE,GAAN,MAAM4H,CAAU,CACd,OAAO,UAAU/D,EAAO,CACtB,IAAIC,EAAI,IAAI8D,EACZ,OAAA9D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,cACRC,EAAE,YAAc,SAASD,EAAM,YAAa,EAAE,GAE5CA,EAAM,eACRC,EAAE,aAAe,SAASD,EAAM,aAAc,EAAE,GAE3CC,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,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE9B,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAExBA,CACT,CACF,EACM/D,EAAN,MAAM4H,CAAsB,CAC1B,OAAO,UAAUhE,EAAO,CACtB,IAAIC,EAAI,IAAI+D,EACZ,OAAA/D,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEnCC,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,EACM9D,GAAN,MAAM4H,CAAuB,CAC3B,OAAO,UAAUjE,EAAO,CACtB,IAAIC,EAAI,IAAIgE,EACZ,OAAAhE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAUD,EAAM,QAAQ,IAAIjC,GAAa,SAAS,GAE/CkC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,QAAY,KAAe,KAAK,UAAY,OAC1DA,EAAS,QAAa,cAAe,KAAK,QAAU,KAAK,QAAQ,UAAU,EAAI,KAAK,SAE/EA,CACT,CACF,EACM7D,EAAN,MAAM4H,CAA6C,CACjD,OAAO,UAAUlE,EAAO,CACtB,IAAIC,EAAI,IAAIiE,EACZ,OAAAjE,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACM5D,GAAN,MAAM4H,CAAuB,CAC3B,OAAO,UAAUnE,EAAO,CACtB,IAAIC,EAAI,IAAIkE,EACZ,OAAAlE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAU3D,EAA6C,UAAU0D,EAAM,OAAO,GAE9EA,EAAM,gBACRC,EAAE,cAAgBjD,GAAoB,UAAUgD,EAAM,aAAa,GAE9DC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,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,eAEjGA,CACT,CACF,EACM3D,GAAN,MAAM4H,CAAwB,CAC5B,OAAO,UAAUpE,EAAO,CACtB,IAAIC,EAAI,IAAImE,EACZ,OAAAnE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASD,EAAM,OAAO,IAAIrH,EAAW,SAAS,GAE9CqH,EAAM,iBACRC,EAAE,eAAiB/C,EAAsB,UAAU8C,EAAM,cAAc,GAElEC,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,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEvG,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACM1D,GAAN,MAAM4H,CAAmC,CACvC,OAAO,UAAUrE,EAAO,CACtB,IAAIC,EAAI,IAAIoE,EACZ,OAAApE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYhI,EAAU,UAAU+H,EAAM,SAAS,GAE5CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,GAAO,MACrBA,EAAS,GAAQ,KAAK,IAEpB,OAAO,KAAK,KAAS,MACvBA,EAAS,KAAU,KAAK,MAEtB,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,OAEvB,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EACMzD,GAAN,MAAM4H,CAAkB,CACtB,OAAO,UAAUtE,EAAO,CACtB,IAAIC,EAAI,IAAIqE,EACZ,OAAArE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAUxD,GAAmC,UAAUuD,EAAM,OAAO,GAEpEA,EAAM,gBACRC,EAAE,cAAgBjD,GAAoB,UAAUgD,EAAM,aAAa,GAE9DC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,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,eAEjGA,CACT,CACF,EACMxD,GAAN,MAAM4H,CAAmB,CACvB,OAAO,UAAUvE,EAAO,CACtB,IAAIC,EAAI,IAAIsE,EACZ,OAAAtE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASD,EAAM,OAAO,IAAIjH,EAAa,SAAS,GAEhDiH,EAAM,iBACRC,EAAE,eAAiB/C,EAAsB,UAAU8C,EAAM,cAAc,GAElEC,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,eAAmB,KAAe,KAAK,iBAAmB,OACxEA,EAAS,eAAoB,cAAe,KAAK,eAAiB,KAAK,eAAe,UAAU,EAAI,KAAK,gBAEpGA,CACT,CACF,EACMvD,GAAN,MAAM4H,CAA+B,CACnC,OAAO,UAAUxE,EAAO,CACtB,IAAIC,EAAI,IAAIuE,EACZ,OAAAvE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,YACRC,EAAE,UAAYrH,EAAU,UAAUoH,EAAM,SAAS,GAE/CA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEtCA,EAAM,WACRC,EAAE,SAAW,SAASD,EAAM,SAAU,EAAE,GAEtCA,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAI+B,GAAK/J,EAAkBI,EAAW2J,CAAC,CAAC,GAEnE9B,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,WAExF,OAAO,KAAK,OAAW,KAAe,KAAK,SAAW,OACxDA,EAAS,OAAY,cAAe,KAAK,OAAS,KAAK,OAAO,UAAU,EAAI,KAAK,QAE/E,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMtD,GAAN,MAAM4H,CAAgC,CACpC,OAAO,UAAUzE,EAAO,CACtB,IAAIC,EAAI,IAAIwE,EACZ,OAAAxE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASD,EAAM,OAAO,IAAIrH,EAAW,SAAS,GAE3CsH,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,OAAW,MACzBA,EAAS,OAAY,KAAK,QAExB,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EACMrD,GAAN,MAAM4H,CAAyC,CAC7C,OAAO,UAAU1E,EAAO,CACtB,IAAIC,EAAI,IAAIyE,EACZ,OAAAzE,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEtCA,EAAM,YACRC,EAAE,UAAYrH,EAAU,UAAUoH,EAAM,SAAS,GAE/CA,EAAM,gBACRC,EAAE,cAAgBhD,GAA4D,UAAU+C,EAAM,aAAa,GAEtGC,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,UAAc,KAAe,KAAK,YAAc,OAC9DA,EAAS,UAAe,cAAe,KAAK,UAAY,KAAK,UAAU,UAAU,EAAI,KAAK,WAExF,OAAO,KAAK,cAAkB,KAAe,KAAK,gBAAkB,OACtEA,EAAS,cAAmB,cAAe,KAAK,cAAgB,KAAK,cAAc,UAAU,EAAI,KAAK,eAEpG,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE5BA,CACT,CACF,EACMpD,GAAN,MAAM4H,CAA0C,CAC9C,OAAO,UAAU3E,EAAO,CACtB,IAAIC,EAAI,IAAI0E,EACZ,OAAA1E,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,iBACRC,EAAE,eAAiB/C,EAAsB,UAAU8C,EAAM,cAAc,GAErEA,EAAM,OACRC,EAAE,KAAOD,EAAM,KAAK,IAAI9D,GAAe,SAAS,GAE3C+D,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,gBAEvG,OAAO,KAAK,KAAS,KAAe,KAAK,OAAS,OACpDA,EAAS,KAAU,cAAe,KAAK,KAAO,KAAK,KAAK,UAAU,EAAI,KAAK,MAEtEA,CACT,CACF,EAmGMnD,GAAN,MAAM4H,CAAoB,CACxB,OAAO,UAAU5E,EAAO,CACtB,IAAIC,EAAI,IAAI2E,EACZ,OAAA3E,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAW,SAASD,EAAM,SAAU,EAAE,GAEnCC,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,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACMlD,GAAN,MAAM4H,CAA4D,CAChE,OAAO,UAAU7E,EAAO,CACtB,IAAIC,EAAI,IAAI4E,EACZ,OAAA5E,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAW,SAASD,EAAM,SAAU,EAAE,GAEnCC,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,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACMjD,EAAN,MAAM4H,CAAsB,CAC1B,OAAO,UAAU9E,EAAO,CACtB,IAAIC,EAAI,IAAI6E,EACZ,OAAA7E,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,eACRC,EAAE,aAAe,SAASD,EAAM,aAAc,EAAE,GAE3CC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE3BA,CACT,CACF,EA2BMhD,GAAN,MAAM4H,CAAwB,CAC5B,OAAO,UAAU/E,EAAO,CACtB,IAAIC,EAAI,IAAI8E,EACZ,OAAA9E,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACM/C,GAAN,MAAM4H,CAAwB,CAC5B,OAAO,UAAUhF,EAAO,CACtB,IAAIC,EAAI,IAAI+E,EACZ,OAAA/E,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,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE3BA,CACT,CACF,EACM9C,GAAN,MAAM4H,CAAqB,CACzB,OAAO,UAAUjF,EAAO,CACtB,IAAIC,EAAI,IAAIgF,EACZ,OAAAhF,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,WACRC,EAAE,SAAWlH,EAAa,UAAUiH,EAAM,QAAQ,GAEhDA,EAAM,iBACRC,EAAE,eAAiBnC,EAAO,UAAUkC,EAAM,cAAc,GAEnDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,yBAA6B,MAC3CA,EAAS,yBAA8B,KAAK,0BAE1C,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,kBAAsB,MACpCA,EAAS,kBAAuB,KAAK,mBAEnC,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,gBAEpGA,CACT,CACF,EACM7C,GAAN,MAAM4H,CAAsB,CAC1B,OAAO,UAAUlF,EAAO,CACtB,IAAIC,EAAI,IAAIiF,EACZ,OAAAjF,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,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EAkDM5C,EAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAUnF,EAAO,CACtB,IAAIC,EAAI,IAAIkF,EACZ,OAAAlF,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAE1B,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAE7BA,CACT,CACF,EAuKM3C,GAAN,MAAM4H,CAAY,CAChB,OAAO,UAAUpF,EAAO,CACtB,IAAIC,EAAI,IAAImF,EACZ,OAAAnF,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQlH,EAAa,UAAUiH,EAAM,KAAK,GAEvCC,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,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACM1C,GAAN,MAAM4H,CAAa,CACjB,OAAO,UAAUrF,EAAO,CACtB,IAAIC,EAAI,IAAIoF,EACZ,OAAApF,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EACMzC,GAAN,MAAM4H,CAAc,CAClB,OAAO,UAAUtF,EAAO,CACtB,IAAIC,EAAI,IAAIqF,EACZ,OAAArF,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQjH,GAAe,UAAUgH,EAAM,KAAK,GAEzCC,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,MACxBA,EAAS,MAAW,KAAK,OAEvB,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACMxC,GAAN,MAAM4H,CAAe,CACnB,OAAO,UAAUvF,EAAO,CACtB,IAAIC,EAAI,IAAIsF,EACZ,OAAAtF,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EA8DMvC,GAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAUxF,EAAO,CACtB,IAAIC,EAAI,IAAIuF,EACZ,OAAAvF,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,QACRC,EAAE,MAAQhH,GAA6B,UAAU+G,EAAM,KAAK,GAEvDC,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,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,aAAiB,MAC/BA,EAAS,aAAkB,KAAK,cAE9B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE5BA,CACT,CACF,EACMtC,GAAN,MAAM4H,CAA6B,CACjC,OAAO,UAAUzF,EAAO,CACtB,IAAIC,EAAI,IAAIwF,EACZ,OAAAxF,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEzB,OAAO,KAAK,iBAAqB,MACnCA,EAAS,iBAAsB,KAAK,kBAE/BA,CACT,CACF,EACMrC,EAAN,MAAM4H,CAAO,CACX,OAAO,UAAU1F,EAAO,CACtB,IAAIC,EAAI,IAAIyF,EACZ,OAAAzF,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,OACRC,EAAE,KAAOjI,EAAkBU,EAAYsH,EAAM,IAAI,GAE5CC,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,GAAO,MACrBA,EAAS,GAAQ,KAAK,IAEjBA,CACT,CACF,EACMpC,GAAN,MAAM4H,CAAa,CACjB,OAAO,UAAU3F,EAAO,CACtB,IAAIC,EAAI,IAAI0F,EACZ,OAAA1F,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,UACRC,EAAE,QAAUtE,EAAwC,UAAUqE,EAAM,OAAO,GAEtEC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAEhC,OAAO,KAAK,UAAc,MAC5BA,EAAS,UAAe,KAAK,WAE3B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,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,WAExBA,CACT,CACF,EACMnC,GAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAU5F,EAAO,CACtB,IAAIC,EAAI,IAAI2F,EACZ,OAAA3F,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,QAAY,MAC1BA,EAAS,QAAa,KAAK,SAEtBA,CACT,CACF,EAiCMlC,GAAN,MAAM4H,CAAyB,CAC7B,OAAO,UAAU7F,EAAO,CACtB,IAAIC,EAAI,IAAI4F,EACZ,OAAA5F,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASvG,EAAa,UAAUsG,EAAM,MAAM,GAEzCC,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,eAAmB,MACjCA,EAAS,eAAoB,KAAK,gBAE7BA,CACT,CACF,EA2BMjC,GAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAU9F,EAAO,CACtB,IAAIC,EAAI,IAAI6F,EACZ,OAAA7F,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,IAAQ,MACtBA,EAAS,IAAS,KAAK,KAErB,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE5BA,CACT,CACF,EACMhC,GAAN,MAAM4H,CAA2B,CAC/B,OAAO,UAAU/F,EAAO,CACtB,IAAIC,EAAI,IAAI8F,EACZ,OAAA9F,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEnCC,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,EACM/B,GAAN,MAAM4H,CAA4B,CAChC,OAAO,UAAUhG,EAAO,CACtB,IAAIC,EAAI,IAAI+F,EACZ,OAAA/F,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAI9B,GAA4B,SAAS,GAEpE+B,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAExFA,CACT,CACF,EACM9B,GAAN,MAAM4H,CAA8B,CAClC,OAAO,UAAUjG,EAAO,CACtB,IAAIC,EAAI,IAAIgG,EACZ,OAAAhG,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,SACRC,EAAE,OAASnC,EAAO,UAAUkC,EAAM,MAAM,GAEnCC,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,EACM7B,GAAN,MAAM4H,CAA+B,CACnC,OAAO,UAAUlG,EAAO,CACtB,IAAIC,EAAI,IAAIiG,EACZ,OAAAjG,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,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,OAAW,MACzBA,EAAS,OAAY,KAAK,QAErBA,CACT,CACF,EACM5B,GAAN,MAAM4H,CAAyB,CAC7B,OAAO,UAAUnG,EAAO,CACtB,IAAIC,EAAI,IAAIkG,EACZ,OAAAlG,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAEzBA,CACT,CACF,EACM3B,GAAN,MAAM4H,CAAiC,CACrC,OAAO,UAAUpG,EAAO,CACtB,IAAIC,EAAI,IAAImG,EACZ,OAAAnG,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,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,IAAQ,MACtBA,EAAS,IAAS,KAAK,KAErB,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,YAAgB,MAC9BA,EAAS,YAAiB,KAAK,aAE7B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE/B,OAAO,KAAK,cAAkB,MAChCA,EAAS,cAAmB,KAAK,eAE5BA,CACT,CACF,EACM1B,GAAN,MAAM4H,CAAgC,CACpC,OAAO,UAAUrG,EAAO,CACtB,IAAIC,EAAI,IAAIoG,EACZ,OAAApG,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAajI,EAAkBU,EAAYsH,EAAM,UAAU,GAExDC,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,WAAe,MAC7BA,EAAS,WAAgB,KAAK,YAE5B,OAAO,KAAK,SAAa,MAC3BA,EAAS,SAAc,KAAK,UAEvBA,CACT,CACF,EACMzB,GAAN,MAAM4H,CAAiC,CACrC,OAAO,UAAUtG,EAAO,CACtB,IAAIC,EAAI,IAAIqG,EACZ,OAAArG,EAAI,OAAO,OAAOA,EAAGD,CAAK,EACtBA,EAAM,aACRC,EAAE,WAAaD,EAAM,WAAW,IAAIxB,GAAiC,SAAS,GAEzEyB,CACT,CACA,YAAYC,EAAQ,CACbA,GAGL,OAAO,OAAO,KAAMA,CAAM,CAC5B,CACA,WAAY,CACV,IAAMC,EAAW,CAAC,EAClB,OAAI,OAAO,KAAK,gBAAoB,MAClCA,EAAS,gBAAqB,KAAK,iBAEjC,OAAO,KAAK,WAAe,KAAe,KAAK,aAAe,OAChEA,EAAS,WAAgB,cAAe,KAAK,WAAa,KAAK,WAAW,UAAU,EAAI,KAAK,YAExFA,CACT,CACF,EASMxB,IAAe,OAAS,OAAO,YAAiB,SAAW,OAC3DC,GAAU,CACd,MAAS,+BACT,KAAQ,GACR,KAAQ,+BACR,KAAQ,+BACR,WAAc,8BAChB,EACIC,GAA4B,IAAM,CACpC,MAAMA,CAAY,CAChB,IAAI,MAAO,CACT,OAAOD,GAAQD,GAAY,YAAY,CAAC,CAC1C,CACA,IAAI,gBAAiB,CACnB,MAAO,WAAa,KAAK,IAC3B,CACF,CACA,OAAAE,EAAY,UAAO,SAA6B0H,EAAG,CACjD,OAAO,IAAKA,GAAK1H,EACnB,EACAA,EAAY,WAA0B2H,EAAmB,CACvD,MAAO3H,EACP,QAASA,EAAY,UACrB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAWCC,IAAgC,IAAM,CACxC,MAAMA,CAAgB,CACpB,YAAY2H,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,EAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,KAAKC,EAAG,CACN,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIpJ,GAAYoJ,CAAC,EACnD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,8BAA+BC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQtJ,GAAa,UAAUsJ,CAAI,CAAC,CAAC,CAC1J,CACA,qBAAqBH,EAAG,CACtB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIhJ,GAA4BgJ,CAAC,EACnE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,8CAA+CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQlJ,GAA6B,UAAUkJ,CAAI,CAAC,CAAC,CAC1L,CACA,OAAOH,EAAG,CACR,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIlJ,GAAckJ,CAAC,EACrD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gCAAiCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQpJ,GAAe,UAAUoJ,CAAI,CAAC,CAAC,CAC9J,CACA,KAAKH,EAAG,CACN,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIlK,GAAkBkK,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,8BAA+BC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQpK,GAAmB,UAAUoK,CAAI,CAAC,CAAC,CAChK,CACA,qBAAqBH,EAAG,CACtB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI3L,EAA4B2L,CAAC,EACnE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,8CAA+CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ7L,GAA6B,UAAU6L,CAAI,CAAC,CAAC,CAC1L,CACA,qBAAqBH,EAAG,CACtB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI5I,GAA4B4I,CAAC,EACnE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,8CAA+CC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GAClG,KAAK,WAAW,GADkF,CAErG,QAAS,UACX,EAAC,CACH,CACA,eAAeL,EAAG,CAChB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI7L,EAAsB6L,CAAC,EAC7D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,wCAAyCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ/L,EAAuB,UAAU+L,CAAI,CAAC,CAAC,CAC9K,CACA,kBAAkBH,EAAG,CACnB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI/M,EAAyB+M,CAAC,EAChE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,2CAA4CC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GAC/F,KAAK,WAAW,GAD+E,CAElG,QAAS,UACX,EAAC,CACH,CACA,4BAA4BL,EAAG,CAC7B,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI9M,EAAmC8M,CAAC,EAC1E,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,qDAAsDC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GACzG,KAAK,WAAW,GADyF,CAE5G,QAAS,UACX,EAAC,CACH,CACA,kBAAkBL,EAAG,CACnB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIrI,GAAyBqI,CAAC,EAChE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,2CAA4CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ/L,EAAuB,UAAU+L,CAAI,CAAC,CAAC,CACjL,CACA,kBAAkBH,EAAG,CACnB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI5M,GAAyB4M,CAAC,EAChE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,2CAA4CC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GAC/F,KAAK,WAAW,GAD+E,CAElG,QAAS,UACX,EAAC,CACH,CACA,kBAAkBL,EAAG,CACnB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIjN,EAAyBiN,CAAC,EAChE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,2CAA4CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQnN,GAA0B,UAAUmN,CAAI,CAAC,CAAC,CACpL,CACA,sBAAsBH,EAAG,CACvB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAInL,EAA6BmL,CAAC,EACpE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,+CAAgDC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQrL,EAA8B,UAAUqL,CAAI,CAAC,CAAC,CAC5L,CACA,yBAAyBH,EAAG,CAC1B,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAInI,GAAgCmI,CAAC,EACvE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kDAAmDC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQrI,GAAiC,UAAUqI,CAAI,CAAC,CAAC,CAClM,CACA,yBAAyBH,EAAG,CAC1B,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI3M,GAAgC2M,CAAC,EACvE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kDAAmDC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GACtG,KAAK,WAAW,GADsF,CAEzG,QAAS,UACX,EAAC,CACH,CACF,CACA,OAAAnI,EAAgB,UAAO,SAAiCyH,EAAG,CACzD,OAAO,IAAKA,GAAKzH,GAAoBoI,EAAYC,CAAU,EAAMD,EAASrI,CAAW,CAAC,CACxF,EACAC,EAAgB,WAA0B0H,EAAmB,CAC3D,MAAO1H,EACP,QAASA,EAAgB,UACzB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAWCC,IAAgC,IAAM,CACxC,MAAMA,CAAgB,CACpB,YAAY0H,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,EAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,qBAAqBC,EAAG,CACtB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAInN,EAAiCmN,CAAC,EACxE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,uCAAwCC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GAC3F,KAAK,WAAW,GAD2E,CAE9F,QAAS,UACX,EAAC,CACH,CACA,cAAcL,EAAG,CACf,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIvJ,GAAqBuJ,CAAC,EAC5D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gCAAiCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQzJ,GAAsB,UAAUyJ,CAAI,CAAC,CAAC,CACrK,CACA,qBAAqBH,EAAG,CACtB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIrJ,EAA4BqJ,CAAC,EACnE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,uCAAwCC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GAC3F,KAAK,WAAW,GAD2E,CAE9F,QAAS,UACX,EAAC,CACH,CACA,yBAAyBL,EAAG,CAC1B,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI9K,EAAgC8K,CAAC,EACvE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,2CAA4CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhL,GAAiC,UAAUgL,CAAI,CAAC,CAAC,CAC3L,CACA,4BAA4BH,EAAG,CAC7B,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI3K,GAAmC2K,CAAC,EAC1E,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,8CAA+CC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GAClG,KAAK,WAAW,GADkF,CAErG,QAAS,UACX,EAAC,CACH,CACA,2BAA2BL,EAAG,CAC5B,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI5K,GAAkC4K,CAAC,EACzE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,6CAA8CC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GACjG,KAAK,WAAW,GADiF,CAEpG,QAAS,UACX,EAAC,CACH,CACA,oBAAoBL,EAAG,CACrB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIjM,EAA2BiM,CAAC,EAClE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,sCAAuCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQnM,GAA4B,UAAUmM,CAAI,CAAC,CAAC,CACjL,CACA,kBAAkBH,EAAG,CACnB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI3I,GAAyB2I,CAAC,EAChE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,oCAAqCC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GACxF,KAAK,WAAW,GADwE,CAE3F,QAAS,UACX,EAAC,CACH,CACF,CACA,OAAAlI,EAAgB,UAAO,SAAiCwH,EAAG,CACzD,OAAO,IAAKA,GAAKxH,GAAoBmI,EAAYC,CAAU,EAAMD,EAASrI,CAAW,CAAC,CACxF,EACAE,EAAgB,WAA0ByH,EAAmB,CAC3D,MAAOzH,EACP,QAASA,EAAgB,UACzB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAICC,IAA6B,IAAM,CACrC,MAAMA,CAAa,CACjB,YAAYoI,EAAK,CACf,KAAK,IAAMA,CACb,CACA,qBAAqBC,EAAS,CAC5B,IAAIC,EAAa7O,EAAiB,2BAC7B4O,IACHC,EAAa7O,EAAiB,6BAEhC,IAAM8O,EAAM,IAAI9N,EAAiC,CAC/C,OAAQ6N,CACV,CAAC,EACD,OAAO,KAAK,IAAI,qBAAqBC,CAAG,CAC1C,CACA,mCAAmCC,EAAWC,EAAgB,CAC5D,IAAMF,EAAM,IAAIzL,EAAgC,CAC9C,SAAU0L,EACV,WAAY9O,EAAW,oBACvB,eAAgB+O,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,yBAAyBF,CAAG,CAC9C,CACA,oCAAoCE,EAAgB,CAClD,IAAMF,EAAM,IAAIzL,EAAgC,CAC9C,WAAYpD,EAAW,qBACvB,eAAgB+O,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,yBAAyBF,CAAG,CAC9C,CACA,mCAAmCE,EAAgB,CACjD,IAAMF,EAAM,IAAIzL,EAAgC,CAC9C,WAAYpD,EAAW,oBACvB,eAAgB+O,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,yBAAyBF,CAAG,CAC9C,CACA,oBAAoBG,EAAQD,EAAgB,CAC1C,IAAMF,EAAM,IAAI5M,EAA2B,CACzC,OAAQ+M,EACR,eAAgBD,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,oBAAoBF,CAAG,CACzC,CACA,kBAAkBG,EAAQD,EAAgB,CACxC,IAAMF,EAAM,IAAItJ,GAAyB,CACvC,OAAQyJ,EACR,eAAgBD,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,kBAAkBF,CAAG,CACvC,CACA,+BAA+BC,EAAWC,EAAgB,CACxD,IAAMF,EAAM,IAAIhK,EAA4B,CAC1C,SAAUiK,EACV,WAAY9O,EAAW,oBACvB,eAAgB+O,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,qBAAqBF,CAAG,CAC1C,CACA,gCAAgCE,EAAgB,CAC9C,IAAMF,EAAM,IAAIhK,EAA4B,CAC1C,WAAY7E,EAAW,qBACvB,eAAgB+O,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,qBAAqBF,CAAG,CAC1C,CACA,+BAA+BE,EAAgB,CAC7C,IAAMF,EAAM,IAAIhK,EAA4B,CAC1C,WAAY7E,EAAW,oBACvB,eAAgB+O,CAClB,CAAC,EACD,OAAO,KAAK,IAAI,qBAAqBF,CAAG,CAC1C,CACF,CACA,OAAAvI,EAAa,UAAO,SAA8BuH,EAAG,CACnD,OAAO,IAAKA,GAAKvH,GAAiBkI,EAASnI,EAAe,CAAC,CAC7D,EACAC,EAAa,WAA0BwH,EAAmB,CACxD,MAAOxH,EACP,QAASA,EAAa,UACtB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAICC,IAA6B,IAAM,CACrC,MAAMA,CAAa,CACjB,YAAYmI,EAAKO,EAAO,CACtB,KAAK,IAAMP,EACX,KAAK,MAAQO,CACf,CACA,kBAAkBC,EAAWC,EAAeC,EAAYC,EAAQC,EAAS,GAAI,CAC3E,IAAMT,EAAM1N,EAAyB,UAAU,CAC7C,UAAW+N,EACX,cAAeC,EACf,WAAYC,EACZ,OAAQC,EACR,OAAQC,CACV,CAAC,EACD,OAAO,KAAK,IAAI,kBAAkBT,CAAG,CACvC,CACA,4BAA4BK,EAAWC,EAAeC,EAAYC,EAAQE,EAAaC,EAAY,CACjG,IAAMX,EAAMzN,EAAmC,UAAU,CACvD,UAAW8N,EACX,cAAeC,EACf,WAAYC,EACZ,OAAQC,EACR,YAAaE,EACb,WAAYC,CACd,CAAC,EACD,OAAO,KAAK,IAAI,4BAA4BX,CAAG,CACjD,CACA,eAAeK,EAAWC,EAAeC,EAAY,CACnD,IAAMP,EAAMxM,EAAsB,UAAU,CAC1C,UAAW6M,EACX,cAAeC,EACf,WAAYC,CACd,CAAC,EACD,OAAO,KAAK,IAAI,eAAeP,CAAG,EAAE,KAAKT,EAAIF,GAAKA,EAAE,MAAM,CAAC,CAC7D,CACA,kBAAkBgB,EAAWC,EAAeC,EAAY,CACtD,IAAMP,EAAMhJ,GAAyB,UAAU,CAC7C,UAAWqJ,EACX,cAAeC,EACf,WAAYC,CACd,CAAC,EACD,OAAO,KAAK,IAAI,kBAAkBP,CAAG,EAAE,KAAKT,EAAIF,GAAKA,EAAE,MAAM,CAAC,CAChE,CACA,WAAWuB,EAAYC,EAASC,EAAe,CAC7C,OAAO,KAAK,IAAI,KAAK,CACnB,WAAYF,EACZ,cAAeE,EACf,QAASD,CACX,CAAC,CACH,CACA,sBAAuB,CACrB,IAAMb,EAAMtM,EAA4B,UAAU,CAAC,CAAC,EACpD,OAAO,KAAK,IAAI,qBAAqBsM,CAAG,EAAE,KAAKT,EAAIF,GAAKA,EAAE,OAAO,CAAC,CACpE,CAIA,qBAAqBS,EAAS,CAC5B,OAAO,KAAK,MAAM,qBAAqBA,CAAO,CAChD,CACF,CACA,OAAApI,EAAa,UAAO,SAA8BsH,EAAG,CACnD,OAAO,IAAKA,GAAKtH,GAAiBiI,EAASpI,EAAe,EAAMoI,EAASlI,EAAY,CAAC,CACxF,EACAC,EAAa,WAA0BuH,EAAmB,CACxD,MAAOvH,EACP,QAASA,EAAa,UACtB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAWCC,IAAqC,IAAM,CAC7C,MAAMA,CAAqB,CACzB,YAAYuH,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,EAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,KAAKC,EAAG,CACN,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIrK,GAAuBqK,CAAC,EAC9D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,mCAAoCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQvK,GAAwB,UAAUuK,CAAI,CAAC,CAAC,CAC1K,CACA,qBAAqBH,EAAG,CACtB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIvL,EAA4BuL,CAAC,EACnE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,mDAAoDC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQzL,GAA6B,UAAUyL,CAAI,CAAC,CAAC,CAC/L,CACA,kBAAkBH,EAAG,CACnB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIhK,GAA+BgK,CAAC,EACtE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gDAAiDC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQlK,GAAgC,UAAUkK,CAAI,CAAC,CAAC,CAC/L,CACA,uBAAuBH,EAAG,CACxB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAInM,GAA8BmM,CAAC,EACrE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,qDAAsDC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQrM,GAA+B,UAAUqM,CAAI,CAAC,CAAC,CACnM,CACA,2BAA2BH,EAAG,CAC5B,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIrM,GAAkCqM,CAAC,EACzE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,yDAA0DC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQvM,GAAmC,UAAUuM,CAAI,CAAC,CAAC,CAC3M,CACA,kCAAkCH,EAAG,CACnC,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI9J,GAAyC8J,CAAC,EAChF,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,gEAAiEC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQhK,GAA0C,UAAUgK,CAAI,CAAC,CAAC,CACzN,CACA,+BAA+BH,EAAG,CAChC,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAItM,GAAsCsM,CAAC,EAC7E,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,6DAA8DC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GACjH,KAAK,WAAW,GADiG,CAEpH,QAAS,UACX,EAAC,CACH,CACF,CACA,OAAA/H,EAAqB,UAAO,SAAsCqH,EAAG,CACnE,OAAO,IAAKA,GAAKrH,GAAyBgI,EAAYC,CAAU,EAAMD,EAASrI,CAAW,CAAC,CAC7F,EACAK,EAAqB,WAA0BsH,EAAmB,CAChE,MAAOtH,EACP,QAASA,EAAqB,UAC9B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EA8DCC,IAAiC,IAAM,CACzC,MAAMA,CAAiB,CACrB,YAAYsH,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,EAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,oBAAoBC,EAAG,CACrB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI7M,GAA2B6M,CAAC,EAClE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,uCAAwCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQrL,EAA8B,UAAUqL,CAAI,CAAC,CAAC,CACpL,CACA,eAAeH,EAAG,CAChB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIxK,EAAsBwK,CAAC,EAC7D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kCAAmCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ1K,GAAuB,UAAU0K,CAAI,CAAC,CAAC,CACxK,CACA,iBAAiBH,EAAG,CAClB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAI/L,EAAwB+L,CAAC,EAC/D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,oCAAqCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQjM,GAAyB,UAAUiM,CAAI,CAAC,CAAC,CAC5K,CACA,oBAAoBH,EAAG,CACrB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIzI,GAA2ByI,CAAC,EAClE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,uCAAwCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ3I,GAA4B,UAAU2I,CAAI,CAAC,CAAC,CAClL,CACA,uBAAuBH,EAAG,CACxB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIvI,GAA8BuI,CAAC,EACrE,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,0CAA2CC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQzI,GAA+B,UAAUyI,CAAI,CAAC,CAAC,CACxL,CACF,CACA,OAAA5H,EAAiB,UAAO,SAAkCoH,EAAG,CAC3D,OAAO,IAAKA,GAAKpH,GAAqB+H,EAAYC,CAAU,EAAMD,EAASrI,CAAW,CAAC,CACzF,EACAM,EAAiB,WAA0BqH,EAAmB,CAC5D,MAAOrH,EACP,QAASA,EAAiB,UAC1B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAsICC,IAAkC,IAAM,CAC1C,MAAMA,CAAkB,CACtB,YAAYqH,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,EAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,WAAWC,EAAG,CACZ,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIzL,GAAkByL,CAAC,EACzD,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,+BAAgCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQ3L,GAAmB,UAAU2L,CAAI,CAAC,CAAC,CACjK,CACA,gBAAgBH,EAAG,CACjB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIrL,GAAuBqL,CAAC,EAC9D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,oCAAqCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQvL,GAAwB,UAAUuL,CAAI,CAAC,CAAC,CAC3K,CACF,CACA,OAAA3H,EAAkB,UAAO,SAAmCmH,EAAG,CAC7D,OAAO,IAAKA,GAAKnH,GAAsB8H,EAAYC,CAAU,EAAMD,EAASrI,CAAW,CAAC,CAC1F,EACAO,EAAkB,WAA0BoH,EAAmB,CAC7D,MAAOpH,EACP,QAASA,EAAkB,UAC3B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAsQCC,IAAkC,IAAM,CAC1C,MAAMA,CAAkB,CACtB,YAAYoH,EAAMC,EAAa,CAC7B,KAAK,KAAOD,EACZ,KAAK,YAAcC,EACnB,KAAK,MAAQ,KAAK,YAAY,cAChC,CACA,YAAa,CACX,MAAO,CACL,QAAS,IAAIC,EAAY,CACvB,eAAgB,kBAClB,CAAC,EACD,gBAAiB,EACnB,CACF,CACA,cAAcC,EAAG,CACf,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIhL,GAAqBgL,CAAC,EAC5D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,kCAAmCC,EAAQ,UAAU,EAAG,KAAK,WAAW,CAAC,EAAE,KAAKC,EAAIC,GAAQlL,GAAsB,UAAUkL,CAAI,CAAC,CAAC,CACvK,CACA,iBAAiBH,EAAG,CAClB,IAAMC,EAAUD,EAAE,UAAYA,EAAI,IAAIzJ,GAAwByJ,CAAC,EAC/D,OAAO,KAAK,KAAK,KAAK,KAAK,MAAQ,qCAAsCC,EAAQ,UAAU,EAAGG,EAAAC,EAAA,GACzF,KAAK,WAAW,GADyE,CAE5F,QAAS,UACX,EAAC,CACH,CACF,CACA,OAAA5H,EAAkB,UAAO,SAAmCkH,EAAG,CAC7D,OAAO,IAAKA,GAAKlH,GAAsB6H,EAAYC,CAAU,EAAMD,EAASrI,CAAW,CAAC,CAC1F,EACAQ,EAAkB,WAA0BmH,EAAmB,CAC7D,MAAOnH,EACP,QAASA,EAAkB,UAC3B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EA6DCC,IAAkC,IAAM,CAC1C,MAAMA,CAAkB,CACtB,YAAY8H,EAAK,CACf,KAAK,IAAMA,CACb,CAeA,gBAAgBkB,EAASC,EAAWX,EAAWY,EAAUC,EAAmBC,EAAY,CACtF,GAAI,CAACJ,GAAW,CAACA,EAAQ,OACvB,MAAM,IAAIK,GAAkB,CAC1B,OAAQ,IACR,WAAY,qCACd,CAAC,EAEH,IAAMpB,EAAM,IAAIlM,EAA4B,CAC1C,QAASiN,EACT,OAAQ,IAAInO,EAAiB,CAC3B,UAAWoO,EACX,UAAWX,EACX,SAAUY,EACV,kBAAmBC,EACnB,WAAYC,CACd,CAAC,CACH,CAAC,EACD,OAAO,KAAK,IAAI,qBAAqBnB,CAAG,EAAE,KAAKT,EAAIC,KAASA,IAAQ,CAClE,aAAc,IAChB,GAAG,YAAY,CAAC,CAClB,CACA,WAAW6B,EAASP,EAAeT,EAAWE,EAAY,CACxD,IAAMM,EAAU,IAAI9L,EAA6C,CAC/D,QAASsM,EACT,UAAWhB,EACX,WAAYE,CACd,CAAC,EACD,OAAO,KAAK,IAAI,KAAK,CACnB,QAAAM,EACA,cAAAC,CACF,CAAC,CACH,CACA,uBAAuBX,EAAQmB,EAAW,CACxC,OAAO,KAAK,IAAI,uBAAuB,CACrC,OAAQnB,EACR,UAAWmB,CACb,CAAC,CACH,CACA,2BAA2BnB,EAAQmB,EAAW,CAC5C,OAAO,KAAK,IAAI,2BAA2B,CACzC,OAAQnB,EACR,UAAWmB,CACb,CAAC,CACH,CACA,uBAAuBnB,EAAQmB,EAAWH,EAAYI,EAAQC,EAAU,CACtE,OAAO,KAAK,IAAI,kBAAkB,CAChC,OAAQrB,EACR,UAAWmB,EACX,WAAYH,EACZ,OAAQI,EACR,SAAUC,CACZ,CAAC,CACH,CACA,kCAAkCrB,EAAQmB,EAAWG,EAAeF,EAAQC,EAAU,CACpF,OAAO,KAAK,IAAI,kCAAkC,CAChD,OAAQrB,EACR,UAAWmB,EACX,cAAeG,EACf,cAAe,CACb,OAAQF,EACR,SAAUC,CACZ,CACF,CAAC,CACH,CACA,+BAA+BrB,EAAQmB,EAAWI,EAAejB,EAAQ,CACvE,OAAO,KAAK,IAAI,+BAA+B,CAC7C,OAAQN,EACR,UAAWmB,EACX,cAAeI,EACf,OAAQjB,CACV,CAAC,CACH,CACF,CACA,OAAA1I,EAAkB,UAAO,SAAmCiH,EAAG,CAC7D,OAAO,IAAKA,GAAKjH,GAAsB4H,EAAShI,EAAoB,CAAC,CACvE,EACAI,EAAkB,WAA0BkH,EAAmB,CAC7D,MAAOlH,EACP,QAASA,EAAkB,UAC3B,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAqDCC,IAA8B,IAAM,CACtC,MAAMA,CAAc,CAClB,YAAY6H,EAAKW,EAAQ,CACvB,KAAK,IAAMX,EACX,KAAK,OAASW,CAChB,CACA,OAAOH,EAAWsB,EAAOpB,EAAY,CACnC,IAAMP,EAAM,CACV,UAAWK,EACX,cAAesB,EACf,WAAYpB,CACd,EACMqB,EAAa,KAAK,IAAI,kBAAkB5B,CAAG,EAAE,KAAK6B,GAAM,IAAI,EAAGC,GAAY,CAAC,CAAC,EACnF,OAAAF,EAAW,UAAU,EACdA,CACT,CAWA,iBAAiB3B,EAAW8B,EAAWC,EAAkBL,EAAOM,EAASC,EAAiB,CACxF,OAAO,KAAK,gBAAgB/Q,EAAW,oBAAqB8O,EAAW8B,EAAWC,EAAkBC,EAASC,CAAe,CAC9H,CAWA,gBAAgBC,EAAYC,EAAUL,EAAWC,EAAkBC,EAASC,EAAiB,CAC3F,IAAMlC,EAAM,IAAI5N,EAAyB,CACvC,WAAY+P,EACZ,SAAUC,EACV,eAAgBL,EAChB,iBAAkBC,EAClB,aAAcC,EACd,aAAcC,CAChB,CAAC,EACD,OAAO,KAAK,IAAI,kBAAkBlC,CAAG,EAAE,KAAKT,EAAI/E,IAAKA,GAAE,MAAM,CAAC,CAChE,CACA,oBAAoB2H,EAAYE,EAAU7B,EAAQ,CAChD,OAAO,KAAK,OAAO,oBAAoB,CACrC,OAAQ,IAAIjK,EAAO,CACjB,KAAM4L,EACN,GAAIE,CACN,CAAC,EACD,OAAQ7B,CACV,CAAC,CACH,CACA,oBAAoB2B,EAAYE,EAAU7B,EAAQ,CAChD,OAAO,KAAK,IAAI,yBAAyB,CACvC,WAAY2B,EACZ,SAAUE,EACV,OAAQ7B,CACV,CAAC,EAAE,KAAKjB,EAAI,IAAM,IAAI,CAAC,CACzB,CAMA,sBAAsB4C,EAAYC,EAAU,CAC1C,IAAMpC,EAAM,IAAI9L,EAA6B,CAC3C,WAAYiO,EACZ,SAAUC,CACZ,CAAC,EACD,OAAO,KAAK,IAAI,sBAAsBpC,CAAG,CAC3C,CACA,oBAAoBmC,EAAYC,EAAU,CACxC,IAAMpC,EAAM,IAAI9I,GAAgC,CAC9C,WAAYiL,EACZ,SAAUC,CACZ,CAAC,EACD,OAAO,KAAK,IAAI,yBAAyBpC,CAAG,EAAE,KAAKT,EAAI/E,IACrDA,EAAE,gBAAkB,EAAQA,EAAE,gBAC9BA,EAAE,WAAaA,EAAE,YAAc,CAAC,EACzBA,EACR,CAAC,CACJ,CACA,oBAAoB2H,EAAYE,EAAU,CACxC,IAAMrC,EAAM,IAAIpJ,GAA2B,CACzC,OAAQ,CACN,KAAMuL,EACN,GAAIE,CACN,CACF,CAAC,EACD,OAAO,KAAK,OAAO,oBAAoBrC,CAAG,EAAE,KAAKT,EAAI/E,IAAM,CACzD,gBAAiB,EAAQA,EAAE,gBAC3B,WAAYA,EAAE,YAAc,CAAC,CAC/B,EAAE,CAAC,CACL,CACA,eAAe2H,EAAYC,EAAU,CACnC,IAAMpC,EAAM,IAAInL,EAAsB,CACpC,OAAQ,CACN,KAAMsN,EACN,GAAIC,CACN,CACF,CAAC,EACD,OAAO,KAAK,OAAO,eAAepC,CAAG,EAAE,KAAKT,EAAI/E,IAC9CA,EAAE,QAAUA,EAAE,SAAW,CAAC,EACnBA,EACR,CAAC,CACJ,CACA,iBAAiB2H,EAAY,CAC3B,IAAMnC,EAAM,IAAI1M,EAAwB,CACtC,WAAY6O,CACd,CAAC,EACD,OAAO,KAAK,OAAO,iBAAiBnC,CAAG,CACzC,CACA,YAAYG,EAAQ,CAClB,IAAMH,EAAM,IAAIlJ,GAA8B,CAC5C,OAAQqJ,CACV,CAAC,EACD,OAAO,KAAK,OAAO,uBAAuBH,CAAG,CAC/C,CACF,CACA,OAAAhI,EAAc,UAAO,SAA+BgH,EAAG,CACrD,OAAO,IAAKA,GAAKhH,GAAkB2H,EAASpI,EAAe,EAAMoI,EAAS/H,EAAgB,CAAC,CAC7F,EACAI,EAAc,WAA0BiH,EAAmB,CACzD,MAAOjH,EACP,QAASA,EAAc,UACvB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EAICC,IAA+B,IAAM,CACvC,MAAMA,CAAe,CACnB,YAAYqK,EAAU,CACpB,KAAK,SAAWA,CAClB,CACA,WAAWC,EAAS,CAClB,IAAMvC,EAAM,CACV,QAASuC,CACX,EACA,OAAO,KAAK,SAAS,WAAWvC,CAAG,EAAE,KAAKT,EAAI/E,GAAKA,EAAE,OAAO,CAAC,CAC/D,CACF,CACA,OAAAvC,EAAe,UAAO,SAAgC+G,EAAG,CACvD,OAAO,IAAKA,GAAK/G,GAAmB0H,EAAS9H,EAAiB,CAAC,CACjE,EACAI,EAAe,WAA0BgH,EAAmB,CAC1D,MAAOhH,EACP,QAASA,EAAe,UACxB,WAAY,MACd,CAAC,EACMA,CACT,GAAG,EA0HCC,IAA+B,IAAM,CACvC,MAAMA,CAAe,CACnB,YAAYsK,EAAS,CACnB,KAAK,QAAUA,CACjB,CACA,oBAAoBL,EAAYE,EAAU,CACxC,IAAMrC,EAAM,CACV,OAAQ,CACN,KAAMmC,EACN,GAAIE,CACN,CACF,EACA,OAAO,KAAK,QAAQ,cAAcrC,CAAG,CACvC,CACF,CACA,OAAA9H,EAAe,UAAO,SAAgC8G,EAAG,CACvD,OAAO,IAAKA,GAAK9G,GAAmByH,EAAS7H,EAAiB,CAAC,CACjE,EACAI,EAAe,WAA0B+G,EAAmB,CAC1D,MAAO/G,EACP,QAASA,EAAe,UACxB,WAAY,MACd,CAAC,EACMA,CACT,GAAG","names":["enumStringToValue$4","enumRef","value","enumStringToValue$3","enumStringToValue","DateRange","EmailDomain","Record","EventType","NotificationType","ContentContentType","BounceSenderType","ChangeEmailDomainStatus","EmailQueueStatus","SenderType","EmailEvent","Attribute","Bucket","Content","EmailMessage","EmailMessageV2","EmailWithCustomDomainMessage","GCSAttachment","Header","Links","Participant","ServiceProviderInfo","URLAttachment","UserParticipant","AdminSetEmailQueuesStatusRequest","BounceSender","ChangeEmailDomainRequest","ChangeEmailDomainResponse","CreateEmailDomainRequest","CreateEmailDomainWithSendAsRequest","CreatePendingDomainRequest","DeleteEmailDomainRequest","DeletePendingEmailDomainRequest","EmailEventBucket","EmailEventFilter","EmailEventBucketEventRollup","GetAttributeEventStatsResponseEventStats","ExportAttributeEventClickStatsRequest","GetAttributeEventLinkStatsRequest","GetAttributeEventLinkStatsResponse","GetAttributeEventStatsRequest","GetAttributeEventStatsResponse","GetBouncedRecipientRequest","GetBouncedRecipientResponse","GetDefaultDomainRequest","GetDefaultDomainResponse","GetEmailDomainRequest","GetEmailDomainResponse","GetEmailQueuesStatusRequest","GetEmailQueuesStatusResponse","GetMessageRequest","GetMessageResponse","GetMultiEmailRollupsRequest","GetMultiEmailRollupsResponse","GetMultiMessageRequest","GetMultiMessageResponse","GetPendingEmailDomainRequest","GetPendingEmailDomainResponse","GetPendingEmailDomainTargetCNameRecords","GetSenderInfoRequest","GetSenderInfoResponse","GetUnsubscribedRecipientRequest","GetUnsubscribedRecipientResponse","InitiateEmailDomainRectifyRequest","InitiateEmailDomainRollbackRequest","LinkClickStats","LinkStats","ListAllDomainsRequest","ListAllDomainsResponse","ListEmailEventsRequestListEmailEventsFilters","ListEmailEventsRequest","ListEmailEventsResponse","ListEmailsRequestListEmailsFilters","ListEmailsRequest","ListEmailsResponse","ListEventsForAttributesRequest","ListEventsForAttributesResponse","ListLinkClickActivityForAttributeRequest","ListLinkClickActivityForAttributeResponse","PagedRequestOptions","ListLinkClickActivityForAttributeRequestPagedRequestOptions","PagedResponseMetadata","QuarantineSenderRequest","LinkClickStatsRecipient","RedirectEmailRequest","RedirectEmailResponse","ResubscribeRecipientRequest","SendRequest","SendResponse","SendV2Request","SendV2Response","SendWithCustomDomainRequest","SendWithCustomDomainResponse","Sender","SenderDomain","SetEmailQueuesStatusRequest","UnbounceRecipientRequest","VerifyDefaultDomainMismatch","VerifyDefaultDomainRequest","VerifyDefaultDomainResponse","VerifyEmailDomainDMARCRequest","VerifyEmailDomainDMARCResponse","VerifyEmailDomainRequest","VerifyPendingEmailDomainMismatch","VerifyPendingEmailDomainRequest","VerifyPendingEmailDomainResponse","environment","hostMap","HostService","EmailApiService","AdminApiService","AdminService","EmailService","EmailEventApiService","DomainApiService","MessageApiService","SendersApiService","EmailEventService","DomainService","MessageService","SendersService","init_vendasta_email","__esmMin","init_core","init_operators","init_http","_DateRange","proto","m","kwargs","toReturn","_EmailDomain","_Record","_EmailEvent","_Attribute","_Bucket","_Content","_EmailMessage","_EmailMessageV2","_EmailWithCustomDomainMessage","_GCSAttachment","_Header","_Links","_Participant","_ServiceProviderInfo","_URLAttachment","_UserParticipant","_AdminSetEmailQueuesStatusRequest","_BounceSender","_ChangeEmailDomainRequest","_ChangeEmailDomainResponse","_CreateEmailDomainRequest","_CreateEmailDomainWithSendAsRequest","_CreatePendingDomainRequest","_DeleteEmailDomainRequest","_DeletePendingEmailDomainRequest","_EmailEventBucket","_EmailEventFilter","v","_EmailEventBucketEventRollup","_GetAttributeEventStatsResponseEventStats","_ExportAttributeEventClickStatsRequest","_GetAttributeEventLinkStatsRequest","_GetAttributeEventLinkStatsResponse","_GetAttributeEventStatsRequest","_GetAttributeEventStatsResponse","_GetBouncedRecipientRequest","_GetBouncedRecipientResponse","_GetDefaultDomainRequest","_GetDefaultDomainResponse","_GetEmailDomainRequest","_GetEmailDomainResponse","_GetEmailQueuesStatusRequest","_GetEmailQueuesStatusResponse","_GetMessageRequest","_GetMessageResponse","_GetMultiEmailRollupsRequest","_GetMultiEmailRollupsResponse","_GetMultiMessageRequest","_GetMultiMessageResponse","_GetPendingEmailDomainRequest","_GetPendingEmailDomainResponse","_GetPendingEmailDomainTargetCNameRecords","_GetSenderInfoRequest","_GetSenderInfoResponse","_GetUnsubscribedRecipientRequest","_GetUnsubscribedRecipientResponse","_InitiateEmailDomainRectifyRequest","_InitiateEmailDomainRollbackRequest","_LinkClickStats","_LinkStats","_ListAllDomainsRequest","_ListAllDomainsResponse","_ListEmailEventsRequestListEmailEventsFilters","_ListEmailEventsRequest","_ListEmailEventsResponse","_ListEmailsRequestListEmailsFilters","_ListEmailsRequest","_ListEmailsResponse","_ListEventsForAttributesRequest","_ListEventsForAttributesResponse","_ListLinkClickActivityForAttributeRequest","_ListLinkClickActivityForAttributeResponse","_PagedRequestOptions","_ListLinkClickActivityForAttributeRequestPagedRequestOptions","_PagedResponseMetadata","_QuarantineSenderRequest","_LinkClickStatsRecipient","_RedirectEmailRequest","_RedirectEmailResponse","_ResubscribeRecipientRequest","_SendRequest","_SendResponse","_SendV2Request","_SendV2Response","_SendWithCustomDomainRequest","_SendWithCustomDomainResponse","_Sender","_SenderDomain","_SetEmailQueuesStatusRequest","_UnbounceRecipientRequest","_VerifyDefaultDomainMismatch","_VerifyDefaultDomainRequest","_VerifyDefaultDomainResponse","_VerifyEmailDomainDMARCRequest","_VerifyEmailDomainDMARCResponse","_VerifyEmailDomainRequest","_VerifyPendingEmailDomainMismatch","_VerifyPendingEmailDomainRequest","_VerifyPendingEmailDomainResponse","t","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","api","running","statusEnum","req","partnerID","recipientEmail","sender","admin","partnerId","applicationId","businessId","domain","userId","sendAsEmail","sendAsName","searchTerm","filters","pagingOptions","buckets","dateRange","marketId","notificationTypes","eventTypes","HttpErrorResponse","emailId","attribute","cursor","pageSize","normalizedURL","normalizedUrl","appId","observable","mapTo","shareReplay","newDomain","newEmailUsername","replyTo","newSendFromName","senderType","senderID","senderId","delegate","emailID","senders"],"x_google_ignoreList":[0]}