@vendasta/conversation 0.6.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/vendasta-conversation.umd.js +205 -0
- package/bundles/vendasta-conversation.umd.js.map +1 -1
- package/bundles/vendasta-conversation.umd.min.js +1 -1
- package/bundles/vendasta-conversation.umd.min.js.map +1 -1
- package/esm2015/lib/_internal/conversation.api.service.js +12 -2
- package/esm2015/lib/_internal/enums/conversation.enum.js +2 -1
- package/esm2015/lib/_internal/enums/participant.enum.js +3 -1
- package/esm2015/lib/_internal/interfaces/api.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/index.js +1 -1
- package/esm2015/lib/_internal/objects/api.js +181 -1
- package/esm2015/lib/_internal/objects/index.js +2 -2
- package/fesm2015/vendasta-conversation.js +194 -1
- package/fesm2015/vendasta-conversation.js.map +1 -1
- package/lib/_internal/conversation.api.service.d.ts +4 -2
- package/lib/_internal/enums/conversation.enum.d.ts +2 -1
- package/lib/_internal/enums/participant.enum.d.ts +3 -1
- package/lib/_internal/interfaces/api.interface.d.ts +28 -0
- package/lib/_internal/interfaces/index.d.ts +1 -1
- package/lib/_internal/objects/api.d.ts +46 -0
- package/lib/_internal/objects/index.d.ts +1 -1
- package/package.json +1 -1
- package/vendasta-conversation.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../conversation_sdk/src/lib/_internal/enums/message.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/conversation.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/participant.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/api.enum.ts","../../../conversation_sdk/src/lib/_internal/objects/message.ts","../../../conversation_sdk/src/lib/_internal/objects/conversation.ts","../../../conversation_sdk/src/lib/_internal/objects/participant.ts","../../../conversation_sdk/src/lib/_internal/objects/api.ts","../../../conversation_sdk/src/lib/_generated/host.service.ts","../../../conversation_sdk/src/lib/_internal/conversation.api.service.ts"],"names":["MessageStatus","MessageType","ConversationChannel","PlatformLocation","ParticipantType","MetadataIdentifier","enumStringToValue","enumRef","value","Message","kwargs","Object","assign","this","fromProto","proto","m","type","e.MessageType","created","Date","updated","deleted","prototype","toApiJson","toReturn","messageId","externalMessageId","conversationId","participantId","body","error","media","ParticipantMessageStatus","status","e.MessageStatus","Conversation","channel","e.ConversationChannel","latestMsgSentTime","originLocation","e.PlatformLocation","externalConversationId","participantIds","originLocationExternalId","Participant","location","participantType","e.ParticipantType","internalParticipantId","partnerId","accountGroupId","externalParticipantId","name","email","phoneNumber","LookupConversationsResponseConversations","conversation","participants","map","CreateConversationRequest","CreateConversationResponse","CreateMultiMessagesRequest","messages","lastSeen","MetadataDataEntry","key","DeleteConversationRequest","DeleteMessageRequest","GetMultiConversationDetailsResponseDetailedConversation","latestMessage","GetMessageRequest","GetMultiConversationDetailsRequest","conversationIds","GetMultiConversationDetailsResponse","conversations","GetMultiMessagesRequest","messageIds","GetMultiMessagesResponse","GetMultiParticipantsRequest","GetMultiParticipantsResponse","ListMessagesRequestListMessagesFilters","ListMessagesRequest","filters","pagingOptions","PagedRequestOptions","ListMessagesResponse","pagingMetadata","PagedResponseMetadata","LookupConversationsRequestLookupConversationsFilters","LookupConversationsRequest","LookupConversationsResponse","Metadata","identifier","e.MetadataIdentifier","data","keys","reduce","obj","k","ReceiveMessageRequestMetadataEntry","cursor","pageSize","nextCursor","hasMore","ReceiveMessageRequest","metadata","senderId","recipientId","SendMessageRequest","sender","recipient","SendMessageResponse","workflowId","UpdateMessageStatusRequest","HostService","environmentService","host","_host","getEnvironment","Environment","LOCAL","TEST","DEMO","PROD","httpsHost","_httpsHost","hostWithScheme","httpsHostWithScheme","Injectable","args","providedIn","EnvironmentService","ConversationApiService","http","hostService","apiOptions","headers","HttpHeaders","Content-Type","withCredentials","sendMessage","r","request","post","pipe","resp","share","getMessage","listMessages","deleteMessage","observe","updateMessageStatus","lookupConversations","createConversation","deleteConversation","receiveMessage","getMultiMessages","createMultiMessages","getMultiConversationDetails","getMultiParticipants","HttpClient"],"mappings":"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","sourcesContent":["// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum MessageStatus {\n MESSAGE_STATUS_NOT_READ = 0,\n MESSAGE_STATUS_READ = 1,\n MESSAGE_STATUS_SENT = 2,\n MESSAGE_STATUS_DELIVERED = 3,\n MESSAGE_STATUS_FAILED = 4,\n MESSAGE_STATUS_UNDELIVERED = 5,\n}\n\nexport enum MessageType {\n MESSAGE_TYPE_MESSAGE = 0,\n MESSAGE_TYPE_MEDIA = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ConversationChannel {\n CONVERSATION_CHANNEL_UNDEFINED = 0,\n CONVERSATION_CHANNEL_INTERNAL = 1,\n CONVERSATION_CHANNEL_SMS = 2,\n CONVERSATION_CHANNEL_FACEBOOK = 3,\n CONVERSATION_CHANNEL_GOOGLE_MESSAGES = 4,\n}\n\nexport enum PlatformLocation {\n PLATFORM_LOCATION_UNDEFINED = 0,\n PLATFORM_LOCATION_BUSINESS_APP = 1,\n PLATFORM_LOCATION_PARTNER_CENTER = 2,\n PLATFORM_LOCATION_VENDOR_CENTER = 3,\n PLATFORM_LOCATION_TASK_MANAGER = 4,\n PLATFORM_LOCATION_PROPOSAL_BUILDER = 5,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ParticipantType {\n PARTICIPANT_TYPE_UNDEFINED = 0,\n PARTICIPANT_TYPE_CUSTOMER = 1,\n PARTICIPANT_TYPE_IAM_USER = 2,\n PARTICIPANT_TYPE_ACCOUNT_GROUP = 3,\n PARTICIPANT_TYPE_PARTNER = 4,\n PARTICIPANT_TYPE_IAM_TEMPORARY_SUBJECT = 5,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum MetadataIdentifier {\n METADATA_IDENTIFIER_UNDEFINED = 0,\n METADATA_IDENTIFIER_RECIPIENT = 1,\n METADATA_IDENTIFIER_SENDER = 2,\n METADATA_IDENTIFIER_CONVERSATION = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Message implements i.MessageInterface {\n messageId: string;\n externalMessageId: string;\n conversationId: string;\n participantId: string;\n type: e.MessageType;\n body: string;\n error: string;\n created: Date;\n updated: Date;\n deleted: Date;\n media: string[];\n\n static fromProto(proto: any): Message {\n let m = new Message();\n m = Object.assign(m, proto);\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n return m;\n }\n\n constructor(kwargs?: i.MessageInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.externalMessageId !== 'undefined') {toReturn['externalMessageId'] = this.externalMessageId;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.error !== 'undefined') {toReturn['error'] = this.error;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.media !== 'undefined') {toReturn['media'] = this.media;}\n return toReturn;\n }\n}\n\nexport class ParticipantMessageStatus implements i.ParticipantMessageStatusInterface {\n participantId: string;\n messageId: string;\n status: e.MessageStatus;\n updated: Date;\n\n static fromProto(proto: any): ParticipantMessageStatus {\n let m = new ParticipantMessageStatus();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.MessageStatus>(e.MessageStatus, proto.status);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n return m;\n }\n\n constructor(kwargs?: i.ParticipantMessageStatusInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Conversation implements i.ConversationInterface {\n conversationId: string;\n channel: e.ConversationChannel;\n externalConversationId: string;\n created: Date;\n updated: Date;\n deleted: Date;\n participantIds: string[];\n latestMsgSentTime: Date;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): Conversation {\n let m = new Conversation();\n m = Object.assign(m, proto);\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n if (proto.latestMsgSentTime) {m.latestMsgSentTime = new Date(proto.latestMsgSentTime);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.ConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.participantIds !== 'undefined') {toReturn['participantIds'] = this.participantIds;}\n if (typeof this.latestMsgSentTime !== 'undefined' && this.latestMsgSentTime !== null) {toReturn['latestMsgSentTime'] = 'toApiJson' in this.latestMsgSentTime ? (this.latestMsgSentTime as any).toApiJson() : this.latestMsgSentTime;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Participant implements i.ParticipantInterface {\n participantId: string;\n internalParticipantId: string;\n partnerId: string;\n accountGroupId: string;\n location: e.PlatformLocation;\n channel: e.ConversationChannel;\n externalParticipantId: string;\n name: string;\n created: Date;\n updated: Date;\n deleted: Date;\n participantType: e.ParticipantType;\n email: string;\n phoneNumber: string;\n\n static fromProto(proto: any): Participant {\n let m = new Participant();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n if (proto.participantType) {m.participantType = enumStringToValue<e.ParticipantType>(e.ParticipantType, proto.participantType);}\n return m;\n }\n\n constructor(kwargs?: i.ParticipantInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.internalParticipantId !== 'undefined') {toReturn['internalParticipantId'] = this.internalParticipantId;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalParticipantId !== 'undefined') {toReturn['externalParticipantId'] = this.externalParticipantId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.participantType !== 'undefined') {toReturn['participantType'] = this.participantType;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.phoneNumber !== 'undefined') {toReturn['phoneNumber'] = this.phoneNumber;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Conversation } from './conversation';\nimport { Message } from './message';\nimport { Participant } from './participant';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class LookupConversationsResponseConversations implements i.LookupConversationsResponseConversationsInterface {\n conversation: Conversation;\n participants: Participant[];\n\n static fromProto(proto: any): LookupConversationsResponseConversations {\n let m = new LookupConversationsResponseConversations();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsResponseConversationsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class CreateConversationRequest implements i.CreateConversationRequestInterface {\n participants: Participant[];\n channel: e.ConversationChannel;\n externalConversationId: string;\n created: Date;\n updated: Date;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): CreateConversationRequest {\n let m = new CreateConversationRequest();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.CreateConversationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\nexport class CreateConversationResponse implements i.CreateConversationResponseInterface {\n conversation: Conversation;\n participants: Participant[];\n\n static fromProto(proto: any): CreateConversationResponse {\n let m = new CreateConversationResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.CreateConversationResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class CreateMultiMessagesRequest implements i.CreateMultiMessagesRequestInterface {\n messages: Message[];\n lastSeen: Date;\n\n static fromProto(proto: any): CreateMultiMessagesRequest {\n let m = new CreateMultiMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n if (proto.lastSeen) {m.lastSeen = new Date(proto.lastSeen);}\n return m;\n }\n\n constructor(kwargs?: i.CreateMultiMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n if (typeof this.lastSeen !== 'undefined' && this.lastSeen !== null) {toReturn['lastSeen'] = 'toApiJson' in this.lastSeen ? (this.lastSeen as any).toApiJson() : this.lastSeen;}\n return toReturn;\n }\n}\n\nexport class MetadataDataEntry implements i.MetadataDataEntryInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): MetadataDataEntry {\n let m = new MetadataDataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.MetadataDataEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class DeleteConversationRequest implements i.DeleteConversationRequestInterface {\n conversationId: string;\n\n static fromProto(proto: any): DeleteConversationRequest {\n let m = new DeleteConversationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteConversationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n return toReturn;\n }\n}\n\nexport class DeleteMessageRequest implements i.DeleteMessageRequestInterface {\n messageId: string;\n\n static fromProto(proto: any): DeleteMessageRequest {\n let m = new DeleteMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsResponseDetailedConversation implements i.GetMultiConversationDetailsResponseDetailedConversationInterface {\n conversation: Conversation;\n latestMessage: Message;\n participants: Participant[];\n\n static fromProto(proto: any): GetMultiConversationDetailsResponseDetailedConversation {\n let m = new GetMultiConversationDetailsResponseDetailedConversation();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.latestMessage) {m.latestMessage = Message.fromProto(proto.latestMessage);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsResponseDetailedConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.latestMessage !== 'undefined' && this.latestMessage !== null) {toReturn['latestMessage'] = 'toApiJson' in this.latestMessage ? (this.latestMessage as any).toApiJson() : this.latestMessage;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class GetMessageRequest implements i.GetMessageRequestInterface {\n messageId: string;\n\n static fromProto(proto: any): GetMessageRequest {\n let m = new GetMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsRequest implements i.GetMultiConversationDetailsRequestInterface {\n conversationIds: string[];\n\n static fromProto(proto: any): GetMultiConversationDetailsRequest {\n let m = new GetMultiConversationDetailsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationIds !== 'undefined') {toReturn['conversationIds'] = this.conversationIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsResponse implements i.GetMultiConversationDetailsResponseInterface {\n conversations: GetMultiConversationDetailsResponseDetailedConversation[];\n\n static fromProto(proto: any): GetMultiConversationDetailsResponse {\n let m = new GetMultiConversationDetailsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(GetMultiConversationDetailsResponseDetailedConversation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n return toReturn;\n }\n}\n\nexport class GetMultiMessagesRequest implements i.GetMultiMessagesRequestInterface {\n messageIds: string[];\n\n static fromProto(proto: any): GetMultiMessagesRequest {\n let m = new GetMultiMessagesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageIds !== 'undefined') {toReturn['messageIds'] = this.messageIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiMessagesResponse implements i.GetMultiMessagesResponseInterface {\n messages: Message[];\n\n static fromProto(proto: any): GetMultiMessagesResponse {\n let m = new GetMultiMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiMessagesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n return toReturn;\n }\n}\n\nexport class GetMultiParticipantsRequest implements i.GetMultiParticipantsRequestInterface {\n participantIds: string[];\n\n static fromProto(proto: any): GetMultiParticipantsRequest {\n let m = new GetMultiParticipantsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiParticipantsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantIds !== 'undefined') {toReturn['participantIds'] = this.participantIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiParticipantsResponse implements i.GetMultiParticipantsResponseInterface {\n participants: Participant[];\n\n static fromProto(proto: any): GetMultiParticipantsResponse {\n let m = new GetMultiParticipantsResponse();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiParticipantsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class ListMessagesRequestListMessagesFilters implements i.ListMessagesRequestListMessagesFiltersInterface {\n conversationId: string;\n\n static fromProto(proto: any): ListMessagesRequestListMessagesFilters {\n let m = new ListMessagesRequestListMessagesFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesRequestListMessagesFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n return toReturn;\n }\n}\n\nexport class ListMessagesRequest implements i.ListMessagesRequestInterface {\n filters: ListMessagesRequestListMessagesFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListMessagesRequest {\n let m = new ListMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListMessagesRequestListMessagesFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListMessagesResponse implements i.ListMessagesResponseInterface {\n messages: Message[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListMessagesResponse {\n let m = new ListMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsRequestLookupConversationsFilters implements i.LookupConversationsRequestLookupConversationsFiltersInterface {\n internalParticipantId: string[];\n location: e.PlatformLocation;\n channel: e.ConversationChannel;\n accountGroupId: string;\n externalConversationId: string;\n\n static fromProto(proto: any): LookupConversationsRequestLookupConversationsFilters {\n let m = new LookupConversationsRequestLookupConversationsFilters();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsRequestLookupConversationsFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.internalParticipantId !== 'undefined') {toReturn['internalParticipantId'] = this.internalParticipantId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsRequest implements i.LookupConversationsRequestInterface {\n filters: LookupConversationsRequestLookupConversationsFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): LookupConversationsRequest {\n let m = new LookupConversationsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = LookupConversationsRequestLookupConversationsFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsResponse implements i.LookupConversationsResponseInterface {\n conversations: LookupConversationsResponseConversations[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): LookupConversationsResponse {\n let m = new LookupConversationsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(LookupConversationsResponseConversations.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class Metadata implements i.MetadataInterface {\n identifier: e.MetadataIdentifier;\n data: {[key: string]: string};\n\n static fromProto(proto: any): Metadata {\n let m = new Metadata();\n m = Object.assign(m, proto);\n if (proto.identifier) {m.identifier = enumStringToValue<e.MetadataIdentifier>(e.MetadataIdentifier, proto.identifier);}\n if (proto.data) {m.data = Object.keys(proto.data).reduce<any>((obj, k) => { obj[k] = proto.data[k]; return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.MetadataInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.identifier !== 'undefined') {toReturn['identifier'] = this.identifier;}\n if (typeof this.data !== 'undefined' && this.data !== null) {toReturn['data'] = 'toApiJson' in this.data ? (this.data as any).toApiJson() : this.data;}\n return toReturn;\n }\n}\n\nexport class ReceiveMessageRequestMetadataEntry implements i.ReceiveMessageRequestMetadataEntryInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): ReceiveMessageRequestMetadataEntry {\n let m = new ReceiveMessageRequestMetadataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ReceiveMessageRequestMetadataEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class PagedRequestOptions implements i.PagedRequestOptionsInterface {\n cursor: string;\n pageSize: number;\n\n static fromProto(proto: any): PagedRequestOptions {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PagedRequestOptionsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n return toReturn;\n }\n}\n\nexport class PagedResponseMetadata implements i.PagedResponseMetadataInterface {\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): PagedResponseMetadata {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PagedResponseMetadataInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class ReceiveMessageRequest implements i.ReceiveMessageRequestInterface {\n senderId: string;\n recipientId: string;\n conversationId: string;\n messageId: string;\n body: string;\n channel: e.ConversationChannel;\n type: e.MessageType;\n location: e.PlatformLocation;\n partnerId: string;\n accountGroupId: string;\n metadata: {[key: string]: string};\n media: string[];\n\n static fromProto(proto: any): ReceiveMessageRequest {\n let m = new ReceiveMessageRequest();\n m = Object.assign(m, proto);\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.metadata) {m.metadata = Object.keys(proto.metadata).reduce<any>((obj, k) => { obj[k] = proto.metadata[k]; return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.ReceiveMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.senderId !== 'undefined') {toReturn['senderId'] = this.senderId;}\n if (typeof this.recipientId !== 'undefined') {toReturn['recipientId'] = this.recipientId;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {toReturn['metadata'] = 'toApiJson' in this.metadata ? (this.metadata as any).toApiJson() : this.metadata;}\n if (typeof this.media !== 'undefined') {toReturn['media'] = this.media;}\n return toReturn;\n }\n}\n\nexport class SendMessageRequest implements i.SendMessageRequestInterface {\n sender: Participant;\n recipient: Participant;\n conversationId: string;\n type: e.MessageType;\n body: string;\n metadata: Metadata[];\n\n static fromProto(proto: any): SendMessageRequest {\n let m = new SendMessageRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {m.sender = Participant.fromProto(proto.sender);}\n if (proto.recipient) {m.recipient = Participant.fromProto(proto.recipient);}\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.metadata) {m.metadata = proto.metadata.map(Metadata.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.SendMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sender !== 'undefined' && this.sender !== null) {toReturn['sender'] = 'toApiJson' in this.sender ? (this.sender as any).toApiJson() : this.sender;}\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {toReturn['recipient'] = 'toApiJson' in this.recipient ? (this.recipient as any).toApiJson() : this.recipient;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {toReturn['metadata'] = 'toApiJson' in this.metadata ? (this.metadata as any).toApiJson() : this.metadata;}\n return toReturn;\n }\n}\n\nexport class SendMessageResponse implements i.SendMessageResponseInterface {\n workflowId: string;\n\n static fromProto(proto: any): SendMessageResponse {\n let m = new SendMessageResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendMessageResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.workflowId !== 'undefined') {toReturn['workflowId'] = this.workflowId;}\n return toReturn;\n }\n}\n\nexport class UpdateMessageStatusRequest implements i.UpdateMessageStatusRequestInterface {\n messageId: string;\n participantId: string;\n status: e.MessageStatus;\n\n static fromProto(proto: any): UpdateMessageStatusRequest {\n let m = new UpdateMessageStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.MessageStatus>(e.MessageStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateMessageStatusRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n return toReturn;\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { EnvironmentService, Environment } from '@vendasta/core';\n\n@Injectable({providedIn: 'root'})\nexport class HostService {\n private _host: string;\n private _httpsHost: string;\n\n constructor(private environmentService: EnvironmentService) {\n }\n\n host(): string {\n if (this._host) {\n return this._host;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._host = 'conversation-api.vendasta-local.com';\n break;\n case Environment.TEST:\n this._host = '';\n break;\n case Environment.DEMO:\n this._host = 'conversation-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._host = 'conversation-prod.apigateway.co';\n break;\n }\n return this._host;\n }\n\n httpsHost(): string {\n if (this._httpsHost) {\n return this._httpsHost;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._httpsHost = 'conversation.vendasta-local.com';\n break;\n case Environment.TEST:\n this._httpsHost = '';\n break;\n case Environment.DEMO:\n this._httpsHost = 'conversation-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._httpsHost = 'conversation-prod.apigateway.co';\n break;\n }\n return this._httpsHost;\n }\n\n hostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.host()\n }\n\n httpsHostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.httpsHost()\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CreateConversationRequest,\n CreateConversationResponse,\n CreateMultiMessagesRequest,\n DeleteConversationRequest,\n DeleteMessageRequest,\n GetMessageRequest,\n GetMultiConversationDetailsRequest,\n GetMultiConversationDetailsResponse,\n GetMultiMessagesRequest,\n GetMultiMessagesResponse,\n GetMultiParticipantsRequest,\n GetMultiParticipantsResponse,\n ListMessagesRequest,\n ListMessagesResponse,\n LookupConversationsRequest,\n LookupConversationsResponse,\n Message,\n ReceiveMessageRequest,\n SendMessageRequest,\n SendMessageResponse,\n UpdateMessageStatusRequest,\n} from './objects/';\nimport {\n CreateConversationRequestInterface,\n CreateConversationResponseInterface,\n CreateMultiMessagesRequestInterface,\n DeleteConversationRequestInterface,\n DeleteMessageRequestInterface,\n GetMessageRequestInterface,\n GetMultiConversationDetailsRequestInterface,\n GetMultiConversationDetailsResponseInterface,\n GetMultiMessagesRequestInterface,\n GetMultiMessagesResponseInterface,\n GetMultiParticipantsRequestInterface,\n GetMultiParticipantsResponseInterface,\n ListMessagesRequestInterface,\n ListMessagesResponseInterface,\n LookupConversationsRequestInterface,\n LookupConversationsResponseInterface,\n MessageInterface,\n ReceiveMessageRequestInterface,\n SendMessageRequestInterface,\n SendMessageResponseInterface,\n UpdateMessageStatusRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class ConversationApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n sendMessage(r: SendMessageRequest | SendMessageRequestInterface): Observable<SendMessageResponse> {\n const request = ((<SendMessageRequest>r).toApiJson) ? (<SendMessageRequest>r) : new SendMessageRequest(r);\n return this.http.post<SendMessageResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/SendMessage\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SendMessageResponse.fromProto(resp)),\n share()\n );\n }\n getMessage(r: GetMessageRequest | GetMessageRequestInterface): Observable<Message> {\n const request = ((<GetMessageRequest>r).toApiJson) ? (<GetMessageRequest>r) : new GetMessageRequest(r);\n return this.http.post<MessageInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMessage\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => Message.fromProto(resp)),\n share()\n );\n }\n listMessages(r: ListMessagesRequest | ListMessagesRequestInterface): Observable<ListMessagesResponse> {\n const request = ((<ListMessagesRequest>r).toApiJson) ? (<ListMessagesRequest>r) : new ListMessagesRequest(r);\n return this.http.post<ListMessagesResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/ListMessages\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListMessagesResponse.fromProto(resp)),\n share()\n );\n }\n deleteMessage(r: DeleteMessageRequest | DeleteMessageRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteMessageRequest>r).toApiJson) ? (<DeleteMessageRequest>r) : new DeleteMessageRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/DeleteMessage\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n updateMessageStatus(r: UpdateMessageStatusRequest | UpdateMessageStatusRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateMessageStatusRequest>r).toApiJson) ? (<UpdateMessageStatusRequest>r) : new UpdateMessageStatusRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/UpdateMessageStatus\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n lookupConversations(r: LookupConversationsRequest | LookupConversationsRequestInterface): Observable<LookupConversationsResponse> {\n const request = ((<LookupConversationsRequest>r).toApiJson) ? (<LookupConversationsRequest>r) : new LookupConversationsRequest(r);\n return this.http.post<LookupConversationsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/LookupConversations\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => LookupConversationsResponse.fromProto(resp)),\n share()\n );\n }\n createConversation(r: CreateConversationRequest | CreateConversationRequestInterface): Observable<CreateConversationResponse> {\n const request = ((<CreateConversationRequest>r).toApiJson) ? (<CreateConversationRequest>r) : new CreateConversationRequest(r);\n return this.http.post<CreateConversationResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/CreateConversation\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateConversationResponse.fromProto(resp)),\n share()\n );\n }\n deleteConversation(r: DeleteConversationRequest | DeleteConversationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteConversationRequest>r).toApiJson) ? (<DeleteConversationRequest>r) : new DeleteConversationRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/DeleteConversation\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n receiveMessage(r: ReceiveMessageRequest | ReceiveMessageRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ReceiveMessageRequest>r).toApiJson) ? (<ReceiveMessageRequest>r) : new ReceiveMessageRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/ReceiveMessage\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiMessages(r: GetMultiMessagesRequest | GetMultiMessagesRequestInterface): Observable<GetMultiMessagesResponse> {\n const request = ((<GetMultiMessagesRequest>r).toApiJson) ? (<GetMultiMessagesRequest>r) : new GetMultiMessagesRequest(r);\n return this.http.post<GetMultiMessagesResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiMessages\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiMessagesResponse.fromProto(resp)),\n share()\n );\n }\n createMultiMessages(r: CreateMultiMessagesRequest | CreateMultiMessagesRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateMultiMessagesRequest>r).toApiJson) ? (<CreateMultiMessagesRequest>r) : new CreateMultiMessagesRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/CreateMultiMessages\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiConversationDetails(r: GetMultiConversationDetailsRequest | GetMultiConversationDetailsRequestInterface): Observable<GetMultiConversationDetailsResponse> {\n const request = ((<GetMultiConversationDetailsRequest>r).toApiJson) ? (<GetMultiConversationDetailsRequest>r) : new GetMultiConversationDetailsRequest(r);\n return this.http.post<GetMultiConversationDetailsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiConversationDetails\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiConversationDetailsResponse.fromProto(resp)),\n share()\n );\n }\n getMultiParticipants(r: GetMultiParticipantsRequest | GetMultiParticipantsRequestInterface): Observable<GetMultiParticipantsResponse> {\n const request = ((<GetMultiParticipantsRequest>r).toApiJson) ? (<GetMultiParticipantsRequest>r) : new GetMultiParticipantsRequest(r);\n return this.http.post<GetMultiParticipantsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiParticipants\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiParticipantsResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../conversation_sdk/src/lib/_internal/enums/message.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/conversation.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/participant.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/api.enum.ts","../../../conversation_sdk/src/lib/_internal/objects/message.ts","../../../conversation_sdk/src/lib/_internal/objects/conversation.ts","../../../conversation_sdk/src/lib/_internal/objects/participant.ts","../../../conversation_sdk/src/lib/_internal/objects/api.ts","../../../conversation_sdk/src/lib/_generated/host.service.ts","../../../conversation_sdk/src/lib/_internal/conversation.api.service.ts"],"names":["MessageStatus","MessageType","ConversationChannel","PlatformLocation","ParticipantType","MetadataIdentifier","enumStringToValue","enumRef","value","Message","kwargs","Object","assign","this","fromProto","proto","m","type","e.MessageType","created","Date","updated","deleted","prototype","toApiJson","toReturn","messageId","externalMessageId","conversationId","participantId","body","error","media","ParticipantMessageStatus","status","e.MessageStatus","Conversation","channel","e.ConversationChannel","latestMsgSentTime","originLocation","e.PlatformLocation","externalConversationId","participantIds","originLocationExternalId","Participant","location","participantType","e.ParticipantType","internalParticipantId","partnerId","accountGroupId","externalParticipantId","name","email","phoneNumber","ConversationMessageCount","count","parseInt","LookupConversationsResponseConversations","conversation","participants","map","CreateConversationRequest","CreateConversationResponse","CreateMultiMessagesRequest","messages","lastSeen","MetadataDataEntry","key","DeleteConversationRequest","DeleteMessageRequest","GetMultiConversationDetailsResponseDetailedConversation","latestMessage","SearchConversationsResponseDetailedConversation","GetMessageRequest","GetMultiConversationDetailsRequest","conversationIds","GetMultiConversationDetailsResponse","conversations","GetMultiConversationMessageCountRequest","GetMultiConversationMessageCountResponse","messageCounts","GetMultiMessagesRequest","messageIds","GetMultiMessagesResponse","GetMultiParticipantsRequest","GetMultiParticipantsResponse","ListMessagesRequestListMessagesFilters","ListMessagesRequest","filters","pagingOptions","PagedRequestOptions","ListMessagesResponse","pagingMetadata","PagedResponseMetadata","LookupConversationsRequestLookupConversationsFilters","LookupConversationsRequest","LookupConversationsResponse","Metadata","identifier","e.MetadataIdentifier","data","keys","reduce","obj","k","ReceiveMessageRequestMetadataEntry","cursor","pageSize","nextCursor","hasMore","ReceiveMessageRequest","metadata","senderId","recipientId","SearchConversationsRequest","searchTerm","SearchConversationsResponse","SendMessageRequest","sender","recipient","SendMessageResponse","workflowId","UpdateMessageStatusRequest","HostService","environmentService","host","_host","getEnvironment","Environment","LOCAL","TEST","DEMO","PROD","httpsHost","_httpsHost","hostWithScheme","httpsHostWithScheme","Injectable","args","providedIn","EnvironmentService","ConversationApiService","http","hostService","apiOptions","headers","HttpHeaders","Content-Type","withCredentials","sendMessage","r","request","post","pipe","resp","share","getMessage","listMessages","deleteMessage","observe","updateMessageStatus","lookupConversations","createConversation","deleteConversation","receiveMessage","getMultiMessages","createMultiMessages","getMultiConversationDetails","getMultiParticipants","searchConversations","getMultiConversationMessageCount","HttpClient"],"mappings":"iiBAOA,IAAYA,EASAC,ECTAC,EAQAC,ECRAC,ECAAC,WCGIC,EAAqBC,EAAcC,GACjD,MAAqB,iBAAVA,EACFA,EAEFD,EAAQC,IJPLR,EAAAA,EAAAA,gBAAAA,EAAAA,cAAa,KACrBA,EAAA,wBAAA,GAAA,0BACAA,EAAAA,EAAA,oBAAA,GAAA,sBACAA,EAAAA,EAAA,oBAAA,GAAA,sBACAA,EAAAA,EAAA,yBAAA,GAAA,2BACAA,EAAAA,EAAA,sBAAA,GAAA,wBACAA,EAAAA,EAAA,2BAAA,GAAA,8BAGQC,EAAAA,EAAAA,cAAAA,EAAAA,YAAW,KACnBA,EAAA,qBAAA,GAAA,uBACAA,EAAAA,EAAA,mBAAA,GAAA,sBCXQC,EAAAA,EAAAA,sBAAAA,EAAAA,oBAAmB,KAC3BA,EAAA,+BAAA,GAAA,iCACAA,EAAAA,EAAA,8BAAA,GAAA,gCACAA,EAAAA,EAAA,yBAAA,GAAA,2BACAA,EAAAA,EAAA,8BAAA,GAAA,gCACAA,EAAAA,EAAA,qCAAA,GAAA,wCAGQC,EAAAA,EAAAA,mBAAAA,EAAAA,iBAAgB,KACxBA,EAAA,4BAAA,GAAA,8BACAA,EAAAA,EAAA,+BAAA,GAAA,iCACAA,EAAAA,EAAA,iCAAA,GAAA,mCACAA,EAAAA,EAAA,gCAAA,GAAA,kCACAA,EAAAA,EAAA,+BAAA,GAAA,iCACAA,EAAAA,EAAA,mCAAA,GAAA,qCACAA,EAAAA,EAAA,+BAAA,GAAA,kCCfQC,EAAAA,EAAAA,kBAAAA,EAAAA,gBAAe,KACvBA,EAAA,2BAAA,GAAA,6BACAA,EAAAA,EAAA,0BAAA,GAAA,4BACAA,EAAAA,EAAA,0BAAA,GAAA,4BACAA,EAAAA,EAAA,+BAAA,GAAA,iCACAA,EAAAA,EAAA,yBAAA,GAAA,2BACAA,EAAAA,EAAA,uCAAA,GAAA,yCACAA,EAAAA,EAAA,+BAAA,GAAA,iCACAA,EAAAA,EAAA,wBAAA,GAAA,2BCRQC,EAAAA,EAAAA,qBAAAA,EAAAA,mBAAkB,KAC1BA,EAAA,8BAAA,GAAA,gCACAA,EAAAA,EAAA,8BAAA,GAAA,gCACAA,EAAAA,EAAA,2BAAA,GAAA,6BACAA,EAAAA,EAAA,iCAAA,GAAA,oDC6BA,SAAAI,EAAYC,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAdjBD,EAAAK,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIP,EAMZ,OALAO,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAME,OAAOD,EAAEC,KAAOX,EAAiCY,EAAAA,YAAeH,EAAME,OAC5EF,EAAMI,UAAUH,EAAEG,QAAU,IAAIC,KAAKL,EAAMI,UAC3CJ,EAAMM,UAAUL,EAAEK,QAAU,IAAID,KAAKL,EAAMM,UAC3CN,EAAMO,UAAUN,EAAEM,QAAU,IAAIF,KAAKL,EAAMO,UACxCN,GAUXP,EAAAc,UAAAC,UAAA,WACI,IAAMC,EAEF,GAaJ,YAX8B,IAAnBZ,KAAKa,YAA4BD,EAAoB,UAAIZ,KAAKa,gBACnC,IAA3Bb,KAAKc,oBAAoCF,EAA4B,kBAAIZ,KAAKc,wBACtD,IAAxBd,KAAKe,iBAAiCH,EAAyB,eAAIZ,KAAKe,qBACjD,IAAvBf,KAAKgB,gBAAgCJ,EAAwB,cAAIZ,KAAKgB,oBACxD,IAAdhB,KAAKI,OAAuBQ,EAAe,KAAIZ,KAAKI,WACtC,IAAdJ,KAAKiB,OAAuBL,EAAe,KAAIZ,KAAKiB,WACrC,IAAfjB,KAAKkB,QAAwBN,EAAgB,MAAIZ,KAAKkB,YACrC,IAAjBlB,KAAKM,SAA4C,OAAjBN,KAAKM,UAAmBM,EAAkB,QAAI,cAAeZ,KAAKM,QAAWN,KAAKM,QAAgBK,YAAcX,KAAKM,cACpI,IAAjBN,KAAKQ,SAA4C,OAAjBR,KAAKQ,UAAmBI,EAAkB,QAAI,cAAeZ,KAAKQ,QAAWR,KAAKQ,QAAgBG,YAAcX,KAAKQ,cACpI,IAAjBR,KAAKS,SAA4C,OAAjBT,KAAKS,UAAmBG,EAAkB,QAAI,cAAeZ,KAAKS,QAAWT,KAAKS,QAAgBE,YAAcX,KAAKS,cACtI,IAAfT,KAAKmB,QAAwBP,EAAgB,MAAIZ,KAAKmB,OAC1DP,qBAkBX,SAAAQ,EAAYvB,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjBuB,EAAAnB,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIiB,EAIZ,OAHAjB,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMmB,SAASlB,EAAEkB,OAAS5B,EAAmC6B,EAAAA,cAAiBpB,EAAMmB,SACpFnB,EAAMM,UAAUL,EAAEK,QAAU,IAAID,KAAKL,EAAMM,UACxCL,GAUXiB,EAAAV,UAAAC,UAAA,WACI,IAAMC,EAEF,GAMJ,YAJkC,IAAvBZ,KAAKgB,gBAAgCJ,EAAwB,cAAIZ,KAAKgB,oBACnD,IAAnBhB,KAAKa,YAA4BD,EAAoB,UAAIZ,KAAKa,gBAC9C,IAAhBb,KAAKqB,SAAyBT,EAAiB,OAAIZ,KAAKqB,aACvC,IAAjBrB,KAAKQ,SAA4C,OAAjBR,KAAKQ,UAAmBI,EAAkB,QAAI,cAAeZ,KAAKQ,QAAWR,KAAKQ,QAAgBG,YAAcX,KAAKQ,SACzJI,iBCvFCnB,EAAqBC,EAAcC,GACjD,MAAqB,iBAAVA,EACFA,EAEFD,EAAQC,oBA2Bb,SAAA4B,EAAY1B,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAhBjB0B,EAAAtB,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIoB,EAQZ,OAPApB,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMsB,UAAUrB,EAAEqB,QAAU/B,EAAyCgC,EAAAA,oBAAuBvB,EAAMsB,UAClGtB,EAAMI,UAAUH,EAAEG,QAAU,IAAIC,KAAKL,EAAMI,UAC3CJ,EAAMM,UAAUL,EAAEK,QAAU,IAAID,KAAKL,EAAMM,UAC3CN,EAAMO,UAAUN,EAAEM,QAAU,IAAIF,KAAKL,EAAMO,UAC3CP,EAAMwB,oBAAoBvB,EAAEuB,kBAAoB,IAAInB,KAAKL,EAAMwB,oBAC/DxB,EAAMyB,iBAAiBxB,EAAEwB,eAAiBlC,EAAsCmC,EAAAA,iBAAoB1B,EAAMyB,iBACvGxB,GAUXoB,EAAAb,UAAAC,UAAA,WACI,IAAMC,EAEF,GAYJ,YAVmC,IAAxBZ,KAAKe,iBAAiCH,EAAyB,eAAIZ,KAAKe,qBACvD,IAAjBf,KAAKwB,UAA0BZ,EAAkB,QAAIZ,KAAKwB,cAC1B,IAAhCxB,KAAK6B,yBAAyCjB,EAAiC,uBAAIZ,KAAK6B,6BACvE,IAAjB7B,KAAKM,SAA4C,OAAjBN,KAAKM,UAAmBM,EAAkB,QAAI,cAAeZ,KAAKM,QAAWN,KAAKM,QAAgBK,YAAcX,KAAKM,cACpI,IAAjBN,KAAKQ,SAA4C,OAAjBR,KAAKQ,UAAmBI,EAAkB,QAAI,cAAeZ,KAAKQ,QAAWR,KAAKQ,QAAgBG,YAAcX,KAAKQ,cACpI,IAAjBR,KAAKS,SAA4C,OAAjBT,KAAKS,UAAmBG,EAAkB,QAAI,cAAeZ,KAAKS,QAAWT,KAAKS,QAAgBE,YAAcX,KAAKS,cAC7H,IAAxBT,KAAK8B,iBAAiClB,EAAyB,eAAIZ,KAAK8B,qBAC7C,IAA3B9B,KAAK0B,mBAAgE,OAA3B1B,KAAK0B,oBAA6Bd,EAA4B,kBAAI,cAAeZ,KAAK0B,kBAAqB1B,KAAK0B,kBAA0Bf,YAAcX,KAAK0B,wBAC/K,IAAxB1B,KAAK2B,iBAAiCf,EAAyB,eAAIZ,KAAK2B,qBACtC,IAAlC3B,KAAK+B,2BAA2CnB,EAAmC,yBAAIZ,KAAK+B,0BAChGnB,iBCrDCnB,EAAqBC,EAAcC,GACjD,MAAqB,iBAAVA,EACFA,EAEFD,EAAQC,oBA+Bb,SAAAqC,EAAYnC,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAhBjBmC,EAAA/B,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI6B,EAQZ,OAPA7B,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM+B,WAAW9B,EAAE8B,SAAWxC,EAAsCmC,EAAAA,iBAAoB1B,EAAM+B,WAC9F/B,EAAMsB,UAAUrB,EAAEqB,QAAU/B,EAAyCgC,EAAAA,oBAAuBvB,EAAMsB,UAClGtB,EAAMI,UAAUH,EAAEG,QAAU,IAAIC,KAAKL,EAAMI,UAC3CJ,EAAMM,UAAUL,EAAEK,QAAU,IAAID,KAAKL,EAAMM,UAC3CN,EAAMO,UAAUN,EAAEM,QAAU,IAAIF,KAAKL,EAAMO,UAC3CP,EAAMgC,kBAAkB/B,EAAE+B,gBAAkBzC,EAAqC0C,EAAAA,gBAAmBjC,EAAMgC,kBACvG/B,GAUX6B,EAAAtB,UAAAC,UAAA,WACI,IAAMC,EAEF,GAgBJ,YAdkC,IAAvBZ,KAAKgB,gBAAgCJ,EAAwB,cAAIZ,KAAKgB,oBACvC,IAA/BhB,KAAKoC,wBAAwCxB,EAAgC,sBAAIZ,KAAKoC,4BACnE,IAAnBpC,KAAKqC,YAA4BzB,EAAoB,UAAIZ,KAAKqC,gBACtC,IAAxBrC,KAAKsC,iBAAiC1B,EAAyB,eAAIZ,KAAKsC,qBACtD,IAAlBtC,KAAKiC,WAA2BrB,EAAmB,SAAIZ,KAAKiC,eAC3C,IAAjBjC,KAAKwB,UAA0BZ,EAAkB,QAAIZ,KAAKwB,cAC3B,IAA/BxB,KAAKuC,wBAAwC3B,EAAgC,sBAAIZ,KAAKuC,4BACxE,IAAdvC,KAAKwC,OAAuB5B,EAAe,KAAIZ,KAAKwC,WACnC,IAAjBxC,KAAKM,SAA4C,OAAjBN,KAAKM,UAAmBM,EAAkB,QAAI,cAAeZ,KAAKM,QAAWN,KAAKM,QAAgBK,YAAcX,KAAKM,cACpI,IAAjBN,KAAKQ,SAA4C,OAAjBR,KAAKQ,UAAmBI,EAAkB,QAAI,cAAeZ,KAAKQ,QAAWR,KAAKQ,QAAgBG,YAAcX,KAAKQ,cACpI,IAAjBR,KAAKS,SAA4C,OAAjBT,KAAKS,UAAmBG,EAAkB,QAAI,cAAeZ,KAAKS,QAAWT,KAAKS,QAAgBE,YAAcX,KAAKS,cAC5H,IAAzBT,KAAKkC,kBAAkCtB,EAA0B,gBAAIZ,KAAKkC,sBAC3D,IAAflC,KAAKyC,QAAwB7B,EAAgB,MAAIZ,KAAKyC,YACjC,IAArBzC,KAAK0C,cAA8B9B,EAAsB,YAAIZ,KAAK0C,aACtE9B,iBC3DCnB,EAAqBC,EAAcC,GACjD,MAAqB,iBAAVA,EACFA,EAEFD,EAAQC,oBAcb,SAAAgD,EAAY9C,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAXjB8C,EAAA1C,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIwC,EAGZ,OAFAxC,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM0C,QAAQzC,EAAEyC,MAAQC,SAAS3C,EAAM0C,MAAO,KAC3CzC,GAUXwC,EAAAjC,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAFmC,IAAxBZ,KAAKe,iBAAiCH,EAAyB,eAAIZ,KAAKe,qBACzD,IAAff,KAAK4C,QAAwBhC,EAAgB,MAAIZ,KAAK4C,OAC1DhC,qBAgBX,SAAAkC,EAAYjD,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjBiD,EAAA7C,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI2C,EAIZ,OAHA3C,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM6C,eAAe5C,EAAE4C,aAAexB,EAAatB,UAAUC,EAAM6C,eACnE7C,EAAM8C,eAAe7C,EAAE6C,aAAe9C,EAAM8C,aAAaC,IAAIjB,EAAY/B,YACtEE,GAUX2C,EAAApC,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAFiC,IAAtBZ,KAAK+C,cAAsD,OAAtB/C,KAAK+C,eAAwBnC,EAAuB,aAAI,cAAeZ,KAAK+C,aAAgB/C,KAAK+C,aAAqBpC,YAAcX,KAAK+C,mBACxJ,IAAtB/C,KAAKgD,cAAsD,OAAtBhD,KAAKgD,eAAwBpC,EAAuB,aAAI,cAAeZ,KAAKgD,aAAgBhD,KAAKgD,aAAqBrC,YAAcX,KAAKgD,cAClLpC,qBAwBX,SAAAsC,EAAYrD,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAfjBqD,EAAAjD,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI+C,EAOZ,OANA/C,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM8C,eAAe7C,EAAE6C,aAAe9C,EAAM8C,aAAaC,IAAIjB,EAAY/B,YACzEC,EAAMsB,UAAUrB,EAAEqB,QAAU/B,EAAyCgC,EAAAA,oBAAuBvB,EAAMsB,UAClGtB,EAAMI,UAAUH,EAAEG,QAAU,IAAIC,KAAKL,EAAMI,UAC3CJ,EAAMM,UAAUL,EAAEK,QAAU,IAAID,KAAKL,EAAMM,UAC3CN,EAAMyB,iBAAiBxB,EAAEwB,eAAiBlC,EAAsCmC,EAAAA,iBAAoB1B,EAAMyB,iBACvGxB,GAUX+C,EAAAxC,UAAAC,UAAA,WACI,IAAMC,EAEF,GASJ,YAPiC,IAAtBZ,KAAKgD,cAAsD,OAAtBhD,KAAKgD,eAAwBpC,EAAuB,aAAI,cAAeZ,KAAKgD,aAAgBhD,KAAKgD,aAAqBrC,YAAcX,KAAKgD,mBAC7J,IAAjBhD,KAAKwB,UAA0BZ,EAAkB,QAAIZ,KAAKwB,cAC1B,IAAhCxB,KAAK6B,yBAAyCjB,EAAiC,uBAAIZ,KAAK6B,6BACvE,IAAjB7B,KAAKM,SAA4C,OAAjBN,KAAKM,UAAmBM,EAAkB,QAAI,cAAeZ,KAAKM,QAAWN,KAAKM,QAAgBK,YAAcX,KAAKM,cACpI,IAAjBN,KAAKQ,SAA4C,OAAjBR,KAAKQ,UAAmBI,EAAkB,QAAI,cAAeZ,KAAKQ,QAAWR,KAAKQ,QAAgBG,YAAcX,KAAKQ,cAC7H,IAAxBR,KAAK2B,iBAAiCf,EAAyB,eAAIZ,KAAK2B,qBACtC,IAAlC3B,KAAK+B,2BAA2CnB,EAAmC,yBAAIZ,KAAK+B,0BAChGnB,qBAgBX,SAAAuC,EAAYtD,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjBsD,EAAAlD,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIgD,EAIZ,OAHAhD,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM6C,eAAe5C,EAAE4C,aAAexB,EAAatB,UAAUC,EAAM6C,eACnE7C,EAAM8C,eAAe7C,EAAE6C,aAAe9C,EAAM8C,aAAaC,IAAIjB,EAAY/B,YACtEE,GAUXgD,EAAAzC,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAFiC,IAAtBZ,KAAK+C,cAAsD,OAAtB/C,KAAK+C,eAAwBnC,EAAuB,aAAI,cAAeZ,KAAK+C,aAAgB/C,KAAK+C,aAAqBpC,YAAcX,KAAK+C,mBACxJ,IAAtB/C,KAAKgD,cAAsD,OAAtBhD,KAAKgD,eAAwBpC,EAAuB,aAAI,cAAeZ,KAAKgD,aAAgBhD,KAAKgD,aAAqBrC,YAAcX,KAAKgD,cAClLpC,qBAgBX,SAAAwC,EAAYvD,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjBuD,EAAAnD,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIiD,EAIZ,OAHAjD,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMmD,WAAWlD,EAAEkD,SAAWnD,EAAMmD,SAASJ,IAAIrD,EAAQK,YACzDC,EAAMoD,WAAWnD,EAAEmD,SAAW,IAAI/C,KAAKL,EAAMoD,WAC1CnD,GAUXiD,EAAA1C,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAF6B,IAAlBZ,KAAKqD,UAA8C,OAAlBrD,KAAKqD,WAAoBzC,EAAmB,SAAI,cAAeZ,KAAKqD,SAAYrD,KAAKqD,SAAiB1C,YAAcX,KAAKqD,eACxI,IAAlBrD,KAAKsD,UAA8C,OAAlBtD,KAAKsD,WAAoB1C,EAAmB,SAAI,cAAeZ,KAAKsD,SAAYtD,KAAKsD,SAAiB3C,YAAcX,KAAKsD,UAC9J1C,qBAcX,SAAA2C,EAAY1D,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjB0D,EAAAtD,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIoD,EAEZ,OADApD,EAAIL,OAAOC,OAAOI,EAAGD,IAWzBqD,EAAA7C,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAFwB,IAAbZ,KAAKwD,MAAsB5C,EAAc,IAAIZ,KAAKwD,UACnC,IAAfxD,KAAKL,QAAwBiB,EAAgB,MAAIZ,KAAKL,OAC1DiB,qBAaX,SAAA6C,EAAY5D,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjB4D,EAAAxD,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIsD,EAEZ,OADAtD,EAAIL,OAAOC,OAAOI,EAAGD,IAWzBuD,EAAA/C,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADmC,IAAxBZ,KAAKe,iBAAiCH,EAAyB,eAAIZ,KAAKe,gBAC5EH,qBAaX,SAAA8C,EAAY7D,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjB6D,EAAAzD,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIuD,EAEZ,OADAvD,EAAIL,OAAOC,OAAOI,EAAGD,IAWzBwD,EAAAhD,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YAD8B,IAAnBZ,KAAKa,YAA4BD,EAAoB,UAAIZ,KAAKa,WAClED,qBAkBX,SAAA+C,EAAY9D,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAbjB8D,EAAA1D,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIwD,EAKZ,OAJAxD,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM6C,eAAe5C,EAAE4C,aAAexB,EAAatB,UAAUC,EAAM6C,eACnE7C,EAAM0D,gBAAgBzD,EAAEyD,cAAgBhE,EAAQK,UAAUC,EAAM0D,gBAChE1D,EAAM8C,eAAe7C,EAAE6C,aAAe9C,EAAM8C,aAAaC,IAAIjB,EAAY/B,YACtEE,GAUXwD,EAAAjD,UAAAC,UAAA,WACI,IAAMC,EAEF,GAKJ,YAHiC,IAAtBZ,KAAK+C,cAAsD,OAAtB/C,KAAK+C,eAAwBnC,EAAuB,aAAI,cAAeZ,KAAK+C,aAAgB/C,KAAK+C,aAAqBpC,YAAcX,KAAK+C,mBACvJ,IAAvB/C,KAAK4D,eAAwD,OAAvB5D,KAAK4D,gBAAyBhD,EAAwB,cAAI,cAAeZ,KAAK4D,cAAiB5D,KAAK4D,cAAsBjD,YAAcX,KAAK4D,oBAC7J,IAAtB5D,KAAKgD,cAAsD,OAAtBhD,KAAKgD,eAAwBpC,EAAuB,aAAI,cAAeZ,KAAKgD,aAAgBhD,KAAKgD,aAAqBrC,YAAcX,KAAKgD,cAClLpC,qBAkBX,SAAAiD,EAAYhE,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAbjBgE,EAAA5D,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI0D,EAKZ,OAJA1D,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM6C,eAAe5C,EAAE4C,aAAexB,EAAatB,UAAUC,EAAM6C,eACnE7C,EAAM0D,gBAAgBzD,EAAEyD,cAAgBhE,EAAQK,UAAUC,EAAM0D,gBAChE1D,EAAM8C,eAAe7C,EAAE6C,aAAe9C,EAAM8C,aAAaC,IAAIjB,EAAY/B,YACtEE,GAUX0D,EAAAnD,UAAAC,UAAA,WACI,IAAMC,EAEF,GAKJ,YAHiC,IAAtBZ,KAAK+C,cAAsD,OAAtB/C,KAAK+C,eAAwBnC,EAAuB,aAAI,cAAeZ,KAAK+C,aAAgB/C,KAAK+C,aAAqBpC,YAAcX,KAAK+C,mBACvJ,IAAvB/C,KAAK4D,eAAwD,OAAvB5D,KAAK4D,gBAAyBhD,EAAwB,cAAI,cAAeZ,KAAK4D,cAAiB5D,KAAK4D,cAAsBjD,YAAcX,KAAK4D,oBAC7J,IAAtB5D,KAAKgD,cAAsD,OAAtBhD,KAAKgD,eAAwBpC,EAAuB,aAAI,cAAeZ,KAAKgD,aAAgBhD,KAAKgD,aAAqBrC,YAAcX,KAAKgD,cAClLpC,qBAaX,SAAAkD,EAAYjE,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjBiE,EAAA7D,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI2D,EAEZ,OADA3D,EAAIL,OAAOC,OAAOI,EAAGD,IAWzB4D,EAAApD,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YAD8B,IAAnBZ,KAAKa,YAA4BD,EAAoB,UAAIZ,KAAKa,WAClED,qBAaX,SAAAmD,EAAYlE,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjBkE,EAAA9D,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI4D,EAEZ,OADA5D,EAAIL,OAAOC,OAAOI,EAAGD,IAWzB6D,EAAArD,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADoC,IAAzBZ,KAAKgE,kBAAkCpD,EAA0B,gBAAIZ,KAAKgE,iBAC9EpD,qBAcX,SAAAqD,EAAYpE,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAXjBoE,EAAAhE,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI8D,EAGZ,OAFA9D,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMgE,gBAAgB/D,EAAE+D,cAAgBhE,EAAMgE,cAAcjB,IAAIU,EAAwD1D,YACrHE,GAUX8D,EAAAvD,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADkC,IAAvBZ,KAAKkE,eAAwD,OAAvBlE,KAAKkE,gBAAyBtD,EAAwB,cAAI,cAAeZ,KAAKkE,cAAiBlE,KAAKkE,cAAsBvD,YAAcX,KAAKkE,eACvLtD,qBAaX,SAAAuD,EAAYtE,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjBsE,EAAAlE,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIgE,EAEZ,OADAhE,EAAIL,OAAOC,OAAOI,EAAGD,IAWzBiE,EAAAzD,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADoC,IAAzBZ,KAAKgE,kBAAkCpD,EAA0B,gBAAIZ,KAAKgE,iBAC9EpD,qBAcX,SAAAwD,EAAYvE,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAXjBuE,EAAAnE,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIiE,EAGZ,OAFAjE,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMmE,gBAAgBlE,EAAEkE,cAAgBnE,EAAMmE,cAAcpB,IAAIN,EAAyB1C,YACtFE,GAUXiE,EAAA1D,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADkC,IAAvBZ,KAAKqE,eAAwD,OAAvBrE,KAAKqE,gBAAyBzD,EAAwB,cAAI,cAAeZ,KAAKqE,cAAiBrE,KAAKqE,cAAsB1D,YAAcX,KAAKqE,eACvLzD,qBAaX,SAAA0D,EAAYzE,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjByE,EAAArE,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAImE,EAEZ,OADAnE,EAAIL,OAAOC,OAAOI,EAAGD,IAWzBoE,EAAA5D,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YAD+B,IAApBZ,KAAKuE,aAA6B3D,EAAqB,WAAIZ,KAAKuE,YACpE3D,qBAcX,SAAA4D,EAAY3E,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAXjB2E,EAAAvE,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIqE,EAGZ,OAFArE,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMmD,WAAWlD,EAAEkD,SAAWnD,EAAMmD,SAASJ,IAAIrD,EAAQK,YACtDE,GAUXqE,EAAA9D,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YAD6B,IAAlBZ,KAAKqD,UAA8C,OAAlBrD,KAAKqD,WAAoBzC,EAAmB,SAAI,cAAeZ,KAAKqD,SAAYrD,KAAKqD,SAAiB1C,YAAcX,KAAKqD,UAC9JzC,qBAaX,SAAA6D,EAAY5E,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjB4E,EAAAxE,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIsE,EAEZ,OADAtE,EAAIL,OAAOC,OAAOI,EAAGD,IAWzBuE,EAAA/D,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADmC,IAAxBZ,KAAK8B,iBAAiClB,EAAyB,eAAIZ,KAAK8B,gBAC5ElB,qBAcX,SAAA8D,EAAY7E,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAXjB6E,EAAAzE,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIuE,EAGZ,OAFAvE,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM8C,eAAe7C,EAAE6C,aAAe9C,EAAM8C,aAAaC,IAAIjB,EAAY/B,YACtEE,GAUXuE,EAAAhE,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADiC,IAAtBZ,KAAKgD,cAAsD,OAAtBhD,KAAKgD,eAAwBpC,EAAuB,aAAI,cAAeZ,KAAKgD,aAAgBhD,KAAKgD,aAAqBrC,YAAcX,KAAKgD,cAClLpC,qBAaX,SAAA+D,EAAY9E,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjB8E,EAAA1E,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIwE,EAEZ,OADAxE,EAAIL,OAAOC,OAAOI,EAAGD,IAWzByE,EAAAjE,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YADmC,IAAxBZ,KAAKe,iBAAiCH,EAAyB,eAAIZ,KAAKe,gBAC5EH,qBAgBX,SAAAgE,EAAY/E,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjB+E,EAAA3E,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIyE,EAIZ,OAHAzE,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM2E,UAAU1E,EAAE0E,QAAUF,EAAuC1E,UAAUC,EAAM2E,UACnF3E,EAAM4E,gBAAgB3E,EAAE2E,cAAgBC,EAAoB9E,UAAUC,EAAM4E,gBACzE3E,GAUXyE,EAAAlE,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAF4B,IAAjBZ,KAAK6E,SAA4C,OAAjB7E,KAAK6E,UAAmBjE,EAAkB,QAAI,cAAeZ,KAAK6E,QAAW7E,KAAK6E,QAAgBlE,YAAcX,KAAK6E,cAC9H,IAAvB7E,KAAK8E,eAAwD,OAAvB9E,KAAK8E,gBAAyBlE,EAAwB,cAAI,cAAeZ,KAAK8E,cAAiB9E,KAAK8E,cAAsBnE,YAAcX,KAAK8E,eACvLlE,qBAgBX,SAAAoE,EAAYnF,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjBmF,EAAA/E,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI6E,EAIZ,OAHA7E,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMmD,WAAWlD,EAAEkD,SAAWnD,EAAMmD,SAASJ,IAAIrD,EAAQK,YACzDC,EAAM+E,iBAAiB9E,EAAE8E,eAAiBC,EAAsBjF,UAAUC,EAAM+E,iBAC7E9E,GAUX6E,EAAAtE,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAF6B,IAAlBZ,KAAKqD,UAA8C,OAAlBrD,KAAKqD,WAAoBzC,EAAmB,SAAI,cAAeZ,KAAKqD,SAAYrD,KAAKqD,SAAiB1C,YAAcX,KAAKqD,eAClI,IAAxBrD,KAAKiF,gBAA0D,OAAxBjF,KAAKiF,iBAA0BrE,EAAyB,eAAI,cAAeZ,KAAKiF,eAAkBjF,KAAKiF,eAAuBtE,YAAcX,KAAKiF,gBAC5LrE,qBAsBX,SAAAuE,EAAYtF,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAbjBsF,EAAAlF,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIgF,EAKZ,OAJAhF,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM+B,WAAW9B,EAAE8B,SAAWxC,EAAsCmC,EAAAA,iBAAoB1B,EAAM+B,WAC9F/B,EAAMsB,UAAUrB,EAAEqB,QAAU/B,EAAyCgC,EAAAA,oBAAuBvB,EAAMsB,UAClGtB,EAAMyB,iBAAiBxB,EAAEwB,eAAiBlC,EAAsCmC,EAAAA,iBAAoB1B,EAAMyB,iBACvGxB,GAUXgF,EAAAzE,UAAAC,UAAA,WACI,IAAMC,EAEF,GASJ,YAP0C,IAA/BZ,KAAKoC,wBAAwCxB,EAAgC,sBAAIZ,KAAKoC,4BACpE,IAAlBpC,KAAKiC,WAA2BrB,EAAmB,SAAIZ,KAAKiC,eAC3C,IAAjBjC,KAAKwB,UAA0BZ,EAAkB,QAAIZ,KAAKwB,cAClC,IAAxBxB,KAAKsC,iBAAiC1B,EAAyB,eAAIZ,KAAKsC,qBACxC,IAAhCtC,KAAK6B,yBAAyCjB,EAAiC,uBAAIZ,KAAK6B,6BAChE,IAAxB7B,KAAK2B,iBAAiCf,EAAyB,eAAIZ,KAAK2B,qBACtC,IAAlC3B,KAAK+B,2BAA2CnB,EAAmC,yBAAIZ,KAAK+B,0BAChGnB,qBAgBX,SAAAwE,EAAYvF,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjBuF,EAAAnF,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIiF,EAIZ,OAHAjF,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM2E,UAAU1E,EAAE0E,QAAUM,EAAqDlF,UAAUC,EAAM2E,UACjG3E,EAAM4E,gBAAgB3E,EAAE2E,cAAgBC,EAAoB9E,UAAUC,EAAM4E,gBACzE3E,GAUXiF,EAAA1E,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAF4B,IAAjBZ,KAAK6E,SAA4C,OAAjB7E,KAAK6E,UAAmBjE,EAAkB,QAAI,cAAeZ,KAAK6E,QAAW7E,KAAK6E,QAAgBlE,YAAcX,KAAK6E,cAC9H,IAAvB7E,KAAK8E,eAAwD,OAAvB9E,KAAK8E,gBAAyBlE,EAAwB,cAAI,cAAeZ,KAAK8E,cAAiB9E,KAAK8E,cAAsBnE,YAAcX,KAAK8E,eACvLlE,qBAgBX,SAAAyE,EAAYxF,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjBwF,EAAApF,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIkF,EAIZ,OAHAlF,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMgE,gBAAgB/D,EAAE+D,cAAgBhE,EAAMgE,cAAcjB,IAAIH,EAAyC7C,YACzGC,EAAM+E,iBAAiB9E,EAAE8E,eAAiBC,EAAsBjF,UAAUC,EAAM+E,iBAC7E9E,GAUXkF,EAAA3E,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAFkC,IAAvBZ,KAAKkE,eAAwD,OAAvBlE,KAAKkE,gBAAyBtD,EAAwB,cAAI,cAAeZ,KAAKkE,cAAiBlE,KAAKkE,cAAsBvD,YAAcX,KAAKkE,oBAC3J,IAAxBlE,KAAKiF,gBAA0D,OAAxBjF,KAAKiF,iBAA0BrE,EAAyB,eAAI,cAAeZ,KAAKiF,eAAkBjF,KAAKiF,eAAuBtE,YAAcX,KAAKiF,gBAC5LrE,qBAgBX,SAAA0E,EAAYzF,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjByF,EAAArF,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAImF,EAIZ,OAHAnF,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMqF,aAAapF,EAAEoF,WAAa9F,EAAwC+F,EAAAA,mBAAsBtF,EAAMqF,aACtGrF,EAAMuF,OAAOtF,EAAEsF,KAAO3F,OAAO4F,KAAKxF,EAAMuF,MAAME,QAAY,SAACC,EAAKC,GAAgC,OAAxBD,EAAIC,GAAK3F,EAAMuF,KAAKI,GAAWD,IAAQ,KAC5GzF,GAUXmF,EAAA5E,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAF+B,IAApBZ,KAAKuF,aAA6B3E,EAAqB,WAAIZ,KAAKuF,iBAClD,IAAdvF,KAAKyF,MAAsC,OAAdzF,KAAKyF,OAAgB7E,EAAe,KAAI,cAAeZ,KAAKyF,KAAQzF,KAAKyF,KAAa9E,YAAcX,KAAKyF,MAC1I7E,qBAcX,SAAAkF,EAAYjG,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjBiG,EAAA7F,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI2F,EAEZ,OADA3F,EAAIL,OAAOC,OAAOI,EAAGD,IAWzB4F,EAAApF,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAFwB,IAAbZ,KAAKwD,MAAsB5C,EAAc,IAAIZ,KAAKwD,UACnC,IAAfxD,KAAKL,QAAwBiB,EAAgB,MAAIZ,KAAKL,OAC1DiB,qBAcX,SAAAmE,EAAYlF,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjBkF,EAAA9E,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI4E,EAEZ,OADA5E,EAAIL,OAAOC,OAAOI,EAAGD,IAWzB6E,EAAArE,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAF2B,IAAhBZ,KAAK+F,SAAyBnF,EAAiB,OAAIZ,KAAK+F,aACtC,IAAlB/F,KAAKgG,WAA2BpF,EAAmB,SAAIZ,KAAKgG,UAChEpF,qBAcX,SAAAsE,EAAYrF,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjBqF,EAAAjF,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI+E,EAEZ,OADA/E,EAAIL,OAAOC,OAAOI,EAAGD,IAWzBgF,EAAAxE,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAF+B,IAApBZ,KAAKiG,aAA6BrF,EAAqB,WAAIZ,KAAKiG,iBAC/C,IAAjBjG,KAAKkG,UAA0BtF,EAAkB,QAAIZ,KAAKkG,SAC9DtF,qBA4BX,SAAAuF,EAAYtG,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAdjBsG,EAAAlG,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIgG,EAMZ,OALAhG,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMsB,UAAUrB,EAAEqB,QAAU/B,EAAyCgC,EAAAA,oBAAuBvB,EAAMsB,UAClGtB,EAAME,OAAOD,EAAEC,KAAOX,EAAiCY,EAAAA,YAAeH,EAAME,OAC5EF,EAAM+B,WAAW9B,EAAE8B,SAAWxC,EAAsCmC,EAAAA,iBAAoB1B,EAAM+B,WAC9F/B,EAAMkG,WAAWjG,EAAEiG,SAAWtG,OAAO4F,KAAKxF,EAAMkG,UAAUT,QAAY,SAACC,EAAKC,GAAoC,OAA5BD,EAAIC,GAAK3F,EAAMkG,SAASP,GAAWD,IAAQ,KAC5HzF,GAUXgG,EAAAzF,UAAAC,UAAA,WACI,IAAMC,EAEF,GAcJ,YAZ6B,IAAlBZ,KAAKqG,WAA2BzF,EAAmB,SAAIZ,KAAKqG,eACvC,IAArBrG,KAAKsG,cAA8B1F,EAAsB,YAAIZ,KAAKsG,kBAC1C,IAAxBtG,KAAKe,iBAAiCH,EAAyB,eAAIZ,KAAKe,qBACrD,IAAnBf,KAAKa,YAA4BD,EAAoB,UAAIZ,KAAKa,gBAChD,IAAdb,KAAKiB,OAAuBL,EAAe,KAAIZ,KAAKiB,WACnC,IAAjBjB,KAAKwB,UAA0BZ,EAAkB,QAAIZ,KAAKwB,cAC5C,IAAdxB,KAAKI,OAAuBQ,EAAe,KAAIZ,KAAKI,WAClC,IAAlBJ,KAAKiC,WAA2BrB,EAAmB,SAAIZ,KAAKiC,eACzC,IAAnBjC,KAAKqC,YAA4BzB,EAAoB,UAAIZ,KAAKqC,gBACtC,IAAxBrC,KAAKsC,iBAAiC1B,EAAyB,eAAIZ,KAAKsC,qBACtD,IAAlBtC,KAAKoG,UAA8C,OAAlBpG,KAAKoG,WAAoBxF,EAAmB,SAAI,cAAeZ,KAAKoG,SAAYpG,KAAKoG,SAAiBzF,YAAcX,KAAKoG,eAC3I,IAAfpG,KAAKmB,QAAwBP,EAAgB,MAAIZ,KAAKmB,OAC1DP,qBAmBX,SAAA2F,EAAY1G,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjB0G,EAAAtG,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIoG,EAIZ,OAHApG,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAM+B,WAAW9B,EAAE8B,SAAWxC,EAAsCmC,EAAAA,iBAAoB1B,EAAM+B,WAC9F/B,EAAM4E,gBAAgB3E,EAAE2E,cAAgBC,EAAoB9E,UAAUC,EAAM4E,gBACzE3E,GAUXoG,EAAA7F,UAAAC,UAAA,WACI,IAAMC,EAEF,GAOJ,YAL8B,IAAnBZ,KAAKqC,YAA4BzB,EAAoB,UAAIZ,KAAKqC,gBACtC,IAAxBrC,KAAKsC,iBAAiC1B,EAAyB,eAAIZ,KAAKsC,qBACtD,IAAlBtC,KAAKiC,WAA2BrB,EAAmB,SAAIZ,KAAKiC,eACxC,IAApBjC,KAAKwG,aAA6B5F,EAAqB,WAAIZ,KAAKwG,iBACzC,IAAvBxG,KAAK8E,eAAwD,OAAvB9E,KAAK8E,gBAAyBlE,EAAwB,cAAI,cAAeZ,KAAK8E,cAAiB9E,KAAK8E,cAAsBnE,YAAcX,KAAK8E,eACvLlE,qBAgBX,SAAA6F,EAAY5G,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAZjB4G,EAAAxG,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIsG,EAIZ,OAHAtG,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMgE,gBAAgB/D,EAAE+D,cAAgBhE,EAAMgE,cAAcjB,IAAIY,EAAgD5D,YAChHC,EAAM+E,iBAAiB9E,EAAE8E,eAAiBC,EAAsBjF,UAAUC,EAAM+E,iBAC7E9E,GAUXsG,EAAA/F,UAAAC,UAAA,WACI,IAAMC,EAEF,GAIJ,YAFkC,IAAvBZ,KAAKkE,eAAwD,OAAvBlE,KAAKkE,gBAAyBtD,EAAwB,cAAI,cAAeZ,KAAKkE,cAAiBlE,KAAKkE,cAAsBvD,YAAcX,KAAKkE,oBAC3J,IAAxBlE,KAAKiF,gBAA0D,OAAxBjF,KAAKiF,iBAA0BrE,EAAyB,eAAI,cAAeZ,KAAKiF,eAAkBjF,KAAKiF,eAAuBtE,YAAcX,KAAKiF,gBAC5LrE,qBAsBX,SAAA8F,EAAY7G,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAdjB6G,EAAAzG,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAIuG,EAMZ,OALAvG,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMyG,SAASxG,EAAEwG,OAAS3E,EAAY/B,UAAUC,EAAMyG,SACtDzG,EAAM0G,YAAYzG,EAAEyG,UAAY5E,EAAY/B,UAAUC,EAAM0G,YAC5D1G,EAAME,OAAOD,EAAEC,KAAOX,EAAiCY,EAAAA,YAAeH,EAAME,OAC5EF,EAAMkG,WAAWjG,EAAEiG,SAAWlG,EAAMkG,SAASnD,IAAIqC,EAASrF,YACvDE,GAUXuG,EAAAhG,UAAAC,UAAA,WACI,IAAMC,EAEF,GAQJ,YAN2B,IAAhBZ,KAAK2G,QAA0C,OAAhB3G,KAAK2G,SAAkB/F,EAAiB,OAAI,cAAeZ,KAAK2G,OAAU3G,KAAK2G,OAAehG,YAAcX,KAAK2G,aAC7H,IAAnB3G,KAAK4G,WAAgD,OAAnB5G,KAAK4G,YAAqBhG,EAAoB,UAAI,cAAeZ,KAAK4G,UAAa5G,KAAK4G,UAAkBjG,YAAcX,KAAK4G,gBACvI,IAAxB5G,KAAKe,iBAAiCH,EAAyB,eAAIZ,KAAKe,qBAC1D,IAAdf,KAAKI,OAAuBQ,EAAe,KAAIZ,KAAKI,WACtC,IAAdJ,KAAKiB,OAAuBL,EAAe,KAAIZ,KAAKiB,WAClC,IAAlBjB,KAAKoG,UAA8C,OAAlBpG,KAAKoG,WAAoBxF,EAAmB,SAAI,cAAeZ,KAAKoG,SAAYpG,KAAKoG,SAAiBzF,YAAcX,KAAKoG,UAC9JxF,qBAaX,SAAAiG,EAAYhH,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAVjBgH,EAAA5G,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI0G,EAEZ,OADA1G,EAAIL,OAAOC,OAAOI,EAAGD,IAWzB2G,EAAAnG,UAAAC,UAAA,WACI,IAAMC,EAEF,GAGJ,YAD+B,IAApBZ,KAAK8G,aAA6BlG,EAAqB,WAAIZ,KAAK8G,YACpElG,qBAgBX,SAAAmG,EAAYlH,GACHA,GAGLC,OAAOC,OAAOC,KAAMH,UAXjBkH,EAAA9G,UAAP,SAAiBC,GACb,IAAIC,EAAI,IAAI4G,EAGZ,OAFA5G,EAAIL,OAAOC,OAAOI,EAAGD,GACjBA,EAAMmB,SAASlB,EAAEkB,OAAS5B,EAAmC6B,EAAAA,cAAiBpB,EAAMmB,SACjFlB,GAUX4G,EAAArG,UAAAC,UAAA,WACI,IAAMC,EAEF,GAKJ,YAH8B,IAAnBZ,KAAKa,YAA4BD,EAAoB,UAAIZ,KAAKa,gBACvC,IAAvBb,KAAKgB,gBAAgCJ,EAAwB,cAAIZ,KAAKgB,oBACtD,IAAhBhB,KAAKqB,SAAyBT,EAAiB,OAAIZ,KAAKqB,QAC5DT,sBC7iCX,SAAAoG,EAAoBC,GAAAjH,KAAAiH,mBAAAA,SAGpBD,EAAAtG,UAAAwG,KAAA,WACI,GAAIlH,KAAKmH,MACL,OAAOnH,KAAKmH,MAGhB,OAAQnH,KAAKiH,mBAAmBG,kBAC5B,KAAKC,EAAAA,YAAYC,MACbtH,KAAKmH,MAAQ,sCACb,MACJ,KAAKE,EAAAA,YAAYE,KACbvH,KAAKmH,MAAQ,GACb,MACJ,KAAKE,EAAAA,YAAYG,KACbxH,KAAKmH,MAAQ,kCACb,MACJ,KAAKE,EAAAA,YAAYI,KACbzH,KAAKmH,MAAQ,kCAGrB,OAAOnH,KAAKmH,OAGhBH,EAAAtG,UAAAgH,UAAA,WACI,GAAI1H,KAAK2H,WACL,OAAO3H,KAAK2H,WAGhB,OAAQ3H,KAAKiH,mBAAmBG,kBAC5B,KAAKC,EAAAA,YAAYC,MACbtH,KAAK2H,WAAa,kCAClB,MACJ,KAAKN,EAAAA,YAAYE,KACbvH,KAAK2H,WAAa,GAClB,MACJ,KAAKN,EAAAA,YAAYG,KACbxH,KAAK2H,WAAa,kCAClB,MACJ,KAAKN,EAAAA,YAAYI,KACbzH,KAAK2H,WAAa,kCAG1B,OAAO3H,KAAK2H,YAGhBX,EAAAtG,UAAAkH,eAAA,WAEI,OADe5H,KAAKiH,mBAAmBG,mBAAqBC,EAAAA,YAAYC,MAAQ,UAAY,YAC5EtH,KAAKkH,QAGzBF,EAAAtG,UAAAmH,oBAAA,WAEI,OADe7H,KAAKiH,mBAAmBG,mBAAqBC,EAAAA,YAAYC,MAAQ,UAAY,YAC5EtH,KAAK0H,uKA3D5BI,EAAAA,WAAUC,KAAA,CAAC,CAACC,WAAY,qDAFhBC,EAAAA,wCCoEL,SAAAC,EAAoBC,EAA0BC,GAA1BpI,KAAAmI,KAAAA,EAA0BnI,KAAAoI,YAAAA,SAGtCF,EAAAxH,UAAA2H,WAAA,WACJ,MAAO,CACHC,QAAS,IAAIC,EAAAA,YAAY,CACrBC,eAAgB,qBAEpBC,iBAAiB,IAIzBP,EAAAxH,UAAAgI,YAAA,SAAYC,GACR,IAAMC,EAAgCD,EAAY,UAAyBA,EAAK,IAAIjC,EAAmBiC,GACvG,OAAO3I,KAAKmI,KAAKU,KAAmC7I,KAAKoI,YAAYR,iBAAmB,mDAAoDgB,EAAQjI,YAAaX,KAAKqI,cACjKS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAAlC,EAAoB5G,UAAU8I,MAC1CC,EAAAA,UAGZd,EAAAxH,UAAAuI,WAAA,SAAWN,GACP,IAAMC,EAA+BD,EAAY,UAAwBA,EAAK,IAAI7E,EAAkB6E,GACpG,OAAO3I,KAAKmI,KAAKU,KAAuB7I,KAAKoI,YAAYR,iBAAmB,kDAAmDgB,EAAQjI,YAAaX,KAAKqI,cACpJS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAAnJ,EAAQK,UAAU8I,MAC9BC,EAAAA,UAGZd,EAAAxH,UAAAwI,aAAA,SAAaP,GACT,IAAMC,EAAiCD,EAAY,UAA0BA,EAAK,IAAI/D,EAAoB+D,GAC1G,OAAO3I,KAAKmI,KAAKU,KAAoC7I,KAAKoI,YAAYR,iBAAmB,oDAAqDgB,EAAQjI,YAAaX,KAAKqI,cACnKS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAA/D,EAAqB/E,UAAU8I,MAC3CC,EAAAA,UAGZd,EAAAxH,UAAAyI,cAAA,SAAcR,GACV,IAAMC,EAAkCD,EAAY,UAA2BA,EAAK,IAAIjF,EAAqBiF,GAC7G,OAAO3I,KAAKmI,KAAKU,KAAW7I,KAAKoI,YAAYR,iBAAmB,qDAAsDgB,EAAQjI,YAAWb,OAAAC,OAAAD,OAAAC,OAAA,GAAMC,KAAKqI,cAAY,CAAEe,QAAS,eAE/KlB,EAAAxH,UAAA2I,oBAAA,SAAoBV,GAChB,IAAMC,EAAwCD,EAAY,UAAiCA,EAAK,IAAI5B,EAA2B4B,GAC/H,OAAO3I,KAAKmI,KAAKU,KAAW7I,KAAKoI,YAAYR,iBAAmB,2DAA4DgB,EAAQjI,YAAWb,OAAAC,OAAAD,OAAAC,OAAA,GAAMC,KAAKqI,cAAY,CAAEe,QAAS,eAErLlB,EAAAxH,UAAA4I,oBAAA,SAAoBX,GAChB,IAAMC,EAAwCD,EAAY,UAAiCA,EAAK,IAAIvD,EAA2BuD,GAC/H,OAAO3I,KAAKmI,KAAKU,KAA2C7I,KAAKoI,YAAYR,iBAAmB,2DAA4DgB,EAAQjI,YAAaX,KAAKqI,cACjLS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAA1D,EAA4BpF,UAAU8I,MAClDC,EAAAA,UAGZd,EAAAxH,UAAA6I,mBAAA,SAAmBZ,GACf,IAAMC,EAAuCD,EAAY,UAAgCA,EAAK,IAAIzF,EAA0ByF,GAC5H,OAAO3I,KAAKmI,KAAKU,KAA0C7I,KAAKoI,YAAYR,iBAAmB,0DAA2DgB,EAAQjI,YAAaX,KAAKqI,cAC/KS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAA5F,EAA2BlD,UAAU8I,MACjDC,EAAAA,UAGZd,EAAAxH,UAAA8I,mBAAA,SAAmBb,GACf,IAAMC,EAAuCD,EAAY,UAAgCA,EAAK,IAAIlF,EAA0BkF,GAC5H,OAAO3I,KAAKmI,KAAKU,KAAW7I,KAAKoI,YAAYR,iBAAmB,0DAA2DgB,EAAQjI,YAAWb,OAAAC,OAAAD,OAAAC,OAAA,GAAMC,KAAKqI,cAAY,CAAEe,QAAS,eAEpLlB,EAAAxH,UAAA+I,eAAA,SAAed,GACX,IAAMC,EAAmCD,EAAY,UAA4BA,EAAK,IAAIxC,EAAsBwC,GAChH,OAAO3I,KAAKmI,KAAKU,KAAW7I,KAAKoI,YAAYR,iBAAmB,sDAAuDgB,EAAQjI,YAAWb,OAAAC,OAAAD,OAAAC,OAAA,GAAMC,KAAKqI,cAAY,CAAEe,QAAS,eAEhLlB,EAAAxH,UAAAgJ,iBAAA,SAAiBf,GACb,IAAMC,EAAqCD,EAAY,UAA8BA,EAAK,IAAIrE,EAAwBqE,GACtH,OAAO3I,KAAKmI,KAAKU,KAAwC7I,KAAKoI,YAAYR,iBAAmB,wDAAyDgB,EAAQjI,YAAaX,KAAKqI,cAC3KS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAAvE,EAAyBvE,UAAU8I,MAC/CC,EAAAA,UAGZd,EAAAxH,UAAAiJ,oBAAA,SAAoBhB,GAChB,IAAMC,EAAwCD,EAAY,UAAiCA,EAAK,IAAIvF,EAA2BuF,GAC/H,OAAO3I,KAAKmI,KAAKU,KAAW7I,KAAKoI,YAAYR,iBAAmB,2DAA4DgB,EAAQjI,YAAWb,OAAAC,OAAAD,OAAAC,OAAA,GAAMC,KAAKqI,cAAY,CAAEe,QAAS,eAErLlB,EAAAxH,UAAAkJ,4BAAA,SAA4BjB,GACxB,IAAMC,EAAgDD,EAAY,UAAyCA,EAAK,IAAI5E,EAAmC4E,GACvJ,OAAO3I,KAAKmI,KAAKU,KAAmD7I,KAAKoI,YAAYR,iBAAmB,mEAAoEgB,EAAQjI,YAAaX,KAAKqI,cACjMS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAA9E,EAAoChE,UAAU8I,MAC1DC,EAAAA,UAGZd,EAAAxH,UAAAmJ,qBAAA,SAAqBlB,GACjB,IAAMC,EAAyCD,EAAY,UAAkCA,EAAK,IAAIlE,EAA4BkE,GAClI,OAAO3I,KAAKmI,KAAKU,KAA4C7I,KAAKoI,YAAYR,iBAAmB,4DAA6DgB,EAAQjI,YAAaX,KAAKqI,cACnLS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAArE,EAA6BzE,UAAU8I,MACnDC,EAAAA,UAGZd,EAAAxH,UAAAoJ,oBAAA,SAAoBnB,GAChB,IAAMC,EAAwCD,EAAY,UAAiCA,EAAK,IAAIpC,EAA2BoC,GAC/H,OAAO3I,KAAKmI,KAAKU,KAA2C7I,KAAKoI,YAAYR,iBAAmB,2DAA4DgB,EAAQjI,YAAaX,KAAKqI,cACjLS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAAtC,EAA4BxG,UAAU8I,MAClDC,EAAAA,UAGZd,EAAAxH,UAAAqJ,iCAAA,SAAiCpB,GAC7B,IAAMC,EAAqDD,EAAY,UAA8CA,EAAK,IAAIxE,EAAwCwE,GACtK,OAAO3I,KAAKmI,KAAKU,KAAwD7I,KAAKoI,YAAYR,iBAAmB,wEAAyEgB,EAAQjI,YAAaX,KAAKqI,cAC3MS,KACG7F,EAAAA,KAAI,SAAA8F,GAAQ,OAAA3E,EAAyCnE,UAAU8I,MAC/DC,EAAAA,2KAhHflB,EAAAA,WAAUC,KAAA,CAAC,CAACC,WAAY,qDALJgC,EAAAA,kBACbhD","sourcesContent":["// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum MessageStatus {\n MESSAGE_STATUS_NOT_READ = 0,\n MESSAGE_STATUS_READ = 1,\n MESSAGE_STATUS_SENT = 2,\n MESSAGE_STATUS_DELIVERED = 3,\n MESSAGE_STATUS_FAILED = 4,\n MESSAGE_STATUS_UNDELIVERED = 5,\n}\n\nexport enum MessageType {\n MESSAGE_TYPE_MESSAGE = 0,\n MESSAGE_TYPE_MEDIA = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ConversationChannel {\n CONVERSATION_CHANNEL_UNDEFINED = 0,\n CONVERSATION_CHANNEL_INTERNAL = 1,\n CONVERSATION_CHANNEL_SMS = 2,\n CONVERSATION_CHANNEL_FACEBOOK = 3,\n CONVERSATION_CHANNEL_GOOGLE_MESSAGES = 4,\n}\n\nexport enum PlatformLocation {\n PLATFORM_LOCATION_UNDEFINED = 0,\n PLATFORM_LOCATION_BUSINESS_APP = 1,\n PLATFORM_LOCATION_PARTNER_CENTER = 2,\n PLATFORM_LOCATION_VENDOR_CENTER = 3,\n PLATFORM_LOCATION_TASK_MANAGER = 4,\n PLATFORM_LOCATION_PROPOSAL_BUILDER = 5,\n PLATFORM_LOCATION_SALES_CENTER = 6,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ParticipantType {\n PARTICIPANT_TYPE_UNDEFINED = 0,\n PARTICIPANT_TYPE_CUSTOMER = 1,\n PARTICIPANT_TYPE_IAM_USER = 2,\n PARTICIPANT_TYPE_ACCOUNT_GROUP = 3,\n PARTICIPANT_TYPE_PARTNER = 4,\n PARTICIPANT_TYPE_IAM_TEMPORARY_SUBJECT = 5,\n PARTICIPANT_TYPE_DIGITAL_AGENT = 6,\n PARTICIPANT_TYPE_VENDOR = 7,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum MetadataIdentifier {\n METADATA_IDENTIFIER_UNDEFINED = 0,\n METADATA_IDENTIFIER_RECIPIENT = 1,\n METADATA_IDENTIFIER_SENDER = 2,\n METADATA_IDENTIFIER_CONVERSATION = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Message implements i.MessageInterface {\n messageId: string;\n externalMessageId: string;\n conversationId: string;\n participantId: string;\n type: e.MessageType;\n body: string;\n error: string;\n created: Date;\n updated: Date;\n deleted: Date;\n media: string[];\n\n static fromProto(proto: any): Message {\n let m = new Message();\n m = Object.assign(m, proto);\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n return m;\n }\n\n constructor(kwargs?: i.MessageInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.externalMessageId !== 'undefined') {toReturn['externalMessageId'] = this.externalMessageId;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.error !== 'undefined') {toReturn['error'] = this.error;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.media !== 'undefined') {toReturn['media'] = this.media;}\n return toReturn;\n }\n}\n\nexport class ParticipantMessageStatus implements i.ParticipantMessageStatusInterface {\n participantId: string;\n messageId: string;\n status: e.MessageStatus;\n updated: Date;\n\n static fromProto(proto: any): ParticipantMessageStatus {\n let m = new ParticipantMessageStatus();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.MessageStatus>(e.MessageStatus, proto.status);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n return m;\n }\n\n constructor(kwargs?: i.ParticipantMessageStatusInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Conversation implements i.ConversationInterface {\n conversationId: string;\n channel: e.ConversationChannel;\n externalConversationId: string;\n created: Date;\n updated: Date;\n deleted: Date;\n participantIds: string[];\n latestMsgSentTime: Date;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): Conversation {\n let m = new Conversation();\n m = Object.assign(m, proto);\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n if (proto.latestMsgSentTime) {m.latestMsgSentTime = new Date(proto.latestMsgSentTime);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.ConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.participantIds !== 'undefined') {toReturn['participantIds'] = this.participantIds;}\n if (typeof this.latestMsgSentTime !== 'undefined' && this.latestMsgSentTime !== null) {toReturn['latestMsgSentTime'] = 'toApiJson' in this.latestMsgSentTime ? (this.latestMsgSentTime as any).toApiJson() : this.latestMsgSentTime;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Participant implements i.ParticipantInterface {\n participantId: string;\n internalParticipantId: string;\n partnerId: string;\n accountGroupId: string;\n location: e.PlatformLocation;\n channel: e.ConversationChannel;\n externalParticipantId: string;\n name: string;\n created: Date;\n updated: Date;\n deleted: Date;\n participantType: e.ParticipantType;\n email: string;\n phoneNumber: string;\n\n static fromProto(proto: any): Participant {\n let m = new Participant();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n if (proto.participantType) {m.participantType = enumStringToValue<e.ParticipantType>(e.ParticipantType, proto.participantType);}\n return m;\n }\n\n constructor(kwargs?: i.ParticipantInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.internalParticipantId !== 'undefined') {toReturn['internalParticipantId'] = this.internalParticipantId;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalParticipantId !== 'undefined') {toReturn['externalParticipantId'] = this.externalParticipantId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.participantType !== 'undefined') {toReturn['participantType'] = this.participantType;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.phoneNumber !== 'undefined') {toReturn['phoneNumber'] = this.phoneNumber;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport { Conversation } from './conversation';\nimport { Message } from './message';\nimport { Participant } from './participant';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class ConversationMessageCount implements i.ConversationMessageCountInterface {\n conversationId: string;\n count: number;\n\n static fromProto(proto: any): ConversationMessageCount {\n let m = new ConversationMessageCount();\n m = Object.assign(m, proto);\n if (proto.count) {m.count = parseInt(proto.count, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ConversationMessageCountInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.count !== 'undefined') {toReturn['count'] = this.count;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsResponseConversations implements i.LookupConversationsResponseConversationsInterface {\n conversation: Conversation;\n participants: Participant[];\n\n static fromProto(proto: any): LookupConversationsResponseConversations {\n let m = new LookupConversationsResponseConversations();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsResponseConversationsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class CreateConversationRequest implements i.CreateConversationRequestInterface {\n participants: Participant[];\n channel: e.ConversationChannel;\n externalConversationId: string;\n created: Date;\n updated: Date;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): CreateConversationRequest {\n let m = new CreateConversationRequest();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.CreateConversationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\nexport class CreateConversationResponse implements i.CreateConversationResponseInterface {\n conversation: Conversation;\n participants: Participant[];\n\n static fromProto(proto: any): CreateConversationResponse {\n let m = new CreateConversationResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.CreateConversationResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class CreateMultiMessagesRequest implements i.CreateMultiMessagesRequestInterface {\n messages: Message[];\n lastSeen: Date;\n\n static fromProto(proto: any): CreateMultiMessagesRequest {\n let m = new CreateMultiMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n if (proto.lastSeen) {m.lastSeen = new Date(proto.lastSeen);}\n return m;\n }\n\n constructor(kwargs?: i.CreateMultiMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n if (typeof this.lastSeen !== 'undefined' && this.lastSeen !== null) {toReturn['lastSeen'] = 'toApiJson' in this.lastSeen ? (this.lastSeen as any).toApiJson() : this.lastSeen;}\n return toReturn;\n }\n}\n\nexport class MetadataDataEntry implements i.MetadataDataEntryInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): MetadataDataEntry {\n let m = new MetadataDataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.MetadataDataEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class DeleteConversationRequest implements i.DeleteConversationRequestInterface {\n conversationId: string;\n\n static fromProto(proto: any): DeleteConversationRequest {\n let m = new DeleteConversationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteConversationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n return toReturn;\n }\n}\n\nexport class DeleteMessageRequest implements i.DeleteMessageRequestInterface {\n messageId: string;\n\n static fromProto(proto: any): DeleteMessageRequest {\n let m = new DeleteMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsResponseDetailedConversation implements i.GetMultiConversationDetailsResponseDetailedConversationInterface {\n conversation: Conversation;\n latestMessage: Message;\n participants: Participant[];\n\n static fromProto(proto: any): GetMultiConversationDetailsResponseDetailedConversation {\n let m = new GetMultiConversationDetailsResponseDetailedConversation();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.latestMessage) {m.latestMessage = Message.fromProto(proto.latestMessage);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsResponseDetailedConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.latestMessage !== 'undefined' && this.latestMessage !== null) {toReturn['latestMessage'] = 'toApiJson' in this.latestMessage ? (this.latestMessage as any).toApiJson() : this.latestMessage;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class SearchConversationsResponseDetailedConversation implements i.SearchConversationsResponseDetailedConversationInterface {\n conversation: Conversation;\n latestMessage: Message;\n participants: Participant[];\n\n static fromProto(proto: any): SearchConversationsResponseDetailedConversation {\n let m = new SearchConversationsResponseDetailedConversation();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.latestMessage) {m.latestMessage = Message.fromProto(proto.latestMessage);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.SearchConversationsResponseDetailedConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.latestMessage !== 'undefined' && this.latestMessage !== null) {toReturn['latestMessage'] = 'toApiJson' in this.latestMessage ? (this.latestMessage as any).toApiJson() : this.latestMessage;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class GetMessageRequest implements i.GetMessageRequestInterface {\n messageId: string;\n\n static fromProto(proto: any): GetMessageRequest {\n let m = new GetMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsRequest implements i.GetMultiConversationDetailsRequestInterface {\n conversationIds: string[];\n\n static fromProto(proto: any): GetMultiConversationDetailsRequest {\n let m = new GetMultiConversationDetailsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationIds !== 'undefined') {toReturn['conversationIds'] = this.conversationIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsResponse implements i.GetMultiConversationDetailsResponseInterface {\n conversations: GetMultiConversationDetailsResponseDetailedConversation[];\n\n static fromProto(proto: any): GetMultiConversationDetailsResponse {\n let m = new GetMultiConversationDetailsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(GetMultiConversationDetailsResponseDetailedConversation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationMessageCountRequest implements i.GetMultiConversationMessageCountRequestInterface {\n conversationIds: string[];\n\n static fromProto(proto: any): GetMultiConversationMessageCountRequest {\n let m = new GetMultiConversationMessageCountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationMessageCountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationIds !== 'undefined') {toReturn['conversationIds'] = this.conversationIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationMessageCountResponse implements i.GetMultiConversationMessageCountResponseInterface {\n messageCounts: ConversationMessageCount[];\n\n static fromProto(proto: any): GetMultiConversationMessageCountResponse {\n let m = new GetMultiConversationMessageCountResponse();\n m = Object.assign(m, proto);\n if (proto.messageCounts) {m.messageCounts = proto.messageCounts.map(ConversationMessageCount.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationMessageCountResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageCounts !== 'undefined' && this.messageCounts !== null) {toReturn['messageCounts'] = 'toApiJson' in this.messageCounts ? (this.messageCounts as any).toApiJson() : this.messageCounts;}\n return toReturn;\n }\n}\n\nexport class GetMultiMessagesRequest implements i.GetMultiMessagesRequestInterface {\n messageIds: string[];\n\n static fromProto(proto: any): GetMultiMessagesRequest {\n let m = new GetMultiMessagesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageIds !== 'undefined') {toReturn['messageIds'] = this.messageIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiMessagesResponse implements i.GetMultiMessagesResponseInterface {\n messages: Message[];\n\n static fromProto(proto: any): GetMultiMessagesResponse {\n let m = new GetMultiMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiMessagesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n return toReturn;\n }\n}\n\nexport class GetMultiParticipantsRequest implements i.GetMultiParticipantsRequestInterface {\n participantIds: string[];\n\n static fromProto(proto: any): GetMultiParticipantsRequest {\n let m = new GetMultiParticipantsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiParticipantsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantIds !== 'undefined') {toReturn['participantIds'] = this.participantIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiParticipantsResponse implements i.GetMultiParticipantsResponseInterface {\n participants: Participant[];\n\n static fromProto(proto: any): GetMultiParticipantsResponse {\n let m = new GetMultiParticipantsResponse();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiParticipantsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class ListMessagesRequestListMessagesFilters implements i.ListMessagesRequestListMessagesFiltersInterface {\n conversationId: string;\n\n static fromProto(proto: any): ListMessagesRequestListMessagesFilters {\n let m = new ListMessagesRequestListMessagesFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesRequestListMessagesFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n return toReturn;\n }\n}\n\nexport class ListMessagesRequest implements i.ListMessagesRequestInterface {\n filters: ListMessagesRequestListMessagesFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListMessagesRequest {\n let m = new ListMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListMessagesRequestListMessagesFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListMessagesResponse implements i.ListMessagesResponseInterface {\n messages: Message[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListMessagesResponse {\n let m = new ListMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsRequestLookupConversationsFilters implements i.LookupConversationsRequestLookupConversationsFiltersInterface {\n internalParticipantId: string[];\n location: e.PlatformLocation;\n channel: e.ConversationChannel;\n accountGroupId: string;\n externalConversationId: string;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): LookupConversationsRequestLookupConversationsFilters {\n let m = new LookupConversationsRequestLookupConversationsFilters();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsRequestLookupConversationsFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.internalParticipantId !== 'undefined') {toReturn['internalParticipantId'] = this.internalParticipantId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsRequest implements i.LookupConversationsRequestInterface {\n filters: LookupConversationsRequestLookupConversationsFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): LookupConversationsRequest {\n let m = new LookupConversationsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = LookupConversationsRequestLookupConversationsFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsResponse implements i.LookupConversationsResponseInterface {\n conversations: LookupConversationsResponseConversations[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): LookupConversationsResponse {\n let m = new LookupConversationsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(LookupConversationsResponseConversations.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class Metadata implements i.MetadataInterface {\n identifier: e.MetadataIdentifier;\n data: {[key: string]: string};\n\n static fromProto(proto: any): Metadata {\n let m = new Metadata();\n m = Object.assign(m, proto);\n if (proto.identifier) {m.identifier = enumStringToValue<e.MetadataIdentifier>(e.MetadataIdentifier, proto.identifier);}\n if (proto.data) {m.data = Object.keys(proto.data).reduce<any>((obj, k) => { obj[k] = proto.data[k]; return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.MetadataInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.identifier !== 'undefined') {toReturn['identifier'] = this.identifier;}\n if (typeof this.data !== 'undefined' && this.data !== null) {toReturn['data'] = 'toApiJson' in this.data ? (this.data as any).toApiJson() : this.data;}\n return toReturn;\n }\n}\n\nexport class ReceiveMessageRequestMetadataEntry implements i.ReceiveMessageRequestMetadataEntryInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): ReceiveMessageRequestMetadataEntry {\n let m = new ReceiveMessageRequestMetadataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ReceiveMessageRequestMetadataEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class PagedRequestOptions implements i.PagedRequestOptionsInterface {\n cursor: string;\n pageSize: number;\n\n static fromProto(proto: any): PagedRequestOptions {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PagedRequestOptionsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n return toReturn;\n }\n}\n\nexport class PagedResponseMetadata implements i.PagedResponseMetadataInterface {\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): PagedResponseMetadata {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PagedResponseMetadataInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class ReceiveMessageRequest implements i.ReceiveMessageRequestInterface {\n senderId: string;\n recipientId: string;\n conversationId: string;\n messageId: string;\n body: string;\n channel: e.ConversationChannel;\n type: e.MessageType;\n location: e.PlatformLocation;\n partnerId: string;\n accountGroupId: string;\n metadata: {[key: string]: string};\n media: string[];\n\n static fromProto(proto: any): ReceiveMessageRequest {\n let m = new ReceiveMessageRequest();\n m = Object.assign(m, proto);\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.metadata) {m.metadata = Object.keys(proto.metadata).reduce<any>((obj, k) => { obj[k] = proto.metadata[k]; return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.ReceiveMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.senderId !== 'undefined') {toReturn['senderId'] = this.senderId;}\n if (typeof this.recipientId !== 'undefined') {toReturn['recipientId'] = this.recipientId;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {toReturn['metadata'] = 'toApiJson' in this.metadata ? (this.metadata as any).toApiJson() : this.metadata;}\n if (typeof this.media !== 'undefined') {toReturn['media'] = this.media;}\n return toReturn;\n }\n}\n\nexport class SearchConversationsRequest implements i.SearchConversationsRequestInterface {\n partnerId: string;\n accountGroupId: string;\n location: e.PlatformLocation;\n searchTerm: string;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): SearchConversationsRequest {\n let m = new SearchConversationsRequest();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.SearchConversationsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class SearchConversationsResponse implements i.SearchConversationsResponseInterface {\n conversations: SearchConversationsResponseDetailedConversation[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): SearchConversationsResponse {\n let m = new SearchConversationsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(SearchConversationsResponseDetailedConversation.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.SearchConversationsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class SendMessageRequest implements i.SendMessageRequestInterface {\n sender: Participant;\n recipient: Participant;\n conversationId: string;\n type: e.MessageType;\n body: string;\n metadata: Metadata[];\n\n static fromProto(proto: any): SendMessageRequest {\n let m = new SendMessageRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {m.sender = Participant.fromProto(proto.sender);}\n if (proto.recipient) {m.recipient = Participant.fromProto(proto.recipient);}\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.metadata) {m.metadata = proto.metadata.map(Metadata.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.SendMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sender !== 'undefined' && this.sender !== null) {toReturn['sender'] = 'toApiJson' in this.sender ? (this.sender as any).toApiJson() : this.sender;}\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {toReturn['recipient'] = 'toApiJson' in this.recipient ? (this.recipient as any).toApiJson() : this.recipient;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {toReturn['metadata'] = 'toApiJson' in this.metadata ? (this.metadata as any).toApiJson() : this.metadata;}\n return toReturn;\n }\n}\n\nexport class SendMessageResponse implements i.SendMessageResponseInterface {\n workflowId: string;\n\n static fromProto(proto: any): SendMessageResponse {\n let m = new SendMessageResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendMessageResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.workflowId !== 'undefined') {toReturn['workflowId'] = this.workflowId;}\n return toReturn;\n }\n}\n\nexport class UpdateMessageStatusRequest implements i.UpdateMessageStatusRequestInterface {\n messageId: string;\n participantId: string;\n status: e.MessageStatus;\n\n static fromProto(proto: any): UpdateMessageStatusRequest {\n let m = new UpdateMessageStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.MessageStatus>(e.MessageStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateMessageStatusRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n return toReturn;\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { EnvironmentService, Environment } from '@vendasta/core';\n\n@Injectable({providedIn: 'root'})\nexport class HostService {\n private _host: string;\n private _httpsHost: string;\n\n constructor(private environmentService: EnvironmentService) {\n }\n\n host(): string {\n if (this._host) {\n return this._host;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._host = 'conversation-api.vendasta-local.com';\n break;\n case Environment.TEST:\n this._host = '';\n break;\n case Environment.DEMO:\n this._host = 'conversation-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._host = 'conversation-prod.apigateway.co';\n break;\n }\n return this._host;\n }\n\n httpsHost(): string {\n if (this._httpsHost) {\n return this._httpsHost;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._httpsHost = 'conversation.vendasta-local.com';\n break;\n case Environment.TEST:\n this._httpsHost = '';\n break;\n case Environment.DEMO:\n this._httpsHost = 'conversation-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._httpsHost = 'conversation-prod.apigateway.co';\n break;\n }\n return this._httpsHost;\n }\n\n hostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.host()\n }\n\n httpsHostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.httpsHost()\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n CreateConversationRequest,\n CreateConversationResponse,\n CreateMultiMessagesRequest,\n DeleteConversationRequest,\n DeleteMessageRequest,\n GetMessageRequest,\n GetMultiConversationDetailsRequest,\n GetMultiConversationDetailsResponse,\n GetMultiConversationMessageCountRequest,\n GetMultiConversationMessageCountResponse,\n GetMultiMessagesRequest,\n GetMultiMessagesResponse,\n GetMultiParticipantsRequest,\n GetMultiParticipantsResponse,\n ListMessagesRequest,\n ListMessagesResponse,\n LookupConversationsRequest,\n LookupConversationsResponse,\n Message,\n ReceiveMessageRequest,\n SearchConversationsRequest,\n SearchConversationsResponse,\n SendMessageRequest,\n SendMessageResponse,\n UpdateMessageStatusRequest,\n} from './objects/';\nimport {\n CreateConversationRequestInterface,\n CreateConversationResponseInterface,\n CreateMultiMessagesRequestInterface,\n DeleteConversationRequestInterface,\n DeleteMessageRequestInterface,\n GetMessageRequestInterface,\n GetMultiConversationDetailsRequestInterface,\n GetMultiConversationDetailsResponseInterface,\n GetMultiConversationMessageCountRequestInterface,\n GetMultiConversationMessageCountResponseInterface,\n GetMultiMessagesRequestInterface,\n GetMultiMessagesResponseInterface,\n GetMultiParticipantsRequestInterface,\n GetMultiParticipantsResponseInterface,\n ListMessagesRequestInterface,\n ListMessagesResponseInterface,\n LookupConversationsRequestInterface,\n LookupConversationsResponseInterface,\n MessageInterface,\n ReceiveMessageRequestInterface,\n SearchConversationsRequestInterface,\n SearchConversationsResponseInterface,\n SendMessageRequestInterface,\n SendMessageResponseInterface,\n UpdateMessageStatusRequestInterface,\n} from './interfaces/';\nimport {HttpHeaders, HttpClient, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class ConversationApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n sendMessage(r: SendMessageRequest | SendMessageRequestInterface): Observable<SendMessageResponse> {\n const request = ((<SendMessageRequest>r).toApiJson) ? (<SendMessageRequest>r) : new SendMessageRequest(r);\n return this.http.post<SendMessageResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/SendMessage\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SendMessageResponse.fromProto(resp)),\n share()\n );\n }\n getMessage(r: GetMessageRequest | GetMessageRequestInterface): Observable<Message> {\n const request = ((<GetMessageRequest>r).toApiJson) ? (<GetMessageRequest>r) : new GetMessageRequest(r);\n return this.http.post<MessageInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMessage\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => Message.fromProto(resp)),\n share()\n );\n }\n listMessages(r: ListMessagesRequest | ListMessagesRequestInterface): Observable<ListMessagesResponse> {\n const request = ((<ListMessagesRequest>r).toApiJson) ? (<ListMessagesRequest>r) : new ListMessagesRequest(r);\n return this.http.post<ListMessagesResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/ListMessages\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListMessagesResponse.fromProto(resp)),\n share()\n );\n }\n deleteMessage(r: DeleteMessageRequest | DeleteMessageRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteMessageRequest>r).toApiJson) ? (<DeleteMessageRequest>r) : new DeleteMessageRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/DeleteMessage\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n updateMessageStatus(r: UpdateMessageStatusRequest | UpdateMessageStatusRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateMessageStatusRequest>r).toApiJson) ? (<UpdateMessageStatusRequest>r) : new UpdateMessageStatusRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/UpdateMessageStatus\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n lookupConversations(r: LookupConversationsRequest | LookupConversationsRequestInterface): Observable<LookupConversationsResponse> {\n const request = ((<LookupConversationsRequest>r).toApiJson) ? (<LookupConversationsRequest>r) : new LookupConversationsRequest(r);\n return this.http.post<LookupConversationsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/LookupConversations\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => LookupConversationsResponse.fromProto(resp)),\n share()\n );\n }\n createConversation(r: CreateConversationRequest | CreateConversationRequestInterface): Observable<CreateConversationResponse> {\n const request = ((<CreateConversationRequest>r).toApiJson) ? (<CreateConversationRequest>r) : new CreateConversationRequest(r);\n return this.http.post<CreateConversationResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/CreateConversation\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateConversationResponse.fromProto(resp)),\n share()\n );\n }\n deleteConversation(r: DeleteConversationRequest | DeleteConversationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteConversationRequest>r).toApiJson) ? (<DeleteConversationRequest>r) : new DeleteConversationRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/DeleteConversation\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n receiveMessage(r: ReceiveMessageRequest | ReceiveMessageRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ReceiveMessageRequest>r).toApiJson) ? (<ReceiveMessageRequest>r) : new ReceiveMessageRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/ReceiveMessage\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiMessages(r: GetMultiMessagesRequest | GetMultiMessagesRequestInterface): Observable<GetMultiMessagesResponse> {\n const request = ((<GetMultiMessagesRequest>r).toApiJson) ? (<GetMultiMessagesRequest>r) : new GetMultiMessagesRequest(r);\n return this.http.post<GetMultiMessagesResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiMessages\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiMessagesResponse.fromProto(resp)),\n share()\n );\n }\n createMultiMessages(r: CreateMultiMessagesRequest | CreateMultiMessagesRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateMultiMessagesRequest>r).toApiJson) ? (<CreateMultiMessagesRequest>r) : new CreateMultiMessagesRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/CreateMultiMessages\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiConversationDetails(r: GetMultiConversationDetailsRequest | GetMultiConversationDetailsRequestInterface): Observable<GetMultiConversationDetailsResponse> {\n const request = ((<GetMultiConversationDetailsRequest>r).toApiJson) ? (<GetMultiConversationDetailsRequest>r) : new GetMultiConversationDetailsRequest(r);\n return this.http.post<GetMultiConversationDetailsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiConversationDetails\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiConversationDetailsResponse.fromProto(resp)),\n share()\n );\n }\n getMultiParticipants(r: GetMultiParticipantsRequest | GetMultiParticipantsRequestInterface): Observable<GetMultiParticipantsResponse> {\n const request = ((<GetMultiParticipantsRequest>r).toApiJson) ? (<GetMultiParticipantsRequest>r) : new GetMultiParticipantsRequest(r);\n return this.http.post<GetMultiParticipantsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiParticipants\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiParticipantsResponse.fromProto(resp)),\n share()\n );\n }\n searchConversations(r: SearchConversationsRequest | SearchConversationsRequestInterface): Observable<SearchConversationsResponse> {\n const request = ((<SearchConversationsRequest>r).toApiJson) ? (<SearchConversationsRequest>r) : new SearchConversationsRequest(r);\n return this.http.post<SearchConversationsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/SearchConversations\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SearchConversationsResponse.fromProto(resp)),\n share()\n );\n }\n getMultiConversationMessageCount(r: GetMultiConversationMessageCountRequest | GetMultiConversationMessageCountRequestInterface): Observable<GetMultiConversationMessageCountResponse> {\n const request = ((<GetMultiConversationMessageCountRequest>r).toApiJson) ? (<GetMultiConversationMessageCountRequest>r) : new GetMultiConversationMessageCountRequest(r);\n return this.http.post<GetMultiConversationMessageCountResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiConversationMessageCount\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiConversationMessageCountResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// API Service.
|
|
6
6
|
// *********************************
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
|
-
import { CreateConversationRequest, CreateConversationResponse, CreateMultiMessagesRequest, DeleteConversationRequest, DeleteMessageRequest, GetMessageRequest, GetMultiConversationDetailsRequest, GetMultiConversationDetailsResponse, GetMultiMessagesRequest, GetMultiMessagesResponse, GetMultiParticipantsRequest, GetMultiParticipantsResponse, ListMessagesRequest, ListMessagesResponse, LookupConversationsRequest, LookupConversationsResponse, Message, ReceiveMessageRequest, SendMessageRequest, SendMessageResponse, UpdateMessageStatusRequest, } from './objects/';
|
|
8
|
+
import { CreateConversationRequest, CreateConversationResponse, CreateMultiMessagesRequest, DeleteConversationRequest, DeleteMessageRequest, GetMessageRequest, GetMultiConversationDetailsRequest, GetMultiConversationDetailsResponse, GetMultiConversationMessageCountRequest, GetMultiConversationMessageCountResponse, GetMultiMessagesRequest, GetMultiMessagesResponse, GetMultiParticipantsRequest, GetMultiParticipantsResponse, ListMessagesRequest, ListMessagesResponse, LookupConversationsRequest, LookupConversationsResponse, Message, ReceiveMessageRequest, SearchConversationsRequest, SearchConversationsResponse, SendMessageRequest, SendMessageResponse, UpdateMessageStatusRequest, } from './objects/';
|
|
9
9
|
import { HttpHeaders, HttpClient } from '@angular/common/http';
|
|
10
10
|
import { HostService } from '../_generated/host.service';
|
|
11
11
|
import { map, share } from 'rxjs/operators';
|
|
@@ -85,6 +85,16 @@ export class ConversationApiService {
|
|
|
85
85
|
return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/GetMultiParticipants", request.toApiJson(), this.apiOptions())
|
|
86
86
|
.pipe(map(resp => GetMultiParticipantsResponse.fromProto(resp)), share());
|
|
87
87
|
}
|
|
88
|
+
searchConversations(r) {
|
|
89
|
+
const request = (r.toApiJson) ? r : new SearchConversationsRequest(r);
|
|
90
|
+
return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/SearchConversations", request.toApiJson(), this.apiOptions())
|
|
91
|
+
.pipe(map(resp => SearchConversationsResponse.fromProto(resp)), share());
|
|
92
|
+
}
|
|
93
|
+
getMultiConversationMessageCount(r) {
|
|
94
|
+
const request = (r.toApiJson) ? r : new GetMultiConversationMessageCountRequest(r);
|
|
95
|
+
return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/GetMultiConversationMessageCount", request.toApiJson(), this.apiOptions())
|
|
96
|
+
.pipe(map(resp => GetMultiConversationMessageCountResponse.fromProto(resp)), share());
|
|
97
|
+
}
|
|
88
98
|
}
|
|
89
99
|
ConversationApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConversationApiService_Factory() { return new ConversationApiService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HostService)); }, token: ConversationApiService, providedIn: "root" });
|
|
90
100
|
ConversationApiService.decorators = [
|
|
@@ -94,4 +104,4 @@ ConversationApiService.ctorParameters = () => [
|
|
|
94
104
|
{ type: HttpClient },
|
|
95
105
|
{ type: HostService }
|
|
96
106
|
];
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9jb252ZXJzYXRpb25fc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9faW50ZXJuYWwvY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGtDQUFrQyxFQUNsQyxtQ0FBbUMsRUFDbkMsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixPQUFPLEVBQ1AscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsMEJBQTBCLEdBQ2pDLE1BQU0sWUFBWSxDQUFDO0FBd0JwQixPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsR0FBRyxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRzFDLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDdEUsQ0FBQztJQUVPLFVBQVU7UUFDZCxPQUFPO1lB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QUFDLENBQUMsQ0FBK0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsMkRBQTJELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoTSxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3pELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDOzs7O1lBbEdKLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OztZQUxYLFVBQVU7WUFDdkIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0LFxuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZSxcbiAgICAgICAgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3QsXG4gICAgICAgIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3QsXG4gICAgICAgIERlbGV0ZU1lc3NhZ2VSZXF1ZXN0LFxuICAgICAgICBHZXRNZXNzYWdlUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZSxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVxdWVzdCxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVzcG9uc2UsXG4gICAgICAgIExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0LFxuICAgICAgICBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2UsXG4gICAgICAgIE1lc3NhZ2UsXG4gICAgICAgIFJlY2VpdmVNZXNzYWdlUmVxdWVzdCxcbiAgICAgICAgU2VuZE1lc3NhZ2VSZXF1ZXN0LFxuICAgICAgICBTZW5kTWVzc2FnZVJlc3BvbnNlLFxuICAgICAgICBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdCxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIE1lc3NhZ2VJbnRlcmZhY2UsXG4gICAgICAgIFJlY2VpdmVNZXNzYWdlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgU2VuZE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZW5kTWVzc2FnZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdEludGVyZmFjZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLyc7XG5pbXBvcnQge0h0dHBIZWFkZXJzLCBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4uL19nZW5lcmF0ZWQvaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc2hhcmV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uQXBpU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc2VuZE1lc3NhZ2UocjogU2VuZE1lc3NhZ2VSZXF1ZXN0IHwgU2VuZE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxTZW5kTWVzc2FnZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZW5kTWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2VuZE1lc3NhZ2VSZXF1ZXN0PnIpIDogbmV3IFNlbmRNZXNzYWdlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNlbmRNZXNzYWdlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1NlbmRNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gU2VuZE1lc3NhZ2VSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE1lc3NhZ2UocjogR2V0TWVzc2FnZVJlcXVlc3QgfCBHZXRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TWVzc2FnZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgR2V0TWVzc2FnZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxNZXNzYWdlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTWVzc2FnZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGxpc3RNZXNzYWdlcyhyOiBMaXN0TWVzc2FnZXNSZXF1ZXN0IHwgTGlzdE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdE1lc3NhZ2VzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RNZXNzYWdlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdE1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBMaXN0TWVzc2FnZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdE1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0xpc3RNZXNzYWdlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RNZXNzYWdlc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZGVsZXRlTWVzc2FnZShyOiBEZWxldGVNZXNzYWdlUmVxdWVzdCB8IERlbGV0ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPERlbGV0ZU1lc3NhZ2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZU1lc3NhZ2VSZXF1ZXN0PnIpIDogbmV3IERlbGV0ZU1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvRGVsZXRlTWVzc2FnZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgdXBkYXRlTWVzc2FnZVN0YXR1cyhyOiBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdCB8IFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvVXBkYXRlTWVzc2FnZVN0YXR1c1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgbG9va3VwQ29udmVyc2F0aW9ucyhyOiBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdCB8IExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0PnIpIDogbmV3IExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9Mb29rdXBDb252ZXJzYXRpb25zXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY3JlYXRlQ29udmVyc2F0aW9uKHI6IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QgfCBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpIDogbmV3IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQ3JlYXRlQ29udmVyc2F0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlQ29udmVyc2F0aW9uUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVDb252ZXJzYXRpb24ocjogRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdCB8IERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpIDogbmV3IERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9EZWxldGVDb252ZXJzYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHJlY2VpdmVNZXNzYWdlKHI6IFJlY2VpdmVNZXNzYWdlUmVxdWVzdCB8IFJlY2VpdmVNZXNzYWdlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxSZWNlaXZlTWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8UmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0PnIpIDogbmV3IFJlY2VpdmVNZXNzYWdlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1JlY2VpdmVNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBnZXRNdWx0aU1lc3NhZ2VzKHI6IEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0IHwgR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpTWVzc2FnZXNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlNZXNzYWdlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlNZXNzYWdlc1JlcXVlc3Q+cikgOiBuZXcgR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpTWVzc2FnZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGVNdWx0aU1lc3NhZ2VzKHI6IENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0IHwgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9DcmVhdGVNdWx0aU1lc3NhZ2VzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBnZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHMocjogR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdCB8IEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3Q+cikgOiBuZXcgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpUGFydGljaXBhbnRzKHI6IEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdCB8IEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNdWx0aVBhcnRpY2lwYW50c1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBcbn1cbiJdfQ==
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9jb252ZXJzYXRpb25fc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9faW50ZXJuYWwvY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGtDQUFrQyxFQUNsQyxtQ0FBbUMsRUFDbkMsdUNBQXVDLEVBQ3ZDLHdDQUF3QyxFQUN4Qyx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLE9BQU8sRUFDUCxxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixHQUNqQyxNQUFNLFlBQVksQ0FBQztBQTRCcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUcxQyxNQUFNLE9BQU8sc0JBQXNCO0lBRS9CLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdC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LENBQUMsQ0FBQztRQUN6SyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFvRCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxHQUFHLHVFQUF1RSxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDeE4sSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNyRSxLQUFLLEVBQUUsQ0FDVixDQUFDO0lBQ1YsQ0FBQzs7OztZQWxISixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7WUFMWCxVQUFVO1lBQ3ZCLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEFQSSBTZXJ2aWNlLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICAgICAgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlQ29udmVyc2F0aW9uUmVzcG9uc2UsXG4gICAgICAgIENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0LFxuICAgICAgICBEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0LFxuICAgICAgICBEZWxldGVNZXNzYWdlUmVxdWVzdCxcbiAgICAgICAgR2V0TWVzc2FnZVJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3QsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlLFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZSxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVxdWVzdCxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVzcG9uc2UsXG4gICAgICAgIExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0LFxuICAgICAgICBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2UsXG4gICAgICAgIE1lc3NhZ2UsXG4gICAgICAgIFJlY2VpdmVNZXNzYWdlUmVxdWVzdCxcbiAgICAgICAgU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3QsXG4gICAgICAgIFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZSxcbiAgICAgICAgU2VuZE1lc3NhZ2VSZXF1ZXN0LFxuICAgICAgICBTZW5kTWVzc2FnZVJlc3BvbnNlLFxuICAgICAgICBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdCxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpTWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMaXN0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTWVzc2FnZUludGVyZmFjZSxcbiAgICAgICAgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgU2VhcmNoQ29udmVyc2F0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBTZW5kTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNlbmRNZXNzYWdlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0SW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzaGFyZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25BcGlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBob3N0U2VydmljZTogSG9zdFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZShyOiBTZW5kTWVzc2FnZVJlcXVlc3QgfCBTZW5kTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFNlbmRNZXNzYWdlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNlbmRNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZW5kTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgU2VuZE1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2VuZE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvU2VuZE1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBTZW5kTWVzc2FnZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TWVzc2FnZShyOiBHZXRNZXNzYWdlUmVxdWVzdCB8IEdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxNZXNzYWdlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNZXNzYWdlUmVxdWVzdD5yKSA6IG5ldyBHZXRNZXNzYWdlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE1lc3NhZ2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBNZXNzYWdlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdE1lc3NhZ2VzKHI6IExpc3RNZXNzYWdlc1JlcXVlc3QgfCBMaXN0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0TWVzc2FnZXNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdE1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0TWVzc2FnZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RNZXNzYWdlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvTGlzdE1lc3NhZ2VzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdE1lc3NhZ2VzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVNZXNzYWdlKHI6IERlbGV0ZU1lc3NhZ2VSZXF1ZXN0IHwgRGVsZXRlTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlTWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8RGVsZXRlTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlTWVzc2FnZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9EZWxldGVNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICB1cGRhdGVNZXNzYWdlU3RhdHVzKHI6IFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0IHwgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Q+cikgOiBuZXcgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9VcGRhdGVNZXNzYWdlU3RhdHVzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsb29rdXBDb252ZXJzYXRpb25zKHI6IExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0IHwgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3Q+cikgOiBuZXcgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0xvb2t1cENvbnZlcnNhdGlvbnNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGVDb252ZXJzYXRpb24ocjogQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCB8IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9DcmVhdGVDb252ZXJzYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZUNvbnZlcnNhdGlvbihyOiBEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0IHwgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0RlbGV0ZUNvbnZlcnNhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgcmVjZWl2ZU1lc3NhZ2UocjogUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0IHwgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFJlY2VpdmVNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxSZWNlaXZlTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvUmVjZWl2ZU1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpTWVzc2FnZXMocjogR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3QgfCBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpTWVzc2FnZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0TXVsdGlNZXNzYWdlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpTWVzc2FnZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNyZWF0ZU11bHRpTWVzc2FnZXMocjogQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3QgfCBDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0NyZWF0ZU11bHRpTWVzc2FnZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlscyhyOiBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0IHwgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TXVsdGlQYXJ0aWNpcGFudHMocjogR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0IHwgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpUGFydGljaXBhbnRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHNlYXJjaENvbnZlcnNhdGlvbnMocjogU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3QgfCBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8U2VhcmNoQ29udmVyc2F0aW9uc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdD5yKSA6IG5ldyBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvU2VhcmNoQ29udmVyc2F0aW9uc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50KHI6IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdCB8IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBcbn1cbiJdfQ==
|