@wix/auto_sdk_crm_contacts-v-5 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/build/cjs/contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.ts +4256 -0
  2. package/build/cjs/index.d.ts +522 -0
  3. package/build/cjs/index.js +3749 -0
  4. package/build/cjs/index.js.map +1 -0
  5. package/build/cjs/index.typings.d.ts +38 -0
  6. package/build/cjs/index.typings.js +3445 -0
  7. package/build/cjs/index.typings.js.map +1 -0
  8. package/build/cjs/meta.d.ts +2929 -0
  9. package/build/cjs/meta.js +2558 -0
  10. package/build/cjs/meta.js.map +1 -0
  11. package/build/cjs/schemas.d.ts +5693 -0
  12. package/build/cjs/schemas.js +8216 -0
  13. package/build/cjs/schemas.js.map +1 -0
  14. package/build/es/contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.mts +4256 -0
  15. package/build/es/index.d.mts +522 -0
  16. package/build/es/index.mjs +3666 -0
  17. package/build/es/index.mjs.map +1 -0
  18. package/build/es/index.typings.d.mts +38 -0
  19. package/build/es/index.typings.mjs +3361 -0
  20. package/build/es/index.typings.mjs.map +1 -0
  21. package/build/es/meta.d.mts +2929 -0
  22. package/build/es/meta.mjs +2473 -0
  23. package/build/es/meta.mjs.map +1 -0
  24. package/build/es/package.json +3 -0
  25. package/build/es/schemas.d.mts +5693 -0
  26. package/build/es/schemas.mjs +8116 -0
  27. package/build/es/schemas.mjs.map +1 -0
  28. package/build/internal/cjs/contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.ts +4256 -0
  29. package/build/internal/cjs/index.d.ts +522 -0
  30. package/build/internal/cjs/index.js +3749 -0
  31. package/build/internal/cjs/index.js.map +1 -0
  32. package/build/internal/cjs/index.typings.d.ts +38 -0
  33. package/build/internal/cjs/index.typings.js +3445 -0
  34. package/build/internal/cjs/index.typings.js.map +1 -0
  35. package/build/internal/cjs/meta.d.ts +2929 -0
  36. package/build/internal/cjs/meta.js +2558 -0
  37. package/build/internal/cjs/meta.js.map +1 -0
  38. package/build/internal/cjs/schemas.d.ts +5693 -0
  39. package/build/internal/cjs/schemas.js +8216 -0
  40. package/build/internal/cjs/schemas.js.map +1 -0
  41. package/build/internal/es/contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.mts +4256 -0
  42. package/build/internal/es/index.d.mts +522 -0
  43. package/build/internal/es/index.mjs +3666 -0
  44. package/build/internal/es/index.mjs.map +1 -0
  45. package/build/internal/es/index.typings.d.mts +38 -0
  46. package/build/internal/es/index.typings.mjs +3361 -0
  47. package/build/internal/es/index.typings.mjs.map +1 -0
  48. package/build/internal/es/meta.d.mts +2929 -0
  49. package/build/internal/es/meta.mjs +2473 -0
  50. package/build/internal/es/meta.mjs.map +1 -0
  51. package/build/internal/es/schemas.d.mts +5693 -0
  52. package/build/internal/es/schemas.mjs +8116 -0
  53. package/build/internal/es/schemas.mjs.map +1 -0
  54. package/meta/package.json +3 -0
  55. package/package.json +61 -0
  56. package/schemas/package.json +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/contacts-v5-contact-contacts-v-5.schemas.ts"],"sourcesContent":["import * as z from 'zod';\n\nexport const BulkUpdateContactSubscriptionsRequest = z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'A filter for the contacts that the subscription statuses will be applied to.\\n\\nExample:\\n`{ \"filter\": { \"name.last\": \"Smith\" } }`'\n ),\n options: z\n .object({\n search: z\n .object({\n mode: z.enum(['OR', 'AND']).optional(),\n expression: z\n .string()\n .describe('Search term or expression')\n .max(100)\n .optional()\n .nullable(),\n fields: z.array(z.string()).max(20).optional(),\n fuzzy: z\n .boolean()\n .describe(\n 'Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm)'\n )\n .optional(),\n })\n .describe(\n 'Free text to match in searchable fields for the contacts that the subscription statuses will be applied to.'\n )\n .optional(),\n emailSubscriptionStatus: z\n .enum(['NOT_SET', 'SUBSCRIBED', 'UNSUBSCRIBED'])\n .optional(),\n phoneSubscriptionStatus: z\n .enum(['NOT_SET', 'SUBSCRIBED', 'UNSUBSCRIBED'])\n .optional(),\n })\n .optional(),\n});\nexport const BulkUpdateContactSubscriptionsResponse = z.object({\n jobId: z\n .string()\n .describe(\n 'The ID of the bulk update contact subscription job.\\n\\nPass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n});\nexport const CreateContactRequest = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z.enum(['PRIVATE', 'PUBLIC']).optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z.enum(['OWNER', 'CONTRIBUTOR', 'MEMBER']).optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Contact to be created.'),\n options: z\n .object({\n allowDuplicates: z\n .boolean()\n .describe(\n 'Allows creating a duplicate contact.\\nMore about duplicate contacts can be found [here](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts).'\n )\n .optional(),\n })\n .optional(),\n});\nexport const CreateContactResponse = z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NO_PHONE_DELIVERABILITY_STATUS', 'NOT_SET', 'VALID', 'INVALID'])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe('Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.')\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z.string().describe('Login email').email().optional().nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe('Tags that are exposed to anyone with access to the entity.')\n .optional(),\n })\n .describe('Tags assigned to the contact for organization and filtering.')\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n});\nexport const GetContactRequest = z.object({\n contactId: z\n .string()\n .describe('ID of the Contact to retrieve.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n});\nexport const GetContactResponse = z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NO_PHONE_DELIVERABILITY_STATUS', 'NOT_SET', 'VALID', 'INVALID'])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe('Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.')\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z.string().describe('Login email').email().optional().nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe('Tags that are exposed to anyone with access to the entity.')\n .optional(),\n })\n .describe('Tags assigned to the contact for organization and filtering.')\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n});\nexport const UpdateContactRequest = z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n ),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z.enum(['PRIVATE', 'PUBLIC']).optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z.enum(['OWNER', 'CONTRIBUTOR', 'MEMBER']).optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Contact to be updated, may be partial.'),\n options: z\n .object({\n allowDuplicates: z\n .boolean()\n .describe(\n 'Allows updating the contact even if it becomes a duplicate of another contact.\\nMore about duplicate contacts can be found [here](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts).'\n )\n .optional(),\n })\n .optional(),\n});\nexport const UpdateContactResponse = z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NO_PHONE_DELIVERABILITY_STATUS', 'NOT_SET', 'VALID', 'INVALID'])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe('Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.')\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z.string().describe('Login email').email().optional().nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe('Tags that are exposed to anyone with access to the entity.')\n .optional(),\n })\n .describe('Tags assigned to the contact for organization and filtering.')\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n});\nexport const UpsertContactRequest = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z.enum(['PRIVATE', 'PUBLIC']).optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z.enum(['OWNER', 'CONTRIBUTOR', 'MEMBER']).optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Contact to be upserted.'),\n options: z\n .object({\n upsertMode: z\n .enum(['OVERWRITE', 'APPEND', 'OVERWRITE_APPEND_ARRAYS'])\n .optional(),\n updateMember: z\n .boolean()\n .describe(\n 'Indicates whether to update the contact even if it is a site member.'\n )\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const UpsertContactResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Upserted contact.')\n .optional(),\n action: z\n .enum(['UPDATED', 'CREATED'])\n .describe('The action performed on the contact.')\n .optional(),\n imageUploadId: z\n .string()\n .describe('The upload ID of the image upload process.')\n .max(100)\n .optional()\n .nullable(),\n});\nexport const UpdateContactTagsRequest = z.object({\n contactId: z\n .string()\n .describe('The contact from which to add or remove tags.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n assignTags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe('The tags to add.')\n .optional(),\n unassignTags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe('The tags to remove.')\n .optional(),\n })\n .optional(),\n});\nexport const UpdateContactTagsResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Updated Contact.')\n .optional(),\n});\nexport const MergeContactsRequest = z.object({\n targetContactId: z\n .string()\n .describe('Target contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n targetContactRevision: z\n .object({\n value: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .optional(),\n })\n .describe(\n 'Target contact revision number, which increments by 1 each time the contact is updated to prevent conflicting changes.'\n ),\n options: z\n .object({\n targetContact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z.enum(['PRIVATE', 'PUBLIC']).optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z.enum(['OWNER', 'CONTRIBUTOR', 'MEMBER']).optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe(\n 'When the target contact is provided, the merged result will be overwritten.'\n )\n .optional(),\n sourceContactIds: z.array(z.string()).min(1).max(5).optional(),\n preview: z\n .boolean()\n .describe(\n 'Indicates whether to only return a preview of the merged contact or perform the actual merge.'\n )\n .optional()\n .nullable(),\n allowDuplicates: z\n .boolean()\n .describe(\n 'Allows updating the target contact even if it becomes a duplicate of another contact.\\nThis can happen only where the target contact is provided.\\nMore about duplicate contacts can be found [here](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts).'\n )\n .optional(),\n })\n .optional(),\n});\nexport const MergeContactsResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Updated target contact.')\n .optional(),\n});\nexport const DeleteContactRequest = z.object({\n contactId: z\n .string()\n .describe('Id of the Contact to delete.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n deleteMember: z\n .boolean()\n .describe(\n 'Indicates whether to delete the contact that is a site member. If set to `true`, the contact is deleted even\\nif it is a site member and the site member is also deleted. Default: `false`'\n )\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const DeleteContactResponse = z.object({});\nexport const FindMatchingContactsRequest = z.object({\n options: z\n .object({\n externalId: z\n .string()\n .describe('Contact External ID.')\n .max(100)\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Email address.')\n .email()\n .max(320)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Phone number.')\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const FindMatchingContactsResponse = z.object({\n contacts: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n )\n .optional(),\n});\nexport const QueryContactsRequest = z.object({\n query: z\n .intersection(\n z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'Filter object.\\n\\nLearn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).'\n )\n .optional()\n .nullable(),\n sort: z\n .array(\n z.object({\n fieldName: z\n .string()\n .describe('Name of the field to sort by.')\n .max(512)\n .optional(),\n order: z.enum(['ASC', 'DESC']).optional(),\n })\n )\n .max(5)\n .optional(),\n }),\n z.xor([\n z.object({ cursorPaging: z.never().optional() }),\n z.object({\n cursorPaging: z\n .object({\n limit: z\n .number()\n .int()\n .describe('Maximum number of items to return in the results.')\n .min(0)\n .max(100)\n .optional()\n .nullable(),\n cursor: z\n .string()\n .describe(\n \"Pointer to the next or previous page in the list of results.\\n\\nPass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\\nNot relevant for the first request.\"\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Cursor paging options.\\n\\nLearn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).'\n ),\n }),\n ])\n )\n .describe('WQL expression.'),\n});\nexport const QueryContactsResponse = z.object({\n contacts: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n )\n .optional(),\n pagingMetadata: z\n .object({\n count: z\n .number()\n .int()\n .describe('Number of items returned in current page.')\n .optional()\n .nullable(),\n cursors: z\n .object({\n next: z\n .string()\n .describe(\n 'Cursor string pointing to the next page in the list of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n prev: z\n .string()\n .describe(\n 'Cursor pointing to the previous page in the list of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Cursor strings that point to the next page, previous page, or both.'\n )\n .optional(),\n hasNext: z\n .boolean()\n .describe(\n 'Whether there are more pages to retrieve following the current page.\\n\\n+ `true`: Another page of results can be retrieved.\\n+ `false`: This is the last page.'\n )\n .optional()\n .nullable(),\n total: z\n .number()\n .int()\n .describe(\n 'Total number of items matching the filter.\\nAvailable only on the first page of *Search* results, not included in *Query* or *List* results.\\nIf the Search results span multiple pages, the value of `total` will exceed the number of items returned on the first page.'\n )\n .optional()\n .nullable(),\n })\n .describe('Paging metadata')\n .optional(),\n});\nexport const SearchContactsRequest = z.object({\n search: z\n .intersection(\n z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'Filter object.\\n\\nLearn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).'\n )\n .optional()\n .nullable(),\n sort: z\n .array(\n z.object({\n fieldName: z\n .string()\n .describe('Name of the field to sort by.')\n .max(512)\n .optional(),\n order: z.enum(['ASC', 'DESC']).optional(),\n })\n )\n .max(10)\n .optional(),\n aggregations: z\n .array(\n z.intersection(\n z.object({\n name: z\n .string()\n .describe(\n 'User-defined name of aggregation, should be unique, will appear in aggregation results'\n )\n .max(100)\n .optional()\n .nullable(),\n type: z\n .enum([\n 'VALUE',\n 'RANGE',\n 'SCALAR',\n 'DATE_HISTOGRAM',\n 'NESTED',\n ])\n .optional(),\n fieldPath: z\n .string()\n .describe(\n 'Field to aggregate by, use dot notation to specify json path'\n )\n .max(200)\n .optional(),\n }),\n z.xor([\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n }),\n z.object({\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n value: z\n .intersection(\n z.object({\n sortType: z\n .enum(['COUNT', 'VALUE'])\n .describe(\n 'Should sort by number of matches or value of the field'\n )\n .optional(),\n sortDirection: z\n .enum(['DESC', 'ASC'])\n .describe(\n 'Should sort in ascending or descending order'\n )\n .optional(),\n limit: z\n .number()\n .int()\n .describe(\n 'How many aggregations would you like to return? Can be between 1 and 250. 10 is the default.'\n )\n .optional()\n .nullable(),\n missingValues: z\n .enum(['EXCLUDE', 'INCLUDE'])\n .describe(\n 'Should missing values be included or excluded from the aggregation results. Default is EXCLUDE'\n )\n .optional(),\n }),\n z.xor([\n z.object({ includeOptions: z.never().optional() }),\n z.object({\n includeOptions: z\n .object({\n addToBucket: z\n .string()\n .describe(\n 'Can specify custom bucket name. Defaults are [string -> \"N/A\"], [int -> \"0\"], [bool -> \"false\"] ...'\n )\n .max(20)\n .optional(),\n })\n .describe('Options for including missing values'),\n }),\n ])\n )\n .describe('Value aggregation'),\n }),\n z.object({\n value: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n range: z\n .object({\n buckets: z\n .array(\n z.object({\n from: z\n .number()\n .describe(\n 'Inclusive lower bound of the range. Required if to is not given'\n )\n .optional()\n .nullable(),\n to: z\n .number()\n .describe(\n 'Exclusive upper bound of the range. Required if from is not given'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n })\n .describe('Range aggregation'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalar: z\n .object({\n type: z\n .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n .describe(\n 'Define the operator for the scalar aggregation'\n )\n .optional(),\n })\n .describe('Scalar aggregation'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n nested: z.never().optional(),\n dateHistogram: z\n .object({\n interval: z\n .enum([\n 'YEAR',\n 'MONTH',\n 'WEEK',\n 'DAY',\n 'HOUR',\n 'MINUTE',\n 'SECOND',\n ])\n .describe('Interval for date histogram aggregation')\n .optional(),\n })\n .describe('Date histogram aggregation'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z\n .object({\n nestedAggregations: z\n .array(\n z.intersection(\n z.object({\n name: z\n .string()\n .describe(\n 'User-defined name of aggregation, should be unique, will appear in aggregation results'\n )\n .max(100)\n .optional()\n .nullable(),\n type: z\n .enum([\n 'VALUE',\n 'RANGE',\n 'SCALAR',\n 'DATE_HISTOGRAM',\n ])\n .optional(),\n fieldPath: z\n .string()\n .describe(\n 'Field to aggregate by, use dont notation to specify json path'\n )\n .max(200)\n .optional(),\n }),\n z.xor([\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n }),\n z.object({\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n value: z\n .intersection(\n z.object({\n sortType: z\n .enum(['COUNT', 'VALUE'])\n .describe(\n 'Should sort by number of matches or value of the field'\n )\n .optional(),\n sortDirection: z\n .enum(['DESC', 'ASC'])\n .describe(\n 'Should sort in ascending or descending order'\n )\n .optional(),\n limit: z\n .number()\n .int()\n .describe(\n 'How many aggregations would you like to return? Can be between 1 and 250. 10 is the default.'\n )\n .optional()\n .nullable(),\n missingValues: z\n .enum(['EXCLUDE', 'INCLUDE'])\n .describe(\n 'Should missing values be included or excluded from the aggregation results. Default is EXCLUDE'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n includeOptions: z.never().optional(),\n }),\n z.object({\n includeOptions: z\n .object({\n addToBucket: z\n .string()\n .describe(\n 'Can specify custom bucket name. Defaults are [string -> \"N/A\"], [int -> \"0\"], [bool -> \"false\"] ...'\n )\n .max(20)\n .optional(),\n })\n .describe(\n 'Options for including missing values'\n ),\n }),\n ])\n )\n .describe('Value aggregation'),\n }),\n z.object({\n value: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n range: z\n .object({\n buckets: z\n .array(\n z.object({\n from: z\n .number()\n .describe(\n 'Inclusive lower bound of the range. Required if to is not given'\n )\n .optional()\n .nullable(),\n to: z\n .number()\n .describe(\n 'Exclusive upper bound of the range. Required if from is not given'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n })\n .describe('Range aggregation'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalar: z\n .object({\n type: z\n .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n .describe(\n 'Define the operator for the scalar aggregation'\n )\n .optional(),\n })\n .describe('Scalar aggregation'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z\n .object({\n interval: z\n .enum([\n 'YEAR',\n 'MONTH',\n 'WEEK',\n 'DAY',\n 'HOUR',\n 'MINUTE',\n 'SECOND',\n ])\n .describe(\n 'Interval for date histogram aggregation'\n )\n .optional(),\n })\n .describe('Date histogram aggregation'),\n }),\n ])\n )\n )\n .min(2)\n .max(3)\n .optional(),\n })\n .describe('Nested aggregation'),\n }),\n ])\n )\n )\n .max(10)\n .optional(),\n search: z\n .object({\n mode: z.enum(['OR', 'AND']).optional(),\n expression: z\n .string()\n .describe('Search term or expression')\n .max(100)\n .optional()\n .nullable(),\n fields: z.array(z.string()).max(20).optional(),\n fuzzy: z\n .boolean()\n .describe(\n 'Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm)'\n )\n .optional(),\n })\n .describe('Free text to match in searchable fields.')\n .optional(),\n timeZone: z\n .string()\n .describe(\n 'UTC offset or IANA time zone. Valid values are\\nISO 8601 UTC offsets, such as +02:00 or -06:00,\\nand IANA time zone IDs, such as Europe/Rome\\n\\nAffects all filters and aggregations returned values.\\nYou may override this behavior in a specific filter by providing\\ntimestamps including time zone. e.g. `\"2023-12-20T10:52:34.795Z\"`'\n )\n .max(50)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({ cursorPaging: z.never().optional() }),\n z.object({\n cursorPaging: z\n .object({\n limit: z\n .number()\n .int()\n .describe('Maximum number of items to return in the results.')\n .min(0)\n .max(100)\n .optional()\n .nullable(),\n cursor: z\n .string()\n .describe(\n \"Pointer to the next or previous page in the list of results.\\n\\nPass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\\nNot relevant for the first request.\"\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Cursor paging options.\\n\\nLearn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).'\n ),\n }),\n ])\n )\n .describe('WQL search expression'),\n options: z\n .object({\n nameFormat: z.enum(['BY_FIRST_NAME', 'BY_LAST_NAME']).optional(),\n })\n .optional(),\n});\nexport const SearchContactsResponse = z.object({\n contacts: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n )\n .optional(),\n pagingMetadata: z\n .object({\n count: z\n .number()\n .int()\n .describe('Number of items returned in current page.')\n .optional()\n .nullable(),\n cursors: z\n .object({\n next: z\n .string()\n .describe(\n 'Cursor string pointing to the next page in the list of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n prev: z\n .string()\n .describe(\n 'Cursor pointing to the previous page in the list of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Cursor strings that point to the next page, previous page, or both.'\n )\n .optional(),\n hasNext: z\n .boolean()\n .describe(\n 'Whether there are more pages to retrieve following the current page.\\n\\n+ `true`: Another page of results can be retrieved.\\n+ `false`: This is the last page.'\n )\n .optional()\n .nullable(),\n total: z\n .number()\n .int()\n .describe(\n 'Total number of items matching the filter.\\nAvailable only on the first page of *Search* results, not included in *Query* or *List* results.\\nIf the Search results span multiple pages, the value of `total` will exceed the number of items returned on the first page.'\n )\n .optional()\n .nullable(),\n })\n .describe('Paging metadata')\n .optional(),\n aggregationData: z\n .object({\n results: z\n .array(\n z.intersection(\n z.object({\n name: z\n .string()\n .describe(\n 'User-defined name of aggregation as derived from search request'\n )\n .max(100)\n .optional(),\n type: z\n .enum(['VALUE', 'RANGE', 'SCALAR', 'DATE_HISTOGRAM', 'NESTED'])\n .describe(\n 'Type of aggregation that must match provided kind as derived from search request'\n )\n .optional(),\n fieldPath: z\n .string()\n .describe(\n 'Field to aggregate by as derived from search request'\n )\n .max(200)\n .optional(),\n }),\n z.xor([\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n }),\n z.object({\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n values: z\n .object({\n results: z\n .array(\n z.object({\n value: z\n .string()\n .describe('Value of the field')\n .max(100)\n .optional(),\n count: z\n .number()\n .int()\n .describe('Count of entities with this value')\n .optional(),\n })\n )\n .max(250)\n .optional(),\n })\n .describe('Value aggregation results'),\n }),\n z.object({\n values: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n ranges: z\n .object({\n results: z\n .array(\n z.object({\n from: z\n .number()\n .describe('Inclusive lower bound of the range')\n .optional()\n .nullable(),\n to: z\n .number()\n .describe('Exclusive upper bound of the range')\n .optional()\n .nullable(),\n count: z\n .number()\n .int()\n .describe('Count of entities in this range')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n })\n .describe('Range aggregation results'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalar: z\n .object({\n type: z\n .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n .describe('Type of scalar aggregation')\n .optional(),\n value: z\n .number()\n .describe('Value of the scalar aggregation')\n .optional(),\n })\n .describe('Scalar aggregation results'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n nested: z.never().optional(),\n dateHistogram: z\n .object({\n results: z\n .array(\n z.object({\n value: z\n .string()\n .describe('Date in ISO 8601 format')\n .max(100)\n .optional(),\n count: z\n .number()\n .int()\n .describe('Count of documents in the bucket')\n .optional(),\n })\n )\n .max(200)\n .optional(),\n })\n .describe('Date histogram aggregation results'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z\n .object({\n results: z\n .array(\n z.object({\n results: z\n .record(\n z.string(),\n z.intersection(\n z.object({}),\n z.xor([\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n }),\n z.object({\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n value: z\n .object({\n value: z\n .string()\n .describe('Value of the field')\n .max(1000)\n .optional(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities with this value'\n )\n .optional()\n .nullable(),\n })\n .describe('Value aggregation result'),\n }),\n z.object({\n value: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n range: z\n .object({\n from: z\n .number()\n .describe(\n 'Inclusive lower bound of the range'\n )\n .optional()\n .nullable(),\n to: z\n .number()\n .describe(\n 'Exclusive upper bound of the range'\n )\n .optional()\n .nullable(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities in this range'\n )\n .optional()\n .nullable(),\n })\n .describe('Range aggregation result'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalar: z\n .object({\n value: z\n .number()\n .describe(\n 'Value of the scalar aggregation'\n )\n .optional(),\n })\n .describe('Scalar aggregation result'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z\n .object({\n value: z\n .string()\n .describe('Value of the field')\n .max(1000)\n .optional(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities with this value'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Date histogram aggregation result'\n ),\n }),\n ])\n )\n )\n .describe('List of nested aggregations')\n .optional(),\n })\n )\n .max(1000)\n .optional(),\n })\n .describe('Nested aggregation results'),\n }),\n ])\n )\n )\n .max(10000)\n .optional(),\n })\n .describe('Aggregation data')\n .optional(),\n});\nexport const CountContactsRequest = z.object({\n options: z\n .object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'Filter object.\\n\\nExample:\\n`{ \"filter\": { \"name.last\": \"Smith\" } }`'\n )\n .optional()\n .nullable(),\n search: z\n .string()\n .describe(\n 'Plain text search for an exact match.\\n\\nSupported search properties are:\\n\\n- `name.full`\\n- `email.email`\\n- `phone.phone`\\n- `member_info.email`\\n- `member_info.profile_info.nickname`\\n- `company.name`\\n- `company.job_title`\\n\\nMax: 100 characters'\n )\n .max(100)\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const CountContactsResponse = z.object({\n count: z.number().int().describe('number of contacts').optional(),\n});\nexport const GenerateContactImageUploadUrlRequest = z.object({\n contactId: z\n .string()\n .describe('ID of the contact whose picture is being updated.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n mimeType: z\n .string()\n .describe(\n 'Mime Type. Must be one of: `image/png`, `image/jpeg`.\\nDefaults to `image/png`.'\n )\n .max(100)\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const GenerateContactImageUploadUrlResponse = z.object({\n uploadUrl: z\n .string()\n .describe('URL to upload the image to.')\n .url()\n .optional(),\n imageUploadId: z\n .string()\n .describe('The upload id.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n});\nexport const AddContactAdditionalEmailRequest = z.object({\n contactId: z\n .string()\n .describe('ID of the Contact to add an email.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n .describe('The email to add.'),\n options: z.object({\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe('Contact revision number for optimistic concurrency control.'),\n }),\n});\nexport const AddContactAdditionalEmailResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Updated Contact.')\n .optional(),\n});\nexport const AddContactAdditionalPhoneRequest = z.object({\n contactId: z\n .string()\n .describe('ID of the Contact to add a phone.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('The phone to add.'),\n options: z.object({\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe('Contact revision number for optimistic concurrency control.'),\n }),\n});\nexport const AddContactAdditionalPhoneResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Updated Contact.')\n .optional(),\n});\nexport const AddContactAddressRequest = z.object({\n contactId: z\n .string()\n .describe('ID of the Contact to add an address.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n address: z\n .object({\n tag: z.enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING']).optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n .describe('The address to add.'),\n options: z.object({\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe('Contact revision number for optimistic concurrency control.'),\n }),\n});\nexport const AddContactAddressResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Updated Contact.')\n .optional(),\n});\nexport const DeleteContactAddressRequest = z.object({\n identifiers: z.object({\n contactId: z\n .string()\n .describe('ID of the Contact from which to delete an address.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n addressId: z\n .string()\n .describe('ID of the address to delete.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n }),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe('Contact revision number for optimistic concurrency control.'),\n});\nexport const DeleteContactAddressResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Updated Contact after address deletion.')\n .optional(),\n});\nexport const UpdateContactAddressRequest = z.object({\n identifiers: z.object({\n contactId: z\n .string()\n .describe('ID of the Contact to update address on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n addressId: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n }),\n address: z\n .object({\n tag: z.enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING']).optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n .describe('The updated address (must include address.id).'),\n options: z.object({\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe('Contact revision number for optimistic concurrency control.'),\n }),\n});\nexport const UpdateContactAddressResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Updated Contact after address update.')\n .optional(),\n});\nexport const BulkCreateContactsRequest = z.object({\n contacts: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z.enum(['PRIVATE', 'PUBLIC']).optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z.enum(['OWNER', 'CONTRIBUTOR', 'MEMBER']).optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n )\n .min(1)\n .max(100),\n options: z\n .object({\n returnEntity: z\n .boolean()\n .describe(\n 'set to `true` if you wish to receive back the created Contacts in the response'\n )\n .optional(),\n allowDuplicates: z\n .boolean()\n .describe(\n 'Allows creating the contact even if a duplicate already exists.'\n )\n .optional(),\n })\n .optional(),\n});\nexport const BulkCreateContactsResponse = z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Metadata regarding the specific single create operation')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({\n groupIds: z.array(z.string()).max(1000).optional(),\n })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe(\n 'Only exists if `returnEntity` was set to true in the request'\n )\n .optional(),\n })\n )\n .min(1)\n .max(100)\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Metadata regarding the bulk create operation')\n .optional(),\n});\nexport const BulkUpdateContactsRequest = z.object({\n contacts: z\n .array(\n z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n ),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z.enum(['PRIVATE', 'PUBLIC']).optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z.enum(['OWNER', 'CONTRIBUTOR', 'MEMBER']).optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({\n groupIds: z.array(z.string()).max(1000).optional(),\n })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Contact to be updated, may be partial')\n .optional(),\n })\n )\n .min(1)\n .max(100),\n options: z\n .object({\n returnEntity: z\n .boolean()\n .describe(\n 'set to `true` if you wish to receive back the updated Contacts in the response'\n )\n .optional(),\n allowDuplicates: z\n .boolean()\n .describe(\n 'Allows updating the contact even if it becomes a duplicate of another contact.'\n )\n .optional(),\n })\n .optional(),\n});\nexport const BulkUpdateContactsResponse = z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Metadata regarding the specific single update operation')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({\n groupIds: z.array(z.string()).max(1000).optional(),\n })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe(\n 'Only exists if `returnEntity` was set to true in the request'\n )\n .optional(),\n })\n )\n .min(1)\n .max(100)\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Metadata regarding the bulk update operation')\n .optional(),\n});\nexport const BulkUpdateContactTagsRequest = z.object({\n contactIds: z.array(z.string()).min(1).max(100),\n options: z\n .object({\n returnEntity: z\n .boolean()\n .describe(\n 'set to `true` if you wish to receive back the updated Contacts in the response'\n )\n .optional(),\n assignTags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe('The tags to add.')\n .optional(),\n unassignTags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe('The tags to remove.')\n .optional(),\n })\n .optional(),\n});\nexport const BulkUpdateContactTagsResponse = z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Metadata regarding the specific single update operation')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({\n groupIds: z.array(z.string()).max(1000).optional(),\n })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe(\n 'Only exists if `returnEntity` was set to true in the request'\n )\n .optional(),\n })\n )\n .min(1)\n .max(100)\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Summary of successes and failures.')\n .optional(),\n});\nexport const BulkUpdateContactTagsByFilterRequest = z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'A filter object. See documentation [here](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters)'\n ),\n options: z\n .object({\n search: z\n .object({\n mode: z.enum(['OR', 'AND']).optional(),\n expression: z\n .string()\n .describe('Search term or expression')\n .max(100)\n .optional()\n .nullable(),\n fields: z.array(z.string()).max(20).optional(),\n fuzzy: z\n .boolean()\n .describe(\n 'Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm)'\n )\n .optional(),\n })\n .describe('Free text to match in searchable fields.')\n .optional(),\n assignTags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe('Tag ids to add to the contact.')\n .optional(),\n unassignTags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe('Tag ids to remove from the contact.')\n .optional(),\n })\n .optional(),\n});\nexport const BulkUpdateContactTagsByFilterResponse = z.object({\n jobId: z\n .string()\n .describe(\n 'The ID of the update tags job.\\n\\nPass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n});\nexport const BulkUpsertContactsRequest = z.object({\n contacts: z\n .array(\n z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z.enum(['PRIVATE', 'PUBLIC']).optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z.enum(['OWNER', 'CONTRIBUTOR', 'MEMBER']).optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({\n groupIds: z.array(z.string()).max(1000).optional(),\n })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('Contact to be updated, may be partial')\n .optional(),\n })\n )\n .min(1)\n .max(100),\n options: z\n .object({\n returnEntity: z\n .boolean()\n .describe(\n 'set to `true` if you wish to receive back the updated Contacts in the response'\n )\n .optional(),\n upsertMode: z\n .enum(['OVERWRITE', 'APPEND', 'OVERWRITE_APPEND_ARRAYS'])\n .optional(),\n updateMember: z\n .boolean()\n .describe(\n 'Indicates whether to update a contact even if it is a site member.'\n )\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const BulkUpsertContactsResponse = z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Metadata regarding the specific single update operation')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({\n groupIds: z.array(z.string()).max(1000).optional(),\n })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe(\n 'Only exists if `returnEntity` was set to true in the request'\n )\n .optional(),\n action: z\n .enum(['UNKNOWN_ACTION', 'UPDATED', 'CREATED'])\n .describe('The action performed on the contact.')\n .optional(),\n })\n )\n .min(1)\n .max(100)\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Metadata regarding the bulk update operation')\n .optional(),\n});\nexport const BulkDeleteContactsRequest = z.object({\n contactIds: z.array(z.string()).min(1).max(100),\n options: z\n .object({\n deleteMembers: z\n .boolean()\n .describe(\n 'Indicates whether to delete the contact that is a site member. If set to `true`, the contact is deleted even\\nif it is a site member and the site member is also deleted. Default: `false`'\n )\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const BulkDeleteContactsResponse = z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Metadata regarding the specific single delete operation')\n .optional(),\n })\n )\n .min(1)\n .max(100)\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Metadata regarding the bulk delete operation')\n .optional(),\n});\nexport const BulkDeleteContactsByFilterRequest = z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'Filter object.\\n\\nExample:\\n`{ \"filter\": { \"name.last\": \"Smith\" } }`'\n ),\n options: z\n .object({\n search: z\n .object({\n mode: z.enum(['OR', 'AND']).optional(),\n expression: z\n .string()\n .describe('Search term or expression')\n .max(100)\n .optional()\n .nullable(),\n fields: z.array(z.string()).max(20).optional(),\n fuzzy: z\n .boolean()\n .describe(\n 'Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm)'\n )\n .optional(),\n })\n .describe('Free text to match in searchable fields')\n .optional(),\n deleteMembers: z\n .boolean()\n .describe(\n 'Indicates whether to delete the contact that is a site member. If set to `true`, the contact is deleted even\\nif it is a site member and the site member is also deleted. Default: `false`'\n )\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const BulkDeleteContactsByFilterResponse = z.object({\n jobId: z\n .string()\n .describe(\n 'The ID of the delete job.\\n\\nPass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n});\nexport const RemoveContactFromTrashBinRequest = z.object({\n contactId: z\n .string()\n .describe('Id of the Contact to remove from trashbin.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n});\nexport const RemoveContactFromTrashBinResponse = z.object({});\nexport const RestoreContactFromTrashBinRequest = z.object({\n contactId: z\n .string()\n .describe('Id of the Contact to restore from trashbin.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n});\nexport const RestoreContactFromTrashBinResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('The restored Contact.')\n .optional(),\n});\nexport const BulkRestoreContactsFromTrashBinRequest = z.object({\n options: z\n .object({\n contactIds: z.array(z.string()).min(1).max(100).optional(),\n returnEntity: z\n .boolean()\n .describe('return full entity in response')\n .optional(),\n })\n .optional(),\n});\nexport const BulkRestoreContactsFromTrashBinResponse = z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Metadata regarding the specific single restore operation')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's name information including first and last name.\"\n )\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Address recipient information for delivery purposes'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z\n .date()\n .describe('Signup date')\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({\n groupIds: z.array(z.string()).max(1000).optional(),\n })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe(\n 'Only exists if returnEntity was set to true in the request'\n )\n .optional(),\n })\n )\n .min(1)\n .max(100)\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Metadata regarding the bulk delete operation')\n .optional(),\n});\nexport const GetDeletedContactRequest = z.object({\n contactId: z\n .string()\n .describe('Id of the Contact to retrieve from trashbin.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n});\nexport const GetDeletedContactResponse = z.object({\n contact: z\n .object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum(['NOT_SET', 'VALID', 'BOUNCED', 'SPAM_COMPLAINT', 'INACTIVE'])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n .describe('The requested Contact.')\n .optional(),\n});\nexport const ListDeletedContactsRequest = z.object({\n options: z\n .object({\n externalId: z\n .string()\n .describe('External ID')\n .max(100)\n .optional()\n .nullable(),\n email: z\n .string()\n .describe('Email address.')\n .email()\n .max(320)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Phone number.')\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n contactIds: z.array(z.string()).max(100).optional(),\n deletedFromDate: z\n .date()\n .describe('From date and time that contact was deleted.')\n .optional()\n .nullable(),\n deletedToDate: z\n .date()\n .describe('Until date and time that contact was deleted.')\n .optional()\n .nullable(),\n paging: z\n .object({\n limit: z\n .number()\n .int()\n .describe('Maximum number of items to return in the results.')\n .min(0)\n .max(100)\n .optional()\n .nullable(),\n cursor: z\n .string()\n .describe(\n \"Pointer to the next or previous page in the list of results.\\n\\nPass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\\nNot relevant for the first request.\"\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe('Cursor paging.')\n .optional(),\n })\n .optional(),\n});\nexport const ListDeletedContactsResponse = z.object({\n contacts: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Contact ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the Contact is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the Contact.\\n\\nIgnored when creating a Contact.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the Contact was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the Contact was last updated.')\n .optional()\n .nullable(),\n externalId: z\n .string()\n .describe(\n 'Contact External ID. Used to identify contacts from external systems.\\nThis field can only be set once and cannot be updated after creation.'\n )\n .max(100)\n .optional()\n .nullable(),\n name: z\n .object({\n first: z\n .string()\n .describe(\"Contact's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n last: z\n .string()\n .describe(\"Contact's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\"Contact's name information including first and last name.\")\n .optional(),\n email: z\n .object({\n email: z\n .string()\n .describe(\n 'Main email address for the contact. Used for communication and contact matching.\\n\\nStored in normalized form: leading and trailing whitespace is trimmed and the address is lowercased.'\n )\n .email()\n .max(320)\n .optional(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing emails.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NOT_SET',\n 'VALID',\n 'BOUNCED',\n 'SPAM_COMPLAINT',\n 'INACTIVE',\n ])\n .describe(\n \"Indicates the last reported delivery status of emails sent to this address.\\nThis field is read-only and updated automatically by the email delivery system.\\n\\n- `NOT_SET`: No delivery status reported. Default value.\\n- `VALID`: Emails are being successfully delivered to this address.\\n- `BOUNCED`: The last email to this address bounced or was rejected by the recipient's email server.\\n- `SPAM_COMPLAINT`: Recipient registered a spam complaint with their email provider.\\n- `INACTIVE`: Multiple emails have been delivered without any engagement from the recipient.\"\n )\n .optional(),\n })\n .describe(\n 'The main email of the contact with subscription status and deliverability information.\\nThis email is used for contact matching and deduplication logic.'\n )\n .optional(),\n additionalEmails: z\n .array(\n z.object({\n email: z\n .string()\n .describe(\n 'Additional email address for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .email()\n .max(320)\n .optional(),\n })\n )\n .max(10)\n .optional(),\n phone: z\n .object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n \"Phone type classification. Helps categorize the phone number's purpose.\\nDefault value: OTHER\"\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Primary phone number for the contact. Used for communication and contact matching.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n subscriptionStatus: z\n .object({\n status: z\n .enum([\n 'NO_SUBSCRIPTION_STATUS',\n 'NOT_SET',\n 'PENDING',\n 'SUBSCRIBED',\n 'UNSUBSCRIBED',\n ])\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for marketing communications.\\n\\n- `NO_SUBSCRIPTION_STATUS`: No status exists. Used when a phone is not a valid E164 number.\\n- `NOT_SET`: No subscription status specified. Default value.\\n- `PENDING`: Subscription confirmation was requested, but recipient hasn't confirmed yet.\\n- `SUBSCRIBED`: Recipient has explicitly opted in to receive marketing communications.\\n- `UNSUBSCRIBED`: Recipient has opted out of marketing communications.\"\n )\n .optional(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time when the subscription status was last updated.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Indicates the recipient's opt-in or opt-out status for SMS/text message marketing.\\nThis field is read-only and managed by the subscription system.\\n\\nUpdates are eventually consistent, reflecting marketing consent changes after they're processed.\"\n )\n .optional(),\n deliverabilityStatus: z\n .enum([\n 'NO_PHONE_DELIVERABILITY_STATUS',\n 'NOT_SET',\n 'VALID',\n 'INVALID',\n ])\n .describe(\n 'Indicates the delivery status for SMS messages sent to this phone number.\\nThis field is read-only and updated automatically by the SMS delivery system.\\n- `NO_PHONE_DELIVERABILITY_STATUS`: No status exists. Used when the phone is not a valid E164 number.\\n- `NOT_SET`: No delivery status reported. Default when the phone is a valid E164 number.\\n- `VALID`: Last message was sent and delivered successfully.\\n- `INVALID`: The number is invalid (landline, number disconnected, etc.).'\n )\n .optional(),\n })\n .describe(\n 'The main phone of the contact with subscription status and deliverability information.\\nThis phone is used for contact matching and deduplication logic.\\nAt least one of name, email, or phone is required for contact creation.'\n )\n .optional(),\n additionalPhones: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'MAIN', 'HOME', 'MOBILE', 'WORK', 'FAX'])\n .describe(\n 'Phone type classification for the additional phone number.\\nDefault value: OTHER'\n )\n .optional(),\n phone: z\n .string()\n .describe(\n 'Additional phone number for the contact.\\nDoes not affect subscription status or contact matching logic.'\n )\n .min(1)\n .max(50)\n .optional(),\n e164: z\n .string()\n .describe(\n 'Additional phone number in [ITU E.164 international](https://www.itu.int/rec/T-REC-E.164/) format (e.g., +12345550123).\\nThis field is automatically generated from the phone field if it represents a valid E.164 number.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n )\n .max(10)\n .optional(),\n addresses: z\n .array(\n z.object({\n tag: z\n .enum(['OTHER', 'HOME', 'WORK', 'BILLING', 'SHIPPING'])\n .describe(\n 'Address type classification. Helps categorize the address purpose.\\nDefault value: OTHER'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n addressLine2: z.string().optional().nullable(),\n })\n .describe(\n 'Physical address information including street, city, country, and postal code.\\nContains structured address data following common address formatting standards.'\n )\n .optional(),\n defaultAddress: z\n .boolean()\n .describe(\n 'Indicates whether this address is the primary/default address for the contact.\\nOnly one address can be designated as default per contact.\\nIf no address is explicitly set as default, the first address automatically becomes the default.\\nAll other addresses will have this field set to false.'\n )\n .optional()\n .nullable(),\n _id: z\n .string()\n .describe('Address ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n recipient: z\n .object({\n firstName: z\n .string()\n .describe(\"Recipient's first name.\")\n .max(1000)\n .optional()\n .nullable(),\n lastName: z\n .string()\n .describe(\"Recipient's last name.\")\n .max(1000)\n .optional()\n .nullable(),\n company: z\n .string()\n .describe(\"Recipient's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe(\"Recipient's phone number.\")\n .min(1)\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Address recipient information for delivery purposes')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n company: z\n .object({\n name: z\n .string()\n .describe(\"Contact's company name.\")\n .max(1000)\n .optional()\n .nullable(),\n jobTitle: z\n .string()\n .describe(\"Contact's job title.\")\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n \"Contact's company information including company name and job title.\"\n )\n .optional(),\n locale: z\n .string()\n .describe(\n 'Locale in\\n[IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\\nTypically, this is a lowercase 2-letter language code,\\nfollowed by a hyphen, followed by an uppercase 2-letter country code.\\nFor example, `en-US` for U.S. English, and `de-DE` for Germany German.'\n )\n .optional()\n .nullable(),\n birthdate: z\n .string()\n .describe(\n 'Birth date in `YYYY-MM-DD` format. For example, `2020-03-15`.'\n )\n .optional()\n .nullable(),\n timeZone: z\n .string()\n .describe(\n \"IANA time zone identifier for the contact's location.\\nValid values are IANA time zone IDs, such as 'Europe/Rome' or 'America/New_York'.\"\n )\n .max(50)\n .optional()\n .nullable(),\n assigneeId: z\n .string()\n .describe(\n 'Site contributor user ID assigned to manage communication with this contact.\\nMust be a valid GUID referencing an existing site contributor.\\nOnly one assignee can be set per contact.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n locationIds: z.array(z.string()).max(50).optional(),\n image: z.string().describe(\"Contact's profile image.\").optional(),\n source: z\n .object({\n userId: z\n .string()\n .describe('ID of the user who created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe('ID of the application that created this contact.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n additionalInfo: z\n .string()\n .describe(\n \"Additional information about the contact's origin or creation context.\"\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the origin of the contact.\\nThis field is immutable and set automatically when the contact is created.'\n )\n .optional(),\n lastActivity: z\n .object({\n date: z\n .date()\n .describe(\n \"Date and time when the contact's most recent activity occurred.\"\n )\n .optional()\n .nullable(),\n templateId: z\n .string()\n .describe(\n 'ID of the activity template that defines the type of activity performed.\\nReferences a template in the contacts activity log system.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Details about the contact's most recent activity on the site.\\nIncludes activity date and template ID. This field is read-only and updated automatically.\"\n )\n .optional(),\n segmentIds: z.array(z.string()).max(60).optional(),\n memberInfo: z\n .object({\n memberId: z\n .string()\n .describe('Member ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n signupDate: z.date().describe('Signup date').optional().nullable(),\n email: z\n .string()\n .describe('Login email')\n .email()\n .optional()\n .nullable(),\n emailVerified: z\n .boolean()\n .describe('Indicate whether the email is verified')\n .optional()\n .nullable(),\n emailVerificationRequired: z\n .boolean()\n .describe(\n 'Indicates whether the member is required to verify their email'\n )\n .optional()\n .nullable(),\n status: z\n .enum(['PENDING', 'ACTIVE', 'BLOCKED', 'OFFLINE'])\n .describe(\n \"Member status.\\n- `PENDING`: Member created and is waiting for approval by site owner.\\n- `ACTIVE`: Member can log in to the site.\\n- `BLOCKED': Member is blocked and cannot log in to the site.\\n- `OFFLINE`: Member is a [managed writer](https://support.wix.com/en/article/wix-blog-adding-managed-writers-to-your-blog) for the site blog and cannot log in to the site.\"\n )\n .optional(),\n profileInfo: z\n .object({\n nickname: z\n .string()\n .describe('Nickname')\n .max(255)\n .optional()\n .nullable(),\n privacyStatus: z\n .enum(['PRIVATE', 'PUBLIC'])\n .describe('Privacy status')\n .optional(),\n reported: z\n .boolean()\n .describe('Indicate whether the member is reported')\n .optional()\n .nullable(),\n muted: z\n .boolean()\n .describe('Indicate whether the member is muted')\n .optional()\n .nullable(),\n photo: z.string().describe('Profile photo').optional(),\n })\n .describe('Profile info')\n .optional(),\n userInfo: z\n .object({\n userId: z\n .string()\n .describe('User ID')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n role: z\n .enum(['OWNER', 'CONTRIBUTOR', 'MEMBER'])\n .describe(\"The user's role on the website\")\n .optional(),\n })\n .describe('User info')\n .optional(),\n sessionInfo: z\n .object({\n lastWebLogin: z\n .date()\n .describe('Last time the member logged in to the website')\n .optional()\n .nullable(),\n lastMobileLogin: z\n .date()\n .describe(\n 'Last time the member logged in to one of the mobile apps'\n )\n .optional()\n .nullable(),\n mobileAppNames: z.array(z.string()).max(50).optional(),\n })\n .describe('Session info')\n .optional(),\n groupInfo: z\n .object({ groupIds: z.array(z.string()).max(1000).optional() })\n .describe('Group info')\n .optional(),\n })\n .describe(\n \"Contact's site membership information including member ID, status, and profile details.\\nThis field is read-only and populated automatically when the contact is also a site member.\\n\\nUpdates are eventually consistent: changes to the underlying member, identity, or profile are reflected after the corresponding events are processed.\"\n )\n .optional(),\n tags: z\n .object({\n privateTags: z\n .object({ tagIds: z.array(z.string()).max(1000).optional() })\n .describe(\n 'Tags that are exposed to anyone with access to the entity.'\n )\n .optional(),\n })\n .describe(\n 'Tags assigned to the contact for organization and filtering.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extended fields for storing custom contact data beyond the standard fields.\\nAllows adding custom properties specific to business needs.\\nTo define a custom extended field, use the [Schema Service API](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/about-the-data-extension-schema-api) with the contacts FQDN: `wix.contacts.*.contact`.'\n )\n .optional(),\n })\n )\n .optional(),\n pagingMetadata: z\n .object({\n count: z\n .number()\n .int()\n .describe('Number of items returned in current page.')\n .optional()\n .nullable(),\n cursors: z\n .object({\n next: z\n .string()\n .describe(\n 'Cursor string pointing to the next page in the list of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n prev: z\n .string()\n .describe(\n 'Cursor pointing to the previous page in the list of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Cursor strings that point to the next page, previous page, or both.'\n )\n .optional(),\n hasNext: z\n .boolean()\n .describe(\n 'Whether there are more pages to retrieve following the current page.\\n\\n+ `true`: Another page of results can be retrieved.\\n+ `false`: This is the last page.'\n )\n .optional()\n .nullable(),\n total: z\n .number()\n .int()\n .describe(\n 'Total number of items matching the filter.\\nAvailable only on the first page of *Search* results, not included in *Query* or *List* results.\\nIf the Search results span multiple pages, the value of `total` will exceed the number of items returned on the first page.'\n )\n .optional()\n .nullable(),\n })\n .describe('Paging metadata')\n .optional(),\n});\nexport const GetContactImageUploadStatusRequest = z.object({\n identifiers: z.object({\n contactId: z\n .string()\n .describe(\n 'Id of the contact for which to retrieve the image upload status.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n imageUploadId: z\n .string()\n .describe(\n 'The upload ID of the image upload process. Returned in case an image URL was provided when creating or\\nupdating a contact. It is also returned from the GenerateContactImageUploadUrl endpoint.'\n )\n .max(100),\n }),\n});\nexport const GetContactImageUploadStatusResponse = z.object({\n status: z\n .enum(['IN_PROGRESS', 'SUCCESS', 'FAILURE'])\n .describe('The status of the image upload process.')\n .optional(),\n});\nexport const BulkUpdatePhoneCountryCodeByFilterRequest = z.object({\n options: z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'A filter for the contacts that the country code will be applied to.\\n\\nExample:\\n`{ \"filter\": { \"name.last\": \"Smith\" } }`'\n )\n .optional()\n .nullable(),\n search: z\n .object({\n mode: z.enum(['OR', 'AND']).optional(),\n expression: z\n .string()\n .describe('Search term or expression')\n .max(100)\n .optional()\n .nullable(),\n fields: z.array(z.string()).max(20).optional(),\n fuzzy: z\n .boolean()\n .describe(\n 'Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm)'\n )\n .optional(),\n })\n .describe(\n 'Free text to match in searchable fields for the contacts that the country code will be applied to.'\n )\n .optional(),\n countryCode: z\n .string()\n .describe(\n '[ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code to apply.\\nThe country code will be added to the contacts main phone number, when adding it the phone, makes it a valid phone number.'\n ),\n }),\n});\nexport const BulkUpdatePhoneCountryCodeByFilterResponse = z.object({\n jobId: z\n .string()\n .describe(\n 'The ID of the bulk update contact job.\\n\\nPass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n});\n"],"mappings":";AAAA,YAAY,OAAO;AAEZ,IAAM,wCAA0C,SAAO;AAAA,EAC5D,QACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B;AAAA,IACC;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,QACG,SAAO;AAAA,MACN,MAAQ,OAAK,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS;AAAA,MACrC,YACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAC7C,OACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,yBACG,OAAK,CAAC,WAAW,cAAc,cAAc,CAAC,EAC9C,SAAS;AAAA,IACZ,yBACG,OAAK,CAAC,WAAW,cAAc,cAAc,CAAC,EAC9C,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,yCAA2C,SAAO;AAAA,EAC7D,OACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS;AACd,CAAC;AACM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eAAiB,OAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,QACtD,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MAAQ,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EAAE,SAAS;AAAA,MAC5D,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,wBAAwB;AAAA,EACpC,SACG,SAAO;AAAA,IACN,iBACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wBAA0B,SAAO;AAAA,EAC5C,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,IACC;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,EACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,EACZ,YACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,EACZ,MACG,SAAO;AAAA,IACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,EACZ,OACG,SAAO;AAAA,IACN,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,IACZ,oBACG,SAAO;AAAA,MACN,QACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,kBACG;AAAA,IACG,SAAO;AAAA,MACP,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,OACG,SAAO;AAAA,IACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,MACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,oBACG,SAAO;AAAA,MACN,QACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,sBACG,OAAK,CAAC,kCAAkC,WAAW,SAAS,SAAS,CAAC,EACtE;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,kBACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,WACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC/C,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO;AAAA,QACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,SACG,SAAO;AAAA,IACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,QACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,WACG,SAAO,EACP,SAAS,+DAA+D,EACxE,SAAS,EACT,SAAS;AAAA,EACZ,UACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,EACZ,YACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,EAChE,QACG,SAAO;AAAA,IACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,gBACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,cACG,SAAO;AAAA,IACN,MACG,OAAK,EACL;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EACjD,YACG,SAAO;AAAA,IACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,IACjE,OAAS,SAAO,EAAE,SAAS,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;AAAA,IACtE,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,2BACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,aACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,MACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,MACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,MACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,IACZ,UACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,IACZ,aACG,SAAO;AAAA,MACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,MACZ,iBACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,IACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,MACG,SAAO;AAAA,IACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D,SAAS,4DAA4D,EACrE,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8DAA8D,EACvE,SAAS;AAAA,EACZ,gBACG,SAAO;AAAA,IACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AACd,CAAC;AACM,IAAM,oBAAsB,SAAO;AAAA,EACxC,WACG,SAAO,EACP,SAAS,gCAAgC,EACzC;AAAA,IACC;AAAA,IACA;AAAA,EACF;AACJ,CAAC;AACM,IAAM,qBAAuB,SAAO;AAAA,EACzC,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,IACC;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,EACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,EACZ,YACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,EACZ,MACG,SAAO;AAAA,IACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,EACZ,OACG,SAAO;AAAA,IACN,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,IACZ,oBACG,SAAO;AAAA,MACN,QACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,kBACG;AAAA,IACG,SAAO;AAAA,MACP,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,OACG,SAAO;AAAA,IACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,MACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,oBACG,SAAO;AAAA,MACN,QACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,sBACG,OAAK,CAAC,kCAAkC,WAAW,SAAS,SAAS,CAAC,EACtE;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,kBACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,WACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC/C,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO;AAAA,QACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,SACG,SAAO;AAAA,IACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,QACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,WACG,SAAO,EACP,SAAS,+DAA+D,EACxE,SAAS,EACT,SAAS;AAAA,EACZ,UACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,EACZ,YACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,EAChE,QACG,SAAO;AAAA,IACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,gBACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,cACG,SAAO;AAAA,IACN,MACG,OAAK,EACL;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EACjD,YACG,SAAO;AAAA,IACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,IACjE,OAAS,SAAO,EAAE,SAAS,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;AAAA,IACtE,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,2BACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,aACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,MACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,MACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,MACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,IACZ,UACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,IACZ,aACG,SAAO;AAAA,MACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,MACZ,iBACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,IACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,MACG,SAAO;AAAA,IACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D,SAAS,4DAA4D,EACrE,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8DAA8D,EACvE,SAAS;AAAA,EACZ,gBACG,SAAO;AAAA,IACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AACd,CAAC;AACM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF;AAAA,IACF,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eAAiB,OAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,QACtD,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MAAQ,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EAAE,SAAS;AAAA,MAC5D,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,wCAAwC;AAAA,EACpD,SACG,SAAO;AAAA,IACN,iBACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wBAA0B,SAAO;AAAA,EAC5C,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,IACC;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,EACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,EACZ,YACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,EACZ,MACG,SAAO;AAAA,IACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,EACZ,OACG,SAAO;AAAA,IACN,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,IACZ,oBACG,SAAO;AAAA,MACN,QACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,kBACG;AAAA,IACG,SAAO;AAAA,MACP,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,OACG,SAAO;AAAA,IACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,MACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,oBACG,SAAO;AAAA,MACN,QACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,sBACG,OAAK,CAAC,kCAAkC,WAAW,SAAS,SAAS,CAAC,EACtE;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,kBACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,WACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC/C,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO;AAAA,QACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,SACG,SAAO;AAAA,IACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,QACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,WACG,SAAO,EACP,SAAS,+DAA+D,EACxE,SAAS,EACT,SAAS;AAAA,EACZ,UACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,EACZ,YACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS,EACT,SAAS;AAAA,EACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,EAChE,QACG,SAAO;AAAA,IACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,gBACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,cACG,SAAO;AAAA,IACN,MACG,OAAK,EACL;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EACjD,YACG,SAAO;AAAA,IACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,IACjE,OAAS,SAAO,EAAE,SAAS,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;AAAA,IACtE,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,2BACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,aACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,MACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,MACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,MACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,IACZ,UACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,IACZ,aACG,SAAO;AAAA,MACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,MACZ,iBACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,IACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AAAA,EACZ,MACG,SAAO;AAAA,IACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D,SAAS,4DAA4D,EACrE,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8DAA8D,EACvE,SAAS;AAAA,EACZ,gBACG,SAAO;AAAA,IACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF,EACC,SAAS;AACd,CAAC;AACM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eAAiB,OAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,QACtD,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MAAQ,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EAAE,SAAS;AAAA,MAC5D,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,yBAAyB;AAAA,EACrC,SACG,SAAO;AAAA,IACN,YACG,OAAK,CAAC,aAAa,UAAU,yBAAyB,CAAC,EACvD,SAAS;AAAA,IACZ,cACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wBAA0B,SAAO;AAAA,EAC5C,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,mBAAmB,EAC5B,SAAS;AAAA,EACZ,QACG,OAAK,CAAC,WAAW,SAAS,CAAC,EAC3B,SAAS,sCAAsC,EAC/C,SAAS;AAAA,EACZ,eACG,SAAO,EACP,SAAS,4CAA4C,EACrD,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AACd,CAAC;AACM,IAAM,2BAA6B,SAAO;AAAA,EAC/C,WACG,SAAO,EACP,SAAS,+CAA+C,EACxD;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,YACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,kBAAkB,EAC3B,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,qBAAqB,EAC9B,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,kBAAkB,EAC3B,SAAS;AACd,CAAC;AACM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,iBACG,SAAO,EACP,SAAS,oBAAoB,EAC7B;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,uBACG,SAAO;AAAA,IACN,OACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C,SAAS;AAAA,EACd,CAAC,EACA;AAAA,IACC;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,eACG,SAAO;AAAA,MACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,WACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD,SAAS;AAAA,UACZ,SACG,SAAO;AAAA,YACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC/C,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,gBACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,QACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,MAChE,QACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,SAAO;AAAA,QACN,MACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACjD,YACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,QACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,2BACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,eAAiB,OAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,UACtD,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,UACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,UACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,UACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS;AAAA,UACZ,MAAQ,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EAAE,SAAS;AAAA,QAC5D,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,UACZ,iBACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,SAAO;AAAA,QACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBAAoB,QAAQ,SAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IAC7D,SACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,iBACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wBAA0B,SAAO;AAAA,EAC5C,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,yBAAyB,EAClC,SAAS;AACd,CAAC;AACM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,WACG,SAAO,EACP,SAAS,8BAA8B,EACvC;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,cACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wBAA0B,SAAO,CAAC,CAAC;AACzC,IAAM,8BAAgC,SAAO;AAAA,EAClD,SACG,SAAO;AAAA,IACN,YACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,SAAS,gBAAgB,EACzB,MAAM,EACN,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,SAAS,eAAe,EACxB,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,+BAAiC,SAAO;AAAA,EACnD,UACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,WACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,SACG,SAAO;AAAA,YACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC/C,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,gBACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,QACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,MAChE,QACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,SAAO;AAAA,QACN,MACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACjD,YACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,QACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,QACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,2BACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,UACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,UACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,UACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,UACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS;AAAA,UACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,QACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,UACZ,iBACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,SAAO;AAAA,QACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,SAAS;AACd,CAAC;AACM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,OACG;AAAA,IACG,SAAO;AAAA,MACP,QACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,MACG;AAAA,QACG,SAAO;AAAA,UACP,WACG,SAAO,EACP,SAAS,+BAA+B,EACxC,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,OAAS,OAAK,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS;AAAA,QAC1C,CAAC;AAAA,MACH,EACC,IAAI,CAAC,EACL,SAAS;AAAA,IACd,CAAC;AAAA,IACC,MAAI;AAAA,MACF,SAAO,EAAE,cAAgB,QAAM,EAAE,SAAS,EAAE,CAAC;AAAA,MAC7C,SAAO;AAAA,QACP,cACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,QACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF;AAAA,MACJ,CAAC;AAAA,IACH,CAAC;AAAA,EACH,EACC,SAAS,iBAAiB;AAC/B,CAAC;AACM,IAAM,wBAA0B,SAAO;AAAA,EAC5C,UACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,WACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,SACG,SAAO;AAAA,YACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC/C,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,gBACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,QACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,MAChE,QACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,SAAO;AAAA,QACN,MACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACjD,YACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,QACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,QACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,2BACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,UACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,UACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,UACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,UACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS;AAAA,UACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,QACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,UACZ,iBACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,SAAO;AAAA,QACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,gBACG,SAAO;AAAA,IACN,OACG,SAAO,EACP,IAAI,EACJ,SAAS,2CAA2C,EACpD,SAAS,EACT,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,SACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,iBAAiB,EAC1B,SAAS;AACd,CAAC;AACM,IAAM,wBAA0B,SAAO;AAAA,EAC5C,QACG;AAAA,IACG,SAAO;AAAA,MACP,QACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,MACG;AAAA,QACG,SAAO;AAAA,UACP,WACG,SAAO,EACP,SAAS,+BAA+B,EACxC,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,OAAS,OAAK,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS;AAAA,QAC1C,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,cACG;AAAA,QACG;AAAA,UACE,SAAO;AAAA,YACP,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,MACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA,SAAS;AAAA,YACZ,WACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,UACC,MAAI;AAAA,YACF,SAAO;AAAA,cACP,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,cAClC,QAAU,QAAM,EAAE,SAAS;AAAA,YAC7B,CAAC;AAAA,YACC,SAAO;AAAA,cACP,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,cAClC,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,OACG;AAAA,gBACG,SAAO;AAAA,kBACP,UACG,OAAK,CAAC,SAAS,OAAO,CAAC,EACvB;AAAA,oBACC;AAAA,kBACF,EACC,SAAS;AAAA,kBACZ,eACG,OAAK,CAAC,QAAQ,KAAK,CAAC,EACpB;AAAA,oBACC;AAAA,kBACF,EACC,SAAS;AAAA,kBACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,oBACC;AAAA,kBACF,EACC,SAAS,EACT,SAAS;AAAA,kBACZ,eACG,OAAK,CAAC,WAAW,SAAS,CAAC,EAC3B;AAAA,oBACC;AAAA,kBACF,EACC,SAAS;AAAA,gBACd,CAAC;AAAA,gBACC,MAAI;AAAA,kBACF,SAAO,EAAE,gBAAkB,QAAM,EAAE,SAAS,EAAE,CAAC;AAAA,kBAC/C,SAAO;AAAA,oBACP,gBACG,SAAO;AAAA,sBACN,aACG,SAAO,EACP;AAAA,wBACC;AAAA,sBACF,EACC,IAAI,EAAE,EACN,SAAS;AAAA,oBACd,CAAC,EACA,SAAS,sCAAsC;AAAA,kBACpD,CAAC;AAAA,gBACH,CAAC;AAAA,cACH,EACC,SAAS,mBAAmB;AAAA,YACjC,CAAC;AAAA,YACC,SAAO;AAAA,cACP,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,cAClC,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,OACG,SAAO;AAAA,gBACN,SACG;AAAA,kBACG,SAAO;AAAA,oBACP,MACG,SAAO,EACP;AAAA,sBACC;AAAA,oBACF,EACC,SAAS,EACT,SAAS;AAAA,oBACZ,IACG,SAAO,EACP;AAAA,sBACC;AAAA,oBACF,EACC,SAAS,EACT,SAAS;AAAA,kBACd,CAAC;AAAA,gBACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,cACd,CAAC,EACA,SAAS,mBAAmB;AAAA,YACjC,CAAC;AAAA,YACC,SAAO;AAAA,cACP,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,eAAiB,QAAM,EAAE,SAAS;AAAA,cAClC,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,QACG,SAAO;AAAA,gBACN,MACG,OAAK,CAAC,kBAAkB,OAAO,KAAK,CAAC,EACrC;AAAA,kBACC;AAAA,gBACF,EACC,SAAS;AAAA,cACd,CAAC,EACA,SAAS,oBAAoB;AAAA,YAClC,CAAC;AAAA,YACC,SAAO;AAAA,cACP,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,eACG,SAAO;AAAA,gBACN,UACG,OAAK;AAAA,kBACJ;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,gBACF,CAAC,EACA,SAAS,yCAAyC,EAClD,SAAS;AAAA,cACd,CAAC,EACA,SAAS,4BAA4B;AAAA,YAC1C,CAAC;AAAA,YACC,SAAO;AAAA,cACP,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,cAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,cAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,cAClC,QACG,SAAO;AAAA,gBACN,oBACG;AAAA,kBACG;AAAA,oBACE,SAAO;AAAA,sBACP,MACG,SAAO,EACP;AAAA,wBACC;AAAA,sBACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,sBACZ,MACG,OAAK;AAAA,wBACJ;AAAA,wBACA;AAAA,wBACA;AAAA,wBACA;AAAA,sBACF,CAAC,EACA,SAAS;AAAA,sBACZ,WACG,SAAO,EACP;AAAA,wBACC;AAAA,sBACF,EACC,IAAI,GAAG,EACP,SAAS;AAAA,oBACd,CAAC;AAAA,oBACC,MAAI;AAAA,sBACF,SAAO;AAAA,wBACP,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,wBAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,sBACpC,CAAC;AAAA,sBACC,SAAO;AAAA,wBACP,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,wBAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,wBAClC,OACG;AAAA,0BACG,SAAO;AAAA,4BACP,UACG,OAAK,CAAC,SAAS,OAAO,CAAC,EACvB;AAAA,8BACC;AAAA,4BACF,EACC,SAAS;AAAA,4BACZ,eACG,OAAK,CAAC,QAAQ,KAAK,CAAC,EACpB;AAAA,8BACC;AAAA,4BACF,EACC,SAAS;AAAA,4BACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,8BACC;AAAA,4BACF,EACC,SAAS,EACT,SAAS;AAAA,4BACZ,eACG,OAAK,CAAC,WAAW,SAAS,CAAC,EAC3B;AAAA,8BACC;AAAA,4BACF,EACC,SAAS;AAAA,0BACd,CAAC;AAAA,0BACC,MAAI;AAAA,4BACF,SAAO;AAAA,8BACP,gBAAkB,QAAM,EAAE,SAAS;AAAA,4BACrC,CAAC;AAAA,4BACC,SAAO;AAAA,8BACP,gBACG,SAAO;AAAA,gCACN,aACG,SAAO,EACP;AAAA,kCACC;AAAA,gCACF,EACC,IAAI,EAAE,EACN,SAAS;AAAA,8BACd,CAAC,EACA;AAAA,gCACC;AAAA,8BACF;AAAA,4BACJ,CAAC;AAAA,0BACH,CAAC;AAAA,wBACH,EACC,SAAS,mBAAmB;AAAA,sBACjC,CAAC;AAAA,sBACC,SAAO;AAAA,wBACP,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,wBAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,wBAClC,OACG,SAAO;AAAA,0BACN,SACG;AAAA,4BACG,SAAO;AAAA,8BACP,MACG,SAAO,EACP;AAAA,gCACC;AAAA,8BACF,EACC,SAAS,EACT,SAAS;AAAA,8BACZ,IACG,SAAO,EACP;AAAA,gCACC;AAAA,8BACF,EACC,SAAS,EACT,SAAS;AAAA,4BACd,CAAC;AAAA,0BACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,wBACd,CAAC,EACA,SAAS,mBAAmB;AAAA,sBACjC,CAAC;AAAA,sBACC,SAAO;AAAA,wBACP,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,eAAiB,QAAM,EAAE,SAAS;AAAA,wBAClC,QACG,SAAO;AAAA,0BACN,MACG,OAAK,CAAC,kBAAkB,OAAO,KAAK,CAAC,EACrC;AAAA,4BACC;AAAA,0BACF,EACC,SAAS;AAAA,wBACd,CAAC,EACA,SAAS,oBAAoB;AAAA,sBAClC,CAAC;AAAA,sBACC,SAAO;AAAA,wBACP,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,wBAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,wBAC3B,eACG,SAAO;AAAA,0BACN,UACG,OAAK;AAAA,4BACJ;AAAA,4BACA;AAAA,4BACA;AAAA,4BACA;AAAA,4BACA;AAAA,4BACA;AAAA,4BACA;AAAA,0BACF,CAAC,EACA;AAAA,4BACC;AAAA,0BACF,EACC,SAAS;AAAA,wBACd,CAAC,EACA,SAAS,4BAA4B;AAAA,sBAC1C,CAAC;AAAA,oBACH,CAAC;AAAA,kBACH;AAAA,gBACF,EACC,IAAI,CAAC,EACL,IAAI,CAAC,EACL,SAAS;AAAA,cACd,CAAC,EACA,SAAS,oBAAoB;AAAA,YAClC,CAAC;AAAA,UACH,CAAC;AAAA,QACH;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,QACG,SAAO;AAAA,QACN,MAAQ,OAAK,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS;AAAA,QACrC,YACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAC7C,OACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,0CAA0C,EACnD,SAAS;AAAA,MACZ,UACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACd,CAAC;AAAA,IACC,MAAI;AAAA,MACF,SAAO,EAAE,cAAgB,QAAM,EAAE,SAAS,EAAE,CAAC;AAAA,MAC7C,SAAO;AAAA,QACP,cACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,QACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF;AAAA,MACJ,CAAC;AAAA,IACH,CAAC;AAAA,EACH,EACC,SAAS,uBAAuB;AAAA,EACnC,SACG,SAAO;AAAA,IACN,YAAc,OAAK,CAAC,iBAAiB,cAAc,CAAC,EAAE,SAAS;AAAA,EACjE,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,yBAA2B,SAAO;AAAA,EAC7C,UACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,WACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,SACG,SAAO;AAAA,YACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC/C,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,gBACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,QACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,MAChE,QACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,SAAO;AAAA,QACN,MACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACjD,YACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,QACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,QACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,2BACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,UACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,UACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,UACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,UACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS;AAAA,UACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,QACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,UACZ,iBACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,SAAO;AAAA,QACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,gBACG,SAAO;AAAA,IACN,OACG,SAAO,EACP,IAAI,EACJ,SAAS,2CAA2C,EACpD,SAAS,EACT,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,SACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,iBAAiB,EAC1B,SAAS;AAAA,EACZ,iBACG,SAAO;AAAA,IACN,SACG;AAAA,MACG;AAAA,QACE,SAAO;AAAA,UACP,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,MACG,OAAK,CAAC,SAAS,SAAS,UAAU,kBAAkB,QAAQ,CAAC,EAC7D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,WACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAG,EACP,SAAS;AAAA,QACd,CAAC;AAAA,QACC,MAAI;AAAA,UACF,SAAO;AAAA,YACP,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,YAClC,QAAU,QAAM,EAAE,SAAS;AAAA,UAC7B,CAAC;AAAA,UACC,SAAO;AAAA,YACP,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,YAClC,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QACG,SAAO;AAAA,cACN,SACG;AAAA,gBACG,SAAO;AAAA,kBACP,OACG,SAAO,EACP,SAAS,oBAAoB,EAC7B,IAAI,GAAG,EACP,SAAS;AAAA,kBACZ,OACG,SAAO,EACP,IAAI,EACJ,SAAS,mCAAmC,EAC5C,SAAS;AAAA,gBACd,CAAC;AAAA,cACH,EACC,IAAI,GAAG,EACP,SAAS;AAAA,YACd,CAAC,EACA,SAAS,2BAA2B;AAAA,UACzC,CAAC;AAAA,UACC,SAAO;AAAA,YACP,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,YAClC,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QACG,SAAO;AAAA,cACN,SACG;AAAA,gBACG,SAAO;AAAA,kBACP,MACG,SAAO,EACP,SAAS,oCAAoC,EAC7C,SAAS,EACT,SAAS;AAAA,kBACZ,IACG,SAAO,EACP,SAAS,oCAAoC,EAC7C,SAAS,EACT,SAAS;AAAA,kBACZ,OACG,SAAO,EACP,IAAI,EACJ,SAAS,iCAAiC,EAC1C,SAAS;AAAA,gBACd,CAAC;AAAA,cACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,YACd,CAAC,EACA,SAAS,2BAA2B;AAAA,UACzC,CAAC;AAAA,UACC,SAAO;AAAA,YACP,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,YAClC,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QACG,SAAO;AAAA,cACN,MACG,OAAK,CAAC,kBAAkB,OAAO,KAAK,CAAC,EACrC,SAAS,4BAA4B,EACrC,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,iCAAiC,EAC1C,SAAS;AAAA,YACd,CAAC,EACA,SAAS,4BAA4B;AAAA,UAC1C,CAAC;AAAA,UACC,SAAO;AAAA,YACP,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,eACG,SAAO;AAAA,cACN,SACG;AAAA,gBACG,SAAO;AAAA,kBACP,OACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAG,EACP,SAAS;AAAA,kBACZ,OACG,SAAO,EACP,IAAI,EACJ,SAAS,kCAAkC,EAC3C,SAAS;AAAA,gBACd,CAAC;AAAA,cACH,EACC,IAAI,GAAG,EACP,SAAS;AAAA,YACd,CAAC,EACA,SAAS,oCAAoC;AAAA,UAClD,CAAC;AAAA,UACC,SAAO;AAAA,YACP,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,QAAU,QAAM,EAAE,SAAS;AAAA,YAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,YAClC,QACG,SAAO;AAAA,cACN,SACG;AAAA,gBACG,SAAO;AAAA,kBACP,SACG;AAAA,oBACG,SAAO;AAAA,oBACP;AAAA,sBACE,SAAO,CAAC,CAAC;AAAA,sBACT,MAAI;AAAA,wBACF,SAAO;AAAA,0BACP,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,0BAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,wBACpC,CAAC;AAAA,wBACC,SAAO;AAAA,0BACP,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,0BAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,0BAClC,OACG,SAAO;AAAA,4BACN,OACG,SAAO,EACP,SAAS,oBAAoB,EAC7B,IAAI,GAAI,EACR,SAAS;AAAA,4BACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,8BACC;AAAA,4BACF,EACC,SAAS,EACT,SAAS;AAAA,0BACd,CAAC,EACA,SAAS,0BAA0B;AAAA,wBACxC,CAAC;AAAA,wBACC,SAAO;AAAA,0BACP,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,0BAC3B,eAAiB,QAAM,EAAE,SAAS;AAAA,0BAClC,OACG,SAAO;AAAA,4BACN,MACG,SAAO,EACP;AAAA,8BACC;AAAA,4BACF,EACC,SAAS,EACT,SAAS;AAAA,4BACZ,IACG,SAAO,EACP;AAAA,8BACC;AAAA,4BACF,EACC,SAAS,EACT,SAAS;AAAA,4BACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,8BACC;AAAA,4BACF,EACC,SAAS,EACT,SAAS;AAAA,0BACd,CAAC,EACA,SAAS,0BAA0B;AAAA,wBACxC,CAAC;AAAA,wBACC,SAAO;AAAA,0BACP,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,eAAiB,QAAM,EAAE,SAAS;AAAA,0BAClC,QACG,SAAO;AAAA,4BACN,OACG,SAAO,EACP;AAAA,8BACC;AAAA,4BACF,EACC,SAAS;AAAA,0BACd,CAAC,EACA,SAAS,2BAA2B;AAAA,wBACzC,CAAC;AAAA,wBACC,SAAO;AAAA,0BACP,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,OAAS,QAAM,EAAE,SAAS;AAAA,0BAC1B,QAAU,QAAM,EAAE,SAAS;AAAA,0BAC3B,eACG,SAAO;AAAA,4BACN,OACG,SAAO,EACP,SAAS,oBAAoB,EAC7B,IAAI,GAAI,EACR,SAAS;AAAA,4BACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,8BACC;AAAA,4BACF,EACC,SAAS,EACT,SAAS;AAAA,0BACd,CAAC,EACA;AAAA,4BACC;AAAA,0BACF;AAAA,wBACJ,CAAC;AAAA,sBACH,CAAC;AAAA,oBACH;AAAA,kBACF,EACC,SAAS,6BAA6B,EACtC,SAAS;AAAA,gBACd,CAAC;AAAA,cACH,EACC,IAAI,GAAI,EACR,SAAS;AAAA,YACd,CAAC,EACA,SAAS,4BAA4B;AAAA,UAC1C,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAAA,IACF,EACC,IAAI,GAAK,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,kBAAkB,EAC3B,SAAS;AACd,CAAC;AACM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,SACG,SAAO;AAAA,IACN,QACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wBAA0B,SAAO;AAAA,EAC5C,OAAS,SAAO,EAAE,IAAI,EAAE,SAAS,oBAAoB,EAAE,SAAS;AAClE,CAAC;AACM,IAAM,uCAAyC,SAAO;AAAA,EAC3D,WACG,SAAO,EACP,SAAS,mDAAmD,EAC5D;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wCAA0C,SAAO;AAAA,EAC5D,WACG,SAAO,EACP,SAAS,6BAA6B,EACtC,IAAI,EACJ,SAAS;AAAA,EACZ,eACG,SAAO,EACP,SAAS,gBAAgB,EACzB;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS;AACd,CAAC;AACM,IAAM,mCAAqC,SAAO;AAAA,EACvD,WACG,SAAO,EACP,SAAS,oCAAoC,EAC7C;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,OACG,SAAO;AAAA,IACN,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,EACd,CAAC,EACA,SAAS,mBAAmB;AAAA,EAC/B,SAAW,SAAO;AAAA,IAChB,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C,SAAS,6DAA6D;AAAA,EAC3E,CAAC;AACH,CAAC;AACM,IAAM,oCAAsC,SAAO;AAAA,EACxD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,kBAAkB,EAC3B,SAAS;AACd,CAAC;AACM,IAAM,mCAAqC,SAAO;AAAA,EACvD,WACG,SAAO,EACP,SAAS,mCAAmC,EAC5C;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,OACG,SAAO;AAAA,IACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,IACZ,OACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,MACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,mBAAmB;AAAA,EAC/B,SAAW,SAAO;AAAA,IAChB,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C,SAAS,6DAA6D;AAAA,EAC3E,CAAC;AACH,CAAC;AACM,IAAM,oCAAsC,SAAO;AAAA,EACxD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,kBAAkB,EAC3B,SAAS;AACd,CAAC;AACM,IAAM,2BAA6B,SAAO;AAAA,EAC/C,WACG,SAAO,EACP,SAAS,sCAAsC,EAC/C;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,KAAO,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EAAE,SAAS;AAAA,IACvE,SACG,SAAO;AAAA,MACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,IAC/C,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO;AAAA,MACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,EACd,CAAC,EACA,SAAS,qBAAqB;AAAA,EACjC,SAAW,SAAO;AAAA,IAChB,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C,SAAS,6DAA6D;AAAA,EAC3E,CAAC;AACH,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,kBAAkB,EAC3B,SAAS;AACd,CAAC;AACM,IAAM,8BAAgC,SAAO;AAAA,EAClD,aAAe,SAAO;AAAA,IACpB,WACG,SAAO,EACP,SAAS,oDAAoD,EAC7D;AAAA,MACC;AAAA,MACA;AAAA,IACF;AAAA,IACF,WACG,SAAO,EACP,SAAS,8BAA8B,EACvC;AAAA,MACC;AAAA,MACA;AAAA,IACF;AAAA,EACJ,CAAC;AAAA,EACD,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C,SAAS,6DAA6D;AAC3E,CAAC;AACM,IAAM,+BAAiC,SAAO;AAAA,EACnD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,yCAAyC,EAClD,SAAS;AACd,CAAC;AACM,IAAM,8BAAgC,SAAO;AAAA,EAClD,aAAe,SAAO;AAAA,IACpB,WACG,SAAO,EACP,SAAS,yCAAyC,EAClD;AAAA,MACC;AAAA,MACA;AAAA,IACF;AAAA,IACF,WACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,MACC;AAAA,MACA;AAAA,IACF;AAAA,EACJ,CAAC;AAAA,EACD,SACG,SAAO;AAAA,IACN,KAAO,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EAAE,SAAS;AAAA,IACvE,SACG,SAAO;AAAA,MACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,IAC/C,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO;AAAA,MACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,EACd,CAAC,EACA,SAAS,gDAAgD;AAAA,EAC5D,SAAW,SAAO;AAAA,IAChB,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C,SAAS,6DAA6D;AAAA,EAC3E,CAAC;AACH,CAAC;AACM,IAAM,+BAAiC,SAAO;AAAA,EACnD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,uCAAuC,EAChD,SAAS;AACd,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,UACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,WACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD,SAAS;AAAA,UACZ,SACG,SAAO;AAAA,YACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC/C,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,gBACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,QACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,MAChE,QACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,SAAO;AAAA,QACN,MACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACjD,YACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,QACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,QACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,2BACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,eAAiB,OAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,UACtD,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,UACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,UACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,UACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS;AAAA,UACZ,MAAQ,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EAAE,SAAS;AAAA,QAC5D,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,UACZ,iBACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,SAAO;AAAA,QACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG;AAAA,EACV,SACG,SAAO;AAAA,IACN,cACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,iBACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,SACG;AAAA,IACG,SAAO;AAAA,MACP,cACG,SAAO;AAAA,QACN,KACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,eACG,SAAO,EACP,IAAI,EACJ;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,aAAa,EAAE,SAAS;AAAA,UAClD,aACG,SAAO,EACP,SAAS,2BAA2B,EACpC,SAAS;AAAA,UACZ,MACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B,SAAS,4BAA4B,EACrC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,6CAA6C,EACtD,SAAS;AAAA,MACd,CAAC,EACA,SAAS,yDAAyD,EAClE,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,YACZ,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,WACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,SACG,SAAO;AAAA,cACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC/C,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,gBACG,UAAQ,EACR;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,WACG,SAAO;AAAA,cACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,YACd,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,QACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,QAChE,QACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,SAAO;AAAA,UACN,MACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACjD,YACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,UACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,UACZ,2BACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,YACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,YACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,YACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,UACG,SAAO;AAAA,YACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS;AAAA,YACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,UACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,YACZ,iBACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,UACnD,CAAC,EACA,SAAS,YAAY,EACrB,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,SAAO;AAAA,UACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS;AAAA,EACZ,oBACG,SAAO;AAAA,IACN,gBACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,SAAS;AAAA,IACZ,eACG,SAAO,EACP,IAAI,EACJ,SAAS,6CAA6C,EACtD,SAAS;AAAA,IACZ,oBACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8CAA8C,EACvD,SAAS;AACd,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,UACG;AAAA,IACG,SAAO;AAAA,MACP,SACG,SAAO;AAAA,QACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,UACC;AAAA,UACA;AAAA,QACF;AAAA,QACF,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,UACC;AAAA,QACF;AAAA,QACF,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,YACZ,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,YACZ,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,WACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD,SAAS;AAAA,YACZ,SACG,SAAO;AAAA,cACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC/C,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,gBACG,UAAQ,EACR;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,WACG,SAAO;AAAA,cACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,YACd,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,QACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,QAChE,QACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,SAAO;AAAA,UACN,MACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACjD,YACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,UACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,UACZ,2BACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,eAAiB,OAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,YACtD,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,YACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,YACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,UACG,SAAO;AAAA,YACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS;AAAA,YACZ,MAAQ,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EAAE,SAAS;AAAA,UAC5D,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,YACZ,iBACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,UACnD,CAAC,EACA,SAAS,YAAY,EACrB,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,SAAO;AAAA,UACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,uCAAuC,EAChD,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG;AAAA,EACV,SACG,SAAO;AAAA,IACN,cACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,iBACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,SACG;AAAA,IACG,SAAO;AAAA,MACP,cACG,SAAO;AAAA,QACN,KACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,eACG,SAAO,EACP,IAAI,EACJ;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,aAAa,EAAE,SAAS;AAAA,UAClD,aACG,SAAO,EACP,SAAS,2BAA2B,EACpC,SAAS;AAAA,UACZ,MACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B,SAAS,4BAA4B,EACrC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,6CAA6C,EACtD,SAAS;AAAA,MACd,CAAC,EACA,SAAS,yDAAyD,EAClE,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,YACZ,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,WACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,SACG,SAAO;AAAA,cACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC/C,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,gBACG,UAAQ,EACR;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,WACG,SAAO;AAAA,cACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,YACd,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,QACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,QAChE,QACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,SAAO;AAAA,UACN,MACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACjD,YACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,UACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,UACZ,2BACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,YACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,YACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,YACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,UACG,SAAO;AAAA,YACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS;AAAA,YACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,UACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,YACZ,iBACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,UACnD,CAAC,EACA,SAAS,YAAY,EACrB,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,SAAO;AAAA,UACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS;AAAA,EACZ,oBACG,SAAO;AAAA,IACN,gBACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,SAAS;AAAA,IACZ,eACG,SAAO,EACP,IAAI,EACJ,SAAS,6CAA6C,EACtD,SAAS;AAAA,IACZ,oBACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8CAA8C,EACvD,SAAS;AACd,CAAC;AACM,IAAM,+BAAiC,SAAO;AAAA,EACnD,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC9C,SACG,SAAO;AAAA,IACN,cACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,kBAAkB,EAC3B,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,qBAAqB,EAC9B,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,gCAAkC,SAAO;AAAA,EACpD,SACG;AAAA,IACG,SAAO;AAAA,MACP,cACG,SAAO;AAAA,QACN,KACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,eACG,SAAO,EACP,IAAI,EACJ;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,aAAa,EAAE,SAAS;AAAA,UAClD,aACG,SAAO,EACP,SAAS,2BAA2B,EACpC,SAAS;AAAA,UACZ,MACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B,SAAS,4BAA4B,EACrC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,6CAA6C,EACtD,SAAS;AAAA,MACd,CAAC,EACA,SAAS,yDAAyD,EAClE,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,YACZ,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,WACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,SACG,SAAO;AAAA,cACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC/C,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,gBACG,UAAQ,EACR;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,WACG,SAAO;AAAA,cACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,YACd,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,QACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,QAChE,QACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,SAAO;AAAA,UACN,MACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACjD,YACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,UACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,UACZ,2BACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,YACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,YACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,YACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,UACG,SAAO;AAAA,YACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS;AAAA,YACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,UACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,YACZ,iBACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,UACnD,CAAC,EACA,SAAS,YAAY,EACrB,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,SAAO;AAAA,UACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS;AAAA,EACZ,oBACG,SAAO;AAAA,IACN,gBACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,SAAS;AAAA,IACZ,eACG,SAAO,EACP,IAAI,EACJ,SAAS,6CAA6C,EACtD,SAAS;AAAA,IACZ,oBACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,oCAAoC,EAC7C,SAAS;AACd,CAAC;AACM,IAAM,uCAAyC,SAAO;AAAA,EAC3D,QACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B;AAAA,IACC;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,QACG,SAAO;AAAA,MACN,MAAQ,OAAK,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS;AAAA,MACrC,YACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAC7C,OACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,0CAA0C,EACnD,SAAS;AAAA,IACZ,YACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,gCAAgC,EACzC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,qCAAqC,EAC9C,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,wCAA0C,SAAO;AAAA,EAC5D,OACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS;AACd,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,UACG;AAAA,IACG,SAAO;AAAA,MACP,SACG,SAAO;AAAA,QACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD,SAAS;AAAA,YACZ,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,YACZ,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,WACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD,SAAS;AAAA,YACZ,SACG,SAAO;AAAA,cACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC/C,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,gBACG,UAAQ,EACR;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,WACG,SAAO;AAAA,cACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,YACd,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,QACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,QAChE,QACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,SAAO;AAAA,UACN,MACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACjD,YACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,UACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,UACZ,2BACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,eAAiB,OAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,YACtD,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,YACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,YACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,UACG,SAAO;AAAA,YACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS;AAAA,YACZ,MAAQ,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EAAE,SAAS;AAAA,UAC5D,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,YACZ,iBACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,UACnD,CAAC,EACA,SAAS,YAAY,EACrB,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,SAAO;AAAA,UACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,uCAAuC,EAChD,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG;AAAA,EACV,SACG,SAAO;AAAA,IACN,cACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YACG,OAAK,CAAC,aAAa,UAAU,yBAAyB,CAAC,EACvD,SAAS;AAAA,IACZ,cACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,SACG;AAAA,IACG,SAAO;AAAA,MACP,cACG,SAAO;AAAA,QACN,KACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,eACG,SAAO,EACP,IAAI,EACJ;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,aAAa,EAAE,SAAS;AAAA,UAClD,aACG,SAAO,EACP,SAAS,2BAA2B,EACpC,SAAS;AAAA,UACZ,MACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B,SAAS,4BAA4B,EACrC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,6CAA6C,EACtD,SAAS;AAAA,MACd,CAAC,EACA,SAAS,yDAAyD,EAClE,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,YACZ,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,WACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,SACG,SAAO;AAAA,cACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC/C,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,gBACG,UAAQ,EACR;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,WACG,SAAO;AAAA,cACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,YACd,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,QACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,QAChE,QACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,SAAO;AAAA,UACN,MACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACjD,YACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,UACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,UACZ,2BACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,YACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,YACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,YACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,UACG,SAAO;AAAA,YACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS;AAAA,YACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,UACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,YACZ,iBACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,UACnD,CAAC,EACA,SAAS,YAAY,EACrB,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,SAAO;AAAA,UACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,kBAAkB,WAAW,SAAS,CAAC,EAC7C,SAAS,sCAAsC,EAC/C,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS;AAAA,EACZ,oBACG,SAAO;AAAA,IACN,gBACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,SAAS;AAAA,IACZ,eACG,SAAO,EACP,IAAI,EACJ,SAAS,6CAA6C,EACtD,SAAS;AAAA,IACZ,oBACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8CAA8C,EACvD,SAAS;AACd,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC9C,SACG,SAAO;AAAA,IACN,eACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,SACG;AAAA,IACG,SAAO;AAAA,MACP,cACG,SAAO;AAAA,QACN,KACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,eACG,SAAO,EACP,IAAI,EACJ;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,aAAa,EAAE,SAAS;AAAA,UAClD,aACG,SAAO,EACP,SAAS,2BAA2B,EACpC,SAAS;AAAA,UACZ,MACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B,SAAS,4BAA4B,EACrC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,6CAA6C,EACtD,SAAS;AAAA,MACd,CAAC,EACA,SAAS,yDAAyD,EAClE,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS;AAAA,EACZ,oBACG,SAAO;AAAA,IACN,gBACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,SAAS;AAAA,IACZ,eACG,SAAO,EACP,IAAI,EACJ,SAAS,6CAA6C,EACtD,SAAS;AAAA,IACZ,oBACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8CAA8C,EACvD,SAAS;AACd,CAAC;AACM,IAAM,oCAAsC,SAAO;AAAA,EACxD,QACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B;AAAA,IACC;AAAA,EACF;AAAA,EACF,SACG,SAAO;AAAA,IACN,QACG,SAAO;AAAA,MACN,MAAQ,OAAK,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS;AAAA,MACrC,YACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAC7C,OACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA,SAAS,yCAAyC,EAClD,SAAS;AAAA,IACZ,eACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,qCAAuC,SAAO;AAAA,EACzD,OACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS;AACd,CAAC;AACM,IAAM,mCAAqC,SAAO;AAAA,EACvD,WACG,SAAO,EACP,SAAS,4CAA4C,EACrD;AAAA,IACC;AAAA,IACA;AAAA,EACF;AACJ,CAAC;AACM,IAAM,oCAAsC,SAAO,CAAC,CAAC;AACrD,IAAM,oCAAsC,SAAO;AAAA,EACxD,WACG,SAAO,EACP,SAAS,6CAA6C,EACtD;AAAA,IACC;AAAA,IACA;AAAA,EACF;AACJ,CAAC;AACM,IAAM,qCAAuC,SAAO;AAAA,EACzD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,uBAAuB,EAChC,SAAS;AACd,CAAC;AACM,IAAM,yCAA2C,SAAO;AAAA,EAC7D,SACG,SAAO;AAAA,IACN,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IACzD,cACG,UAAQ,EACR,SAAS,gCAAgC,EACzC,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,0CAA4C,SAAO;AAAA,EAC9D,SACG;AAAA,IACG,SAAO;AAAA,MACP,cACG,SAAO;AAAA,QACN,KACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,eACG,SAAO,EACP,IAAI,EACJ;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,aAAa,EAAE,SAAS;AAAA,UAClD,aACG,SAAO,EACP,SAAS,2BAA2B,EACpC,SAAS;AAAA,UACZ,MACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B,SAAS,4BAA4B,EACrC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,6CAA6C,EACtD,SAAS;AAAA,MACd,CAAC,EACA,SAAS,0DAA0D,EACnE,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,OACG,SAAO;AAAA,UACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACZ,oBACG,SAAO;AAAA,YACN,QACG,OAAK;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,cACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,sBACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,kBACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,OACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,YACZ,MACG,SAAO,EACP;AAAA,cACC;AAAA,YACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,WACG;AAAA,UACG,SAAO;AAAA,YACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,SACG,SAAO;AAAA,cACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,cAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC/C,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,YACZ,gBACG,UAAQ,EACR;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,WACG,SAAO;AAAA,cACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,cACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,YACd,CAAC,EACA;AAAA,cACC;AAAA,YACF,EACC,SAAS;AAAA,UACd,CAAC;AAAA,QACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,QACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,QAChE,QACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,SAAO;AAAA,UACN,MACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACjD,YACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,YACG,OAAK,EACL,SAAS,aAAa,EACtB,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,UACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,UACZ,2BACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,YACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,YACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,YACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,YACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,UACG,SAAO;AAAA,YACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,cACC;AAAA,cACA;AAAA,YACF,EACC,SAAS;AAAA,YACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,UACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,UACZ,aACG,SAAO;AAAA,YACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,YACZ,iBACG,OAAK,EACL;AAAA,cACC;AAAA,YACF,EACC,SAAS,EACT,SAAS;AAAA,YACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,UACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,UACnD,CAAC,EACA,SAAS,YAAY,EACrB,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,SAAO;AAAA,UACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,SAAO;AAAA,UACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS;AAAA,EACZ,oBACG,SAAO;AAAA,IACN,gBACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,SAAS;AAAA,IACZ,eACG,SAAO,EACP,IAAI,EACJ,SAAS,6CAA6C,EACtD,SAAS;AAAA,IACZ,oBACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,8CAA8C,EACvD,SAAS;AACd,CAAC;AACM,IAAM,2BAA6B,SAAO;AAAA,EAC/C,WACG,SAAO,EACP,SAAS,8CAA8C,EACvD;AAAA,IACC;AAAA,IACA;AAAA,EACF;AACJ,CAAC;AACM,IAAM,4BAA8B,SAAO;AAAA,EAChD,SACG,SAAO;AAAA,IACN,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,IACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK,CAAC,WAAW,SAAS,WAAW,kBAAkB,UAAU,CAAC,EAClE;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,OACG,SAAO;AAAA,MACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,OACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,oBACG,SAAO;AAAA,QACN,QACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,cACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,sBACG,OAAK;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,kBACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WACG;AAAA,MACG,SAAO;AAAA,QACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,SACG,SAAO;AAAA,UACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,gBACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,WACG,SAAO;AAAA,UACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,UACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,MACd,CAAC;AAAA,IACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,QACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,UACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,IAChE,QACG,SAAO;AAAA,MACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,gBACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,cACG,SAAO;AAAA,MACN,MACG,OAAK,EACL;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACjD,YACG,SAAO;AAAA,MACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,MACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,MACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,2BACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,QACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,QACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,QACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,QACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,UACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS;AAAA,QACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,MACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,MACZ,aACG,SAAO;AAAA,QACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,QACZ,iBACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,MACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,MACG,SAAO;AAAA,MACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,gBACG,SAAO;AAAA,MACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,EACd,CAAC,EACA,SAAS,wBAAwB,EACjC,SAAS;AACd,CAAC;AACM,IAAM,6BAA+B,SAAO;AAAA,EACjD,SACG,SAAO;AAAA,IACN,YACG,SAAO,EACP,SAAS,aAAa,EACtB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,SAAS,gBAAgB,EACzB,MAAM,EACN,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,SAAS,eAAe,EACxB,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,IACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IAClD,iBACG,OAAK,EACL,SAAS,8CAA8C,EACvD,SAAS,EACT,SAAS;AAAA,IACZ,eACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,IACZ,QACG,SAAO;AAAA,MACN,OACG,SAAO,EACP,IAAI,EACJ,SAAS,mDAAmD,EAC5D,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,QACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA,SAAS,gBAAgB,EACzB,SAAS;AAAA,EACd,CAAC,EACA,SAAS;AACd,CAAC;AACM,IAAM,8BAAgC,SAAO;AAAA,EAClD,UACG;AAAA,IACG,SAAO;AAAA,MACP,KACG,SAAO,EACP,SAAS,aAAa,EACtB;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP,MAAM,WAAW,8BAA8B,EAC/C;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,MACZ,cACG,OAAK,EACL,SAAS,6CAA6C,EACtD,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,OACG,SAAO,EACP,SAAS,uBAAuB,EAChC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,MACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA,SAAS,2DAA2D,EACpE,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,MAAM,EACN,IAAI,GAAG,EACP,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,OACG,SAAO;AAAA,QACN,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,OACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,QACZ,MACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACZ,oBACG,SAAO;AAAA,UACN,QACG,OAAK;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,cACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,QACd,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,sBACG,OAAK;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,EACA;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,kBACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK,CAAC,EACvD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,OACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,UACZ,MACG,SAAO,EACP;AAAA,YACC;AAAA,UACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,WACG;AAAA,QACG,SAAO;AAAA,UACP,KACG,OAAK,CAAC,SAAS,QAAQ,QAAQ,WAAW,UAAU,CAAC,EACrD;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,SACG,SAAO;AAAA,YACN,MAAQ,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACrC,aAAe,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC5C,SAAW,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YACxC,YAAc,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC3C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,YAC7C,cAAgB,SAAO,EAAE,SAAS,EAAE,SAAS;AAAA,UAC/C,CAAC,EACA;AAAA,YACC;AAAA,UACF,EACC,SAAS;AAAA,UACZ,gBACG,UAAQ,EACR;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,KACG,SAAO,EACP,SAAS,YAAY,EACrB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,WACG,SAAO;AAAA,YACN,WACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,UACG,SAAO,EACP,SAAS,wBAAwB,EACjC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,SACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,YACZ,OACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,UACd,CAAC,EACA,SAAS,qDAAqD,EAC9D,SAAS;AAAA,QACd,CAAC;AAAA,MACH,EACC,IAAI,EAAE,EACN,SAAS;AAAA,MACZ,SACG,SAAO;AAAA,QACN,MACG,SAAO,EACP,SAAS,yBAAyB,EAClC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,QACZ,UACG,SAAO,EACP,SAAS,sBAAsB,EAC/B,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,QACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,WACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,UACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,EAAE,EACN,SAAS,EACT,SAAS;AAAA,MACZ,YACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC;AAAA,QACC;AAAA,QACA;AAAA,MACF,EACC,SAAS,EACT,SAAS;AAAA,MACZ,aAAe,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAClD,OAAS,SAAO,EAAE,SAAS,0BAA0B,EAAE,SAAS;AAAA,MAChE,QACG,SAAO;AAAA,QACN,QACG,SAAO,EACP,SAAS,0CAA0C,EACnD;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,OACG,SAAO,EACP,SAAS,kDAAkD,EAC3D;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,gBACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC,IAAI,GAAI,EACR,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,cACG,SAAO;AAAA,QACN,MACG,OAAK,EACL;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YACG,SAAO,EACP;AAAA,UACC;AAAA,QACF,EACC;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,YAAc,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MACjD,YACG,SAAO;AAAA,QACN,UACG,SAAO,EACP,SAAS,WAAW,EACpB;AAAA,UACC;AAAA,UACA;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,YAAc,OAAK,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS;AAAA,QACjE,OACG,SAAO,EACP,SAAS,aAAa,EACtB,MAAM,EACN,SAAS,EACT,SAAS;AAAA,QACZ,eACG,UAAQ,EACR,SAAS,wCAAwC,EACjD,SAAS,EACT,SAAS;AAAA,QACZ,2BACG,UAAQ,EACR;AAAA,UACC;AAAA,QACF,EACC,SAAS,EACT,SAAS;AAAA,QACZ,QACG,OAAK,CAAC,WAAW,UAAU,WAAW,SAAS,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,UACG,SAAO,EACP,SAAS,UAAU,EACnB,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,UACZ,eACG,OAAK,CAAC,WAAW,QAAQ,CAAC,EAC1B,SAAS,gBAAgB,EACzB,SAAS;AAAA,UACZ,UACG,UAAQ,EACR,SAAS,yCAAyC,EAClD,SAAS,EACT,SAAS;AAAA,UACZ,OACG,UAAQ,EACR,SAAS,sCAAsC,EAC/C,SAAS,EACT,SAAS;AAAA,UACZ,OAAS,SAAO,EAAE,SAAS,eAAe,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,UACG,SAAO;AAAA,UACN,QACG,SAAO,EACP,SAAS,SAAS,EAClB;AAAA,YACC;AAAA,YACA;AAAA,UACF,EACC,SAAS;AAAA,UACZ,MACG,OAAK,CAAC,SAAS,eAAe,QAAQ,CAAC,EACvC,SAAS,gCAAgC,EACzC,SAAS;AAAA,QACd,CAAC,EACA,SAAS,WAAW,EACpB,SAAS;AAAA,QACZ,aACG,SAAO;AAAA,UACN,cACG,OAAK,EACL,SAAS,+CAA+C,EACxD,SAAS,EACT,SAAS;AAAA,UACZ,iBACG,OAAK,EACL;AAAA,YACC;AAAA,UACF,EACC,SAAS,EACT,SAAS;AAAA,UACZ,gBAAkB,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,SAAS,cAAc,EACvB,SAAS;AAAA,QACZ,WACG,SAAO,EAAE,UAAY,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC7D,SAAS,YAAY,EACrB,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,MACG,SAAO;AAAA,QACN,aACG,SAAO,EAAE,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,CAAC,EAC3D;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,MACZ,gBACG,SAAO;AAAA,QACN,YACG,SAAS,SAAO,GAAK,SAAS,SAAO,GAAK,MAAI,CAAC,CAAC,EAChD;AAAA,UACC;AAAA,QACF,EACC,SAAS;AAAA,MACd,CAAC,EACA;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,gBACG,SAAO;AAAA,IACN,OACG,SAAO,EACP,IAAI,EACJ,SAAS,2CAA2C,EACpD,SAAS,EACT,SAAS;AAAA,IACZ,SACG,SAAO;AAAA,MACN,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,MACZ,MACG,SAAO,EACP;AAAA,QACC;AAAA,MACF,EACC,IAAI,IAAK,EACT,SAAS,EACT,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,SACG,UAAQ,EACR;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,OACG,SAAO,EACP,IAAI,EACJ;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,EACd,CAAC,EACA,SAAS,iBAAiB,EAC1B,SAAS;AACd,CAAC;AACM,IAAM,qCAAuC,SAAO;AAAA,EACzD,aAAe,SAAO;AAAA,IACpB,WACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC;AAAA,MACC;AAAA,MACA;AAAA,IACF;AAAA,IACF,eACG,SAAO,EACP;AAAA,MACC;AAAA,IACF,EACC,IAAI,GAAG;AAAA,EACZ,CAAC;AACH,CAAC;AACM,IAAM,sCAAwC,SAAO;AAAA,EAC1D,QACG,OAAK,CAAC,eAAe,WAAW,SAAS,CAAC,EAC1C,SAAS,yCAAyC,EAClD,SAAS;AACd,CAAC;AACM,IAAM,4CAA8C,SAAO;AAAA,EAChE,SAAW,SAAO;AAAA,IAChB,QACG,SAAS,SAAO,GAAK,MAAI,CAAC,EAC1B;AAAA,MACC;AAAA,IACF,EACC,SAAS,EACT,SAAS;AAAA,IACZ,QACG,SAAO;AAAA,MACN,MAAQ,OAAK,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS;AAAA,MACrC,YACG,SAAO,EACP,SAAS,2BAA2B,EACpC,IAAI,GAAG,EACP,SAAS,EACT,SAAS;AAAA,MACZ,QAAU,QAAQ,SAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,MAC7C,OACG,UAAQ,EACR;AAAA,QACC;AAAA,MACF,EACC,SAAS;AAAA,IACd,CAAC,EACA;AAAA,MACC;AAAA,IACF,EACC,SAAS;AAAA,IACZ,aACG,SAAO,EACP;AAAA,MACC;AAAA,IACF;AAAA,EACJ,CAAC;AACH,CAAC;AACM,IAAM,6CAA+C,SAAO;AAAA,EACjE,OACG,SAAO,EACP;AAAA,IACC;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,SAAS;AACd,CAAC;","names":[]}