{ "version": 3, "sources": ["libs/account-group/src/lib/account-group-helpers.ts", "libs/account-group/src/lib/utils/proto-utils.ts", "libs/account-group/src/lib/account-group.ts", "libs/account-group/src/lib/account-group.api.service.ts", "libs/account-group/src/lib/lookup-filters.ts", "libs/account-group/src/lib/sort-options.ts", "libs/account-group/src/lib/account-group.service.ts", "libs/account-group/src/lib/update-operations.ts", "libs/account-group/src/lib/projection-filter.ts", "libs/account-group/src/lib/search-options.ts"], "sourcesContent": ["export function errorCanBeHandled(error): boolean {\n if (error.status !== 403) {\n return false;\n }\n return !!(error.status === 403 && error.error?.details[0]?.failures[0]);\n}\n\nexport function findAccessibleAccountGroupIds(error: any, allAccountGroups: string[]): string[] {\n const failedAccountGroupIds = [];\n error.error.details[0].failures.forEach((ag) => {\n if (ag.identifiers?.account_group_id?.values) {\n failedAccountGroupIds.push(ag.identifiers.account_group_id.values[0]);\n } else {\n return [];\n }\n });\n\n const validAccountGroupIds = [];\n allAccountGroups.filter((ag) => {\n if (failedAccountGroupIds.find((a) => a === ag) === undefined) {\n validAccountGroupIds.push(ag);\n }\n });\n\n return validAccountGroupIds;\n}\n", "export function enumStringToValue(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n", "import {\n AdditionalCompanyInfo,\n ClosedStatus,\n GooglePlaceInterface,\n HealthCareProfessionalInformationGender,\n IsAvailable,\n LifecycleStage,\n ListingSyncProBillingFrequency,\n ListingSyncProServiceProviders,\n MarketingInfo,\n RichDataPaymentMethods,\n ServiceAreaBusinessType,\n ServiceAreaInterface,\n} from '@vendasta/account-group';\nimport { enumStringToValue } from './utils/proto-utils';\nexport { AdditionalCompanyInfo, MarketingInfo } from '@vendasta/account-group';\n\nexport class GooglePlace implements GooglePlaceInterface {\n placeId: string;\n placeName: string;\n city: string;\n\n static fromProto(proto: any): GooglePlace {\n let m = new GooglePlace();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: GooglePlaceInterface) {\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.placeId !== 'undefined') {\n toReturn['placeId'] = this.placeId;\n }\n if (typeof this.placeName !== 'undefined') {\n toReturn['placeName'] = this.placeName;\n }\n if (typeof this.city !== 'undefined') {\n toReturn['city'] = this.city;\n }\n return toReturn;\n }\n}\n\nexport class ServiceArea implements ServiceAreaInterface {\n businessType: ServiceAreaBusinessType;\n places: GooglePlace[];\n\n static fromProto(proto: any): ServiceArea {\n let m = new ServiceArea();\n m = Object.assign(m, proto);\n if (proto?.businessType) {\n m.businessType = enumStringToValue(ServiceAreaBusinessType, proto?.businessType);\n }\n if (proto?.places) {\n m.places = proto?.places.map(GooglePlace.fromProto);\n }\n return m;\n }\n\n constructor(kwargs?: ServiceAreaInterface) {\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.businessType !== 'undefined') {\n toReturn['businessType'] = this.businessType;\n }\n if (typeof this.places !== 'undefined' && this.places !== null) {\n toReturn['places'] = 'toApiJson' in this.places ? (this.places as any).toApiJson() : this.places;\n }\n return toReturn;\n }\n}\n\nexport class GeoPoint {\n latitude: number;\n longitude: number;\n\n static fromProto(proto: any): GeoPoint {\n if (!proto) {\n return null;\n }\n const model = new GeoPoint();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.latitude === 'undefined' && typeof this.longitude === 'undefined') {\n return null;\n }\n return {\n latitude: typeof this.latitude !== 'undefined' ? this.latitude : null,\n longitude: typeof this.longitude !== 'undefined' ? this.longitude : null,\n };\n }\n}\n\nexport class Account {\n isTrial: boolean;\n tags: string[];\n accountId: string;\n marketplaceAppId: string;\n expiry: Date;\n editionId: string;\n\n static fromProto(proto: any): Account {\n if (!proto) {\n return null;\n }\n const model = new Account();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.expiry = proto.expiry ? new Date(proto.expiry) : null;\n if (typeof model.isTrial === 'undefined') {\n model.isTrial = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n expired(): boolean {\n if (this.expiry) {\n return this.expiry < new Date();\n }\n return false;\n }\n\n toApiJson(): object {\n if (\n typeof this.isTrial === 'undefined' &&\n typeof this.tags === 'undefined' &&\n typeof this.accountId === 'undefined' &&\n typeof this.marketplaceAppId === 'undefined' &&\n typeof this.expiry === 'undefined'\n ) {\n return null;\n }\n\n return {\n isTrial: typeof this.isTrial !== 'undefined' ? this.isTrial : null,\n tags: typeof this.tags !== 'undefined' ? this.tags : null,\n accountId: typeof this.accountId !== 'undefined' ? this.accountId : null,\n marketplaceAppId: typeof this.marketplaceAppId !== 'undefined' ? this.marketplaceAppId : null,\n expiry: typeof this.expiry !== 'undefined' ? this.expiry.toISOString() : null,\n editionId: typeof this.marketplaceAppId !== 'undefined' ? this.editionId : null,\n };\n }\n}\n\nexport class ListingDistributionDetails {\n orderId: string;\n purchaseId: string;\n fromDate: Date;\n thruDate: Date;\n autoRenew: boolean;\n\n static fromProto(proto: any): ListingDistributionDetails {\n if (!proto) {\n return null;\n }\n const model = new ListingDistributionDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.fromDate = new Date(proto.fromDate);\n model.thruDate = new Date(proto.thruDate);\n if (typeof model.autoRenew === 'undefined') {\n model.autoRenew = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.orderId === 'undefined' &&\n typeof this.purchaseId === 'undefined' &&\n typeof this.fromDate === 'undefined' &&\n typeof this.thruDate === 'undefined' &&\n typeof this.autoRenew === 'undefined'\n ) {\n return null;\n }\n\n return {\n orderId: typeof this.orderId !== 'undefined' ? this.orderId : null,\n purchaseId: typeof this.purchaseId !== 'undefined' ? this.purchaseId : null,\n fromDate: typeof this.fromDate !== 'undefined' ? this.fromDate.toISOString() : null,\n thruDate: typeof this.thruDate !== 'undefined' ? this.thruDate.toISOString() : null,\n autoRenew: typeof this.autoRenew !== 'undefined' ? this.autoRenew : null,\n };\n }\n\n isActive(): boolean {\n if (!this.thruDate) {\n return false;\n }\n return this.thruDate >= new Date();\n }\n}\n\nexport class ListingSyncProDetails {\n purchaseDate: Date;\n billingFrequency: ListingSyncProBillingFrequency;\n expiryDate: Date;\n country: string;\n discountFlag: boolean;\n serviceProviders: ListingSyncProServiceProviders;\n\n static fromProto(proto: any): ListingSyncProDetails {\n if (!proto) {\n return null;\n }\n const model = new ListingSyncProDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.purchaseDate = proto.purchaseDate ? new Date(proto.purchaseDate) : null;\n model.expiryDate = proto.expiryDate ? new Date(proto.expiryDate) : null;\n if (typeof model.discountFlag === 'undefined') {\n model.discountFlag = false;\n }\n if (proto.billingFrequency) {\n model.billingFrequency = enumStringToValue(\n ListingSyncProBillingFrequency,\n proto.billingFrequency,\n );\n }\n if (proto.serviceProviders) {\n model.serviceProviders = enumStringToValue(\n ListingSyncProServiceProviders,\n proto.serviceProviders,\n );\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.purchaseDate === 'undefined' &&\n typeof this.billingFrequency === 'undefined' &&\n typeof this.expiryDate === 'undefined' &&\n typeof this.country === 'undefined' &&\n typeof this.discountFlag === 'undefined' &&\n typeof this.serviceProviders === 'undefined'\n ) {\n return null;\n }\n\n return {\n purchaseDate: typeof this.purchaseDate !== 'undefined' ? this.purchaseDate.toISOString() : null,\n billingFrequency: typeof this.billingFrequency !== 'undefined' ? this.billingFrequency : null,\n expiryDate: typeof this.expiryDate !== 'undefined' ? this.expiryDate.toISOString() : null,\n country: typeof this.country !== 'undefined' ? this.country : null,\n discountFlag: typeof this.discountFlag !== 'undefined' ? this.discountFlag : null,\n serviceProviders: typeof this.serviceProviders !== 'undefined' ? this.serviceProviders : null,\n };\n }\n}\n\nexport class Association {\n label: string;\n productId: string;\n productUserId: string;\n vbcUserId: string;\n defaultLocation: boolean;\n\n static fromProto(proto: any): Association {\n if (!proto) {\n return null;\n }\n const model = new Association();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (typeof model.defaultLocation === 'undefined') {\n model.defaultLocation = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.label === 'undefined' &&\n typeof this.productId === 'undefined' &&\n typeof this.productUserId === 'undefined' &&\n typeof this.vbcUserId === 'undefined' &&\n typeof this.defaultLocation === 'undefined'\n ) {\n return null;\n }\n\n return {\n label: typeof this.label !== 'undefined' ? this.label : null,\n productId: typeof this.productId !== 'undefined' ? this.productId : null,\n productUserId: typeof this.productUserId !== 'undefined' ? this.productUserId : null,\n vbcUserId: typeof this.vbcUserId !== 'undefined' ? this.vbcUserId : null,\n defaultLocation: typeof this.defaultLocation !== 'undefined' ? this.defaultLocation : null,\n };\n }\n}\n\nexport class AccountGroupExternalIdentifiers {\n origin: string;\n jobId: string[];\n customerIdentifier: string;\n tags: string[];\n actionLists: string[];\n socialProfileId: string;\n partnerId: string;\n marketId: string;\n taxIds: string[];\n vCategoryIds: string[];\n salesPersonId: string;\n additionalSalesPersonIds: string[];\n\n static fromProto(proto: any): AccountGroupExternalIdentifiers {\n if (!proto) {\n return null;\n }\n const model = new AccountGroupExternalIdentifiers();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.origin === 'undefined' &&\n typeof this.jobId === 'undefined' &&\n typeof this.customerIdentifier === 'undefined' &&\n typeof this.tags === 'undefined' &&\n typeof this.actionLists === 'undefined' &&\n typeof this.socialProfileId === 'undefined' &&\n typeof this.partnerId === 'undefined' &&\n typeof this.marketId === 'undefined' &&\n typeof this.taxIds === 'undefined' &&\n typeof this.vCategoryIds === 'undefined' &&\n typeof this.salesPersonId === 'undefined' &&\n typeof this.additionalSalesPersonIds === 'undefined'\n ) {\n return null;\n }\n\n return {\n origin: typeof this.origin !== 'undefined' ? this.origin : null,\n jobId: typeof this.jobId !== 'undefined' ? this.jobId : null,\n customerIdentifier: typeof this.customerIdentifier !== 'undefined' ? this.customerIdentifier : null,\n tags: typeof this.tags !== 'undefined' ? this.tags : null,\n actionLists: typeof this.actionLists !== 'undefined' ? this.actionLists : null,\n socialProfileId: typeof this.socialProfileId !== 'undefined' ? this.socialProfileId : null,\n partnerId: typeof this.partnerId !== 'undefined' ? this.partnerId : null,\n marketId: typeof this.marketId !== 'undefined' ? this.marketId : null,\n taxIds: typeof this.taxIds !== 'undefined' ? this.taxIds : null,\n vCategoryIds: typeof this.vCategoryIds !== 'undefined' ? this.vCategoryIds : null,\n salesPersonId: typeof this.salesPersonId !== 'undefined' ? this.salesPersonId : null,\n additionalSalesPersonIds:\n typeof this.additionalSalesPersonIds !== 'undefined' ? this.additionalSalesPersonIds : null,\n };\n }\n}\n\nexport class SocialURLs {\n googleplusUrl: string;\n linkedinUrl: string;\n foursquareUrl: string;\n twitterUrl: string;\n facebookUrl: string;\n rssUrl: string;\n youtubeUrl: string;\n instagramUrl: string;\n pinterestUrl: string;\n\n static fromProto(proto: any): SocialURLs {\n if (!proto) {\n return null;\n }\n const model = new SocialURLs();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.googleplusUrl === 'undefined' &&\n typeof this.linkedinUrl === 'undefined' &&\n typeof this.foursquareUrl === 'undefined' &&\n typeof this.twitterUrl === 'undefined' &&\n typeof this.facebookUrl === 'undefined' &&\n typeof this.rssUrl === 'undefined' &&\n typeof this.youtubeUrl === 'undefined' &&\n typeof this.instagramUrl === 'undefined' &&\n typeof this.pinterestUrl === 'undefined'\n ) {\n return null;\n }\n\n return {\n googleplusUrl: typeof this.googleplusUrl !== 'undefined' ? this.googleplusUrl : null,\n linkedinUrl: typeof this.linkedinUrl !== 'undefined' ? this.linkedinUrl : null,\n foursquareUrl: typeof this.foursquareUrl !== 'undefined' ? this.foursquareUrl : null,\n twitterUrl: typeof this.twitterUrl !== 'undefined' ? this.twitterUrl : null,\n facebookUrl: typeof this.facebookUrl !== 'undefined' ? this.facebookUrl : null,\n rssUrl: typeof this.rssUrl !== 'undefined' ? this.rssUrl : null,\n youtubeUrl: typeof this.youtubeUrl !== 'undefined' ? this.youtubeUrl : null,\n instagramUrl: typeof this.instagramUrl !== 'undefined' ? this.instagramUrl : null,\n pinterestUrl: typeof this.pinterestUrl !== 'undefined' ? this.pinterestUrl : null,\n };\n }\n}\n\nexport class HoursOfOperation {\n dayOfWeek: string[];\n opens: string;\n closes: string;\n description: string;\n\n static fromProto(proto: any): HoursOfOperation {\n if (!proto) {\n return null;\n }\n const model = new HoursOfOperation();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.dayOfWeek === 'undefined' &&\n typeof this.opens === 'undefined' &&\n typeof this.closes === 'undefined' &&\n typeof this.description === 'undefined'\n ) {\n return null;\n }\n\n return {\n dayOfWeek: typeof this.dayOfWeek !== 'undefined' ? this.dayOfWeek : null,\n opens: typeof this.opens !== 'undefined' ? this.opens : null,\n closes: typeof this.closes !== 'undefined' ? this.closes : null,\n description: typeof this.description !== 'undefined' ? this.description : null,\n };\n }\n}\n\nexport class ContactDetails {\n firstName: string;\n lastName: string;\n email: string;\n phoneNumber: string;\n\n static fromProto(proto: any): ContactDetails {\n if (!proto) {\n return null;\n }\n const model = new ContactDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.firstName === 'undefined' &&\n typeof this.lastName === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.phoneNumber === 'undefined'\n ) {\n return null;\n }\n\n return {\n firstName: typeof this.firstName !== 'undefined' ? this.firstName : null,\n lastName: typeof this.lastName !== 'undefined' ? this.lastName : null,\n email: typeof this.email !== 'undefined' ? this.email : null,\n phoneNumber: typeof this.phoneNumber !== 'undefined' ? this.phoneNumber : null,\n };\n }\n}\n\nexport class Snapshot {\n snapshotId: string;\n created: Date;\n expiry: Date;\n address: string;\n\n static fromProto(proto: any): Snapshot {\n if (!proto) {\n return null;\n }\n const model = new Snapshot();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.created = proto.created ? new Date(proto.created) : null;\n model.expiry = proto.expiry ? new Date(proto.expiry) : null;\n model.address = proto.address ? proto.address : '';\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n expired(): boolean {\n return this.expiry < new Date();\n }\n\n toApiJson(): object {\n if (\n typeof this.snapshotId === 'undefined' &&\n typeof this.created === 'undefined' &&\n typeof this.address === 'undefined' &&\n typeof this.expiry === 'undefined'\n ) {\n return null;\n }\n\n return {\n snapshotId: typeof this.snapshotId !== 'undefined' ? this.snapshotId : null,\n created: typeof this.created !== 'undefined' ? this.created.toISOString() : null,\n expiry: typeof this.expiry !== 'undefined' ? this.expiry.toISOString() : null,\n address: typeof this.address !== 'undefined' ? this.address : '',\n };\n }\n}\n\nexport class LegacyProductDetails {\n keyPerson: string[];\n shareOfVoiceService: string[];\n faxNumber: string;\n commonName: string[];\n cellNumber: string;\n competitor: string[];\n adminNotes: string;\n seoCategory: string[];\n email: string;\n place: string;\n tagline: string;\n subscribedToCampaigns: boolean;\n\n static fromProto(proto: any): LegacyProductDetails {\n if (!proto) {\n return null;\n }\n const model = new LegacyProductDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (typeof model.subscribedToCampaigns === 'undefined') {\n model.subscribedToCampaigns = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.keyPerson === 'undefined' &&\n typeof this.shareOfVoiceService === 'undefined' &&\n typeof this.faxNumber === 'undefined' &&\n typeof this.commonName === 'undefined' &&\n typeof this.cellNumber === 'undefined' &&\n typeof this.competitor === 'undefined' &&\n typeof this.adminNotes === 'undefined' &&\n typeof this.seoCategory === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.place === 'undefined' &&\n typeof this.tagline === 'undefined' &&\n typeof this.subscribedToCampaigns === 'undefined'\n ) {\n return null;\n }\n\n return {\n keyPerson: typeof this.keyPerson !== 'undefined' ? this.keyPerson : null,\n shareOfVoiceService: typeof this.shareOfVoiceService !== 'undefined' ? this.shareOfVoiceService : null,\n faxNumber: typeof this.faxNumber !== 'undefined' ? this.faxNumber : null,\n commonName: typeof this.commonName !== 'undefined' ? this.commonName : null,\n cellNumber: typeof this.cellNumber !== 'undefined' ? this.cellNumber : null,\n competitor: typeof this.competitor !== 'undefined' ? this.competitor : null,\n adminNotes: typeof this.adminNotes !== 'undefined' ? this.adminNotes : null,\n seoCategory: typeof this.seoCategory !== 'undefined' ? this.seoCategory : null,\n email: typeof this.email !== 'undefined' ? this.email : null,\n place: typeof this.place !== 'undefined' ? this.place : null,\n tagline: typeof this.tagline !== 'undefined' ? this.tagline : null,\n subscribedToCampaigns: typeof this.subscribedToCampaigns !== 'undefined' ? this.subscribedToCampaigns : null,\n };\n }\n}\n\nexport class CustomField {\n name: string;\n value: string;\n\n static fromProto(proto: any): CustomField {\n if (!proto) {\n return null;\n }\n const model = new CustomField();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.name === 'undefined' && typeof this.value === 'undefined') {\n return null;\n }\n\n return {\n name: typeof this.name !== 'undefined' ? this.name : null,\n value: typeof this.value !== 'undefined' ? this.value : null,\n };\n }\n}\n\nexport class HealthCareProfessionalInformation {\n dateOfBirth: Date;\n email: string;\n fellowship: string[];\n firstName: string;\n gender: HealthCareProfessionalInformationGender;\n initials: string;\n insurancesAccepted: string[];\n isTakingPatients: boolean;\n lastName: string;\n medicalLicenseNumber: string;\n nationalProviderIdentifier: string;\n office: string;\n professionalCredential: string[];\n residency: string[];\n school: string[];\n specialty: string[];\n standardizedTitle: string;\n stateLicense: string;\n\n static fromProto(proto: any): HealthCareProfessionalInformation {\n if (!proto) {\n return null;\n }\n const model = new HealthCareProfessionalInformation();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (proto.gender) {\n model.gender = enumStringToValue(\n HealthCareProfessionalInformationGender,\n proto.gender,\n );\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.dateOfBirth === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.fellowship === 'undefined' &&\n typeof this.firstName === 'undefined' &&\n typeof this.gender === 'undefined' &&\n typeof this.initials === 'undefined' &&\n typeof this.insurancesAccepted === 'undefined' &&\n typeof this.isTakingPatients === 'undefined' &&\n typeof this.lastName === 'undefined' &&\n typeof this.medicalLicenseNumber === 'undefined' &&\n typeof this.nationalProviderIdentifier === 'undefined' &&\n typeof this.office === 'undefined' &&\n typeof this.professionalCredential === 'undefined' &&\n typeof this.residency === 'undefined' &&\n typeof this.school === 'undefined' &&\n typeof this.specialty === 'undefined' &&\n typeof this.standardizedTitle === 'undefined' &&\n typeof this.stateLicense === 'undefined'\n ) {\n return null;\n }\n\n return {\n dateOfBirth: typeof this.dateOfBirth !== 'undefined' ? this.dateOfBirth.toISOString() : null,\n email: typeof this.email !== 'undefined' ? this.email : null,\n fellowship: typeof this.fellowship !== 'undefined' ? this.fellowship : null,\n firstName: typeof this.firstName !== 'undefined' ? this.firstName : null,\n gender: typeof this.gender !== 'undefined' ? this.gender : null,\n initials: typeof this.initials !== 'undefined' ? this.initials : null,\n insurancesAccepted: typeof this.insurancesAccepted !== 'undefined' ? this.insurancesAccepted : null,\n isTakingPatients: typeof this.isTakingPatients !== 'undefined' ? this.isTakingPatients : null,\n lastName: typeof this.lastName !== 'undefined' ? this.lastName : null,\n medicalLicenseNumber: typeof this.medicalLicenseNumber !== 'undefined' ? this.medicalLicenseNumber : null,\n nationalProviderIdentifier:\n typeof this.nationalProviderIdentifier !== 'undefined' ? this.nationalProviderIdentifier : null,\n office: typeof this.office !== 'undefined' ? this.office : null,\n professionalCredential: typeof this.professionalCredential !== 'undefined' ? this.professionalCredential : null,\n residency: typeof this.residency !== 'undefined' ? this.residency : null,\n school: typeof this.school !== 'undefined' ? this.school : null,\n specialty: typeof this.specialty !== 'undefined' ? this.specialty : null,\n standardizedTitle: typeof this.standardizedTitle !== 'undefined' ? this.standardizedTitle : null,\n stateLicense: typeof this.stateLicense !== 'undefined' ? this.stateLicense : null,\n };\n }\n}\n\nexport class RichData {\n tollFreeNumber: string;\n description: string;\n shortDescription: string;\n servicesOffered: string[];\n brandsCarried: string[];\n landmark: string;\n paymentMethods: RichDataPaymentMethods[];\n customFields: CustomField[];\n healthCareProfessionalInformation: HealthCareProfessionalInformation;\n inferredAttributes: string[];\n serviceAvailability?: ServiceAvailability;\n\n static fromProto(proto: any): RichData {\n if (!proto) {\n return null;\n }\n const model = new RichData();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.healthCareProfessionalInformation = HealthCareProfessionalInformation.fromProto(\n proto.healthCareProfessionalInformation,\n );\n if (proto.paymentMethods && proto.paymentMethods.length) {\n model.paymentMethods = proto.paymentMethods.map((v: string) =>\n enumStringToValue(RichDataPaymentMethods, v),\n );\n }\n model.serviceAvailability = ServiceAvailability.fromProto(proto.serviceAvailability);\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.tollFreeNumber === 'undefined' &&\n typeof this.description === 'undefined' &&\n typeof this.shortDescription === 'undefined' &&\n typeof this.servicesOffered === 'undefined' &&\n typeof this.brandsCarried === 'undefined' &&\n typeof this.landmark === 'undefined' &&\n typeof this.paymentMethods === 'undefined' &&\n typeof this.customFields === 'undefined' &&\n typeof this.healthCareProfessionalInformation === 'undefined' &&\n typeof this.inferredAttributes === 'undefined' &&\n typeof this.inferredAttributes === 'undefined' &&\n typeof this.serviceAvailability === 'undefined'\n ) {\n return null;\n }\n\n return {\n tollFreeNumber: typeof this.tollFreeNumber !== 'undefined' ? this.tollFreeNumber : null,\n description: typeof this.description !== 'undefined' ? this.description : null,\n shortDescription: typeof this.shortDescription !== 'undefined' ? this.shortDescription : null,\n servicesOffered: typeof this.servicesOffered !== 'undefined' ? this.servicesOffered : null,\n brandsCarried: typeof this.brandsCarried !== 'undefined' ? this.brandsCarried : null,\n landmark: typeof this.landmark !== 'undefined' ? this.landmark : null,\n paymentMethods: typeof this.paymentMethods !== 'undefined' ? this.paymentMethods : null,\n customFields:\n typeof this.customFields !== 'undefined'\n ? this.customFields.map((customField: CustomField) => customField.toApiJson())\n : null,\n healthCareProfessionalInformation:\n typeof this.healthCareProfessionalInformation !== 'undefined'\n ? this.healthCareProfessionalInformation.toApiJson()\n : null,\n inferredAttributes: typeof this.inferredAttributes !== 'undefined' ? this.inferredAttributes : null,\n serviceAvailability: typeof this.serviceAvailability !== 'undefined' ? this.serviceAvailability : null,\n };\n }\n}\n\nexport class ServiceAvailability {\n delivery?: IsAvailable;\n noContactDelivery?: IsAvailable;\n inStorePickup?: IsAvailable;\n curbsidePickup?: IsAvailable;\n appointmentsOnly?: IsAvailable;\n ecommerceOnly?: IsAvailable;\n closedStatus?: ClosedStatus;\n closedStatusDate?: Date;\n servesDineIn?: IsAvailable;\n reopeningDate?: Date;\n\n static fromProto(proto: any): ServiceAvailability {\n if (!proto) {\n return null;\n }\n let m = new ServiceAvailability();\n m = Object.assign(m, proto);\n if (proto.delivery) {\n m.delivery = enumStringToValue(IsAvailable, proto.delivery);\n }\n if (proto.noContactDelivery) {\n m.noContactDelivery = enumStringToValue(IsAvailable, proto.noContactDelivery);\n }\n if (proto.inStorePickup) {\n m.inStorePickup = enumStringToValue(IsAvailable, proto.inStorePickup);\n }\n if (proto.curbsidePickup) {\n m.curbsidePickup = enumStringToValue(IsAvailable, proto.curbsidePickup);\n }\n if (proto.appointmentsOnly) {\n m.appointmentsOnly = enumStringToValue(IsAvailable, proto.appointmentsOnly);\n }\n if (proto.ecommerceOnly) {\n m.ecommerceOnly = enumStringToValue(IsAvailable, proto.ecommerceOnly);\n }\n if (proto.closedStatus) {\n m.closedStatus = enumStringToValue(ClosedStatus, proto.closedStatus);\n }\n if (proto.closedStatusDate) {\n m.closedStatusDate = new Date(proto.closedStatusDate);\n }\n if (proto.servesDineIn) {\n m.servesDineIn = enumStringToValue(IsAvailable, proto.servesDineIn);\n }\n if (proto.reopeningDate) {\n m.reopeningDate = new Date(proto.reopeningDate);\n }\n return m;\n }\n\n constructor(kwargs?: Partial) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.delivery === 'undefined' &&\n typeof this.noContactDelivery === 'undefined' &&\n typeof this.inStorePickup === 'undefined' &&\n typeof this.curbsidePickup === 'undefined' &&\n typeof this.appointmentsOnly === 'undefined' &&\n typeof this.ecommerceOnly === 'undefined' &&\n typeof this.closedStatus === 'undefined' &&\n typeof this.closedStatusDate === 'undefined' &&\n typeof this.servesDineIn === 'undefined' &&\n typeof this.reopeningDate === 'undefined'\n ) {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.delivery !== 'undefined') {\n toReturn['delivery'] = this.delivery;\n }\n if (typeof this.noContactDelivery !== 'undefined') {\n toReturn['noContactDelivery'] = this.noContactDelivery;\n }\n if (typeof this.inStorePickup !== 'undefined') {\n toReturn['inStorePickup'] = this.inStorePickup;\n }\n if (typeof this.curbsidePickup !== 'undefined') {\n toReturn['curbsidePickup'] = this.curbsidePickup;\n }\n if (typeof this.appointmentsOnly !== 'undefined') {\n toReturn['appointmentsOnly'] = this.appointmentsOnly;\n }\n if (typeof this.ecommerceOnly !== 'undefined') {\n toReturn['ecommerceOnly'] = this.ecommerceOnly;\n }\n if (typeof this.closedStatus !== 'undefined') {\n toReturn['closedStatus'] = this.closedStatus;\n }\n if (typeof this.closedStatusDate !== 'undefined' && this.closedStatusDate !== null) {\n toReturn['closedStatusDate'] =\n 'toApiJson' in this.closedStatusDate ? (this.closedStatusDate as any).toApiJson() : this.closedStatusDate;\n }\n if (typeof this.servesDineIn !== 'undefined') {\n toReturn['servesDineIn'] = this.servesDineIn;\n }\n if (typeof this.reopeningDate !== 'undefined' && this.reopeningDate !== null) {\n toReturn['reopeningDate'] =\n 'toApiJson' in this.reopeningDate ? (this.reopeningDate as any).toApiJson() : this.reopeningDate;\n }\n return toReturn;\n }\n}\n\nexport class Status {\n suspended: boolean;\n hasAlert: boolean;\n\n static fromProto(proto: any): Status {\n if (!proto) {\n return null;\n }\n const model = new Status();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (typeof model.suspended === 'undefined') {\n model.suspended = false;\n }\n if (typeof model.hasAlert === 'undefined') {\n model.hasAlert = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.suspended === 'undefined' || typeof this.hasAlert === 'undefined') {\n return null;\n }\n\n return {\n suspended: typeof this.suspended !== 'undefined' ? this.suspended : null,\n hasAlert: typeof this.hasAlert !== 'undefined' ? this.hasAlert : null,\n };\n }\n}\n\nexport class AccountGroupLocation {\n companyName: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n serviceAreaBusiness: boolean;\n serviceArea: ServiceArea;\n website: string;\n workNumber: string[];\n callTrackingNumber: string[];\n location: GeoPoint;\n timezone: string;\n\n static fromProto(proto: any): AccountGroupLocation {\n if (!proto) {\n return null;\n }\n const napData = new AccountGroupLocation();\n for (const key in proto) {\n if (key in proto) {\n napData[key] = proto[key];\n }\n }\n\n napData.location = GeoPoint.fromProto(proto.location);\n napData.serviceArea = proto.serviceArea ? ServiceArea.fromProto(proto.serviceArea) : undefined;\n return napData;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.companyName === 'undefined' &&\n typeof this.address === 'undefined' &&\n typeof this.address2 === 'undefined' &&\n typeof this.city === 'undefined' &&\n typeof this.state === 'undefined' &&\n typeof this.zip === 'undefined' &&\n typeof this.country === 'undefined' &&\n typeof this.website === 'undefined' &&\n typeof this.workNumber === 'undefined' &&\n typeof this.callTrackingNumber === 'undefined' &&\n typeof this.location === 'undefined' &&\n typeof this.timezone === 'undefined' &&\n typeof this.serviceAreaBusiness === 'undefined' &&\n typeof this.serviceArea === 'undefined'\n ) {\n return null;\n }\n\n return {\n companyName: typeof this.companyName !== 'undefined' ? this.companyName : null,\n address: typeof this.address !== 'undefined' ? this.address : null,\n address2: typeof this.address2 !== 'undefined' ? this.address2 : null,\n city: typeof this.city !== 'undefined' ? this.city : null,\n state: typeof this.state !== 'undefined' ? this.state : null,\n zip: typeof this.zip !== 'undefined' ? this.zip : null,\n country: typeof this.country !== 'undefined' ? this.country : null,\n serviceAreaBusiness: typeof this.serviceAreaBusiness !== 'undefined' ? this.serviceAreaBusiness : null,\n serviceArea: typeof this.serviceArea !== 'undefined' ? this.serviceArea?.toApiJson() : null,\n website: typeof this.website !== 'undefined' ? this.website : null,\n workNumber: typeof this.workNumber !== 'undefined' ? this.workNumber : null,\n callTrackingNumber: typeof this.callTrackingNumber !== 'undefined' ? this.callTrackingNumber : null,\n timezone: typeof this.timezone !== 'undefined' ? this.timezone : null,\n location: typeof this.location !== 'undefined' ? this.location.toApiJson() : null,\n };\n }\n}\n\nexport class AccountGroupHealth {\n rating: number;\n reason: string;\n updatedBy: string;\n updatedOn: Date;\n\n static fromProto(proto: any): AccountGroupHealth {\n let m = new AccountGroupHealth();\n m = Object.assign(m, proto);\n if (proto.updatedOn) {\n m.updatedOn = new Date(proto.updatedOn);\n }\n return m;\n }\n\n constructor(kwargs?: Partial) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.rating === 'undefined' &&\n typeof this.reason === 'undefined' &&\n typeof this.updatedBy === 'undefined' &&\n typeof this.updatedOn === 'undefined'\n ) {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.rating !== 'undefined') {\n toReturn['rating'] = this.rating;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.updatedBy !== 'undefined') {\n toReturn['updatedBy'] = this.updatedBy;\n }\n if (typeof this.updatedOn !== 'undefined' && this.updatedOn !== null) {\n toReturn['updatedOn'] = 'toApiJson' in this.updatedOn ? (this.updatedOn as any).toApiJson() : this.updatedOn;\n }\n return toReturn;\n }\n}\n\nexport class AccountGroup {\n accountGroupId: string;\n\n deleted: Date;\n created: Date;\n updated: Date;\n\n subscribedToCampaigns: boolean;\n\n accounts: Account[];\n listingDistribution: ListingDistributionDetails;\n listingSyncPro: ListingSyncProDetails;\n associations: Association[];\n externalIdentifiers: AccountGroupExternalIdentifiers;\n socialUrls: SocialURLs;\n hoursOfOperation: HoursOfOperation[];\n contactDetails: ContactDetails;\n snapshotReports: Snapshot[];\n legacyProductDetails: LegacyProductDetails;\n richData: RichData;\n napData: AccountGroupLocation;\n status: Status;\n health: AccountGroupHealth;\n additionalCompanyInfo: AdditionalCompanyInfo;\n marketingInfo: MarketingInfo;\n\n static fromProto(proto: any): AccountGroup {\n if (!proto) {\n return null;\n }\n\n const accountGroup = new AccountGroup();\n for (const key in proto) {\n if (key in proto) {\n accountGroup[key] = proto[key];\n }\n }\n if (typeof accountGroup.subscribedToCampaigns === 'undefined') {\n accountGroup.subscribedToCampaigns = false;\n }\n\n accountGroup.created = proto.created ? new Date(proto.created) : null;\n accountGroup.updated = proto.updated ? new Date(proto.updated) : null;\n accountGroup.deleted = proto.deleted ? new Date(proto.deleted) : null;\n\n accountGroup.napData = AccountGroupLocation.fromProto(proto.napData);\n accountGroup.listingDistribution = ListingDistributionDetails.fromProto(proto.listingDistribution);\n accountGroup.listingSyncPro = ListingSyncProDetails.fromProto(proto.listingSyncPro);\n accountGroup.externalIdentifiers = AccountGroupExternalIdentifiers.fromProto(proto.accountGroupExternalIdentifiers);\n accountGroup.socialUrls = SocialURLs.fromProto(proto.socialUrls);\n accountGroup.contactDetails = ContactDetails.fromProto(proto.contactDetails);\n accountGroup.legacyProductDetails = LegacyProductDetails.fromProto(proto.legacyProductDetails);\n accountGroup.richData = RichData.fromProto(proto.richData);\n accountGroup.status = Status.fromProto(proto.status);\n\n accountGroup.accounts =\n proto.accounts && proto.accounts.accounts ? proto.accounts.accounts.map(Account.fromProto) : [];\n accountGroup.associations = proto.associations ? proto.associations.map(Association.fromProto) : [];\n accountGroup.hoursOfOperation =\n proto.hoursOfOperation && proto.hoursOfOperation.hoursOfOperation\n ? proto.hoursOfOperation.hoursOfOperation.map(HoursOfOperation.fromProto)\n : [];\n accountGroup.snapshotReports =\n proto.snapshotReports && proto.snapshotReports.snapshots\n ? proto.snapshotReports.snapshots.map(Snapshot.fromProto)\n : [];\n if (proto.health) {\n accountGroup.health = AccountGroupHealth.fromProto(proto.health);\n }\n if (proto.additionalCompanyInfo) {\n accountGroup.additionalCompanyInfo = AdditionalCompanyInfo.fromProto(proto.additionalCompanyInfo);\n }\n if (proto.marketingInfo) {\n accountGroup.marketingInfo = MarketingInfo.fromProto(proto.marketingInfo);\n }\n\n return accountGroup;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n hasAccount(marketplaceAppId: string): boolean {\n return !!this.getAccount(marketplaceAppId);\n }\n\n getAccount(marketplaceAppId: string): Account {\n return this.accounts.find((account) => account.marketplaceAppId === marketplaceAppId);\n }\n\n getLatestSnapshotReport(): Snapshot {\n if (!this.snapshotReports) {\n return null;\n }\n return this.snapshotReports[this.snapshotReports.length - 1];\n }\n\n getLifeCycleStage(): LifecycleStage {\n if (typeof this.marketingInfo === 'undefined' || typeof this.marketingInfo.lifecycleStage === 'undefined') {\n return LifecycleStage.LIFECYCLE_STAGE_UNSET;\n }\n\n return (this.marketingInfo.lifecycleStage);\n }\n\n toApiJson(): object {\n if (\n typeof this.accountGroupId === 'undefined' &&\n typeof this.napData === 'undefined' &&\n typeof this.deleted === 'undefined' &&\n typeof this.created === 'undefined' &&\n typeof this.updated === 'undefined' &&\n typeof this.subscribedToCampaigns === 'undefined' &&\n typeof this.accounts === 'undefined' &&\n typeof this.listingDistribution === 'undefined' &&\n typeof this.listingSyncPro === 'undefined' &&\n typeof this.associations === 'undefined' &&\n typeof this.externalIdentifiers === 'undefined' &&\n typeof this.socialUrls === 'undefined' &&\n typeof this.hoursOfOperation === 'undefined' &&\n typeof this.contactDetails === 'undefined' &&\n typeof this.snapshotReports === 'undefined' &&\n typeof this.legacyProductDetails === 'undefined' &&\n typeof this.richData === 'undefined' &&\n typeof this.status === 'undefined' &&\n typeof this.health === 'undefined' &&\n typeof this.additionalCompanyInfo === 'undefined' &&\n typeof this.marketingInfo === 'undefined'\n ) {\n return null;\n }\n\n return {\n accountGroupId: typeof this.accountGroupId !== 'undefined' ? this.accountGroupId : null,\n deleted: typeof this.deleted !== 'undefined' ? this.deleted.toISOString() : null,\n created: typeof this.created !== 'undefined' ? this.created.toISOString() : null,\n updated: typeof this.updated !== 'undefined' ? this.updated.toISOString() : null,\n subscribedToCampaigns: typeof this.subscribedToCampaigns !== 'undefined' ? this.subscribedToCampaigns : null,\n napData: typeof this.napData !== 'undefined' ? this.napData.toApiJson() : null,\n accounts: typeof this.accounts !== 'undefined' ? this.accounts.map((account) => account.toApiJson()) : null,\n listingDistribution:\n typeof this.listingDistribution !== 'undefined' ? this.listingDistribution.toApiJson() : null,\n listingSyncPro: typeof this.listingSyncPro !== 'undefined' ? this.listingSyncPro.toApiJson() : null,\n associations:\n typeof this.associations !== 'undefined'\n ? this.associations.map((association) => association.toApiJson())\n : null,\n accountGroupExternalIdentifiers:\n typeof this.externalIdentifiers !== 'undefined' ? this.externalIdentifiers.toApiJson() : null,\n socialUrls: typeof this.socialUrls !== 'undefined' ? this.socialUrls.toApiJson() : null,\n hoursOfOperation:\n typeof this.hoursOfOperation !== 'undefined'\n ? this.hoursOfOperation.map((hoursOfOperation) => hoursOfOperation.toApiJson())\n : null,\n contactDetails: typeof this.contactDetails !== 'undefined' ? this.contactDetails.toApiJson() : null,\n snapshotReports:\n typeof this.snapshotReports !== 'undefined'\n ? this.snapshotReports.map((snapshotReport) => snapshotReport.toApiJson())\n : null,\n legacyProductDetails:\n typeof this.legacyProductDetails !== 'undefined' ? this.legacyProductDetails.toApiJson() : null,\n richData: typeof this.richData !== 'undefined' ? this.richData.toApiJson() : null,\n status: typeof this.status !== 'undefined' ? this.status.toApiJson() : null,\n health: typeof this.health !== 'undefined' && this.health !== null ? this.health.toApiJson() : null,\n additionalCompanyInfo:\n typeof this.additionalCompanyInfo !== 'undefined' && this.additionalCompanyInfo !== null\n ? this.additionalCompanyInfo.toApiJson()\n : null,\n marketingInfo:\n typeof this.marketingInfo !== 'undefined' && this.marketingInfo !== null\n ? this.marketingInfo.toApiJson()\n : null,\n };\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { share, map } from 'rxjs/operators';\n\nimport { EnvironmentService } from '@galaxy/core';\nimport { Environment } from '@galaxy/core';\nimport { SessionService } from '@galaxy/core';\nimport { ProjectionFilter } from './projection-filter';\nimport { ReadFilter } from './read-filter';\nimport { ApiLookupFilter } from './lookup-filters';\nimport { PagedResponse } from './account-group.api.service.response';\nimport { AccountGroup } from './account-group';\nimport { UpdateOperations } from './update-operations';\nimport { SortOptions } from './sort-options';\nimport { SearchOptions } from './search-options';\n\n@Injectable({ providedIn: 'root' })\nexport class AccountGroupApiService {\n private host: string;\n private lookupUrl = `${this.accountGroupHost}/v1/account-group/lookup`;\n private getMultiUrl = `${this.accountGroupHost}/v1/account-group/get-multi`;\n private bulkUpdateUrl = `${this.accountGroupHost}/v1/account-group/bulk-update`;\n private sessionId = '';\n\n constructor(\n private http: HttpClient,\n private environmentService: EnvironmentService,\n private sessionService: SessionService,\n ) {\n this.sessionService.getSessionId().subscribe((sessionId) => {\n this.sessionId = sessionId;\n });\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 get(accountGroupId: string, projectionFilter: ProjectionFilter): Observable {\n return this.getMulti([accountGroupId], projectionFilter).pipe(\n map((accountGroups) => accountGroups[0]),\n share(),\n );\n }\n\n getMulti(\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter?: ReadFilter,\n ): Observable {\n return this.http\n .post(\n this.getMultiUrl,\n {\n accountGroupIds: accountGroupIds,\n projectionFilter: projectionFilter,\n readFilter: readFilter,\n },\n this.apiOptions(),\n )\n .pipe(\n map((body: any): AccountGroup[] =>\n body.accountGroups.map((accountGroupContainer: any) =>\n AccountGroup.fromProto(accountGroupContainer.accountGroup),\n ),\n ),\n share(),\n );\n }\n\n lookup(\n projectionFilter: ProjectionFilter,\n filters: ApiLookupFilter,\n cursor: string,\n pageSize: number,\n searchTerm: string,\n sortOptions: SortOptions,\n searchOptions?: SearchOptions,\n ): Observable {\n return this.http\n .post(\n this.lookupUrl,\n {\n filters: filters.toApiJson(),\n pageSize: pageSize,\n projectionFilter: projectionFilter,\n cursor: cursor,\n searchTerm: searchTerm,\n sortOptions: sortOptions,\n searchOptions,\n },\n this.apiOptions(),\n )\n .pipe(map(this.handlePagedResponse), share());\n }\n\n bulkUpdate(accountGroupId: string, updateOperations: UpdateOperations): Observable> {\n return this.http.post(\n this.bulkUpdateUrl,\n {\n accountGroupId: accountGroupId,\n updateOperations: updateOperations.toApiJson(),\n },\n this.apiOptions(),\n );\n }\n\n private handlePagedResponse(body: any): PagedResponse {\n if (!body.accountGroups) {\n return {\n accountGroups: [],\n nextCursor: '',\n hasMore: false,\n totalResults: 0,\n };\n }\n return {\n accountGroups: body.accountGroups.map(AccountGroup.fromProto),\n nextCursor: body.nextCursor || '',\n hasMore: body.hasMore || false,\n totalResults: Number(body.totalResults) || 0,\n };\n }\n\n private get accountGroupHost(): string {\n if (this.host) {\n return this.host;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this.host = 'http://localhost:22003';\n break;\n case Environment.TEST:\n this.host = 'https://account-group-api-test.apigateway.co';\n break;\n case Environment.DEMO:\n this.host = 'https://account-group-api-demo.apigateway.co';\n break;\n case Environment.PROD:\n this.host = 'https://account-group-api-prod.apigateway.co';\n break;\n }\n return this.host;\n }\n}\n", "import {\n LifecycleStage,\n LookupRequestAccountStatus,\n LookupRequestListingDistributionFilterActivationStatus,\n LookupRequestListingDistributionFilterAutoRenew,\n LookupRequestPresence,\n} from '@vendasta/account-group';\n\nexport class AccountFilter {\n productId: string;\n status: LookupRequestAccountStatus;\n editionId: string;\n\n constructor(productId: string, status: LookupRequestAccountStatus, editionId: string) {\n this.productId = productId;\n this.status = status;\n this.editionId = editionId;\n }\n}\n\nexport class ApiLookupFilter {\n partnerId: string;\n marketIds: string[];\n salesPersonId: string;\n tags: string[];\n accountFilters?: AccountFilters;\n listingDistributionFilter?: ListingDistributionFilter;\n listingSyncProFilter?: ListingSyncProFilter;\n createdDateFilter?: CreatedDateFilter;\n trialFilter?: ApiTrialFilter;\n taxonomyIds?: string[];\n presenceFilter?: PresenceFilter;\n locationFilter?: LocationFilter;\n snapshotFilter?: SnapshotFilter;\n statusFilter?: StatusFilter;\n accountGroupIds?: string[];\n lifecycleStageFilter?: LifecycleStage;\n\n constructor(\n partnerId: string,\n marketIds: string[],\n salesPersonId: string,\n tags: string[],\n accountFilters?: AccountFilters,\n listingDistributionFilter?: ListingDistributionFilter,\n listingSyncProFilter?: ListingSyncProFilter,\n createdDateFilter?: CreatedDateFilter,\n trialFilter?: ApiTrialFilter,\n taxonomyIds?: string[],\n presenceFilter?: PresenceFilter,\n locationFilter?: LocationFilter,\n snapshotFilter?: SnapshotFilter,\n statusFilter?: StatusFilter,\n accountGroupIds?: string[],\n lifecycleStageFilter?: LifecycleStage,\n ) {\n this.partnerId = partnerId;\n this.marketIds = marketIds;\n this.salesPersonId = salesPersonId;\n this.tags = tags;\n this.accountFilters = accountFilters;\n this.listingDistributionFilter = listingDistributionFilter;\n this.listingSyncProFilter = listingSyncProFilter;\n this.createdDateFilter = createdDateFilter;\n this.trialFilter = trialFilter;\n this.taxonomyIds = taxonomyIds;\n this.presenceFilter = presenceFilter;\n this.locationFilter = locationFilter;\n this.snapshotFilter = snapshotFilter;\n this.statusFilter = statusFilter;\n this.accountGroupIds = accountGroupIds;\n this.lifecycleStageFilter = lifecycleStageFilter;\n }\n\n toApiJson(): object {\n let lifecycleFilter: LifecycleStage[];\n if (\n this.lifecycleStageFilter === LifecycleStage.LIFECYCLE_STAGE_CUSTOMER ||\n this.lifecycleStageFilter === LifecycleStage.LIFECYCLE_STAGE_LEAD ||\n this.lifecycleStageFilter === LifecycleStage.LIFECYCLE_STAGE_PROSPECT\n ) {\n lifecycleFilter = [this.lifecycleStageFilter];\n } else {\n lifecycleFilter = null;\n }\n\n return {\n partnerId: this.partnerId,\n marketIds: typeof this.marketIds !== 'undefined' ? this.marketIds : null,\n salesPersonId: typeof this.salesPersonId !== 'undefined' ? this.salesPersonId : null,\n tags: typeof this.tags !== 'undefined' ? this.tags : null,\n accountFilters: this.accountFilters.toApiJson(),\n listingDistributionFilter: this.listingDistributionFilter.toApiJson(),\n createdDateFilter: this.createdDateFilter.toApiJson(),\n listingSyncProFilter: this.listingSyncProFilter.toApiJson(),\n trialFilter: this.trialFilter.toApiJson(),\n taxonomyIds: typeof this.taxonomyIds !== 'undefined' ? this.taxonomyIds : null,\n presenceFilter: this.presenceFilter ? this.presenceFilter.toApiJson() : null,\n locationFilter: this.locationFilter ? this.locationFilter.toApiJson() : null,\n snapshotFilter: this.snapshotFilter ? this.snapshotFilter.toApiJson() : null,\n statusFilter: this.statusFilter ? this.statusFilter.toApiJson() : null,\n accountGroupIds: this.accountGroupIds ? this.accountGroupIds : null,\n lifecycleStage: lifecycleFilter,\n };\n }\n}\n\nexport class AccountFilters {\n private filters: AccountFilter[] = [];\n\n public addFilter(productId: string, status?: LookupRequestAccountStatus, editionId?: string): void {\n this.filters.push(new AccountFilter(productId, status, editionId));\n }\n\n public removeFilter(productId: string): void {\n const index = this.filters.findIndex((filter: AccountFilter) => filter.productId === productId);\n if (index === -1) {\n return;\n }\n this.filters.splice(index, 1);\n }\n\n public changeStatus(productId: string, status: LookupRequestAccountStatus): void {\n this.filters.find((filter: AccountFilter) => filter.productId === productId).status = status;\n }\n\n public clearFilters(): void {\n this.filters = [];\n }\n\n public getFilters(): AccountFilter[] {\n return this.filters;\n }\n\n public toApiJson(): object[] {\n const result = this.filters.map((filter) => {\n return {\n marketplaceAppId: filter.productId,\n accountStatus: filter.status,\n editionId: filter.editionId,\n };\n });\n\n return result.length > 0 ? result : null;\n }\n}\n\nexport class ListingDistributionFilter {\n activationStatus: LookupRequestListingDistributionFilterActivationStatus;\n autoRenew: LookupRequestListingDistributionFilterAutoRenew;\n expiresInDays: number;\n expiredInDays: number;\n renewsInDays: number;\n\n constructor(\n activationStatus?: LookupRequestListingDistributionFilterActivationStatus,\n autoRenew?: LookupRequestListingDistributionFilterAutoRenew,\n expiresInDays?: number,\n expiredInDays?: number,\n renewsInDays?: number,\n ) {\n this.activationStatus = activationStatus;\n this.autoRenew = autoRenew;\n this.expiresInDays = expiresInDays;\n this.expiredInDays = expiredInDays;\n this.renewsInDays = renewsInDays;\n }\n\n toApiJson(): object {\n if (\n typeof this.activationStatus === 'undefined' &&\n typeof this.autoRenew === 'undefined' &&\n typeof this.expiresInDays === 'undefined' &&\n typeof this.expiredInDays === 'undefined' &&\n typeof this.renewsInDays === 'undefined'\n ) {\n return null;\n }\n return {\n activationStatus: this.activationStatus,\n autoRenew: this.autoRenew,\n expiresInDays: this.expiresInDays,\n expiredInDays: this.expiredInDays,\n renewsInDays: this.renewsInDays,\n };\n }\n}\n\nexport class ListingSyncProFilter {\n active: boolean;\n autoRenew: boolean;\n autoRenewDisabled: boolean;\n inactive: boolean;\n expired: boolean;\n expiresInDays: number;\n expiredInDays: number;\n\n constructor(\n active?: boolean,\n autoRenew?: boolean,\n autoRenewDisabled?: boolean,\n inactive?: boolean,\n expired?: boolean,\n expiresInDays?: number,\n expiredInDays?: number,\n ) {\n this.active = active;\n this.autoRenew = autoRenew;\n this.autoRenewDisabled = autoRenewDisabled;\n this.inactive = inactive;\n this.expired = expired;\n this.expiresInDays = expiresInDays;\n this.expiredInDays = expiredInDays;\n }\n\n toApiJson(): object {\n if (\n typeof this.active === 'undefined' &&\n typeof this.autoRenew === 'undefined' &&\n typeof this.autoRenewDisabled === 'undefined' &&\n typeof this.inactive === 'undefined' &&\n typeof this.expired === 'undefined' &&\n typeof this.expiresInDays === 'undefined' &&\n typeof this.expiredInDays === 'undefined'\n ) {\n return null;\n }\n return {\n active: this.active,\n autoRenew: this.autoRenew,\n autoRenewDisabled: this.autoRenewDisabled,\n inactive: this.inactive,\n expired: this.expired,\n expiresInDays: this.expiresInDays,\n expiredInDays: this.expiredInDays,\n };\n }\n}\n\nexport class CreatedDateFilter {\n beginRange: Date;\n endRange: Date;\n\n constructor(beginRange?: Date, endRange?: Date) {\n this.beginRange = beginRange;\n this.endRange = endRange;\n }\n\n toApiJson(): object {\n if (typeof this.beginRange === 'undefined' && typeof this.endRange === 'undefined') {\n return null;\n }\n return {\n beginRange: typeof this.beginRange !== 'undefined' ? this.beginRange.toISOString() : null,\n endRange: typeof this.endRange !== 'undefined' ? this.endRange.toISOString() : null,\n };\n }\n}\n\nexport class ApiTrialFilter {\n isSuspended: boolean;\n\n constructor(isSuspended?: boolean) {\n this.isSuspended = isSuspended;\n }\n\n toApiJson(): object {\n if (typeof this.isSuspended === 'undefined') {\n return null;\n }\n return {\n isSuspended: this.isSuspended,\n };\n }\n}\n\nexport class TrialFilter {\n active: boolean;\n overLimit: boolean;\n\n constructor(active?: boolean, overLimit?: boolean) {\n this.active = active;\n this.overLimit = overLimit;\n }\n}\n\nexport class PresenceFilter {\n constructor(\n public facebook?: LookupRequestPresence,\n public foursquare?: LookupRequestPresence,\n public googleplus?: LookupRequestPresence,\n public linkedin?: LookupRequestPresence,\n public twitter?: LookupRequestPresence,\n public pinterest?: LookupRequestPresence,\n public instagram?: LookupRequestPresence,\n public youtube?: LookupRequestPresence,\n public website?: LookupRequestPresence,\n ) {}\n\n toApiJson(): object {\n if (\n this.facebook === undefined &&\n this.foursquare === undefined &&\n this.googleplus === undefined &&\n this.linkedin === undefined &&\n this.twitter === undefined &&\n this.pinterest === undefined &&\n this.instagram === undefined &&\n this.youtube === undefined &&\n this.website === undefined\n ) {\n return null;\n }\n return {\n facebook: this.facebook,\n foursquare: this.foursquare,\n googleplus: this.googleplus,\n linkedin: this.linkedin,\n twitter: this.twitter,\n pinterest: this.pinterest,\n instagram: this.instagram,\n youtube: this.youtube,\n website: this.website,\n };\n }\n}\n\nexport class LocationFilter {\n constructor(\n public country?: string,\n public state?: string,\n ) {}\n\n toApiJson(): object {\n if (this.country === undefined && this.state === undefined) {\n return null;\n }\n return {\n country: this.country,\n state: this.state,\n };\n }\n}\n\nexport class SnapshotFilter {\n active: boolean;\n expired: boolean;\n noSnapshotsCreated: boolean;\n\n constructor(active?: boolean, expired?: boolean, noSnapshotsCreated?: boolean) {\n this.active = active;\n this.expired = expired;\n this.noSnapshotsCreated = noSnapshotsCreated;\n }\n\n toApiJson(): object {\n if (\n typeof this.active === 'undefined' &&\n typeof this.expired === 'undefined' &&\n typeof this.noSnapshotsCreated === 'undefined'\n ) {\n return null;\n }\n return {\n active: this.active,\n expired: this.expired,\n noSnapshotsCreated: this.noSnapshotsCreated,\n };\n }\n}\n\nexport class StatusFilter {\n hasAlert: boolean;\n\n constructor(hasAlert?: boolean) {\n this.hasAlert = hasAlert;\n }\n\n toApiJson(): object {\n if (typeof this.hasAlert === 'undefined') {\n return null;\n }\n return {\n hasAlert: this.hasAlert,\n };\n }\n}\n\nexport class LookupFilter {\n salesPersonId: string;\n tags: string[];\n accountFilters?: AccountFilters;\n listingDistributionFilter?: ListingDistributionFilter;\n listingSyncProFilter?: ListingSyncProFilter;\n createdDateFilter?: CreatedDateFilter;\n trialFilter?: TrialFilter;\n taxonomyIds?: string[];\n presenceFilter?: PresenceFilter;\n locationFilter?: LocationFilter;\n snapshotFilter?: SnapshotFilter;\n statusFilter?: StatusFilter;\n accountGroupIds?: string[];\n lifecycleStageFilter?: LifecycleStage;\n\n constructor(\n salesPersonId?: string,\n tags?: string[],\n accountFilters?: AccountFilters,\n listingDistributionFilter?: ListingDistributionFilter,\n listingSyncProFilter?: ListingSyncProFilter,\n createdDateFilter?: CreatedDateFilter,\n trialFilter?: TrialFilter,\n taxonomyIds?: string[],\n presenceFilter?: PresenceFilter,\n locationFilter?: LocationFilter,\n snapshotFilter?: SnapshotFilter,\n statusFilter?: StatusFilter,\n accountGroupIds?: string[],\n lifecycleStageFilter?: LifecycleStage,\n ) {\n this.salesPersonId = salesPersonId;\n this.tags = tags;\n this.accountFilters = accountFilters || new AccountFilters();\n this.listingDistributionFilter = listingDistributionFilter || new ListingDistributionFilter();\n this.listingSyncProFilter = listingSyncProFilter || new ListingSyncProFilter();\n this.createdDateFilter = createdDateFilter || new CreatedDateFilter();\n this.trialFilter = trialFilter || new TrialFilter();\n this.taxonomyIds = taxonomyIds;\n this.presenceFilter = presenceFilter || new PresenceFilter();\n this.locationFilter = locationFilter || new LocationFilter();\n this.snapshotFilter = snapshotFilter || new SnapshotFilter();\n this.statusFilter = statusFilter || new StatusFilter();\n this.accountGroupIds = accountGroupIds;\n this.lifecycleStageFilter = lifecycleStageFilter;\n }\n}\n", "import { SortDirection, SortField } from '@vendasta/account-group';\nexport { SortDirection, SortField };\n\nexport interface SortOptions {\n direction: SortDirection;\n field: SortField;\n}\n\nconst sortFieldsByName = {\n Created: SortField.Created,\n Modified: SortField.Modified,\n CompanyName: SortField.CompanyName,\n};\n\nexport function fieldNameToSortField(fieldName: string): SortField {\n return sortFieldsByName[fieldName];\n}\n", "import { HttpErrorResponse, HttpResponse } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription, throwError as observableThrowError } from 'rxjs';\nimport { catchError, map, share, take } from 'rxjs/operators';\n\nimport { PartnerService } from '@galaxy/partner';\nimport { AccountGroup } from './account-group';\nimport { errorCanBeHandled, findAccessibleAccountGroupIds } from './account-group-helpers';\nimport { AccountGroupApiService } from './account-group.api.service';\nimport { PagedResponse } from './account-group.api.service.response';\nimport { ApiLookupFilter, ApiTrialFilter, LookupFilter } from './lookup-filters';\nimport { ProjectionFilter } from './projection-filter';\nimport { ReadFilter } from './read-filter';\nimport { SearchOptions } from './search-options';\nimport { fieldNameToSortField, SortDirection, SortField, SortOptions } from './sort-options';\nimport { UpdateOperations } from './update-operations';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountGroupService implements OnDestroy {\n private cursor: string = null;\n private hasMoreSubject$$: BehaviorSubject = new BehaviorSubject(false);\n private hasMore$: Observable = this.hasMoreSubject$$.asObservable();\n private accountGroupSubject$$: BehaviorSubject = new BehaviorSubject([]);\n private accountGroup$: Observable = this.accountGroupSubject$$.asObservable();\n private totalResultsSubject$$: BehaviorSubject = new BehaviorSubject(0);\n private totalResults$: Observable = this.totalResultsSubject$$.asObservable();\n private loadingSubject$$: BehaviorSubject = new BehaviorSubject(false);\n private loading$: Observable = this.loadingSubject$$.asObservable();\n private partnerId: string;\n private subscriptions: Subscription[] = [];\n\n private latestResponse: BehaviorSubject = new BehaviorSubject(null);\n\n private sortOptions: SortOptions = {\n field: SortField.Created,\n direction: SortDirection.Descending,\n };\n\n constructor(private accountGroupApiService: AccountGroupApiService, private partnerService: PartnerService) {\n this.subscriptions.push(\n this.partnerService.getPartnerId().subscribe((partnerId) => {\n this.partnerId = partnerId;\n }),\n );\n }\n\n get hasMore(): Observable {\n return this.hasMore$;\n }\n\n get accountGroups(): Observable {\n return this.accountGroup$;\n }\n\n get totalResults(): Observable {\n return this.totalResults$;\n }\n\n get loading(): Observable {\n return this.loading$;\n }\n\n lookup(\n projectionFilter: ProjectionFilter,\n marketIds: string[] = null,\n searchTerm: string = null,\n filters: LookupFilter = null,\n pageSize = 10,\n searchOptions?: SearchOptions,\n ): Observable {\n return this.lookupAccountGroups(marketIds, projectionFilter, searchTerm, filters, '', pageSize, searchOptions);\n }\n\n get(accountGroupId: string, projectionFilter: ProjectionFilter): Observable {\n return this.accountGroupApiService.get(accountGroupId, projectionFilter);\n }\n\n getMulti(\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter?: ReadFilter,\n returnOnlyAccessibleAccountGroups = false,\n ): Observable {\n if (returnOnlyAccessibleAccountGroups === false) {\n return this.accountGroupApiService.getMulti(accountGroupIds, projectionFilter, readFilter);\n } else {\n return this.accountGroupApiService\n .getMulti(accountGroupIds, projectionFilter, readFilter)\n .pipe(catchError((error) => this.handleError(error, accountGroupIds, projectionFilter, readFilter)));\n }\n }\n\n private handleError(\n error: any,\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter: ReadFilter,\n ): Observable {\n if (errorCanBeHandled(error)) {\n const validAccountGroups: string[] = findAccessibleAccountGroupIds(error, accountGroupIds);\n\n if ((validAccountGroups.length ?? 0) === 0) {\n throw error;\n }\n\n return this.getValidAccountGroups(validAccountGroups, projectionFilter, readFilter);\n }\n throw error;\n }\n\n getValidAccountGroups(\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter: ReadFilter,\n ): Observable {\n return this.accountGroupApiService.getMulti(accountGroupIds, projectionFilter, readFilter);\n }\n\n bulkUpdate(accountGroupId: string, updateOperations: UpdateOperations): Observable> {\n const call = this.accountGroupApiService.bulkUpdate(accountGroupId, updateOperations).pipe(\n catchError((err: HttpErrorResponse) => {\n let message;\n if (err.status === 401) {\n message = 'Invalid Session. Please try again.';\n } else if (err.status === 400) {\n message = (err.error && err.error.message) || 'Invalid submission';\n } else {\n message = 'Failed to update';\n }\n return observableThrowError({ message: message, retryable: err.status === 401 });\n }),\n share(),\n );\n call.subscribe(null, () => {\n // Only handling errors so that later subscribers will also receive them https://github.com/ReactiveX/rxjs/issues/2145\n });\n return call;\n }\n\n loadMore(\n projectionFilter: ProjectionFilter,\n marketIds: string[],\n searchTerm: string,\n filters: LookupFilter,\n pageSize = 10,\n searchOptions?: SearchOptions,\n ): Observable {\n if (this.hasMoreSubject$$.getValue()) {\n return this.lookupAccountGroups(\n marketIds,\n projectionFilter,\n searchTerm,\n filters,\n this.cursor,\n pageSize,\n searchOptions,\n );\n }\n return observableThrowError(new Error('No more results'));\n }\n\n removeAccountGroupFromList(accountGroupId: string): void {\n const newAccountGroups: AccountGroup[] = this.accountGroupSubject$$\n .getValue()\n .filter((accountGroup) => accountGroup.accountGroupId !== accountGroupId);\n\n if (newAccountGroups.length < this.accountGroupSubject$$.getValue().length) {\n this.accountGroupSubject$$.next(newAccountGroups);\n this.totalResultsSubject$$.next(this.totalResultsSubject$$.getValue() - 1);\n }\n }\n\n setSortOptions(fieldName: string, ascending = true): void {\n this.sortOptions = {\n field: fieldNameToSortField(fieldName),\n direction: ascending ? SortDirection.Ascending : SortDirection.Descending,\n };\n }\n\n private lookupAccountGroups(\n marketIds: string[],\n projectionFilter: ProjectionFilter,\n searchTerm: string,\n filters: LookupFilter,\n cursor: string,\n pageSize: number,\n searchOptions?: SearchOptions,\n ): Observable {\n if (!filters) {\n filters = new LookupFilter();\n }\n\n this.cursor = null;\n if (!cursor) {\n this.accountGroupSubject$$.next(null);\n }\n this.hasMoreSubject$$.next(false);\n this.loadingSubject$$.next(true);\n return this.lookupApi(\n filters,\n projectionFilter,\n marketIds,\n cursor,\n pageSize,\n searchTerm,\n this.sortOptions,\n searchOptions,\n );\n }\n\n private lookupApi(\n filters: LookupFilter,\n projectionFilter: ProjectionFilter,\n marketIds: string[],\n cursor: string,\n pageSize: number,\n searchTerm: string,\n sortOptions: SortOptions,\n searchOptions?: SearchOptions,\n ): Observable {\n let isSuspended: boolean;\n // If overLimit and active are either both true, or both falsy, we don't care about the filter - it has the same result\n if (\n (filters.trialFilter.overLimit && !filters.trialFilter.active) ||\n (!filters.trialFilter.overLimit && filters.trialFilter.active)\n ) {\n // Otherwise one of the filters is true; set isSuspended to the filter that has a value\n isSuspended = filters.trialFilter.overLimit ? filters.trialFilter.overLimit : !filters.trialFilter.active;\n }\n\n const apiTrialFilter = new ApiTrialFilter(isSuspended);\n const apiFilters: ApiLookupFilter = new ApiLookupFilter(\n this.partnerId,\n marketIds,\n filters.salesPersonId,\n filters.tags,\n filters.accountFilters,\n filters.listingDistributionFilter,\n filters.listingSyncProFilter,\n filters.createdDateFilter,\n apiTrialFilter,\n filters.taxonomyIds,\n filters.presenceFilter,\n filters.locationFilter,\n filters.snapshotFilter,\n filters.statusFilter,\n filters.accountGroupIds,\n filters.lifecycleStageFilter,\n );\n\n this.accountGroupApiService\n .lookup(projectionFilter, apiFilters, cursor, pageSize, searchTerm, sortOptions, searchOptions)\n .pipe(map(this.handleResponse(!!cursor)), take(1))\n .subscribe(this.loadNextPagedResponse.bind(this));\n\n return this.accountGroups;\n }\n\n private handleResponse(appendResults: boolean): (pagedResponse: PagedResponse) => PagedResponse {\n return (pagedResponse: PagedResponse) => {\n if (appendResults && this.latestResponse.getValue()) {\n return {\n accountGroups: this.latestResponse.getValue().accountGroups.concat(pagedResponse.accountGroups),\n nextCursor: pagedResponse.nextCursor,\n hasMore: pagedResponse.hasMore,\n totalResults: pagedResponse.totalResults,\n };\n }\n return pagedResponse;\n };\n }\n\n private loadNextPagedResponse(pagedResponse: PagedResponse): void {\n this.latestResponse.next(pagedResponse);\n this.cursor = pagedResponse.nextCursor;\n this.hasMoreSubject$$.next(pagedResponse.hasMore);\n this.totalResultsSubject$$.next(pagedResponse.totalResults);\n this.accountGroupSubject$$.next(pagedResponse.accountGroups);\n this.loadingSubject$$.next(false);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.accountGroupSubject$$.complete();\n this.hasMoreSubject$$.complete();\n this.totalResultsSubject$$.complete();\n this.loadingSubject$$.complete();\n this.latestResponse.complete();\n }\n}\n", "import {\n AccountGroupExternalIdentifiers,\n AdditionalCompanyInfo,\n ContactDetails,\n GeoPoint,\n HoursOfOperation,\n LegacyProductDetails,\n ListingDistributionDetails,\n ListingSyncProDetails,\n MarketingInfo,\n RichData,\n ServiceArea,\n Snapshot,\n SocialURLs,\n Status,\n} from './account-group';\n// tslint:disable-next-line:import-blacklist\nimport { EstimatedAnnualRevenue, LifecycleStage, MarketingClassification } from '@vendasta/account-group';\n\n/**\n * This is a copy of internal rxjs implementation details. This function used to be exported, but is now unexported as\n * it wasn't intended to be used outside the library itself. We copied this as a low effort way to migrate to rxjs 7.\n * We should remove this and use the public API.\n *\n * Ultimately, this is based off the alternative implementation of the `applyMixins` function from the TypeScript handbook:\n * https://www.typescriptlang.org/docs/handbook/mixins.html#alternative-pattern\n *\n * @param derivedCtor The class that will be extended\n * @param baseCtors The mixins that will be applied to the derived class\n * @returns void\n *\n * It may make sense to move this to a shared lib, or look at the current typescript handbook implementation to see if\n * there is a better way to do this. I.e. without using `any` types.\n */\n\nfunction applyMixins(derivedCtor: any, baseCtors: any[]): void {\n for (let i = 0, len = baseCtors.length; i < len; i++) {\n const baseCtor = baseCtors[i];\n const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n for (let j = 0, len2 = propertyKeys.length; j < len2; j++) {\n const name = propertyKeys[j];\n derivedCtor.prototype[name] = baseCtor.prototype[name];\n }\n }\n}\n\nexport class UpdateOperations {\n private operations: AbstractUpdateOperation[] = [];\n\n addUpdateOperation(updateOperation: AbstractUpdateOperation): void {\n this.operations.push(updateOperation);\n }\n\n toApiJson(): object[] {\n if (this.operations.length === 0) {\n return null;\n }\n\n return this.operations\n .map((operation: AbstractUpdateOperation) => {\n const op: any = {};\n const json = operation.toApiJson();\n\n if (json === null) {\n return null;\n }\n\n const mask = operation.getMask();\n\n op[operation.OPERATION_ID] = this.cleanNonFieldMaskProperties(json, mask);\n op.fieldMask = {\n paths: mask,\n };\n return op;\n })\n .filter((op) => !!op);\n }\n\n cleanNonFieldMaskProperties(json: Record, paths: string[]): object {\n for (const key in json) {\n if (key in json && paths.indexOf(key) === -1) {\n delete json[key];\n }\n }\n return json;\n }\n}\n\nexport abstract class AbstractUpdateOperation {\n OPERATION_ID: string;\n\n abstract toApiJson(): object;\n\n getMask(): string[] {\n const mask: string[] = [];\n for (const key in this) {\n if (key in this && typeof this[key] !== 'undefined' && key !== 'OPERATION_ID') {\n mask.push(key);\n }\n }\n\n return mask;\n }\n}\n\nexport class NapUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'accountGroupNap';\n companyName: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n serviceAreaBusiness: boolean;\n serviceArea: ServiceArea;\n website: string;\n workNumber: string[];\n callTrackingNumber: string[];\n location: GeoPoint;\n timezone: string;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.companyName === 'undefined' &&\n typeof this.address === 'undefined' &&\n typeof this.address2 === 'undefined' &&\n typeof this.city === 'undefined' &&\n typeof this.state === 'undefined' &&\n typeof this.zip === 'undefined' &&\n typeof this.country === 'undefined' &&\n typeof this.website === 'undefined' &&\n typeof this.workNumber === 'undefined' &&\n typeof this.callTrackingNumber === 'undefined' &&\n typeof this.location === 'undefined' &&\n typeof this.timezone === 'undefined' &&\n typeof this.serviceAreaBusiness === 'undefined' &&\n typeof this.serviceArea === 'undefined'\n ) {\n return null;\n }\n return {\n companyName: typeof this.companyName !== 'undefined' ? this.companyName : null,\n address: typeof this.address !== 'undefined' ? this.address : null,\n address2: typeof this.address2 !== 'undefined' ? this.address2 : null,\n city: typeof this.city !== 'undefined' ? this.city : null,\n state: typeof this.state !== 'undefined' ? this.state : null,\n zip: typeof this.zip !== 'undefined' ? this.zip : null,\n country: typeof this.country !== 'undefined' ? this.country : null,\n serviceAreaBusiness: typeof this.serviceAreaBusiness !== 'undefined' ? this.serviceAreaBusiness : null,\n website: typeof this.website !== 'undefined' ? this.website : null,\n workNumber: typeof this.workNumber !== 'undefined' ? this.workNumber : null,\n callTrackingNumber: typeof this.callTrackingNumber !== 'undefined' ? this.callTrackingNumber : null,\n location: typeof this.location !== 'undefined' ? this.location.toApiJson() : null,\n timezone: typeof this.timezone !== 'undefined' ? this.timezone : null,\n serviceArea: typeof this.serviceArea !== 'undefined' ? this.serviceArea?.toApiJson() : null,\n };\n }\n}\n\nexport class SnapshotsUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'snapshots';\n snapshots: Snapshot[];\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.snapshots === 'undefined') {\n return null;\n }\n return {\n snapshots: typeof this.snapshots !== 'undefined' ? this.snapshots.map((snapshot) => snapshot.toApiJson()) : null,\n };\n }\n}\n\nexport class HealthUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'health';\n rating?: number;\n reason?: string;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.rating === 'undefined' && typeof this.reason === 'undefined') {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.rating !== 'undefined') {\n toReturn['rating'] = this.rating;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n return toReturn;\n }\n}\n\nexport class HoursOfOperationUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'hoursOfOperation';\n hoursOfOperation: HoursOfOperation[];\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.hoursOfOperation === 'undefined') {\n return null;\n }\n\n return {\n hoursOfOperation:\n typeof this.hoursOfOperation !== 'undefined' ? this.hoursOfOperation.map((span) => span.toApiJson()) : null,\n };\n }\n}\napplyMixins(HoursOfOperationUpdateOperation, [AbstractUpdateOperation]);\n\nexport class ListingDistributionDetailsUpdateOperation\n extends ListingDistributionDetails\n implements AbstractUpdateOperation\n{\n OPERATION_ID = 'listingDistribution';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(ListingDistributionDetailsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class ListingSyncProUpdateOperation extends ListingSyncProDetails implements AbstractUpdateOperation {\n OPERATION_ID = 'listingSyncProto';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(ListingSyncProUpdateOperation, [AbstractUpdateOperation]);\n\nexport class AccountGroupExternalIdentifiersUpdateOperation\n extends AccountGroupExternalIdentifiers\n implements AbstractUpdateOperation\n{\n OPERATION_ID = 'accountGroupExternalIdentifiers';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(AccountGroupExternalIdentifiersUpdateOperation, [AbstractUpdateOperation]);\n\nexport class SocialURLsUpdateOperation extends SocialURLs implements AbstractUpdateOperation {\n OPERATION_ID = 'socialUrls';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(SocialURLsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class ContactDetailsUpdateOperation extends ContactDetails implements AbstractUpdateOperation {\n OPERATION_ID = 'contactDetails';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(ContactDetailsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class LegacyProductDetailsUpdateOperation extends LegacyProductDetails implements AbstractUpdateOperation {\n OPERATION_ID = 'legacyProductDetails';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(LegacyProductDetailsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class RichDataUpdateOperation extends RichData implements AbstractUpdateOperation {\n OPERATION_ID = 'richData';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(RichDataUpdateOperation, [AbstractUpdateOperation]);\n\nexport class StatusUpdateOperation extends Status implements AbstractUpdateOperation {\n OPERATION_ID = 'status';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(StatusUpdateOperation, [AbstractUpdateOperation]);\n\nexport class AdditionalCompanyInfoOperation extends AdditionalCompanyInfo implements AbstractUpdateOperation {\n OPERATION_ID = 'additionalCompanyInfo';\n\n getMask: () => string[];\n numEmployees: number;\n estimatedAnnualRevenue: EstimatedAnnualRevenue;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.numEmployees === 'undefined' && typeof this.estimatedAnnualRevenue === 'undefined') {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.numEmployees !== 'undefined') {\n toReturn['numEmployees'] = this.numEmployees;\n }\n if (typeof this.estimatedAnnualRevenue !== 'undefined') {\n toReturn['estimatedAnnualRevenue'] = this.estimatedAnnualRevenue;\n }\n return toReturn;\n }\n}\napplyMixins(AdditionalCompanyInfoOperation, [AbstractUpdateOperation]);\n\nexport class MarketingInfoOperation extends MarketingInfo implements AbstractUpdateOperation {\n OPERATION_ID = 'marketingInfo';\n getMask: () => string[];\n\n conversionPoint: string;\n marketingClassification: MarketingClassification;\n lifecycleStage: LifecycleStage;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.conversionPoint === 'undefined' &&\n typeof this.marketingClassification === 'undefined' &&\n typeof this.lifecycleStage === 'undefined'\n ) {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.conversionPoint !== 'undefined') {\n toReturn['conversionPoint'] = this.conversionPoint;\n }\n if (typeof this.marketingClassification !== 'undefined') {\n toReturn['marketingClassification'] = this.marketingClassification;\n }\n if (typeof this.lifecycleStage !== 'undefined') {\n toReturn['lifecycleStage'] = this.lifecycleStage;\n }\n\n return toReturn;\n }\n}\napplyMixins(MarketingInfoOperation, [AbstractUpdateOperation]);\n", "import { ProjectionFilter as sdkProjectionFilter } from '@vendasta/account-group';\n\nexport class ProjectionFilter extends sdkProjectionFilter {\n public enableAll(): ProjectionFilter {\n this.accounts = true;\n this.listingDistribution = true;\n this.listingSyncPro = true;\n this.associations = true;\n this.accountGroupExternalIdentifiers = true;\n this.socialUrls = true;\n this.hoursOfOperation = true;\n this.contactDetails = true;\n this.snapshotReports = true;\n this.legacyProductDetails = true;\n this.richData = true;\n this.status = true;\n this.napData = true;\n this.health = true;\n this.additionalCompanyInfo = true;\n this.marketingInfo = true;\n return this;\n }\n}\n", "export enum SearchableField {\n SEARCHABLE_FIELD_UNSPECIFIED = 0,\n SEARCHABLE_FIELD_COMPANY_NAME = 1,\n SEARCHABLE_FIELD_COMMON_NAME = 2,\n SEARCHABLE_FIELD_ADDRESS = 3,\n SEARCHABLE_FIELD_ADDRESS_2 = 4,\n SEARCHABLE_FIELD_CITY = 5,\n SEARCHABLE_FIELD_STATE = 6,\n SEARCHABLE_FIELD_ZIP = 7,\n SEARCHABLE_FIELD_COUNTRY = 8,\n SEARCHABLE_FIELD_WORK_NUMBER = 9,\n SEARCHABLE_FIELD_SOCIAL_PROFILE_ID = 10,\n SEARCHABLE_FIELD_CUSTOMER_ID = 11,\n SEARCHABLE_FIELD_ACCOUNT_GROUP_ID = 12,\n}\n\nexport interface SearchOptions {\n fields?: SearchableField[];\n}\n"], "mappings": "uZAAM,SAAUA,GAAkBC,EAAK,CACrC,OAAIA,EAAMC,SAAW,IACZ,GAEF,CAAC,EAAED,EAAMC,SAAW,KAAOD,EAAMA,OAAOE,QAAQ,CAAC,GAAGC,SAAS,CAAC,EACvE,CAEM,SAAUC,GAA8BJ,EAAYK,EAA0B,CAClF,IAAMC,EAAwB,CAAA,EAC9BN,EAAMA,MAAME,QAAQ,CAAC,EAAEC,SAASI,QAASC,GAAM,CAC7C,GAAIA,EAAGC,aAAaC,kBAAkBC,OACpCL,EAAsBM,KAAKJ,EAAGC,YAAYC,iBAAiBC,OAAO,CAAC,CAAC,MAEpE,OAAO,CAAA,CAEX,CAAC,EAED,IAAME,EAAuB,CAAA,EAC7BR,OAAAA,EAAiBS,OAAQN,GAAM,CACzBF,EAAsBS,KAAMC,GAAMA,IAAMR,CAAE,IAAMS,QAClDJ,EAAqBD,KAAKJ,CAAE,CAEhC,CAAC,EAEMK,CACT,CCzBM,SAAUK,EAAqBC,EAAcC,EAAa,CAC9D,OAAI,OAAOA,GAAU,SACZA,EAEFD,EAAQC,CAAK,CACtB,CCYM,IAAOC,GAAP,MAAOA,CAAW,CAKtB,OAAOC,UAAUC,EAAU,CACzB,IAAIC,EAAI,IAAIH,EACZG,OAAAA,EAAIC,OAAOC,OAAOF,EAAGD,CAAK,EACnBC,CACT,CAEAG,YAAYC,EAA6B,CAClCA,GAGLH,OAAOC,OAAO,KAAME,CAAM,CAC5B,CAEAC,WAAS,CACP,IAAMC,EAEF,CAAA,EAEJ,OAAI,OAAO,KAAKC,QAAY,MAC1BD,EAAS,QAAa,KAAKC,SAEzB,OAAO,KAAKC,UAAc,MAC5BF,EAAS,UAAe,KAAKE,WAE3B,OAAO,KAAKC,KAAS,MACvBH,EAAS,KAAU,KAAKG,MAEnBH,CACT,GAGWI,GAAP,MAAOA,CAAW,CAItB,OAAOZ,UAAUC,EAAU,CACzB,IAAIC,EAAI,IAAIU,EACZV,OAAAA,EAAIC,OAAOC,OAAOF,EAAGD,CAAK,EACtBA,GAAOY,eACTX,EAAEW,aAAeC,EAA2CC,GAAyBd,GAAOY,YAAY,GAEtGZ,GAAOe,SACTd,EAAEc,OAASf,GAAOe,OAAOC,IAAIlB,GAAYC,SAAS,GAE7CE,CACT,CAEAG,YAAYC,EAA6B,CAClCA,GAGLH,OAAOC,OAAO,KAAME,CAAM,CAC5B,CAEAC,WAAS,CACP,IAAMC,EAEF,CAAA,EAEJ,OAAI,OAAO,KAAKK,aAAiB,MAC/BL,EAAS,aAAkB,KAAKK,cAE9B,OAAO,KAAKG,OAAW,KAAe,KAAKA,SAAW,OACxDR,EAAS,OAAY,cAAe,KAAKQ,OAAU,KAAKA,OAAeT,UAAS,EAAK,KAAKS,QAErFR,CACT,GAGWU,EAAP,MAAOA,CAAQ,CAInB,OAAOlB,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAID,EAClB,QAAWE,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1B,OAAOD,CACT,CAEAd,YAAYC,EAA0B,CACpC,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OAAI,OAAO,KAAKc,SAAa,KAAe,OAAO,KAAKC,UAAc,IAC7D,KAEF,CACLD,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KAExE,GAGWC,EAAP,MAAOA,CAAO,CAQlB,OAAOvB,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAII,EAClB,QAAWH,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1BD,OAAAA,EAAMK,OAASvB,EAAMuB,OAAS,IAAIC,KAAKxB,EAAMuB,MAAM,EAAI,KACnD,OAAOL,EAAMO,QAAY,MAC3BP,EAAMO,QAAU,IAEXP,CACT,CAEAd,YAAYC,EAAyB,CACnC,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAqB,SAAO,CACL,OAAI,KAAKH,OACA,KAAKA,OAAS,IAAIC,KAEpB,EACT,CAEAlB,WAAS,CACP,OACE,OAAO,KAAKmB,QAAY,KACxB,OAAO,KAAKE,KAAS,KACrB,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKC,iBAAqB,KACjC,OAAO,KAAKN,OAAW,IAEhB,KAGF,CACLE,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,KAC9DE,KAAM,OAAO,KAAKA,KAAS,IAAc,KAAKA,KAAO,KACrDC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,iBAAkB,OAAO,KAAKA,iBAAqB,IAAc,KAAKA,iBAAmB,KACzFN,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAOO,YAAW,EAAK,KACzEC,UAAW,OAAO,KAAKF,iBAAqB,IAAc,KAAKE,UAAY,KAE/E,GAGWC,EAAP,MAAOA,CAA0B,CAOrC,OAAOjC,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAIc,EAClB,QAAWb,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1BD,OAAAA,EAAMe,SAAW,IAAIT,KAAKxB,EAAMiC,QAAQ,EACxCf,EAAMgB,SAAW,IAAIV,KAAKxB,EAAMkC,QAAQ,EACpC,OAAOhB,EAAMiB,UAAc,MAC7BjB,EAAMiB,UAAY,IAEbjB,CACT,CAEAd,YAAYC,EAA4C,CACtD,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAK8B,QAAY,KACxB,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKJ,SAAa,KACzB,OAAO,KAAKC,SAAa,KACzB,OAAO,KAAKC,UAAc,IAEnB,KAGF,CACLC,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,KAC9DC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEJ,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAASH,YAAW,EAAK,KAC/EI,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAASJ,YAAW,EAAK,KAC/EK,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KAExE,CAEAG,UAAQ,CACN,OAAK,KAAKJ,SAGH,KAAKA,UAAY,IAAIV,KAFnB,EAGX,GAGWe,EAAP,MAAOA,CAAqB,CAQhC,OAAOxC,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAIqB,EAClB,QAAWpB,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1BD,OAAAA,EAAMsB,aAAexC,EAAMwC,aAAe,IAAIhB,KAAKxB,EAAMwC,YAAY,EAAI,KACzEtB,EAAMuB,WAAazC,EAAMyC,WAAa,IAAIjB,KAAKxB,EAAMyC,UAAU,EAAI,KAC/D,OAAOvB,EAAMwB,aAAiB,MAChCxB,EAAMwB,aAAe,IAEnB1C,EAAM2C,mBACRzB,EAAMyB,iBAAmB9B,EACvB+B,GACA5C,EAAM2C,gBAAgB,GAGtB3C,EAAM6C,mBACR3B,EAAM2B,iBAAmBhC,EACvBiC,GACA9C,EAAM6C,gBAAgB,GAGnB3B,CACT,CAEAd,YAAYC,EAAuC,CACjD,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAKkC,aAAiB,KAC7B,OAAO,KAAKG,iBAAqB,KACjC,OAAO,KAAKF,WAAe,KAC3B,OAAO,KAAKM,QAAY,KACxB,OAAO,KAAKL,aAAiB,KAC7B,OAAO,KAAKG,iBAAqB,IAE1B,KAGF,CACLL,aAAc,OAAO,KAAKA,aAAiB,IAAc,KAAKA,aAAaV,YAAW,EAAK,KAC3Fa,iBAAkB,OAAO,KAAKA,iBAAqB,IAAc,KAAKA,iBAAmB,KACzFF,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAWX,YAAW,EAAK,KACrFiB,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,KAC9DL,aAAc,OAAO,KAAKA,aAAiB,IAAc,KAAKA,aAAe,KAC7EG,iBAAkB,OAAO,KAAKA,iBAAqB,IAAc,KAAKA,iBAAmB,KAE7F,GAGWG,EAAP,MAAOA,CAAW,CAOtB,OAAOjD,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAI8B,EAClB,QAAW7B,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1B,OAAI,OAAOD,EAAM+B,gBAAoB,MACnC/B,EAAM+B,gBAAkB,IAEnB/B,CACT,CAEAd,YAAYC,EAA6B,CACvC,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAK4C,MAAU,KACtB,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKJ,gBAAoB,IAEzB,KAGF,CACLC,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,cAAe,OAAO,KAAKA,cAAkB,IAAc,KAAKA,cAAgB,KAChFC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEJ,gBAAiB,OAAO,KAAKA,gBAAoB,IAAc,KAAKA,gBAAkB,KAE1F,GAGWK,EAAP,MAAOA,CAA+B,CAc1C,OAAOvD,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAIoC,EAClB,QAAWnC,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1B,OAAOD,CACT,CAEAd,YAAYC,EAAiD,CAC3D,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAKiD,OAAW,KACvB,OAAO,KAAKC,MAAU,KACtB,OAAO,KAAKC,mBAAuB,KACnC,OAAO,KAAK9B,KAAS,KACrB,OAAO,KAAK+B,YAAgB,KAC5B,OAAO,KAAKC,gBAAoB,KAChC,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKC,SAAa,KACzB,OAAO,KAAKC,OAAW,KACvB,OAAO,KAAKC,aAAiB,KAC7B,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,yBAA6B,IAElC,KAGF,CACLV,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAS,KAC3DC,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDC,mBAAoB,OAAO,KAAKA,mBAAuB,IAAc,KAAKA,mBAAqB,KAC/F9B,KAAM,OAAO,KAAKA,KAAS,IAAc,KAAKA,KAAO,KACrD+B,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAC1EC,gBAAiB,OAAO,KAAKA,gBAAoB,IAAc,KAAKA,gBAAkB,KACtFC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEC,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAS,KAC3DC,aAAc,OAAO,KAAKA,aAAiB,IAAc,KAAKA,aAAe,KAC7EC,cAAe,OAAO,KAAKA,cAAkB,IAAc,KAAKA,cAAgB,KAChFC,yBACE,OAAO,KAAKA,yBAA6B,IAAc,KAAKA,yBAA2B,KAE7F,GAGWC,EAAP,MAAOA,CAAU,CAWrB,OAAOnE,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAIgD,EAClB,QAAW/C,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1B,OAAOD,CACT,CAEAd,YAAYC,EAA4B,CACtC,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAK6D,cAAkB,KAC9B,OAAO,KAAKC,YAAgB,KAC5B,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,YAAgB,KAC5B,OAAO,KAAKC,OAAW,KACvB,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,aAAiB,KAC7B,OAAO,KAAKC,aAAiB,IAEtB,KAGF,CACLR,cAAe,OAAO,KAAKA,cAAkB,IAAc,KAAKA,cAAgB,KAChFC,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAC1EC,cAAe,OAAO,KAAKA,cAAkB,IAAc,KAAKA,cAAgB,KAChFC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAC1EC,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAS,KAC3DC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,aAAc,OAAO,KAAKA,aAAiB,IAAc,KAAKA,aAAe,KAC7EC,aAAc,OAAO,KAAKA,aAAiB,IAAc,KAAKA,aAAe,KAEjF,GAGWC,EAAP,MAAOA,CAAgB,CAM3B,OAAO7E,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAI0D,EAClB,QAAWzD,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1B,OAAOD,CACT,CAEAd,YAAYC,EAAkC,CAC5C,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAKuE,UAAc,KAC1B,OAAO,KAAKC,MAAU,KACtB,OAAO,KAAKC,OAAW,KACvB,OAAO,KAAKC,YAAgB,IAErB,KAGF,CACLH,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDC,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAS,KAC3DC,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAE9E,GAGWC,EAAP,MAAOA,CAAc,CAMzB,OAAOlF,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAI+D,EAClB,QAAW9D,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1B,OAAOD,CACT,CAEAd,YAAYC,EAAgC,CAC1C,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAK4E,UAAc,KAC1B,OAAO,KAAKC,SAAa,KACzB,OAAO,KAAKC,MAAU,KACtB,OAAO,KAAKC,YAAgB,IAErB,KAGF,CACLH,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEC,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDC,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAE9E,GAGWC,EAAP,MAAOA,CAAQ,CAMnB,OAAOvF,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAIoE,EAClB,QAAWnE,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1BD,OAAAA,EAAMqE,QAAUvF,EAAMuF,QAAU,IAAI/D,KAAKxB,EAAMuF,OAAO,EAAI,KAC1DrE,EAAMK,OAASvB,EAAMuB,OAAS,IAAIC,KAAKxB,EAAMuB,MAAM,EAAI,KACvDL,EAAMsE,QAAUxF,EAAMwF,QAAUxF,EAAMwF,QAAU,GACzCtE,CACT,CAEAd,YAAYC,EAA0B,CACpC,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAqB,SAAO,CACL,OAAO,KAAKH,OAAS,IAAIC,IAC3B,CAEAlB,WAAS,CACP,OACE,OAAO,KAAKmF,WAAe,KAC3B,OAAO,KAAKF,QAAY,KACxB,OAAO,KAAKC,QAAY,KACxB,OAAO,KAAKjE,OAAW,IAEhB,KAGF,CACLkE,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEF,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAQzD,YAAW,EAAK,KAC5EP,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAOO,YAAW,EAAK,KACzE0D,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,GAElE,GAGWE,EAAP,MAAOA,CAAoB,CAc/B,OAAO3F,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkB,EAAQ,IAAIwE,EAClB,QAAWvE,KAAOnB,EACZmB,KAAOnB,IACTkB,EAAMC,CAAG,EAAInB,EAAMmB,CAAG,GAG1B,OAAI,OAAOD,EAAMyE,sBAA0B,MACzCzE,EAAMyE,sBAAwB,IAEzBzE,CACT,CAEAd,YAAYC,EAAsC,CAChD,OAAOH,OAAOC,OAAO,KAAME,CAAM,CACnC,CAEAC,WAAS,CACP,OACE,OAAO,KAAKsF,UAAc,KAC1B,OAAO,KAAKC,oBAAwB,KACpC,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,YAAgB,KAC5B,OAAO,KAAKf,MAAU,KACtB,OAAO,KAAKgB,MAAU,KACtB,OAAO,KAAKC,QAAY,KACxB,OAAO,KAAKV,sBAA0B,IAE/B,KAGF,CACLC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,oBAAqB,OAAO,KAAKA,oBAAwB,IAAc,KAAKA,oBAAsB,KAClGC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAC1Ef,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDgB,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDC,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,KAC9DV,sBAAuB,OAAO,KAAKA,sBAA0B,IAAc,KAAKA,sBAAwB,KAE5G,GAoCI,IAAOW,EAAP,MAAOA,CAAiC,CAoB5C,OAAOC,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMC,EAAQ,IAAIH,EAClB,QAAWI,KAAOF,EACZE,KAAOF,IACTC,EAAMC,CAAG,EAAIF,EAAME,CAAG,GAG1B,OAAIF,EAAMG,SACRF,EAAME,OAASC,EACbC,GACAL,EAAMG,MAAM,GAGTF,CACT,CAEAK,YAAYC,EAAmD,CAC7D,OAAOC,OAAOC,OAAO,KAAMF,CAAM,CACnC,CAEAG,WAAS,CACP,OACE,OAAO,KAAKC,YAAgB,KAC5B,OAAO,KAAKC,MAAU,KACtB,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKX,OAAW,KACvB,OAAO,KAAKY,SAAa,KACzB,OAAO,KAAKC,mBAAuB,KACnC,OAAO,KAAKC,iBAAqB,KACjC,OAAO,KAAKC,SAAa,KACzB,OAAO,KAAKC,qBAAyB,KACrC,OAAO,KAAKC,2BAA+B,KAC3C,OAAO,KAAKC,OAAW,KACvB,OAAO,KAAKC,uBAA2B,KACvC,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKC,OAAW,KACvB,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKC,kBAAsB,KAClC,OAAO,KAAKC,aAAiB,IAEtB,KAGF,CACLhB,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAYiB,YAAW,EAAK,KACxFhB,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEX,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAS,KAC3DY,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEC,mBAAoB,OAAO,KAAKA,mBAAuB,IAAc,KAAKA,mBAAqB,KAC/FC,iBAAkB,OAAO,KAAKA,iBAAqB,IAAc,KAAKA,iBAAmB,KACzFC,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEC,qBAAsB,OAAO,KAAKA,qBAAyB,IAAc,KAAKA,qBAAuB,KACrGC,2BACE,OAAO,KAAKA,2BAA+B,IAAc,KAAKA,2BAA6B,KAC7FC,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAS,KAC3DC,uBAAwB,OAAO,KAAKA,uBAA2B,IAAc,KAAKA,uBAAyB,KAC3GC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAS,KAC3DC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,kBAAmB,OAAO,KAAKA,kBAAsB,IAAc,KAAKA,kBAAoB,KAC5FC,aAAc,OAAO,KAAKA,aAAiB,IAAc,KAAKA,aAAe,KAEjF,GAGWE,EAAP,MAAOA,CAAQ,CAanB,OAAO9B,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMC,EAAQ,IAAI4B,EAClB,QAAW3B,KAAOF,EACZE,KAAOF,IACTC,EAAMC,CAAG,EAAIF,EAAME,CAAG,GAG1BD,OAAAA,EAAM6B,kCAAoChC,EAAkCC,UAC1EC,EAAM8B,iCAAiC,EAErC9B,EAAM+B,gBAAkB/B,EAAM+B,eAAeC,SAC/C/B,EAAM8B,eAAiB/B,EAAM+B,eAAeE,IAAKC,GAC/C9B,EAA0C+B,GAAwBD,CAAC,CAAC,GAGxEjC,EAAMmC,oBAAsBC,EAAoBtC,UAAUC,EAAMoC,mBAAmB,EAC5EnC,CACT,CAEAK,YAAYC,EAA0B,CACpC,OAAOC,OAAOC,OAAO,KAAMF,CAAM,CACnC,CAEAG,WAAS,CACP,OACE,OAAO,KAAK4B,eAAmB,KAC/B,OAAO,KAAKC,YAAgB,KAC5B,OAAO,KAAKC,iBAAqB,KACjC,OAAO,KAAKC,gBAAoB,KAChC,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,SAAa,KACzB,OAAO,KAAKZ,eAAmB,KAC/B,OAAO,KAAKa,aAAiB,KAC7B,OAAO,KAAKd,kCAAsC,KAClD,OAAO,KAAKe,mBAAuB,KACnC,OAAO,KAAKA,mBAAuB,KACnC,OAAO,KAAKT,oBAAwB,IAE7B,KAGF,CACLE,eAAgB,OAAO,KAAKA,eAAmB,IAAc,KAAKA,eAAiB,KACnFC,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAC1EC,iBAAkB,OAAO,KAAKA,iBAAqB,IAAc,KAAKA,iBAAmB,KACzFC,gBAAiB,OAAO,KAAKA,gBAAoB,IAAc,KAAKA,gBAAkB,KACtFC,cAAe,OAAO,KAAKA,cAAkB,IAAc,KAAKA,cAAgB,KAChFC,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEZ,eAAgB,OAAO,KAAKA,eAAmB,IAAc,KAAKA,eAAiB,KACnFa,aACE,OAAO,KAAKA,aAAiB,IACzB,KAAKA,aAAaX,IAAKa,GAA6BA,EAAYpC,UAAS,CAAE,EAC3E,KACNoB,kCACE,OAAO,KAAKA,kCAAsC,IAC9C,KAAKA,kCAAkCpB,UAAS,EAChD,KACNmC,mBAAoB,OAAO,KAAKA,mBAAuB,IAAc,KAAKA,mBAAqB,KAC/FT,oBAAqB,OAAO,KAAKA,oBAAwB,IAAc,KAAKA,oBAAsB,KAEtG,GAGWC,EAAP,MAAOA,CAAmB,CAY9B,OAAOtC,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAI+C,EAAI,IAAIV,EACZU,OAAAA,EAAIvC,OAAOC,OAAOsC,EAAG/C,CAAK,EACtBA,EAAMgD,WACRD,EAAEC,SAAW5C,EAA+B6C,EAAajD,EAAMgD,QAAQ,GAErEhD,EAAMkD,oBACRH,EAAEG,kBAAoB9C,EAA+B6C,EAAajD,EAAMkD,iBAAiB,GAEvFlD,EAAMmD,gBACRJ,EAAEI,cAAgB/C,EAA+B6C,EAAajD,EAAMmD,aAAa,GAE/EnD,EAAMoD,iBACRL,EAAEK,eAAiBhD,EAA+B6C,EAAajD,EAAMoD,cAAc,GAEjFpD,EAAMqD,mBACRN,EAAEM,iBAAmBjD,EAA+B6C,EAAajD,EAAMqD,gBAAgB,GAErFrD,EAAMsD,gBACRP,EAAEO,cAAgBlD,EAA+B6C,EAAajD,EAAMsD,aAAa,GAE/EtD,EAAMuD,eACRR,EAAEQ,aAAenD,EAAgCoD,GAAcxD,EAAMuD,YAAY,GAE/EvD,EAAMyD,mBACRV,EAAEU,iBAAmB,IAAIC,KAAK1D,EAAMyD,gBAAgB,GAElDzD,EAAM2D,eACRZ,EAAEY,aAAevD,EAA+B6C,EAAajD,EAAM2D,YAAY,GAE7E3D,EAAM4D,gBACRb,EAAEa,cAAgB,IAAIF,KAAK1D,EAAM4D,aAAa,GAEzCb,CACT,CAEAzC,YAAYC,EAAqC,CAC1CA,GAGLC,OAAOC,OAAO,KAAMF,CAAM,CAC5B,CAEAG,WAAS,CACP,GACE,OAAO,KAAKsC,SAAa,KACzB,OAAO,KAAKE,kBAAsB,KAClC,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,eAAmB,KAC/B,OAAO,KAAKC,iBAAqB,KACjC,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,aAAiB,KAC7B,OAAO,KAAKE,iBAAqB,KACjC,OAAO,KAAKE,aAAiB,KAC7B,OAAO,KAAKC,cAAkB,IAE9B,MAAO,CAAA,EAGT,IAAMC,EAEF,CAAA,EAEJ,OAAI,OAAO,KAAKb,SAAa,MAC3Ba,EAAS,SAAc,KAAKb,UAE1B,OAAO,KAAKE,kBAAsB,MACpCW,EAAS,kBAAuB,KAAKX,mBAEnC,OAAO,KAAKC,cAAkB,MAChCU,EAAS,cAAmB,KAAKV,eAE/B,OAAO,KAAKC,eAAmB,MACjCS,EAAS,eAAoB,KAAKT,gBAEhC,OAAO,KAAKC,iBAAqB,MACnCQ,EAAS,iBAAsB,KAAKR,kBAElC,OAAO,KAAKC,cAAkB,MAChCO,EAAS,cAAmB,KAAKP,eAE/B,OAAO,KAAKC,aAAiB,MAC/BM,EAAS,aAAkB,KAAKN,cAE9B,OAAO,KAAKE,iBAAqB,KAAe,KAAKA,mBAAqB,OAC5EI,EAAS,iBACP,cAAe,KAAKJ,iBAAoB,KAAKA,iBAAyB/C,UAAS,EAAK,KAAK+C,kBAEzF,OAAO,KAAKE,aAAiB,MAC/BE,EAAS,aAAkB,KAAKF,cAE9B,OAAO,KAAKC,cAAkB,KAAe,KAAKA,gBAAkB,OACtEC,EAAS,cACP,cAAe,KAAKD,cAAiB,KAAKA,cAAsBlD,UAAS,EAAK,KAAKkD,eAEhFC,CACT,GAGWC,EAAP,MAAOA,CAAM,CAIjB,OAAO/D,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMC,EAAQ,IAAI6D,EAClB,QAAW5D,KAAOF,EACZE,KAAOF,IACTC,EAAMC,CAAG,EAAIF,EAAME,CAAG,GAG1B,OAAI,OAAOD,EAAM8D,UAAc,MAC7B9D,EAAM8D,UAAY,IAEhB,OAAO9D,EAAM+D,SAAa,MAC5B/D,EAAM+D,SAAW,IAEZ/D,CACT,CAEAK,YAAYC,EAAwB,CAClC,OAAOC,OAAOC,OAAO,KAAMF,CAAM,CACnC,CAEAG,WAAS,CACP,OAAI,OAAO,KAAKqD,UAAc,KAAe,OAAO,KAAKC,SAAa,IAC7D,KAGF,CACLD,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KAErE,GAGWC,EAAP,MAAOA,CAAoB,CAgB/B,OAAOlE,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAET,IAAMkE,EAAU,IAAID,EACpB,QAAW/D,KAAOF,EACZE,KAAOF,IACTkE,EAAQhE,CAAG,EAAIF,EAAME,CAAG,GAI5BgE,OAAAA,EAAQC,SAAWC,EAASrE,UAAUC,EAAMmE,QAAQ,EACpDD,EAAQG,YAAcrE,EAAMqE,YAAcC,GAAYvE,UAAUC,EAAMqE,WAAW,EAAIE,OAC9EL,CACT,CAEA5D,YAAYC,EAAsC,CAChD,OAAOC,OAAOC,OAAO,KAAMF,CAAM,CACnC,CAEAG,WAAS,CACP,OACE,OAAO,KAAK8D,YAAgB,KAC5B,OAAO,KAAKC,QAAY,KACxB,OAAO,KAAKC,SAAa,KACzB,OAAO,KAAKC,KAAS,KACrB,OAAO,KAAKC,MAAU,KACtB,OAAO,KAAKC,IAAQ,KACpB,OAAO,KAAKC,QAAY,KACxB,OAAO,KAAKC,QAAY,KACxB,OAAO,KAAKC,WAAe,KAC3B,OAAO,KAAKC,mBAAuB,KACnC,OAAO,KAAKd,SAAa,KACzB,OAAO,KAAKe,SAAa,KACzB,OAAO,KAAKC,oBAAwB,KACpC,OAAO,KAAKd,YAAgB,IAErB,KAGF,CACLG,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAC1EC,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,KAC9DC,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEC,KAAM,OAAO,KAAKA,KAAS,IAAc,KAAKA,KAAO,KACrDC,MAAO,OAAO,KAAKA,MAAU,IAAc,KAAKA,MAAQ,KACxDC,IAAK,OAAO,KAAKA,IAAQ,IAAc,KAAKA,IAAM,KAClDC,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,KAC9DK,oBAAqB,OAAO,KAAKA,oBAAwB,IAAc,KAAKA,oBAAsB,KAClGd,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,aAAa3D,UAAS,EAAK,KACvFqE,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAU,KAC9DC,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAa,KACvEC,mBAAoB,OAAO,KAAKA,mBAAuB,IAAc,KAAKA,mBAAqB,KAC/FC,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAW,KACjEf,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAASzD,UAAS,EAAK,KAEjF,GAGW0E,EAAP,MAAOA,CAAkB,CAM7B,OAAOrF,UAAUC,EAAU,CACzB,IAAI+C,EAAI,IAAIqC,EACZrC,OAAAA,EAAIvC,OAAOC,OAAOsC,EAAG/C,CAAK,EACtBA,EAAMqF,YACRtC,EAAEsC,UAAY,IAAI3B,KAAK1D,EAAMqF,SAAS,GAEjCtC,CACT,CAEAzC,YAAYC,EAAoC,CACzCA,GAGLC,OAAOC,OAAO,KAAMF,CAAM,CAC5B,CAEAG,WAAS,CACP,GACE,OAAO,KAAK4E,OAAW,KACvB,OAAO,KAAKC,OAAW,KACvB,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKH,UAAc,IAE1B,MAAO,CAAA,EAGT,IAAMxB,EAEF,CAAA,EAEJ,OAAI,OAAO,KAAKyB,OAAW,MACzBzB,EAAS,OAAY,KAAKyB,QAExB,OAAO,KAAKC,OAAW,MACzB1B,EAAS,OAAY,KAAK0B,QAExB,OAAO,KAAKC,UAAc,MAC5B3B,EAAS,UAAe,KAAK2B,WAE3B,OAAO,KAAKH,UAAc,KAAe,KAAKA,YAAc,OAC9DxB,EAAS,UAAe,cAAe,KAAKwB,UAAa,KAAKA,UAAkB3E,UAAS,EAAK,KAAK2E,WAE9FxB,CACT,GAGW4B,EAAP,MAAOA,CAAY,CA0BvB,OAAO1F,UAAUC,EAAU,CACzB,GAAI,CAACA,EACH,OAAO,KAGT,IAAM0F,EAAe,IAAID,EACzB,QAAWvF,KAAOF,EACZE,KAAOF,IACT0F,EAAaxF,CAAG,EAAIF,EAAME,CAAG,GAGjC,OAAI,OAAOwF,EAAaC,sBAA0B,MAChDD,EAAaC,sBAAwB,IAGvCD,EAAaE,QAAU5F,EAAM4F,QAAU,IAAIlC,KAAK1D,EAAM4F,OAAO,EAAI,KACjEF,EAAaG,QAAU7F,EAAM6F,QAAU,IAAInC,KAAK1D,EAAM6F,OAAO,EAAI,KACjEH,EAAaI,QAAU9F,EAAM8F,QAAU,IAAIpC,KAAK1D,EAAM8F,OAAO,EAAI,KAEjEJ,EAAaxB,QAAUD,EAAqBlE,UAAUC,EAAMkE,OAAO,EACnEwB,EAAaK,oBAAsBC,EAA2BjG,UAAUC,EAAM+F,mBAAmB,EACjGL,EAAaO,eAAiBC,EAAsBnG,UAAUC,EAAMiG,cAAc,EAClFP,EAAaS,oBAAsBC,EAAgCrG,UAAUC,EAAMqG,+BAA+B,EAClHX,EAAaY,WAAaC,EAAWxG,UAAUC,EAAMsG,UAAU,EAC/DZ,EAAac,eAAiBC,EAAe1G,UAAUC,EAAMwG,cAAc,EAC3Ed,EAAagB,qBAAuBC,EAAqB5G,UAAUC,EAAM0G,oBAAoB,EAC7FhB,EAAakB,SAAW/E,EAAS9B,UAAUC,EAAM4G,QAAQ,EACzDlB,EAAamB,OAAS/C,EAAO/D,UAAUC,EAAM6G,MAAM,EAEnDnB,EAAaoB,SACX9G,EAAM8G,UAAY9G,EAAM8G,SAASA,SAAW9G,EAAM8G,SAASA,SAAS7E,IAAI8E,EAAQhH,SAAS,EAAI,CAAA,EAC/F2F,EAAasB,aAAehH,EAAMgH,aAAehH,EAAMgH,aAAa/E,IAAIgF,EAAYlH,SAAS,EAAI,CAAA,EACjG2F,EAAawB,iBACXlH,EAAMkH,kBAAoBlH,EAAMkH,iBAAiBA,iBAC7ClH,EAAMkH,iBAAiBA,iBAAiBjF,IAAIkF,EAAiBpH,SAAS,EACtE,CAAA,EACN2F,EAAa0B,gBACXpH,EAAMoH,iBAAmBpH,EAAMoH,gBAAgBC,UAC3CrH,EAAMoH,gBAAgBC,UAAUpF,IAAIqF,EAASvH,SAAS,EACtD,CAAA,EACFC,EAAMuH,SACR7B,EAAa6B,OAASnC,EAAmBrF,UAAUC,EAAMuH,MAAM,GAE7DvH,EAAMwH,wBACR9B,EAAa8B,sBAAwBC,EAAsB1H,UAAUC,EAAMwH,qBAAqB,GAE9FxH,EAAM0H,gBACRhC,EAAagC,cAAgBC,EAAc5H,UAAUC,EAAM0H,aAAa,GAGnEhC,CACT,CAEApF,YAAYC,EAA8B,CACxC,OAAOC,OAAOC,OAAO,KAAMF,CAAM,CACnC,CAEAqH,WAAWC,EAAwB,CACjC,MAAO,CAAC,CAAC,KAAKC,WAAWD,CAAgB,CAC3C,CAEAC,WAAWD,EAAwB,CACjC,OAAO,KAAKf,SAASiB,KAAMC,GAAYA,EAAQH,mBAAqBA,CAAgB,CACtF,CAEAI,yBAAuB,CACrB,OAAK,KAAKb,gBAGH,KAAKA,gBAAgB,KAAKA,gBAAgBpF,OAAS,CAAC,EAFlD,IAGX,CAEAkG,mBAAiB,CACf,OAAI,OAAO,KAAKR,cAAkB,KAAe,OAAO,KAAKA,cAAcS,eAAmB,IACrFC,EAAeC,sBAGS,KAAKX,cAAcS,cACtD,CAEAzH,WAAS,CACP,OACE,OAAO,KAAK4H,eAAmB,KAC/B,OAAO,KAAKpE,QAAY,KACxB,OAAO,KAAK4B,QAAY,KACxB,OAAO,KAAKF,QAAY,KACxB,OAAO,KAAKC,QAAY,KACxB,OAAO,KAAKF,sBAA0B,KACtC,OAAO,KAAKmB,SAAa,KACzB,OAAO,KAAKf,oBAAwB,KACpC,OAAO,KAAKE,eAAmB,KAC/B,OAAO,KAAKe,aAAiB,KAC7B,OAAO,KAAKb,oBAAwB,KACpC,OAAO,KAAKG,WAAe,KAC3B,OAAO,KAAKY,iBAAqB,KACjC,OAAO,KAAKV,eAAmB,KAC/B,OAAO,KAAKY,gBAAoB,KAChC,OAAO,KAAKV,qBAAyB,KACrC,OAAO,KAAKE,SAAa,KACzB,OAAO,KAAKC,OAAW,KACvB,OAAO,KAAKU,OAAW,KACvB,OAAO,KAAKC,sBAA0B,KACtC,OAAO,KAAKE,cAAkB,IAEvB,KAGF,CACLY,eAAgB,OAAO,KAAKA,eAAmB,IAAc,KAAKA,eAAiB,KACnFxC,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAQlE,YAAW,EAAK,KAC5EgE,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAQhE,YAAW,EAAK,KAC5EiE,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAQjE,YAAW,EAAK,KAC5E+D,sBAAuB,OAAO,KAAKA,sBAA0B,IAAc,KAAKA,sBAAwB,KACxGzB,QAAS,OAAO,KAAKA,QAAY,IAAc,KAAKA,QAAQxD,UAAS,EAAK,KAC1EoG,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAAS7E,IAAK+F,GAAYA,EAAQtH,UAAS,CAAE,EAAI,KACvGqF,oBACE,OAAO,KAAKA,oBAAwB,IAAc,KAAKA,oBAAoBrF,UAAS,EAAK,KAC3FuF,eAAgB,OAAO,KAAKA,eAAmB,IAAc,KAAKA,eAAevF,UAAS,EAAK,KAC/FsG,aACE,OAAO,KAAKA,aAAiB,IACzB,KAAKA,aAAa/E,IAAKsG,GAAgBA,EAAY7H,UAAS,CAAE,EAC9D,KACN2F,gCACE,OAAO,KAAKF,oBAAwB,IAAc,KAAKA,oBAAoBzF,UAAS,EAAK,KAC3F4F,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAW5F,UAAS,EAAK,KACnFwG,iBACE,OAAO,KAAKA,iBAAqB,IAC7B,KAAKA,iBAAiBjF,IAAKiF,GAAqBA,EAAiBxG,UAAS,CAAE,EAC5E,KACN8F,eAAgB,OAAO,KAAKA,eAAmB,IAAc,KAAKA,eAAe9F,UAAS,EAAK,KAC/F0G,gBACE,OAAO,KAAKA,gBAAoB,IAC5B,KAAKA,gBAAgBnF,IAAKuG,GAAmBA,EAAe9H,UAAS,CAAE,EACvE,KACNgG,qBACE,OAAO,KAAKA,qBAAyB,IAAc,KAAKA,qBAAqBhG,UAAS,EAAK,KAC7FkG,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAASlG,UAAS,EAAK,KAC7EmG,OAAQ,OAAO,KAAKA,OAAW,IAAc,KAAKA,OAAOnG,UAAS,EAAK,KACvE6G,OAAQ,OAAO,KAAKA,OAAW,KAAe,KAAKA,SAAW,KAAO,KAAKA,OAAO7G,UAAS,EAAK,KAC/F8G,sBACE,OAAO,KAAKA,sBAA0B,KAAe,KAAKA,wBAA0B,KAChF,KAAKA,sBAAsB9G,UAAS,EACpC,KACNgH,cACE,OAAO,KAAKA,cAAkB,KAAe,KAAKA,gBAAkB,KAChE,KAAKA,cAAchH,UAAS,EAC5B,KAEV,GCpyCF,IAAa+H,IAAsB,IAAA,CAA7B,IAAOA,EAAP,MAAOA,CAAsB,CAOjCC,YACUC,EACAC,EACAC,EAA8B,CAF9B,KAAAF,KAAAA,EACA,KAAAC,mBAAAA,EACA,KAAAC,eAAAA,EARF,KAAAC,UAAY,GAAG,KAAKC,gBAAgB,2BACpC,KAAAC,YAAc,GAAG,KAAKD,gBAAgB,8BACtC,KAAAE,cAAgB,GAAG,KAAKF,gBAAgB,gCACxC,KAAAG,UAAY,GAOlB,KAAKL,eAAeM,aAAY,EAAGC,UAAWF,GAAa,CACzD,KAAKA,UAAYA,CACnB,CAAC,CACH,CAEQG,YAAU,CAChB,MAAO,CACLC,QAAS,IAAIC,GAAY,CACvB,eAAgB,mBACjB,EACDC,gBAAiB,GAErB,CAEAC,IAAIC,EAAwBC,EAAkC,CAC5D,OAAO,KAAKC,SAAS,CAACF,CAAc,EAAGC,CAAgB,EAAEE,KACvDC,EAAKC,GAAkBA,EAAc,CAAC,CAAC,EACvCC,EAAK,CAAE,CAEX,CAEAJ,SACEK,EACAN,EACAO,EAAuB,CAEvB,OAAO,KAAKvB,KACTwB,KACC,KAAKnB,YACL,CACEiB,gBAAiBA,EACjBN,iBAAkBA,EAClBO,WAAYA,GAEd,KAAKb,WAAU,CAAE,EAElBQ,KACCC,EAAKM,GACHA,EAAKL,cAAcD,IAAKO,GACtBC,EAAaC,UAAUF,EAAsBG,YAAY,CAAC,CAC3D,EAEHR,EAAK,CAAE,CAEb,CAEAS,OACEd,EACAe,EACAC,EACAC,EACAC,EACAC,EACAC,EAA6B,CAE7B,OAAO,KAAKpC,KACTwB,KACC,KAAKrB,UACL,CACE4B,QAASA,EAAQM,UAAS,EAC1BJ,SAAUA,EACVjB,iBAAkBA,EAClBgB,OAAQA,EACRE,WAAYA,EACZC,YAAaA,EACbC,cAAAA,GAEF,KAAK1B,WAAU,CAAE,EAElBQ,KAAKC,EAAI,KAAKmB,mBAAmB,EAAGjB,EAAK,CAAE,CAChD,CAEAkB,WAAWxB,EAAwByB,EAAkC,CACnE,OAAO,KAAKxC,KAAKwB,KACf,KAAKlB,cACL,CACES,eAAgBA,EAChByB,iBAAkBA,EAAiBH,UAAS,GAE9C,KAAK3B,WAAU,CAAE,CAErB,CAEQ4B,oBAAoBb,EAAS,CACnC,OAAKA,EAAKL,cAQH,CACLA,cAAeK,EAAKL,cAAcD,IAAIQ,EAAaC,SAAS,EAC5Da,WAAYhB,EAAKgB,YAAc,GAC/BC,QAASjB,EAAKiB,SAAW,GACzBC,aAAcC,OAAOnB,EAAKkB,YAAY,GAAK,GAXpC,CACLvB,cAAe,CAAA,EACfqB,WAAY,GACZC,QAAS,GACTC,aAAc,EASpB,CAEA,IAAYvC,kBAAgB,CAC1B,GAAI,KAAKyC,KACP,OAAO,KAAKA,KAGd,OAAQ,KAAK5C,mBAAmB6C,eAAc,EAAE,CAC9C,KAAKC,EAAYC,MACf,KAAKH,KAAO,yBACZ,MACF,KAAKE,EAAYE,KACf,KAAKJ,KAAO,+CACZ,MACF,KAAKE,EAAYG,KACf,KAAKL,KAAO,+CACZ,MACF,KAAKE,EAAYI,KACf,KAAKN,KAAO,+CACZ,KACJ,CACA,OAAO,KAAKA,IACd,yCApIW/C,GAAsBsD,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,CAAA,CAAA,wBAAtBzD,EAAsB0D,QAAtB1D,EAAsB2D,UAAAC,WADT,MAAM,CAAA,EAC1B,IAAO5D,EAAP6D,SAAO7D,CAAsB,GAAA,ECV7B,IAAO8D,GAAP,KAAoB,CAKxBC,YAAYC,EAAmBC,EAAoCC,EAAiB,CAClF,KAAKF,UAAYA,EACjB,KAAKC,OAASA,EACd,KAAKC,UAAYA,CACnB,GAGWC,EAAP,KAAsB,CAkB1BJ,YACEK,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GAAqC,CAErC,KAAKf,UAAYA,EACjB,KAAKC,UAAYA,EACjB,KAAKC,cAAgBA,EACrB,KAAKC,KAAOA,EACZ,KAAKC,eAAiBA,EACtB,KAAKC,0BAA4BA,EACjC,KAAKC,qBAAuBA,EAC5B,KAAKC,kBAAoBA,EACzB,KAAKC,YAAcA,EACnB,KAAKC,YAAcA,EACnB,KAAKC,eAAiBA,EACtB,KAAKC,eAAiBA,EACtB,KAAKC,eAAiBA,EACtB,KAAKC,aAAeA,GACpB,KAAKC,gBAAkBA,GACvB,KAAKC,qBAAuBA,EAC9B,CAEAC,WAAS,CACP,IAAIC,EACJ,OACE,KAAKF,uBAAyBG,EAAeC,0BAC7C,KAAKJ,uBAAyBG,EAAeE,sBAC7C,KAAKL,uBAAyBG,EAAeG,yBAE7CJ,EAAkB,CAAC,KAAKF,oBAAoB,EAE5CE,EAAkB,KAGb,CACLjB,UAAW,KAAKA,UAChBC,UAAW,OAAO,KAAKA,UAAc,IAAc,KAAKA,UAAY,KACpEC,cAAe,OAAO,KAAKA,cAAkB,IAAc,KAAKA,cAAgB,KAChFC,KAAM,OAAO,KAAKA,KAAS,IAAc,KAAKA,KAAO,KACrDC,eAAgB,KAAKA,eAAeY,UAAS,EAC7CX,0BAA2B,KAAKA,0BAA0BW,UAAS,EACnET,kBAAmB,KAAKA,kBAAkBS,UAAS,EACnDV,qBAAsB,KAAKA,qBAAqBU,UAAS,EACzDR,YAAa,KAAKA,YAAYQ,UAAS,EACvCP,YAAa,OAAO,KAAKA,YAAgB,IAAc,KAAKA,YAAc,KAC1EC,eAAgB,KAAKA,eAAiB,KAAKA,eAAeM,UAAS,EAAK,KACxEL,eAAgB,KAAKA,eAAiB,KAAKA,eAAeK,UAAS,EAAK,KACxEJ,eAAgB,KAAKA,eAAiB,KAAKA,eAAeI,UAAS,EAAK,KACxEH,aAAc,KAAKA,aAAe,KAAKA,aAAaG,UAAS,EAAK,KAClEF,gBAAiB,KAAKA,gBAAkB,KAAKA,gBAAkB,KAC/DQ,eAAgBL,EAEpB,GAGWM,GAAP,KAAqB,CAA3B5B,aAAA,CACU,KAAA6B,QAA2B,CAAA,CAqCrC,CAnCSC,UAAU7B,EAAmBC,EAAqCC,EAAkB,CACzF,KAAK0B,QAAQE,KAAK,IAAIhC,GAAcE,EAAWC,EAAQC,CAAS,CAAC,CACnE,CAEO6B,aAAa/B,EAAiB,CACnC,IAAMgC,EAAQ,KAAKJ,QAAQK,UAAWC,GAA0BA,EAAOlC,YAAcA,CAAS,EAC1FgC,IAAU,IAGd,KAAKJ,QAAQO,OAAOH,EAAO,CAAC,CAC9B,CAEOI,aAAapC,EAAmBC,EAAkC,CACvE,KAAK2B,QAAQS,KAAMH,GAA0BA,EAAOlC,YAAcA,CAAS,EAAEC,OAASA,CACxF,CAEOqC,cAAY,CACjB,KAAKV,QAAU,CAAA,CACjB,CAEOW,YAAU,CACf,OAAO,KAAKX,OACd,CAEOR,WAAS,CACd,IAAMoB,EAAS,KAAKZ,QAAQa,IAAKP,IACxB,CACLQ,iBAAkBR,EAAOlC,UACzB2C,cAAeT,EAAOjC,OACtBC,UAAWgC,EAAOhC,WAErB,EAED,OAAOsC,EAAOI,OAAS,EAAIJ,EAAS,IACtC,GAGWK,GAAP,KAAgC,CAOpC9C,YACE+C,EACAC,EACAC,EACAC,EACAC,EAAqB,CAErB,KAAKJ,iBAAmBA,EACxB,KAAKC,UAAYA,EACjB,KAAKC,cAAgBA,EACrB,KAAKC,cAAgBA,EACrB,KAAKC,aAAeA,CACtB,CAEA9B,WAAS,CACP,OACE,OAAO,KAAK0B,iBAAqB,KACjC,OAAO,KAAKC,UAAc,KAC1B,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,cAAkB,KAC9B,OAAO,KAAKC,aAAiB,IAEtB,KAEF,CACLJ,iBAAkB,KAAKA,iBACvBC,UAAW,KAAKA,UAChBC,cAAe,KAAKA,cACpBC,cAAe,KAAKA,cACpBC,aAAc,KAAKA,aAEvB,GAGWC,GAAP,KAA2B,CAS/BpD,YACEqD,EACAL,EACAM,EACAC,EACAC,EACAP,EACAC,EAAsB,CAEtB,KAAKG,OAASA,EACd,KAAKL,UAAYA,EACjB,KAAKM,kBAAoBA,EACzB,KAAKC,SAAWA,EAChB,KAAKC,QAAUA,EACf,KAAKP,cAAgBA,EACrB,KAAKC,cAAgBA,CACvB,CAEA7B,WAAS,CACP,OACE,OAAO,KAAKgC,OAAW,KACvB,OAAO,KAAKL,UAAc,KAC1B,OAAO,KAAKM,kBAAsB,KAClC,OAAO,KAAKC,SAAa,KACzB,OAAO,KAAKC,QAAY,KACxB,OAAO,KAAKP,cAAkB,KAC9B,OAAO,KAAKC,cAAkB,IAEvB,KAEF,CACLG,OAAQ,KAAKA,OACbL,UAAW,KAAKA,UAChBM,kBAAmB,KAAKA,kBACxBC,SAAU,KAAKA,SACfC,QAAS,KAAKA,QACdP,cAAe,KAAKA,cACpBC,cAAe,KAAKA,cAExB,GAGWO,GAAP,KAAwB,CAI5BzD,YAAY0D,EAAmBC,EAAe,CAC5C,KAAKD,WAAaA,EAClB,KAAKC,SAAWA,CAClB,CAEAtC,WAAS,CACP,OAAI,OAAO,KAAKqC,WAAe,KAAe,OAAO,KAAKC,SAAa,IAC9D,KAEF,CACLD,WAAY,OAAO,KAAKA,WAAe,IAAc,KAAKA,WAAWE,YAAW,EAAK,KACrFD,SAAU,OAAO,KAAKA,SAAa,IAAc,KAAKA,SAASC,YAAW,EAAK,KAEnF,GAGWC,EAAP,KAAqB,CAGzB7D,YAAY8D,EAAqB,CAC/B,KAAKA,YAAcA,CACrB,CAEAzC,WAAS,CACP,OAAI,OAAO,KAAKyC,YAAgB,IACvB,KAEF,CACLA,YAAa,KAAKA,YAEtB,GAGWC,GAAP,KAAkB,CAItB/D,YAAYqD,EAAkBW,EAAmB,CAC/C,KAAKX,OAASA,EACd,KAAKW,UAAYA,CACnB,GAGWC,GAAP,KAAqB,CACzBjE,YACSkE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAA+B,CAR/B,KAAAR,SAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,QAAAA,EACA,KAAAC,UAAAA,EACA,KAAAC,UAAAA,EACA,KAAAC,QAAAA,EACA,KAAAC,QAAAA,CACN,CAEHrD,WAAS,CACP,OACE,KAAK6C,WAAaS,QAClB,KAAKR,aAAeQ,QACpB,KAAKP,aAAeO,QACpB,KAAKN,WAAaM,QAClB,KAAKL,UAAYK,QACjB,KAAKJ,YAAcI,QACnB,KAAKH,YAAcG,QACnB,KAAKF,UAAYE,QACjB,KAAKD,UAAYC,OAEV,KAEF,CACLT,SAAU,KAAKA,SACfC,WAAY,KAAKA,WACjBC,WAAY,KAAKA,WACjBC,SAAU,KAAKA,SACfC,QAAS,KAAKA,QACdC,UAAW,KAAKA,UAChBC,UAAW,KAAKA,UAChBC,QAAS,KAAKA,QACdC,QAAS,KAAKA,QAElB,GAGWE,GAAP,KAAqB,CACzB5E,YACS6E,EACAC,EAAc,CADd,KAAAD,QAAAA,EACA,KAAAC,MAAAA,CACN,CAEHzD,WAAS,CACP,OAAI,KAAKwD,UAAYF,QAAa,KAAKG,QAAUH,OACxC,KAEF,CACLE,QAAS,KAAKA,QACdC,MAAO,KAAKA,MAEhB,GAGWC,GAAP,KAAqB,CAKzB/E,YAAYqD,EAAkBG,EAAmBwB,EAA4B,CAC3E,KAAK3B,OAASA,EACd,KAAKG,QAAUA,EACf,KAAKwB,mBAAqBA,CAC5B,CAEA3D,WAAS,CACP,OACE,OAAO,KAAKgC,OAAW,KACvB,OAAO,KAAKG,QAAY,KACxB,OAAO,KAAKwB,mBAAuB,IAE5B,KAEF,CACL3B,OAAQ,KAAKA,OACbG,QAAS,KAAKA,QACdwB,mBAAoB,KAAKA,mBAE7B,GAGWC,GAAP,KAAmB,CAGvBjF,YAAYkF,EAAkB,CAC5B,KAAKA,SAAWA,CAClB,CAEA7D,WAAS,CACP,OAAI,OAAO,KAAK6D,SAAa,IACpB,KAEF,CACLA,SAAU,KAAKA,SAEnB,GAGWC,EAAP,KAAmB,CAgBvBnF,YACEO,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAqC,CAErC,KAAKb,cAAgBA,EACrB,KAAKC,KAAOA,EACZ,KAAKC,eAAiBA,GAAkB,IAAImB,GAC5C,KAAKlB,0BAA4BA,GAA6B,IAAIoC,GAClE,KAAKnC,qBAAuBA,GAAwB,IAAIyC,GACxD,KAAKxC,kBAAoBA,GAAqB,IAAI6C,GAClD,KAAK5C,YAAcA,GAAe,IAAIkD,GACtC,KAAKjD,YAAcA,EACnB,KAAKC,eAAiBA,GAAkB,IAAIkD,GAC5C,KAAKjD,eAAiBA,GAAkB,IAAI4D,GAC5C,KAAK3D,eAAiBA,GAAkB,IAAI8D,GAC5C,KAAK7D,aAAeA,GAAgB,IAAI+D,GACxC,KAAK9D,gBAAkBA,EACvB,KAAKC,qBAAuBA,EAC9B,GC1aF,IAAMgE,GAAmB,CACvBC,QAASC,EAAUD,QACnBE,SAAUD,EAAUC,SACpBC,YAAaF,EAAUE,aAGnB,SAAUC,GAAqBC,EAAiB,CACpD,OAAON,GAAiBM,CAAS,CACnC,CCIA,IAAaC,IAAmB,IAAA,CAA1B,IAAOA,EAAP,MAAOA,CAAmB,CAoB9BC,YAAoBC,EAAwDC,EAA8B,CAAtF,KAAAD,uBAAAA,EAAwD,KAAAC,eAAAA,EAnBpE,KAAAC,OAAiB,KACjB,KAAAC,iBAA6C,IAAIC,EAAyB,EAAK,EAC/E,KAAAC,SAAgC,KAAKF,iBAAiBG,aAAY,EAClE,KAAAC,sBAAyD,IAAIH,EAAgC,CAAA,CAAE,EAC/F,KAAAI,cAA4C,KAAKD,sBAAsBD,aAAY,EACnF,KAAAG,sBAAiD,IAAIL,EAAwB,CAAC,EAC9E,KAAAM,cAAoC,KAAKD,sBAAsBH,aAAY,EAC3E,KAAAK,iBAA6C,IAAIP,EAAyB,EAAK,EAC/E,KAAAQ,SAAgC,KAAKD,iBAAiBL,aAAY,EAElE,KAAAO,cAAgC,CAAA,EAEhC,KAAAC,eAAiD,IAAIV,EAA+B,IAAI,EAExF,KAAAW,YAA2B,CACjCC,MAAOC,EAAUC,QACjBC,UAAWC,EAAcC,YAIzB,KAAKR,cAAcS,KACjB,KAAKrB,eAAesB,aAAY,EAAGC,UAAWC,GAAa,CACzD,KAAKA,UAAYA,CACnB,CAAC,CAAC,CAEN,CAEA,IAAIC,SAAO,CACT,OAAO,KAAKrB,QACd,CAEA,IAAIsB,eAAa,CACf,OAAO,KAAKnB,aACd,CAEA,IAAIoB,cAAY,CACd,OAAO,KAAKlB,aACd,CAEA,IAAImB,SAAO,CACT,OAAO,KAAKjB,QACd,CAEAkB,OACEC,EACAC,EAAsB,KACtBC,EAAqB,KACrBC,EAAwB,KACxBC,EAAW,GACXC,EAA6B,CAE7B,OAAO,KAAKC,oBAAoBL,EAAWD,EAAkBE,EAAYC,EAAS,GAAIC,EAAUC,CAAa,CAC/G,CAEAE,IAAIC,EAAwBR,EAAkC,CAC5D,OAAO,KAAK/B,uBAAuBsC,IAAIC,EAAgBR,CAAgB,CACzE,CAEAS,SACEC,EACAV,EACAW,EACAC,EAAoC,GAAK,CAEzC,OAAIA,IAAsC,GACjC,KAAK3C,uBAAuBwC,SAASC,EAAiBV,EAAkBW,CAAU,EAElF,KAAK1C,uBACTwC,SAASC,EAAiBV,EAAkBW,CAAU,EACtDE,KAAKC,GAAYC,GAAU,KAAKC,YAAYD,EAAOL,EAAiBV,EAAkBW,CAAU,CAAC,CAAC,CAEzG,CAEQK,YACND,EACAL,EACAV,EACAW,EAAsB,CAEtB,GAAIM,GAAkBF,CAAK,EAAG,CAC5B,IAAMG,EAA+BC,GAA8BJ,EAAOL,CAAe,EAEzF,IAAKQ,EAAmBE,QAAU,KAAO,EACvC,MAAML,EAGR,OAAO,KAAKM,sBAAsBH,EAAoBlB,EAAkBW,CAAU,CACpF,CACA,MAAMI,CACR,CAEAM,sBACEX,EACAV,EACAW,EAAsB,CAEtB,OAAO,KAAK1C,uBAAuBwC,SAASC,EAAiBV,EAAkBW,CAAU,CAC3F,CAEAW,WAAWd,EAAwBe,EAAkC,CACnE,IAAMC,EAAO,KAAKvD,uBAAuBqD,WAAWd,EAAgBe,CAAgB,EAAEV,KACpFC,GAAYW,GAA0B,CACpC,IAAIC,EACJ,OAAID,EAAIE,SAAW,IACjBD,EAAU,qCACDD,EAAIE,SAAW,IACxBD,EAAWD,EAAIV,OAASU,EAAIV,MAAMW,SAAY,qBAE9CA,EAAU,mBAELE,GAAqB,CAAEF,QAASA,EAASG,UAAWJ,EAAIE,SAAW,GAAG,CAAE,CACjF,CAAC,EACDG,EAAK,CAAE,EAETN,OAAAA,EAAK/B,UAAU,KAAM,IAAK,CACxB,CACD,EACM+B,CACT,CAEAO,SACE/B,EACAC,EACAC,EACAC,EACAC,EAAW,GACXC,EAA6B,CAE7B,OAAI,KAAKjC,iBAAiB4D,SAAQ,EACzB,KAAK1B,oBACVL,EACAD,EACAE,EACAC,EACA,KAAKhC,OACLiC,EACAC,CAAa,EAGVuB,GAAqB,IAAIK,MAAM,iBAAiB,CAAC,CAC1D,CAEAC,2BAA2B1B,EAAsB,CAC/C,IAAM2B,EAAmC,KAAK3D,sBAC3CwD,SAAQ,EACRI,OAAQC,GAAiBA,EAAa7B,iBAAmBA,CAAc,EAEtE2B,EAAiBf,OAAS,KAAK5C,sBAAsBwD,SAAQ,EAAGZ,SAClE,KAAK5C,sBAAsB8D,KAAKH,CAAgB,EAChD,KAAKzD,sBAAsB4D,KAAK,KAAK5D,sBAAsBsD,SAAQ,EAAK,CAAC,EAE7E,CAEAO,eAAeC,EAAmBC,EAAY,GAAI,CAChD,KAAKzD,YAAc,CACjBC,MAAOyD,GAAqBF,CAAS,EACrCpD,UAAWqD,EAAYpD,EAAcsD,UAAYtD,EAAcC,WAEnE,CAEQgB,oBACNL,EACAD,EACAE,EACAC,EACAhC,EACAiC,EACAC,EAA6B,CAE7B,OAAKF,IACHA,EAAU,IAAIyC,GAGhB,KAAKzE,OAAS,KACTA,GACH,KAAKK,sBAAsB8D,KAAK,IAAI,EAEtC,KAAKlE,iBAAiBkE,KAAK,EAAK,EAChC,KAAK1D,iBAAiB0D,KAAK,EAAI,EACxB,KAAKO,UACV1C,EACAH,EACAC,EACA9B,EACAiC,EACAF,EACA,KAAKlB,YACLqB,CAAa,CAEjB,CAEQwC,UACN1C,EACAH,EACAC,EACA9B,EACAiC,EACAF,EACAlB,EACAqB,EAA6B,CAE7B,IAAIyC,GAGD3C,EAAQ4C,YAAYC,WAAa,CAAC7C,EAAQ4C,YAAYE,QACtD,CAAC9C,EAAQ4C,YAAYC,WAAa7C,EAAQ4C,YAAYE,UAGvDH,EAAc3C,EAAQ4C,YAAYC,UAAY7C,EAAQ4C,YAAYC,UAAY,CAAC7C,EAAQ4C,YAAYE,QAGrG,IAAMC,EAAiB,IAAIC,EAAeL,CAAW,EAC/CM,EAA8B,IAAIC,EACtC,KAAK3D,UACLO,EACAE,EAAQmD,cACRnD,EAAQoD,KACRpD,EAAQqD,eACRrD,EAAQsD,0BACRtD,EAAQuD,qBACRvD,EAAQwD,kBACRT,EACA/C,EAAQyD,YACRzD,EAAQ0D,eACR1D,EAAQ2D,eACR3D,EAAQ4D,eACR5D,EAAQ6D,aACR7D,EAAQO,gBACRP,EAAQ8D,oBAAoB,EAG9B,YAAKhG,uBACF8B,OAAOC,EAAkBoD,EAAYjF,EAAQiC,EAAUF,EAAYlB,EAAaqB,CAAa,EAC7FQ,KAAKqD,EAAI,KAAKC,eAAe,CAAC,CAAChG,CAAM,CAAC,EAAGiG,GAAK,CAAC,CAAC,EAChD3E,UAAU,KAAK4E,sBAAsBC,KAAK,IAAI,CAAC,EAE3C,KAAK1E,aACd,CAEQuE,eAAeI,EAAsB,CAC3C,OAAQC,GACFD,GAAiB,KAAKxF,eAAeiD,SAAQ,EACxC,CACLpC,cAAe,KAAKb,eAAeiD,SAAQ,EAAGpC,cAAc6E,OAAOD,EAAc5E,aAAa,EAC9F8E,WAAYF,EAAcE,WAC1B/E,QAAS6E,EAAc7E,QACvBE,aAAc2E,EAAc3E,cAGzB2E,CAEX,CAEQH,sBAAsBG,EAA4B,CACxD,KAAKzF,eAAeuD,KAAKkC,CAAa,EACtC,KAAKrG,OAASqG,EAAcE,WAC5B,KAAKtG,iBAAiBkE,KAAKkC,EAAc7E,OAAO,EAChD,KAAKjB,sBAAsB4D,KAAKkC,EAAc3E,YAAY,EAC1D,KAAKrB,sBAAsB8D,KAAKkC,EAAc5E,aAAa,EAC3D,KAAKhB,iBAAiB0D,KAAK,EAAK,CAClC,CAEAqC,aAAW,CACT,KAAK7F,cAAc8F,QAASC,GAAMA,EAAEC,YAAW,CAAE,EACjD,KAAKtG,sBAAsBuG,SAAQ,EACnC,KAAK3G,iBAAiB2G,SAAQ,EAC9B,KAAKrG,sBAAsBqG,SAAQ,EACnC,KAAKnG,iBAAiBmG,SAAQ,EAC9B,KAAKhG,eAAegG,SAAQ,CAC9B,yCA9QWhH,GAAmBiH,EAAAC,EAAA,EAAAD,EAAAE,EAAA,CAAA,CAAA,wBAAnBnH,EAAmBoH,QAAnBpH,EAAmBqH,UAAAC,WAFlB,MAAM,CAAA,EAEd,IAAOtH,EAAPuH,SAAOvH,CAAmB,GAAA,ECehC,SAASwH,EAAYC,EAAkBC,EAAgB,CACrD,QAASC,EAAI,EAAGC,EAAMF,EAAUG,OAAQF,EAAIC,EAAKD,IAAK,CACpD,IAAMG,EAAWJ,EAAUC,CAAC,EACtBI,EAAeC,OAAOC,oBAAoBH,EAASI,SAAS,EAClE,QAASC,EAAI,EAAGC,EAAOL,EAAaF,OAAQM,EAAIC,EAAMD,IAAK,CACzD,IAAME,EAAON,EAAaI,CAAC,EAC3BV,EAAYS,UAAUG,CAAI,EAAIP,EAASI,UAAUG,CAAI,CACvD,CACF,CACF,CAEM,IAAOC,GAAP,KAAuB,CAA7BC,aAAA,CACU,KAAAC,WAAwC,CAAA,CAuClD,CArCEC,mBAAmBC,EAAwC,CACzD,KAAKF,WAAWG,KAAKD,CAAe,CACtC,CAEAE,WAAS,CACP,OAAI,KAAKJ,WAAWX,SAAW,EACtB,KAGF,KAAKW,WACTK,IAAKC,GAAsC,CAC1C,IAAMC,EAAU,CAAA,EACVC,EAAOF,EAAUF,UAAS,EAEhC,GAAII,IAAS,KACX,OAAO,KAGT,IAAMC,EAAOH,EAAUI,QAAO,EAE9BH,OAAAA,EAAGD,EAAUK,YAAY,EAAI,KAAKC,4BAA4BJ,EAAMC,CAAI,EACxEF,EAAGM,UAAY,CACbC,MAAOL,GAEFF,CACT,CAAC,EACAQ,OAAQR,GAAO,CAAC,CAACA,CAAE,CACxB,CAEAK,4BAA4BJ,EAA2BM,EAAe,CACpE,QAAWE,KAAOR,EACZQ,KAAOR,GAAQM,EAAMG,QAAQD,CAAG,IAAM,IACxC,OAAOR,EAAKQ,CAAG,EAGnB,OAAOR,CACT,GAGoBU,EAAhB,KAAuC,CAK3CR,SAAO,CACL,IAAMD,EAAiB,CAAA,EACvB,QAAWO,KAAO,KACZA,KAAO,MAAQ,OAAO,KAAKA,CAAG,EAAM,KAAeA,IAAQ,gBAC7DP,EAAKN,KAAKa,CAAG,EAIjB,OAAOP,CACT,GA+GI,IAAOU,EAAP,cAA+CC,CAAuB,CAI1EC,YAAYC,EAAiD,CAC3D,aAAK,EAJP,KAAAC,aAAe,mBAKNC,OAAOC,OAAO,KAAMH,CAAM,CACnC,CAEAI,WAAS,CACP,OAAI,OAAO,KAAKC,iBAAqB,IAC5B,KAGF,CACLA,iBACE,OAAO,KAAKA,iBAAqB,IAAc,KAAKA,iBAAiBC,IAAKC,GAASA,EAAKH,UAAS,CAAE,EAAI,KAE7G,GAEFI,EAAYX,EAAiC,CAACC,CAAuB,CAAC,EAEhE,IAAOW,EAAP,cACIC,CAA0B,CADpCX,aAAA,qBAIE,KAAAE,aAAe,qBAGjB,GACAO,EAAYC,EAA2C,CAACX,CAAuB,CAAC,EAE1E,IAAOa,EAAP,cAA6CC,CAAqB,CAAxEb,aAAA,qBACE,KAAAE,aAAe,kBAGjB,GACAO,EAAYG,EAA+B,CAACb,CAAuB,CAAC,EAE9D,IAAOe,EAAP,cACIC,CAA+B,CADzCf,aAAA,qBAIE,KAAAE,aAAe,iCAGjB,GACAO,EAAYK,EAAgD,CAACf,CAAuB,CAAC,EAE/E,IAAOiB,GAAP,cAAyCC,CAAU,CAAzDjB,aAAA,qBACE,KAAAE,aAAe,YAGjB,GACAO,EAAYO,GAA2B,CAACjB,CAAuB,CAAC,EAE1D,IAAOmB,GAAP,cAA6CC,CAAc,CAAjEnB,aAAA,qBACE,KAAAE,aAAe,gBAGjB,GACAO,EAAYS,GAA+B,CAACnB,CAAuB,CAAC,EAE9D,IAAOqB,GAAP,cAAmDC,CAAoB,CAA7ErB,aAAA,qBACE,KAAAE,aAAe,sBAGjB,GACAO,EAAYW,GAAqC,CAACrB,CAAuB,CAAC,EAEpE,IAAOuB,GAAP,cAAuCC,CAAQ,CAArDvB,aAAA,qBACE,KAAAE,aAAe,UAGjB,GACAO,EAAYa,GAAyB,CAACvB,CAAuB,CAAC,EAExD,IAAOyB,GAAP,cAAqCC,CAAM,CAAjDzB,aAAA,qBACE,KAAAE,aAAe,QAGjB,GACAO,EAAYe,GAAuB,CAACzB,CAAuB,CAAC,EAEtD,IAAO2B,GAAP,cAA8CC,CAAqB,CAOvE3B,YAAYC,EAAgD,CAC1D,aAAK,EAPP,KAAAC,aAAe,wBAQNC,OAAOC,OAAO,KAAMH,CAAM,CACnC,CAEAI,WAAS,CACP,GAAI,OAAO,KAAKuB,aAAiB,KAAe,OAAO,KAAKC,uBAA2B,IACrF,MAAO,CAAA,EAGT,IAAMC,EAEF,CAAA,EAEJ,OAAI,OAAO,KAAKF,aAAiB,MAC/BE,EAAS,aAAkB,KAAKF,cAE9B,OAAO,KAAKC,uBAA2B,MACzCC,EAAS,uBAA4B,KAAKD,wBAErCC,CACT,GAEFrB,EAAYiB,GAAgC,CAAC3B,CAAuB,CAAC,EAE/D,IAAOgC,GAAP,cAAsCC,CAAa,CAQvDhC,YAAYC,EAA+B,CACzC,aAAK,EARP,KAAAC,aAAe,gBASNC,OAAOC,OAAO,KAAMH,CAAM,CACnC,CAEAI,WAAS,CACP,GACE,OAAO,KAAK4B,gBAAoB,KAChC,OAAO,KAAKC,wBAA4B,KACxC,OAAO,KAAKC,eAAmB,IAE/B,MAAO,CAAA,EAGT,IAAML,EAEF,CAAA,EAEJ,OAAI,OAAO,KAAKG,gBAAoB,MAClCH,EAAS,gBAAqB,KAAKG,iBAEjC,OAAO,KAAKC,wBAA4B,MAC1CJ,EAAS,wBAA6B,KAAKI,yBAEzC,OAAO,KAAKC,eAAmB,MACjCL,EAAS,eAAoB,KAAKK,gBAG7BL,CACT,GAEFrB,EAAYsB,GAAwB,CAAChC,CAAuB,CAAC,EC9WvD,IAAOqC,GAAP,cAAgCC,EAAmB,CAChDC,WAAS,CACd,YAAKC,SAAW,GAChB,KAAKC,oBAAsB,GAC3B,KAAKC,eAAiB,GACtB,KAAKC,aAAe,GACpB,KAAKC,gCAAkC,GACvC,KAAKC,WAAa,GAClB,KAAKC,iBAAmB,GACxB,KAAKC,eAAiB,GACtB,KAAKC,gBAAkB,GACvB,KAAKC,qBAAuB,GAC5B,KAAKC,SAAW,GAChB,KAAKC,OAAS,GACd,KAAKC,QAAU,GACf,KAAKC,OAAS,GACd,KAAKC,sBAAwB,GAC7B,KAAKC,cAAgB,GACd,IACT,GCrBF,IAAYC,GAAZ,SAAYA,EAAe,CACzBA,OAAAA,EAAAA,EAAA,6BAAA,CAAA,EAAA,+BACAA,EAAAA,EAAA,8BAAA,CAAA,EAAA,gCACAA,EAAAA,EAAA,6BAAA,CAAA,EAAA,+BACAA,EAAAA,EAAA,yBAAA,CAAA,EAAA,2BACAA,EAAAA,EAAA,2BAAA,CAAA,EAAA,6BACAA,EAAAA,EAAA,sBAAA,CAAA,EAAA,wBACAA,EAAAA,EAAA,uBAAA,CAAA,EAAA,yBACAA,EAAAA,EAAA,qBAAA,CAAA,EAAA,uBACAA,EAAAA,EAAA,yBAAA,CAAA,EAAA,2BACAA,EAAAA,EAAA,6BAAA,CAAA,EAAA,+BACAA,EAAAA,EAAA,mCAAA,EAAA,EAAA,qCACAA,EAAAA,EAAA,6BAAA,EAAA,EAAA,+BACAA,EAAAA,EAAA,kCAAA,EAAA,EAAA,oCAbUA,CAcZ,EAdYA,IAAe,CAAA,CAAA", "names": ["errorCanBeHandled", "error", "status", "details", "failures", "findAccessibleAccountGroupIds", "allAccountGroups", "failedAccountGroupIds", "forEach", "ag", "identifiers", "account_group_id", "values", "push", "validAccountGroupIds", "filter", "find", "a", "undefined", "enumStringToValue", "enumRef", "value", "GooglePlace", "fromProto", "proto", "m", "Object", "assign", "constructor", "kwargs", "toApiJson", "toReturn", "placeId", "placeName", "city", "ServiceArea", "businessType", "enumStringToValue", "ServiceAreaBusinessType", "places", "map", "GeoPoint", "model", "key", "latitude", "longitude", "Account", "expiry", "Date", "isTrial", "expired", "tags", "accountId", "marketplaceAppId", "toISOString", "editionId", "ListingDistributionDetails", "fromDate", "thruDate", "autoRenew", "orderId", "purchaseId", "isActive", "ListingSyncProDetails", "purchaseDate", "expiryDate", "discountFlag", "billingFrequency", "ListingSyncProBillingFrequency", "serviceProviders", "ListingSyncProServiceProviders", "country", "Association", "defaultLocation", "label", "productId", "productUserId", "vbcUserId", "AccountGroupExternalIdentifiers", "origin", "jobId", "customerIdentifier", "actionLists", "socialProfileId", "partnerId", "marketId", "taxIds", "vCategoryIds", "salesPersonId", "additionalSalesPersonIds", "SocialURLs", "googleplusUrl", "linkedinUrl", "foursquareUrl", "twitterUrl", "facebookUrl", "rssUrl", "youtubeUrl", "instagramUrl", "pinterestUrl", "HoursOfOperation", "dayOfWeek", "opens", "closes", "description", "ContactDetails", "firstName", "lastName", "email", "phoneNumber", "Snapshot", "created", "address", "snapshotId", "LegacyProductDetails", "subscribedToCampaigns", "keyPerson", "shareOfVoiceService", "faxNumber", "commonName", "cellNumber", "competitor", "adminNotes", "seoCategory", "place", "tagline", "HealthCareProfessionalInformation", "fromProto", "proto", "model", "key", "gender", "enumStringToValue", "HealthCareProfessionalInformationGender", "constructor", "kwargs", "Object", "assign", "toApiJson", "dateOfBirth", "email", "fellowship", "firstName", "initials", "insurancesAccepted", "isTakingPatients", "lastName", "medicalLicenseNumber", "nationalProviderIdentifier", "office", "professionalCredential", "residency", "school", "specialty", "standardizedTitle", "stateLicense", "toISOString", "RichData", "healthCareProfessionalInformation", "paymentMethods", "length", "map", "v", "RichDataPaymentMethods", "serviceAvailability", "ServiceAvailability", "tollFreeNumber", "description", "shortDescription", "servicesOffered", "brandsCarried", "landmark", "customFields", "inferredAttributes", "customField", "m", "delivery", "IsAvailable", "noContactDelivery", "inStorePickup", "curbsidePickup", "appointmentsOnly", "ecommerceOnly", "closedStatus", "ClosedStatus", "closedStatusDate", "Date", "servesDineIn", "reopeningDate", "toReturn", "Status", "suspended", "hasAlert", "AccountGroupLocation", "napData", "location", "GeoPoint", "serviceArea", "ServiceArea", "undefined", "companyName", "address", "address2", "city", "state", "zip", "country", "website", "workNumber", "callTrackingNumber", "timezone", "serviceAreaBusiness", "AccountGroupHealth", "updatedOn", "rating", "reason", "updatedBy", "AccountGroup", "accountGroup", "subscribedToCampaigns", "created", "updated", "deleted", "listingDistribution", "ListingDistributionDetails", "listingSyncPro", "ListingSyncProDetails", "externalIdentifiers", "AccountGroupExternalIdentifiers", "accountGroupExternalIdentifiers", "socialUrls", "SocialURLs", "contactDetails", "ContactDetails", "legacyProductDetails", "LegacyProductDetails", "richData", "status", "accounts", "Account", "associations", "Association", "hoursOfOperation", "HoursOfOperation", "snapshotReports", "snapshots", "Snapshot", "health", "additionalCompanyInfo", "AdditionalCompanyInfo", "marketingInfo", "MarketingInfo", "hasAccount", "marketplaceAppId", "getAccount", "find", "account", "getLatestSnapshotReport", "getLifeCycleStage", "lifecycleStage", "LifecycleStage", "LIFECYCLE_STAGE_UNSET", "accountGroupId", "association", "snapshotReport", "AccountGroupApiService", "constructor", "http", "environmentService", "sessionService", "lookupUrl", "accountGroupHost", "getMultiUrl", "bulkUpdateUrl", "sessionId", "getSessionId", "subscribe", "apiOptions", "headers", "HttpHeaders", "withCredentials", "get", "accountGroupId", "projectionFilter", "getMulti", "pipe", "map", "accountGroups", "share", "accountGroupIds", "readFilter", "post", "body", "accountGroupContainer", "AccountGroup", "fromProto", "accountGroup", "lookup", "filters", "cursor", "pageSize", "searchTerm", "sortOptions", "searchOptions", "toApiJson", "handlePagedResponse", "bulkUpdate", "updateOperations", "nextCursor", "hasMore", "totalResults", "Number", "host", "getEnvironment", "Environment", "LOCAL", "TEST", "DEMO", "PROD", "\u0275\u0275inject", "HttpClient", "EnvironmentService", "SessionService", "factory", "\u0275fac", "providedIn", "_AccountGroupApiService", "AccountFilter", "constructor", "productId", "status", "editionId", "ApiLookupFilter", "partnerId", "marketIds", "salesPersonId", "tags", "accountFilters", "listingDistributionFilter", "listingSyncProFilter", "createdDateFilter", "trialFilter", "taxonomyIds", "presenceFilter", "locationFilter", "snapshotFilter", "statusFilter", "accountGroupIds", "lifecycleStageFilter", "toApiJson", "lifecycleFilter", "LifecycleStage", "LIFECYCLE_STAGE_CUSTOMER", "LIFECYCLE_STAGE_LEAD", "LIFECYCLE_STAGE_PROSPECT", "lifecycleStage", "AccountFilters", "filters", "addFilter", "push", "removeFilter", "index", "findIndex", "filter", "splice", "changeStatus", "find", "clearFilters", "getFilters", "result", "map", "marketplaceAppId", "accountStatus", "length", "ListingDistributionFilter", "activationStatus", "autoRenew", "expiresInDays", "expiredInDays", "renewsInDays", "ListingSyncProFilter", "active", "autoRenewDisabled", "inactive", "expired", "CreatedDateFilter", "beginRange", "endRange", "toISOString", "ApiTrialFilter", "isSuspended", "TrialFilter", "overLimit", "PresenceFilter", "facebook", "foursquare", "googleplus", "linkedin", "twitter", "pinterest", "instagram", "youtube", "website", "undefined", "LocationFilter", "country", "state", "SnapshotFilter", "noSnapshotsCreated", "StatusFilter", "hasAlert", "LookupFilter", "sortFieldsByName", "Created", "SortField", "Modified", "CompanyName", "fieldNameToSortField", "fieldName", "AccountGroupService", "constructor", "accountGroupApiService", "partnerService", "cursor", "hasMoreSubject$$", "BehaviorSubject", "hasMore$", "asObservable", "accountGroupSubject$$", "accountGroup$", "totalResultsSubject$$", "totalResults$", "loadingSubject$$", "loading$", "subscriptions", "latestResponse", "sortOptions", "field", "SortField", "Created", "direction", "SortDirection", "Descending", "push", "getPartnerId", "subscribe", "partnerId", "hasMore", "accountGroups", "totalResults", "loading", "lookup", "projectionFilter", "marketIds", "searchTerm", "filters", "pageSize", "searchOptions", "lookupAccountGroups", "get", "accountGroupId", "getMulti", "accountGroupIds", "readFilter", "returnOnlyAccessibleAccountGroups", "pipe", "catchError", "error", "handleError", "errorCanBeHandled", "validAccountGroups", "findAccessibleAccountGroupIds", "length", "getValidAccountGroups", "bulkUpdate", "updateOperations", "call", "err", "message", "status", "observableThrowError", "retryable", "share", "loadMore", "getValue", "Error", "removeAccountGroupFromList", "newAccountGroups", "filter", "accountGroup", "next", "setSortOptions", "fieldName", "ascending", "fieldNameToSortField", "Ascending", "LookupFilter", "lookupApi", "isSuspended", "trialFilter", "overLimit", "active", "apiTrialFilter", "ApiTrialFilter", "apiFilters", "ApiLookupFilter", "salesPersonId", "tags", "accountFilters", "listingDistributionFilter", "listingSyncProFilter", "createdDateFilter", "taxonomyIds", "presenceFilter", "locationFilter", "snapshotFilter", "statusFilter", "lifecycleStageFilter", "map", "handleResponse", "take", "loadNextPagedResponse", "bind", "appendResults", "pagedResponse", "concat", "nextCursor", "ngOnDestroy", "forEach", "s", "unsubscribe", "complete", "\u0275\u0275inject", "AccountGroupApiService", "PartnerService", "factory", "\u0275fac", "providedIn", "_AccountGroupService", "applyMixins", "derivedCtor", "baseCtors", "i", "len", "length", "baseCtor", "propertyKeys", "Object", "getOwnPropertyNames", "prototype", "j", "len2", "name", "UpdateOperations", "constructor", "operations", "addUpdateOperation", "updateOperation", "push", "toApiJson", "map", "operation", "op", "json", "mask", "getMask", "OPERATION_ID", "cleanNonFieldMaskProperties", "fieldMask", "paths", "filter", "key", "indexOf", "AbstractUpdateOperation", "HoursOfOperationUpdateOperation", "AbstractUpdateOperation", "constructor", "kwargs", "OPERATION_ID", "Object", "assign", "toApiJson", "hoursOfOperation", "map", "span", "applyMixins", "ListingDistributionDetailsUpdateOperation", "ListingDistributionDetails", "ListingSyncProUpdateOperation", "ListingSyncProDetails", "AccountGroupExternalIdentifiersUpdateOperation", "AccountGroupExternalIdentifiers", "SocialURLsUpdateOperation", "SocialURLs", "ContactDetailsUpdateOperation", "ContactDetails", "LegacyProductDetailsUpdateOperation", "LegacyProductDetails", "RichDataUpdateOperation", "RichData", "StatusUpdateOperation", "Status", "AdditionalCompanyInfoOperation", "AdditionalCompanyInfo", "numEmployees", "estimatedAnnualRevenue", "toReturn", "MarketingInfoOperation", "MarketingInfo", "conversionPoint", "marketingClassification", "lifecycleStage", "ProjectionFilter", "sdkProjectionFilter", "enableAll", "accounts", "listingDistribution", "listingSyncPro", "associations", "accountGroupExternalIdentifiers", "socialUrls", "hoursOfOperation", "contactDetails", "snapshotReports", "legacyProductDetails", "richData", "status", "napData", "health", "additionalCompanyInfo", "marketingInfo", "SearchableField"] }